# WELCOME

<figure><img src="/files/WDqqClJEZAlL21oMnBfE" alt=""><figcaption></figcaption></figure>

**Welcome to the Official Documentation and Changelog Portal for our Mu Online Emulator!**

This site is your central hub for accessing all documentation and updates for our Mu Online emulator. Here you will find:

* **Comprehensive Documentation**: Explore detailed functionalities and configurations for MuServer and Client, with tutorials and guides to assist you every step of the way.
* **Lua System Documentation**: A dedicated section for developers with all the information on using Lua scripts for both MuServer and Client.
* **Update Changelog**: Stay up-to-date with all server and client improvements, with a complete history of changes.

Browse through our content and always have the latest information at hand to make the most of our emulator.

{% content-ref url="/spaces/4YrU4As6jzaR2Jyk5oKf/pages/ytCXHT4YdnktFNY4MDbB" %}
[Server Documentation](/welcome/server)
{% endcontent-ref %}

{% content-ref url="/spaces/4YrU4As6jzaR2Jyk5oKf/pages/JjMnop92RKO49PkFAw1Y" %}
[Lua Documentation](/welcome/luadoc)
{% endcontent-ref %}

{% content-ref url="/spaces/4YrU4As6jzaR2Jyk5oKf/pages/eEAwDyC7y5eLpn4mTXFE" %}
[CHANGE LOG](/change-log)
{% endcontent-ref %}


# Server Documentation

{% content-ref url="/pages/Nro33KPudjdY0vPczGZ6" %}
[MuServer](/welcome/server/muserver)
{% endcontent-ref %}


# MuServer


# ConnectServer


# ConnectServer

ConnectServer.exe connection configuration file.

<mark style="color:yellow;">**\[ConnectServerInfo]**</mark>\ <mark style="color:yellow;">ConnectServerPortTCP</mark> = "TCP port for game client connections"\ <mark style="color:yellow;">ConnectServerPortUDP</mark> = "UDP port for GameServer connections"\ <mark style="color:yellow;">MaxIpConnection</mark> = "Maximum simultaneous connections per IP" ; 0 blocks all connections\\

\ <mark style="color:yellow;">**\[AntiFlood]**</mark>\ <mark style="color:yellow;">AntiFloodActive</mark> = "Enable (1) or disable (0) flood protection"\ <mark style="color:yellow;">AntiFloodResetTime</mark> = "Time in milliseconds to reset the flood attempt counter"\ <mark style="color:yellow;">AntiFloodMaxCount</mark> = "Number of rapid attempts allowed before banning the IP"\ <mark style="color:yellow;">AntiFloodCheckTime</mark> = "Minimum interval in milliseconds between connections from the same IP"\ <mark style="color:yellow;">AntiFloodBlocTime</mark> = "IP ban duration" ; in seconds, not milliseconds


# ServerList

List of game servers displayed for the player to choose from on the server selection screen.

<mark style="color:yellow;">//ServerCode     ServerName     ServerAddress     ServerPort     ServerType</mark> \
A                         "B"                       "C"                      D                    "E" \ <mark style="color:yellow;">end</mark>\
\ <mark style="color:yellow;">A =</mark> Server code.\ <mark style="color:yellow;">B =</mark> Name displayed in the list.\ <mark style="color:yellow;">C =</mark> GameServer IP or Local IPv4.\ <mark style="color:yellow;">D =</mark> GameServer Port\ <mark style="color:yellow;">E =</mark> "SHOW ou HIDE" SHOW displays the server; any other value hides it.\
\
The ServerCode must match the one configured in the corresponding GameServer; otherwise, it will never appear as online in the list.\
\
It can be reloaded without restarting the ConnectServer via the window's Reload > Reload ServerList menu.


# Data


# Character


# DefaultClassInfo

Game characters common state configuration file.

<mark style="color:green;">Base data for each character class: starting points, health/mana, and where the character starts or returns.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values ​​</th><th>Description</th></tr></thead><tbody><tr><td>CLS</td><td>Number from 0 to 6, one per class (see notes)</td><td>The class this row refers to.</td></tr><tr><td>STR / DXT / VIT / ENE / LDS</td><td>Number</td><td>Starting Strength, Agility, Vitality, Energy, and Command points for a character of this class—and the stat values ​​the character reverts to when using <code>/reset</code> (see notes).</td></tr><tr><td>MXL</td><td>Number (decimals accepted)</td><td>Health at level 1, before the Vitality bonus.</td></tr><tr><td>MXM</td><td>Number (decimals accepted)</td><td>Mana at level 1, before the Energy bonus.</td></tr><tr><td>LVL</td><td>Number (decimals accepted)</td><td>Health gained per level (and per Master Level, at the same rate).</td></tr><tr><td>LVM</td><td>Number (decimals accepted)</td><td>Mana gained per level (and per Master Level, at the same rate).</td></tr><tr><td>VTL</td><td>Number (decimals accepted)</td><td>Extra Health granted by each point of Vitality.</td></tr><tr><td>ETM</td><td>Number (decimals accepted)</td><td>Extra Mana granted by each point of Energy.</td></tr><tr><td>STM</td><td>Map number</td><td>Map where a new character of this class starts.</td></tr><tr><td>SMX / SMY</td><td>X/Y coordinates</td><td>Starting position within map <code>STM</code>.</td></tr><tr><td>RTG</td><td>Gate number</td><td>Gate the character is sent to during general returns (e.g., returning from the Cash Shop or safety repositioning when logging in with an invalid state).</td></tr><tr><td>RSG</td><td>Gate number</td><td>Gate the character is sent to after using <code>/reset</code>.</td></tr><tr><td>MRG</td><td>Gate number</td><td>Gate the character is sent to after using <code>/mreset</code> (master reset).</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* The `CLS` value is fixed: `0` Dark Wizard, `1` Dark Knight, `2` Fairy Elf, `3` Magic Gladiator, `4` Dark Lord, `5` Summoner, `6` Rage Fighter. It is not possible to add a new class by editing this file—the number of classes is fixed on the server.
* `STR`, `DXT`, `VIT`, `ENE`, and `LDS` are not used solely for character creation; they represent the stat values ​​the character reverts to whenever the `/reset` command is used (Leadership only reverts to the default value if the server is not configured to preserve it during a reset).
* `STM`/`SMX`/`SMY` also define the map and coordinates where a character is sent when removed from a map due to the `EXM` (ExitMap) option in `MapManager.txt`.
* The gates (`RTG`, `RSG`, `MRG`) must point to valid indices in `Gate.txt`.

\ <br>


# Custom


# BotSystem

{% content-ref url="/spaces/4YrU4As6jzaR2Jyk5oKf/pages/7rpzmdFFKYHmWFLLjB8O" %}
[BotBuffer](/welcome/server/muserver/data/custom/botsystem/botbuffer)
{% endcontent-ref %}


# BotBuffer

File intended for creating buffer bots.

<mark style="color:green;">Configuration file for "buffer" bots (NPC characters that apply buffs and provide item previews through the trade interface). The file contains four fixed blocks, each identified by its block number on a line by itself and terminated with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Block 1 — Bot Basic Data and Spawn Settings</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>BotIndex</td><td>Number from <code>0</code> to <code>39</code></td><td>Identifies the bot (up to 40 total).</td></tr><tr><td>Class</td><td>Class/skin number (<code>0</code>-<code>2</code> DW, <code>16</code>-<code>18</code> DK, <code>32</code>-<code>34</code> Elf, <code>48</code>-<code>50</code> MG, <code>64</code>-<code>66</code> DL, <code>80</code>-<code>82</code> SU)</td><td>The bot's appearance/class.</td></tr><tr><td>Enabled</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = this bot exists and spawns on the map. <code>0</code> = does not spawn.</td></tr><tr><td>ColorName</td><td>Number from <code>0</code> to <code>7</code></td><td>Color of the bot's name displayed above its head.</td></tr><tr><td>Zen</td><td>Number</td><td>Amount of Zen charged to the player when trading with the bot.</td></tr><tr><td>PCPoint</td><td>Number</td><td>Amount of Cash Points charged to the player when trading with the bot.</td></tr><tr><td>MaxLvl</td><td>Number</td><td>Maximum player level allowed to trade with this bot.</td></tr><tr><td>Name</td><td>Quoted text, up to 10 characters</td><td>Displayed name of the bot.</td></tr><tr><td>Map</td><td>Number</td><td>Map where the bot is located.</td></tr><tr><td>X / Y</td><td>Number</td><td>Bot position on the map.</td></tr><tr><td>Dir</td><td>Number</td><td>Direction the bot is facing.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 2 — Gens Requirements</mark>

| Column           | Accepted Values                    | Description                                                                                 |
| ---------------- | ---------------------------------- | ------------------------------------------------------------------------------------------- |
| BotIndex         | Number of a bot defined in Block 1 | Specifies which bot this row applies to.                                                    |
| OnlyVip          | `0` or `1`                         | `1` = only VIP players (accounts with `AccountLevel > 0`) may trade with this bot.          |
| ActiveGensFamily | `0` or `1`                         | `1` = enables the Gens faction checks below. `0` = ignores `GensFamily` and `Contribution`. |
| Contribution     | Number                             | Minimum Gens contribution required (only applies when `ActiveGensFamily = 1`).              |
| GensFamily       | `1` (Vanert) or `2` (Duprian)      | Required Gens faction (only applies when `ActiveGensFamily = 1`).                           |

### <mark style="color:yellow;">Block 3 — Bot Equipment (Visual Only)</mark>

| Column       | Accepted Values                                                                                               | Description                                                                    |
| ------------ | ------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------ |
| BotIndex     | Number of a bot defined in Block 1                                                                            | Specifies which bot this row applies to.                                       |
| Slot         | `0` to `8` (`0` Sword, `1` Shield, `2` Helm, `3` Armor, `4` Pants, `5` Gloves, `6` Boots, `7` Wings, `8` Pet) | Equipment slot where the item is displayed on the bot (preview only).          |
| Type / Index | Number / Number                                                                                               | Together they form the item code (same logic as `Sect`/`Type` in other files). |
| Level        | Number                                                                                                        | Enhancement level (`+X`) of the displayed item.                                |
| Opt          | Number                                                                                                        | Additional option value of the displayed item.                                 |

### <mark style="color:yellow;">Block 4 — Buffs Applied When Trading with the Bot</mark>

| Column    | Accepted Values                                                                                                                                                                                                                                 | Description                                                                  |
| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| BotIndex  | Number of a bot defined in Block 1                                                                                                                                                                                                              | Specifies which bot this row applies to (maximum of 5 buff entries per bot). |
| Skill     | Number corresponding to a fixed effect/skill (`16` Greater Mana Shield, `27` Greater Defense, `28` Greater Damage, `48` Greater Life, `64` Critical Damage, `82` Magic Circle, `129` Greater Ignore Defense Rate, `130` Fitness, `217` Reflect) | The buff applied by this bot.                                                |
| MinusTime | Number (minutes)                                                                                                                                                                                                                                | Duration of the buff.                                                        |
| Power     | Number (%)                                                                                                                                                                                                                                      | Strength/percentage of the buff.                                             |

### <mark style="color:yellow;">Notes</mark>

* Block 4 must always exist in the file (even if empty, containing only `4` followed by `end`) — its mere presence enables the entire bot system. Whether a specific bot actually appears is determined by its `Enabled` value in Block 1, not by a global enable/disable setting.
* The item configured in Block 3 is purely cosmetic (the bot only displays it); it is not actually granted to the player. The player receives only the buff(s) configured in Block 4 in exchange for the Zen/Cash Points specified in Block 1.
* A bot with no entries in Block 2 has no VIP or Gens requirements (any player within the `MaxLvl` limit may trade with it).


# ConsumableTicket

File for creating and configuring consumable items that add VIP to the player's account.

<mark style="color:green;">Registers items that function as VIP tickets: when the item is used, the player receives the corresponding VIP account type for a specified duration. Maximum of 50 entries.</mark>

```
//LI	II	VT	VD	Comment
0	7421	1	30	//Ticket Vip Silver
1	7422	2	30	//Ticket Vip Bronze
2	7423	3	30	//Ticket Vip Gold
end
```

| Column | Accepted Values                             | Description                                                                                                   |
| ------ | ------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| LI     | Number                                      | Present in the file, but **not read by the server** — a dead/unused column (only useful as an editor's note). |
| II     | Number (pre-combined item code)             | The item that functions as this VIP ticket.                                                                   |
| VT     | Number (`1` = VIP1, `2` = VIP2, `3` = VIP3) | The VIP account type granted when the ticket is used.                                                         |
| VD     | Number (days)                               | Duration of the VIP status granted.                                                                           |

### <mark style="color:yellow;">Notes</mark>

* The `LI` column is not used by the game — the server identifies each entry using its own internal counter based solely on the order in which the lines appear in the file. You may use any value in `LI`, including duplicates, without affecting behavior.
* Each item can represent **only one** VIP ticket. If the same `II` value appears in multiple entries, only one of them will be considered.
* Using a new ticket only increases the account level (`AccountLevel`) if the ticket's VIP type is equal to or higher than the player's current level. For example, a VIP1 ticket will not downgrade an account that is already VIP2 or VIP3.


# CustomArena

Configuration file for creating class-versus-class PVP event arenas.

<mark style="color:green;">Configures up to 30 automatic PvP arenas (class-specific or unrestricted), with scheduled times, entry requirements, and entry/exit gates.</mark>

### <mark style="color:yellow;">Block 0 — Arena Schedule</mark>

| Column                           | Accepted Values         | Description                                                                                          |
| -------------------------------- | ----------------------- | ---------------------------------------------------------------------------------------------------- |
| AI                               | Number from `0` to `29` | The arena this schedule entry belongs to. Multiple rows may use the same `AI`.                       |
| YR / MT / DY / DW / HR / MN / SC | Number, or `*`          | Year/Month/Day/Day of the Week/Hour/Minute/Second when the arena opens. `*` = any value is accepted. |

### <mark style="color:yellow;">Block 1 — General Arena Settings</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>AI</td><td>Number from <code>0</code> to <code>29</code></td><td>The arena this row belongs to (one row per arena).</td></tr><tr><td>AN</td><td>Quoted text</td><td>Name of the arena.</td></tr><tr><td>AT</td><td>Number (minutes)</td><td>Announcement period before the arena opens.</td></tr><tr><td>ST</td><td>Number (minutes)</td><td>Waiting time (entry queue phase) before the battle begins.</td></tr><tr><td>ET</td><td>Number (minutes)</td><td>Duration of the battle.</td></tr><tr><td>CT</td><td>Number (minutes)</td><td>Cleanup/closing period after the battle ends, before the next cycle.</td></tr><tr><td>SG</td><td>An <code>Index</code> value from <code>Gate.txt</code></td><td>Entry gate for the arena.</td></tr><tr><td>FG</td><td>An <code>Index</code> value from <code>Gate.txt</code></td><td>Exit gate (where players are sent when the event ends).</td></tr><tr><td>MnU</td><td>Number</td><td>Minimum number of players required for the battle to start.</td></tr><tr><td>MxU</td><td>Number, or <code>*</code></td><td>Maximum number of players. <code>*</code> = no limit.</td></tr><tr><td>MD</td><td>Number</td><td>Maximum number of deaths a player may accumulate inside the arena (reaching the limit removes the player).</td></tr><tr><td>MnL / MxL</td><td>Number, or <code>*</code></td><td>Minimum/maximum character level required to enter. <code>*</code> = no limit.</td></tr><tr><td>MnM / MxM</td><td>Number, or <code>*</code></td><td>Minimum/maximum Master Level required. <code>*</code> = no limit.</td></tr><tr><td>MnR / MxR</td><td>Number, or <code>*</code></td><td>Minimum/maximum Reset count required. <code>*</code> = no limit.</td></tr><tr><td>MRn / MRx</td><td>Number, or <code>*</code></td><td>Minimum/maximum Master Reset count required. <code>*</code> = no limit.</td></tr><tr><td>DW / DK / FE / MG / DL / SU / RF</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = this class may enter the arena. <code>0</code> = this class is not allowed.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Each arena progresses through four phases in sequence: announcement (`AT`) → entry queue (`ST`) → battle (`ET`) → cleanup (`CT`). All time values are specified in minutes.
* The class columns (`DW` through `RF`) allow the creation of class-exclusive arenas (such as the default `GM X GM` and `BM X BM` examples, each permitting only a single class) or unrestricted arenas for all classes (such as `SURVIVOR`, where all class flags are set to `1`).
* `SG` and `FG` reference entries in `Gate.txt` — arenas do not define their own coordinates and instead reuse existing gate definitions from that file.


# CustomCombo

<mark style="color:green;">List of skills enabled for the automatic "Combo to All Classes" system — a feature that allows any class to chain attacks automatically while attacking. This system only works when</mark> <mark style="color:green;"></mark><mark style="color:green;">`EnableComboToAllSwitch = 1`</mark> <mark style="color:green;"></mark><mark style="color:green;">is enabled in</mark> <mark style="color:green;"></mark><mark style="color:green;">`common.dat`</mark><mark style="color:green;">. The file contains two blocks, each identified by its block number on a line by itself and terminated with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

```
0
  17	//Energy Ball
  19	//Falling Slash
  ...
end

1
  3	//Lightning
  7	//Ice
  ...
end
```

### <mark style="color:yellow;">Notes</mark>

* **Block 0** = "primary" skills (basic/initial combo attacks). **Block 1** = "secondary" skills (follow-up combo attacks, typically stronger skills).
* Each line contains only the skill `Index` (the same `Index` used in `Skill.txt`) — the comment following `//` is for documentation purposes only and is not read by the game.
* There are no restrictions on the number of entries or duplicates. A skill may appear only in one block, in both blocks, or in neither (in the latter case, it will not participate in the automatic combo system).


# CustomCommandDescription

File intended for configuring command description messages.

<mark style="color:green;">Registers the help text shown for a custom command (in 3 languages), used when the player asks for information about that command.</mark>

```
//#ID     #Command	#StringENG		#StringPOR		#StringSPN
  0	"/teste"	"Test command"		"Comando teste"		"Comando de prueba"
end
```

| **Column** | **Accepted values**                           | **What it is**                                              |
| ---------- | --------------------------------------------- | ----------------------------------------------------------- |
| ID         | Number                                        | Identifies the line.                                        |
| Command    | Text in quotation marks                       | The command (with the `/`) to which this help text belongs. |
| StringENG  | Text in quotation marks, up to 127 characters | Description in English.                                     |
| StringPOR  | Text in quotation marks, up to 127 characters | Description in Portuguese.                                  |
| StringSPN  | Text in quotation marks, up to 127 characters | Description in Spanish.                                     |

### <mark style="color:yellow;">Notes</mark>

* The `Command` registered here cannot be the same as any command already existing in `Command.txt` or `CustomMove.txt` — these are separate command lists, and a name conflict can cause unexpected behavior.


# CustomDeathMessage

<mark style="color:green;">Custom phrases that a monster can "speak" in the chat upon killing a player, one per monster</mark> <mark style="color:green;"></mark><mark style="color:green;">`Index`</mark><mark style="color:green;">. It only works with the</mark> <mark style="color:green;"></mark><mark style="color:green;">`CustomDeathMessageSwitch`</mark> <mark style="color:green;"></mark><mark style="color:green;">key enabled in the general server configuration.</mark>

```
//index text
1 "Hihihih I'm Very Strong Monster"
2 "Hihihih I'm Very Strong Monster"
```

### <mark style="color:yellow;">Notes</mark>

* The `Index` of each line is the monster's `Index` (the same as in `Monster.txt`) — it is not mandatory to list all monsters; a monster without a line here simply says nothing upon killing a player.
* If `CustomDeathMessageSwitch` is disabled, the file is completely ignored, even if all lines are filled out.
* The text has a limit of 127 characters and must be in quotation marks.


# CustomEventDrop

Using this file, create a drop event on the server.

<mark style="color:green;">Configures up to 10 automatic item drop events at a fixed point on the map (time-based event, with prior notice). The file has 3 blocks, with each line starting with the event</mark> <mark style="color:green;"></mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">(</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`9`</mark><mark style="color:green;">) — the same</mark> <mark style="color:green;"></mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">binds the lines of the 3 blocks together.</mark>

### <mark style="color:yellow;">Block 0 — times when the event triggers</mark>

| **Column**                                        | **Accepted values**    | **What it is**                                                                                                                            |
| ------------------------------------------------- | ---------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- |
| Index                                             | Number from `0` to `9` | The event to which this time belongs. There can be multiple lines with the same `Index` (the event triggers at each of the listed times). |
| Year / Month / Day / DoW / Hour / Minute / Second | Number, or `*`         | Year/Month/Day/Day of the week/Hour/Minute/Second when the event starts. `*` = any value works (no restriction).                          |

### <mark style="color:yellow;">Block 1 — general event data</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Index</td><td>Number from <code>0</code> to <code>9</code></td><td>The event to which this line belongs (only one line per event).</td></tr><tr><td>Name</td><td>Text in quotation marks</td><td>Name of the event, used in chat announcements.</td></tr><tr><td>DropMap</td><td>Number</td><td>Map where the items will drop.</td></tr><tr><td>DropX / DropY</td><td>Number</td><td>Center of the drop area.</td></tr><tr><td>DropRange</td><td>Number</td><td>Radius (in squares) around <code>DropX</code>/<code>DropY</code> where items can land.</td></tr><tr><td>AlarmTime</td><td>Number (minutes)</td><td>How long before the event starts that players are notified.</td></tr><tr><td>EventTime</td><td>Number (minutes)</td><td>Total duration of the event (item dropping).</td></tr></tbody></table>

### <mark style="color:yellow;">Block 2 — items that drop during the event</mark>

| **Column** | **Accepted values**             | **What it is**                                                                   |
| ---------- | ------------------------------- | -------------------------------------------------------------------------------- |
| Index      | Number from `0` to `9`          | The event to which this item belongs.                                            |
| ItemIndex  | Number (pre-combined item code) | Item that will drop.                                                             |
| ItemLevel  | Number                          | Level (+how much) of the item.                                                   |
| DropCount  | Number                          | How many copies of this item drop when its turn comes.                           |
| DropDelay  | Number (seconds)                | How long after the start of the event (not the server) this item begins to drop. |

### <mark style="color:yellow;">Notes</mark>

* `AlarmTime` and `EventTime` are in minutes, but `DropDelay` (block 2) is in seconds, counted from the start of the event's drop phase — not from midnight or the scheduled time in block 0.
* An event goes through 3 phases: waiting → announcement (`AlarmTime` before the start) → item drop (lasts for `EventTime`, pouring out the items from block 2 according to each one's `DropDelay`). Once `EventTime` ends, the event returns to waiting for the next time in block 0.
* If two events (different indexes) have the same scheduled time, both trigger normally — there is no conflict, as each `Index` runs independently.


# CustomJewel

File for configuring new jewelry.

<mark style="color:green;">Registers items that function as custom "jewels", applicable to another item to try to add/upgrade an option (with a success chance and a failure effect). Maximum of 15 different jewels. The file has 4 blocks.</mark>

### <mark style="color:yellow;">Block 0 — the jewel and which item it can be used on</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Index</td><td>Number from <code>0</code> to <code>14</code></td><td>Identifies this jewel (binds with blocks 1 and 2).</td></tr><tr><td>Item Index</td><td>Number (pre-combined item code)</td><td>Which item, when used (clicked/dragged), acts as this jewel.</td></tr><tr><td>Min Level / Max Level</td><td>Number</td><td>Level range (+how much) of the accepted target item.</td></tr><tr><td>Need Skill</td><td><code>0</code>, <code>1</code> or <code>*</code></td><td>Requires (or not) the target item to already have the Skill option. <code>*</code> = ignores.</td></tr><tr><td>Need Luck</td><td><code>0</code>, <code>1</code> or <code>*</code></td><td>Requires (or not) the target item to already have the Luck option. <code>*</code> = ignores.</td></tr><tr><td>Min JoLife / Max JoLife</td><td>Number, or <code>*</code></td><td>Accepted range of the additional option (%) already present on the target item. <code>*</code> = no requirement.</td></tr><tr><td>Min Excell / Max Excell</td><td>Number, or <code>*</code></td><td>Accepted range of the amount of excellent options already present on the target item. <code>*</code> = no requirement.</td></tr><tr><td>Max Ancient</td><td>Number, or <code>*</code></td><td>Requires the target item to have, at most, this ancient/set level. <code>*</code> = no requirement.</td></tr><tr><td>NeedMin Socket / NeedMax Socket</td><td>Number, or <code>*</code></td><td>Accepted range of the amount of sockets on the target item. <code>*</code> = no requirement.</td></tr><tr><td>Enable Weapon / Armor / Wing / Ring / Pet</td><td><code>0</code> or <code>1</code></td><td>In which item categories this jewel can be used.</td></tr><tr><td>Rate %_AL0 – %_AL3</td><td>Number (%)</td><td>Success chance, by Free/VIP1/VIP2/VIP3 account.</td></tr><tr><td>Sale Price</td><td>Number</td><td>Selling price of the jewel in the shop (if sold by an NPC).</td></tr><tr><td>Model</td><td>Text in quotation marks</td><td>Name of the jewel's model/texture.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 1 — effect upon success</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Index</td><td>Number of a jewel from block 0</td><td>Which jewel this effect belongs to.</td></tr><tr><td>Level</td><td>Number</td><td>How much it adds to the level (+how much) of the target item.</td></tr><tr><td>Skill / Luck</td><td><code>0</code> or <code>1</code></td><td>Adds (or not) the Skill/Luck option to the target item.</td></tr><tr><td>Option3</td><td>Number</td><td>How much it adds to the additional option (%) of the target item.</td></tr><tr><td>NewOption</td><td>Number, in bits</td><td>Excellent option(s) added to the target item.</td></tr><tr><td>SetOption</td><td>Number</td><td>Level of ancient/set added.</td></tr><tr><td>SocketOption</td><td>Number</td><td>Amount of sockets added.</td></tr><tr><td>Option380</td><td><code>0</code> or <code>1</code></td><td>Adds (or not) the special "380" option.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 2 — effect upon failure</mark>

<mark style="color:orange;">Same columns as block 1, but applied when the attempt fails (usually to remove something from the item, instead of adding).</mark>

### <mark style="color:yellow;">Block 3 — item conversion when using the jewel</mark>

| **Column** | **Accepted values**             | **What it is**                                                                                                                                         |
| ---------- | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Index      | Number                          | Identifies the conversion line.                                                                                                                        |
| Old Item   | Number (pre-combined item code) | Source item.                                                                                                                                           |
| New Item   | Number (pre-combined item code) | Item into which the `Old Item` transforms when using this jewel.                                                                                       |
| Option     | `0`, `1` or `2`                 | `0` = resets the item's options upon conversion. `1` = keeps the current options. `2` = keeps the current options and also adds the effect of block 1. |

### <mark style="color:yellow;">Notes</mark>

* The `Rate` in block 0 is the success chance — the effect of block 1 is only applied if the roll succeeds; otherwise, block 2 (failure) is applied.
* The conversion in block 3 only applies to the `Item Index` that matches the `Old Item` configured there — it is not a general rule, it is item-by-item.
* A jewel without a corresponding line in any block (1, 2 or 3) simply does not have that effect.


# CustomMix

New mix configuration file.

<mark style="color:green;">Configures custom Chaos Goblin combinations (Item Combination): what items to require, success chance, and what to give as a reward. The file has 3 blocks, linked together by the</mark> <mark style="color:green;"></mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">column (which identifies the mix).</mark>

### <mark style="color:yellow;">Block 0 — cost and success chance</mark>

| **Column**                  | **Accepted values** | **What it is**                                          |
| --------------------------- | ------------------- | ------------------------------------------------------- |
| Index                       | Number              | Identifies this custom mix (binds with blocks 1 and 2). |
| MixMoney                    | Number              | Zen charged to attempt the mix.                         |
| MixRate\_AL0 – MixRate\_AL3 | Number (%)          | Success chance, by Free/VIP1/VIP2/VIP3 account.         |

### <mark style="color:yellow;">Block 1 — required items</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Index</td><td>Number of a mix from block 0</td><td>Which mix this required item belongs to.</td></tr><tr><td>Group</td><td>Number</td><td>Groups items that count as "the same requirement" within the same mix (multiple lines with the same <code>Group</code> = any of them works to fulfill that requirement).</td></tr><tr><td>Count</td><td>Number</td><td>How many units of this item are required.</td></tr><tr><td>ItemMinIndex / ItemMaxIndex</td><td>Number (pre-combined item code)</td><td>Range of accepted items (one line for a unique item = same value in both).</td></tr><tr><td>ItemLevel</td><td>Number, or <code>-1</code></td><td>Required level (+how much) of the item. <code>-1</code> = any level.</td></tr><tr><td>ItemOption1 / ItemOption2 / ItemOption3</td><td>Number, or <code>-1</code></td><td>Required options of the item. <code>-1</code> = any value.</td></tr><tr><td>ItemNewOption</td><td>Number, or <code>-1</code></td><td>Requires (or not) excellent. <code>-1</code> = any.</td></tr><tr><td>ItemSetOption</td><td>Number, or <code>-1</code></td><td>Requires (or not) ancient/set. <code>-1</code> = any.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 2 — reward</mark>

| **Column** | **Accepted values**                                      | **What it is**                                                    |
| ---------- | -------------------------------------------------------- | ----------------------------------------------------------------- |
| Index      | Number of a mix from block 0                             | Which mix this reward belongs to.                                 |
| Group      | Number                                                   | Reward group (allows for more than one possible outcome per mix). |
| BagSpecial | Number of a special value from `EventItemBagManager.txt` | Defines the item/prize drawn upon a successful mix.               |

### <mark style="color:yellow;">Notes</mark>

* The same mix `Index` can require multiple different item groups (block 1) — all groups listed for that `Index` must be satisfied, each with a unit from among the options of that specific group.
* The reward itself (which exact item comes out) is not defined directly in block 2 — `BagSpecial` points to an entry in the Event Item Bag system, which is what draws the final outcome.


# CustomMonster

In this file it is possible to create exclusive options for a given monster.

<mark style="color:green;">Customizes attributes and rewards for a specific monster (identified by</mark> <mark style="color:green;"></mark><mark style="color:green;">`Index`</mark><mark style="color:green;">), overriding the normal values from</mark> <mark style="color:green;"></mark><mark style="color:green;">`Monster.txt`</mark> <mark style="color:green;"></mark><mark style="color:green;">only for this custom entry.</mark>

```
//MI	MN	ML	MnD	MxD	DF	AR	DR	ER	KM	IM	RV1	RV2	RV3	SM	SMC	SMR	Comment
  2	*	100	100	100	100	100	100	100	*	864	10	*	*	3	1	100	//Custom Monster Teste 1
end
```

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>MI</td><td>Number of an <code>Index</code> from <code>Monster.txt</code></td><td>Which monster this line customizes.</td></tr><tr><td>MN</td><td>Number, or <code>*</code></td><td>Map where the customization is valid. <code>*</code> = valid on any map.</td></tr><tr><td>ML</td><td>Number</td><td>Custom maximum health of the monster.</td></tr><tr><td>MnD / MxD</td><td>Number</td><td>Custom minimum/maximum damage.</td></tr><tr><td>DF</td><td>Number</td><td>Custom defense.</td></tr><tr><td>AR</td><td>Number</td><td>Custom attack rate.</td></tr><tr><td>DR</td><td>Number</td><td>Custom defense rate.</td></tr><tr><td>ER</td><td>Number (%)</td><td>Custom experience rate (<code>100</code> = normal).</td></tr><tr><td>KM</td><td>Number of a message, or <code>*</code></td><td>Message sent to the entire server upon killing this monster. <code>*</code> = none.</td></tr><tr><td>IM</td><td>Number of a message, or <code>*</code></td><td>Message sent only to the one who killed it, showing the values of <code>RV1</code>/<code>RV2</code>/<code>RV3</code>. <code>*</code> = none.</td></tr><tr><td>RV1 / RV2 / RV3</td><td>Number, or <code>*</code></td><td>Custom reward values given to the one who killed it (saved and displayed in the <code>IM</code>). <code>*</code> = <code>0</code>.</td></tr><tr><td>SM</td><td>Number of a monster class, or <code>*</code></td><td>Extra monster summoned when this one dies. <code>*</code> = none.</td></tr><tr><td>SMC</td><td>Number, or <code>*</code></td><td>How many monsters are summoned (<code>*</code> = 1).</td></tr><tr><td>SMR</td><td>Number (%), or <code>*</code></td><td>Chance of the summon happening on each death.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* A line only takes effect for the corresponding `Index`+`MN` (map) — the same monster can have different customizations on different maps, or a single line with `MN *` applying to all of them.
* `RV1`/`RV2`/`RV3` do not have a fixed meaning in the game — they are just numbers passed to the `IM` message and saved; what they represent (points, custom currency, etc.) depends on how the server uses this saved data.


# CustomMove

File for configuring new move commands.

<mark style="color:green;">Registers custom teleport commands (e.g.,</mark> <mark style="color:green;"></mark><mark style="color:green;">`/pvp1`</mark><mark style="color:green;">,</mark> <mark style="color:green;"></mark><mark style="color:green;">`/arena1`</mark><mark style="color:green;">), with optional requirements and Zen cost. Maximum of 20 lines.</mark>

```
//Index	Command		Map	X	Y	MinLevel	MaxLevel	MinReset	MaxReset	MinMReset	MaxMReset	AccountLevel	PKMove	Money	Comment
  1	"/pvp1"		2	222	73	50		*		*		*		*		*		0		1	*
  2	"/pvp2"		2	173	41	50		*		*		*		*		*		0		1	*
end
```

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Index</td><td>Number</td><td>Identifies the line.</td></tr><tr><td>Command</td><td>Text in quotation marks</td><td>Command that the player types in the chat.</td></tr><tr><td>Map</td><td>Number</td><td>Destination map.</td></tr><tr><td>X / Y</td><td>Number</td><td>Destination position.</td></tr><tr><td>MinLevel / MaxLevel</td><td>Number, or <code>*</code></td><td>Minimum/maximum level of the player. <code>*</code> = no limit.</td></tr><tr><td>MinReset / MaxReset</td><td>Number, or <code>*</code></td><td>Minimum/maximum reset of the player. <code>*</code> = no limit.</td></tr><tr><td>MinMReset / MaxMReset</td><td>Number, or <code>*</code></td><td>Minimum/maximum Master Reset of the player. <code>*</code> = no limit.</td></tr><tr><td>AccountLevel</td><td>Number, or <code>*</code></td><td>Requires a specific Free/VIP1/VIP2/VIP3 account level. <code>*</code> = any.</td></tr><tr><td>PKMove</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = blocks the teleport if the player is PK.</td></tr><tr><td>Money</td><td>Number, or <code>*</code></td><td>Zen charged when using the command. <code>*</code> = free.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Each line becomes its own chat command (`Command`) — there is no generic command like `/move <index>`, the player types exactly the registered text.
* If the player does not meet any requirement, the teleport is refused with a notice explaining which condition was missing.


# CustomNpcCollector

<mark style="color:green;">Registers the items that the collector NPC (Golden Archer) accepts in exchange for currencies and/or a drawn prize. Maximum of 50 lines, all inside block</mark> <mark style="color:green;"></mark><mark style="color:green;">`0`</mark><mark style="color:green;">.</mark>

```
0
//SEC	ITE	LVL	AMO	RV1	RV2	RV3	BAG	FWK	Comment
  12	15	0	1	6	0	0	201	1	//1 x Jewel of Chaos
end
```

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>SEC</td><td>Number from <code>0</code> to <code>15</code> (item group)</td><td>Together with <code>ITE</code>, it forms the accepted item.</td></tr><tr><td>ITE</td><td>Number from <code>0</code> to <code>511</code> (item index within the group)</td><td>See <code>SEC</code>.</td></tr><tr><td>LVL</td><td>Number from <code>0</code> to <code>15</code></td><td>Required level (+how much) of the item.</td></tr><tr><td>AMO</td><td>Number from <code>1</code> to <code>64</code></td><td>Required amount of that item per exchange.</td></tr><tr><td>RV1 / RV2 / RV3</td><td>Number</td><td>Currency reward values given for the exchange.</td></tr><tr><td>BAG</td><td>Number of a special value from <code>EventItemBagManager.txt</code>, or <code>-1</code></td><td>Extra prize drawn for the exchange. <code>-1</code> = none.</td></tr><tr><td>FWK</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = shows a fireworks effect upon delivering the item.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* `RV1`/`RV2`/`RV3` follow the same concept as `CustomMonster.txt`: they are passed/saved reward values, without a fixed meaning (custom currency, points, etc.) — what they represent depends on how the server uses this data.
* `BAG` works the same way as in other files with Event Item Bag: it is just an *extra* draw, on top of the fixed rewards from `RV1`-`RV3`.


# CustomNpcCommand

Run commands when interacting with specific NPCs.

<mark style="color:green;">Links clicking on an NPC (at an exact position on the map) to the automatic execution of a command, as if the player themselves had typed it.</mark>

```
//IND	NPC	MAP	NPX	NPY	NPT	COM		Comment
  0	543	0	144	127	0	"/pkclear"	//LIMPAR PK
end
```

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>IND</td><td>Number</td><td>Identifies the line.</td></tr><tr><td>NPC</td><td>Number of the NPC class</td><td>Which NPC triggers the command.</td></tr><tr><td>MAP</td><td>Number</td><td>Map where this NPC must be located.</td></tr><tr><td>NPX / NPY</td><td>Number</td><td>Exact position of the NPC on the map.</td></tr><tr><td>NPT</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = executes the command while "talking" to the NPC (allows the command to reply in the chat directed to the NPC). <code>0</code> = executes the command directly, without a conversation context.</td></tr><tr><td>COM</td><td>Text in quotation marks</td><td>The executed command (with the <code>/</code>).</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* The combination of `NPC` + `MAP` + `NPX` + `NPY` must exactly match the actual position of the NPC on the map, in the same way as in `CustomNpcMove.txt`.
* The executed command must already exist in the system (whether it is a standard command from `Command.txt` or a custom one) — this file only triggers the command, it does not create a new one.


# CustomNpcMove

<mark style="color:green;">Configures teleports when clicking on specific NPCs (standing at an exact point on the map), with optional level/reset/account requirements.</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Index</td><td>Number</td><td>Identifies the line.</td></tr><tr><td>Npc</td><td>Number of the NPC class</td><td>Which NPC triggers the teleport.</td></tr><tr><td>NpcMap</td><td>Number</td><td>Map where this NPC must be located.</td></tr><tr><td>NpcX / NpcY</td><td>Number</td><td>Exact position of the NPC on the map (identifies which copy of the NPC, if there is more than one).</td></tr><tr><td>MoveMap</td><td>Number</td><td>Destination map of the teleport.</td></tr><tr><td>MoveX / MoveY</td><td>Number</td><td>Destination position.</td></tr><tr><td>MinLevel / MaxLevel</td><td>Number, or <code>*</code></td><td>Minimum/maximum level of the player. <code>*</code> = no limit.</td></tr><tr><td>MinReset / MaxReset</td><td>Number, or <code>*</code></td><td>Minimum/maximum reset of the player. <code>*</code> = no limit.</td></tr><tr><td>MinMReset / MaxMReset</td><td>Number, or <code>*</code></td><td>Minimum/maximum Master Reset of the player. <code>*</code> = no limit.</td></tr><tr><td>AccountLevel</td><td>Number, or <code>*</code></td><td>Requires a specific Free/VIP1/VIP2/VIP3 account level. <code>*</code> = any.</td></tr><tr><td>PKMove</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = also blocks the teleport if the player is PK.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* The combination of `Npc` + `NpcMap` + `NpcX` + `NpcY` must exactly match the actual position of the NPC on the map — this is how the game identifies which line to use when the player interacts with that NPC.
* If the player does not meet any requirement, they receive a notice explaining which one (minimum level, minimum reset, etc.) and the teleport does not happen.


# CustomNpcQuest

<mark style="color:green;">Configures a chain of sequential quests delivered by a specific NPC, at an exact point on the map (the version of</mark> <mark style="color:green;"></mark><mark style="color:green;">`CustomQuest.txt`</mark> <mark style="color:green;"></mark><mark style="color:green;">tied to an actual NPC instead of a loose command). The file has 8 blocks, all linked by the</mark> <mark style="color:green;"></mark><mark style="color:green;">`Quest`</mark><mark style="color:green;">/</mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">column, which identifies the position in the chain.</mark>

### <mark style="color:yellow;">Block 0 — NPC and quest limit</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Quest</td><td>Number</td><td>Position in the chain.</td></tr><tr><td>Npc</td><td>Number of the NPC class</td><td>Which NPC delivers this quest.</td></tr><tr><td>NpcMap</td><td>Number</td><td>Map where this NPC must be located.</td></tr><tr><td>NpcX / NpcY</td><td>Number</td><td>Exact position of the NPC on the map.</td></tr><tr><td>MaxQuest</td><td>Number, or <code>0</code></td><td>Maximum amount of quests from this chain that the NPC delivers. <code>0</code> = no limit.</td></tr><tr><td>OpenNpc</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = the NPC continues to open its normal shop/dialogue in addition to the quest. <code>0</code> = the NPC only deals with the quest.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 1 — character requirements</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Quest</td><td>Number</td><td>The quest in the chain to which this requirement belongs.</td></tr><tr><td>Level / MLevel</td><td>Number, or <code>*</code></td><td>Minimum Level/Master Level. <code>*</code> = no requirement.</td></tr><tr><td>Reset / MReset</td><td>Number, or <code>*</code></td><td>Minimum Reset/Master Reset. <code>*</code> = no requirement.</td></tr><tr><td>Zen</td><td>Number</td><td>Required Zen (deducted upon completion).</td></tr><tr><td>WC / WP / GP</td><td>Number</td><td>Required WCoinC/WCoinP/Goblin Point (deducted upon completion).</td></tr><tr><td>AL</td><td>Number, or <code>*</code></td><td>Required Free/VIP1/VIP2/VIP3 account level. <code>*</code> = any.</td></tr><tr><td>RankUser</td><td>Number, or <code>*</code></td><td>Required ranking position. <code>*</code> = no requirement.</td></tr><tr><td>Kills</td><td>Number, or <code>*</code></td><td>Minimum amount of kills (PK). <code>*</code> = no requirement.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 2 — required item (removed from inventory)</mark>

| **Column**     | **Accepted values**                        | **What it is**                                     |
| -------------- | ------------------------------------------ | -------------------------------------------------- |
| Quest          | Number                                     | Which quest it belongs to.                         |
| Section / Type | Number / Number                            | Together they form the required item.              |
| Level          | Number, or `*`                             | Required level (+how much) of the item. `*` = any. |
| Luck / Skill   | `0` (without), `1` (with) or `*` (ignores) | Requires (or not) the option on the item.          |
| Amount         | Number                                     | Required amount.                                   |

### <mark style="color:yellow;">Block 3 — monster to kill</mark>

| **Column** | **Accepted values**                     | **What it is**                                                |
| ---------- | --------------------------------------- | ------------------------------------------------------------- |
| Quest      | Number                                  | Which quest it belongs to (only 1 type of monster per quest). |
| Monster    | Number of an `Index` from `Monster.txt` | Monster that needs to be killed.                              |
| Amount     | Number                                  | Required amount of kills.                                     |

### <mark style="color:yellow;">Block 4 — currency reward</mark>

| **Column**   | **Accepted values** | **What it is**                               |
| ------------ | ------------------- | -------------------------------------------- |
| Quest        | Number              | Which quest it belongs to.                   |
| WC / WP / GP | Number              | WCoinC/WCoinP/Goblin Point given as a prize. |
| Money        | Number              | Zen given as a prize.                        |

### <mark style="color:yellow;">Block 5 — item reward</mark>

<mark style="color:orange;">Same columns as block 4 of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`CustomQuest.txt`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(</mark><mark style="color:orange;">`Section`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Type`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Level`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Durab`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Skill`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Luck`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Option`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`ExcOp`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`SetOp`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`JoH`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`OEx`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Socket1`</mark><mark style="color:orange;">–</mark><mark style="color:orange;">`Socket5`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Time`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Class`</mark><mark style="color:orange;">).</mark>

### <mark style="color:yellow;">Block 6 — buff reward</mark>

<mark style="color:orange;">Same columns as block 5 of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`CustomQuest.txt`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(</mark><mark style="color:orange;">`Effect`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Power1`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Power2`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`Time`</mark><mark style="color:orange;">).</mark>

### <mark style="color:yellow;">Block 7 — experience reward</mark>

<mark style="color:orange;">Same columns as block 6 of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`CustomQuest.txt`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(</mark><mark style="color:orange;">`Experience`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`LevelUpPoint`</mark><mark style="color:orange;">).</mark>

### <mark style="color:yellow;">Notes</mark>

* Unlike `CustomQuest.txt` (loose chain, without an NPC), here progress is counted per NPC — each NPC registered in block 0 has its own chain and its own progress counter per player.
* `MaxQuest` limits how many quests from that NPC a player can complete in total (`0` = no limit); after reaching the limit, the NPC stops offering new quests from that chain.
* With `OpenNpc = 0`, the NPC becomes "quest exclusive" — it stops opening its normal shop/dialogue while delivering this chain.


# CustomOnlineLottery

<mark style="color:green;">Configures the automatic lottery among all online players, which drops an item for the winner at a point on the map. Supports up to 24 independent lotteries (</mark><mark style="color:green;">`Index`</mark><mark style="color:green;">). The drawn items come from another file (</mark><mark style="color:green;">`Lottery.txt`</mark><mark style="color:green;">, from the Event Item Bag system) — here you only configure the schedule, the map, and the extra currency rewards.</mark>

### <mark style="color:yellow;">Block 0 — times when the lottery triggers</mark>

| **Column**                                        | **Accepted values**     | **What it is**                                                                             |
| ------------------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------ |
| Index                                             | Number from `0` to `23` | The lottery to which this time belongs. There can be multiple lines with the same `Index`. |
| Year / Month / Day / DoW / Hour / Minute / Second | Number, or `*`          | Date/time when the lottery happens. `*` = any value works.                                 |

### <mark style="color:yellow;">Block 1 — general lottery data</mark>

| **Column** | **Accepted values**     | **What it is**                                                      |
| ---------- | ----------------------- | ------------------------------------------------------------------- |
| Index      | Number from `0` to `23` | The lottery to which this line belongs (only one line per lottery). |
| Name       | Text in quotation marks | Name of the lottery, used in chat announcements.                    |
| DropMap    | Number                  | Map where the winner's item will drop.                              |
| AlarmTime  | Number (minutes)        | How long before the lottery that players are notified.              |

### <mark style="color:yellow;">Block 2 — extra currency rewards</mark>

| **Column** | **Accepted values**     | **What it is**                          |
| ---------- | ----------------------- | --------------------------------------- |
| Index      | Number from `0` to `23` | The lottery to which this line belongs. |
| WC         | Number                  | Extra WCoinC given to the winner.       |
| WP         | Number                  | Extra WCoinP given to the winner.       |
| GP         | Number                  | Extra Goblin Point given to the winner. |

### <mark style="color:yellow;">Notes</mark>

* If the lottery is started manually through the GameServer menu (instead of waiting for the time in block 0), the rewards used are always those of `Index 0`.
* Unlike `CustomEventDrop.txt` and `CustomQuiz.txt`, this file does not have an event duration column — the draw is instantaneous as soon as the scheduled time arrives, there is no configurable time window here.
* The item actually drawn (which item, level, options) is defined in `Lottery.txt` of the Event Item Bag system, not in this file.


# CustomPet

<mark style="color:green;">Registers special bonuses for Pet (Helper) items equipped in the wing slot — the item must be listed here to receive the bonuses. Maximum of 300 lines.</mark>

```
//PI	PM	PD	RL	AH	AM	DR	AS	DD	TD	AE	RD	RS	RC	RE	BS	RR	SD	AG	DR	SP	DP	VP	EP	CP	Comment
6856	0	255	0	10	10	10	10	5	0	0	0	0	0	0	0	0	0	0	0	1	2	3	4	5	//Dark Lord Pet
end
```

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>PI</td><td>Number (pre-combined item code)</td><td>Which pet item receives these bonuses.</td></tr><tr><td>PM</td><td><code>0</code>, <code>1</code> or <code>2</code></td><td>Mount type: <code>0</code> = Common pet (Muun), <code>1</code> = Fenrir, <code>2</code> = Horse.</td></tr><tr><td>PD</td><td><code>0</code>, or <code>1</code> to <code>255</code></td><td>Durability of the pet. <code>0</code> = immortal pet (never loses durability). <code>1</code>–<code>255</code> = pet with its own health, losing durability normally.</td></tr><tr><td>RL</td><td>Number</td><td>Recovered health (extra regeneration given by the pet).</td></tr><tr><td>AH</td><td>Number</td><td>Additional HP given by the pet.</td></tr><tr><td>AM</td><td>Number</td><td>Additional Mana given by the pet.</td></tr><tr><td>DR (1st)</td><td>Number (%)</td><td>Additional damage rate.</td></tr><tr><td>AS</td><td>Number</td><td>Additional attack speed.</td></tr><tr><td>DD</td><td>Number (%)</td><td>Additional double damage rate.</td></tr><tr><td>TD</td><td>Number (%)</td><td>Additional triple damage rate.</td></tr><tr><td>AE</td><td>Number (%)</td><td>Additional experience.</td></tr><tr><td>RD</td><td>Number (%)</td><td>Resistance to ignore defense.</td></tr><tr><td>RS</td><td>Number (%)</td><td>Resistance to ignore SD.</td></tr><tr><td>RC</td><td>Number (%)</td><td>Resistance to critical damage.</td></tr><tr><td>RE</td><td>Number (%)</td><td>Resistance to excellent damage.</td></tr><tr><td>BS</td><td>Number (%)</td><td>Additional Block/Stun.</td></tr><tr><td>RR</td><td>Number (%)</td><td>Damage reflect rate.</td></tr><tr><td>SD</td><td>Number</td><td>Additional SD.</td></tr><tr><td>AG</td><td>Number</td><td>Additional AG (Shield/BP).</td></tr><tr><td>DR (2nd)</td><td>Number (%)</td><td>Additional item drop rate.</td></tr><tr><td>SP</td><td>Number</td><td>Added Strength points.</td></tr><tr><td>DP</td><td>Number</td><td>Added Agility points.</td></tr><tr><td>VP</td><td>Number</td><td>Added Vitality points.</td></tr><tr><td>EP</td><td>Number</td><td>Added Energy points.</td></tr><tr><td>CP</td><td>Number</td><td>Added Command points.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* The file has two columns named `DR` in the original header (`Add Damage Rate` and `Item Drop Rate`) — they are different columns, in the order they appear in the table above (the 1st right after `AM`, the 2nd right after the second `AG`).
* An item that is not listed here simply does not have any pet bonus — the bonuses only exist for those registered in this file.


# CustomPick

<mark style="color:green;">Registers filter nicknames for the</mark> <mark style="color:green;"></mark><mark style="color:green;">`/pick`</mark> <mark style="color:green;"></mark><mark style="color:green;">command, which enables automatic item collection of a specific item type when walking over it. Maximum of 20 lines.</mark>

```
//CID	ARG	CAT	ITE	Comment
  0	"soul"	14	14	//Collect Soul
  1	"bless"	14	13	//Collect Bless
  2	"chaos"	12	15	//Collect Chaos
  3	"zen"	14	15	//Collect Zen
  4	"life"	14	16	//Collect Life
end
```

| **Column** | **Accepted values**      | **What it is**                                                                          |
| ---------- | ------------------------ | --------------------------------------------------------------------------------------- |
| CID        | Number, one per line     | Identifies the entry internally.                                                        |
| ARG        | Text in quotation marks  | Word that the player types after the command, e.g., `/pick soul` uses the `ARG "soul"`. |
| CAT        | Number from `0` to `15`  | Item group (`Sect`), together with `ITE` it forms the item to be filtered.              |
| ITE        | Number from `0` to `511` | Item index within the group (`Type`).                                                   |

### <mark style="color:yellow;">Notes</mark>

* In addition to the nicknames registered here, the command also accepts 4 fixed modes that do not come from this file: `/pick exc` (excellent items), `/pick socket` (items with sockets), `/pick setitem` (ancient items), and `/pick all` (enables all registered filters at once).
* Each use of the command toggles that specific filter on/off — using `/pick soul` again disables the automatic collection of that item.
* The `ARG` is case-insensitive during comparison.


# CustomPVPZone

File used to create areas with and without PvP, with and without PK mode on maps.

<mark style="color:green;">Defines custom rectangular PVP areas within a map (independent of the PVP zones already built into the map).</mark>

```
//MAP	IPX	IPY	FPX	FPY	TYPE
  6	0	0	255	255	0	//Stadium without PVP
  6	42	52	52	62	1	//Stadium cage with PVP but no PK
  6	42	34	52	44	2	//Stadium cage with PVP and PK
end
```

| **Column** | **Accepted values** | **What it is**                                                                                             |
| ---------- | ------------------- | ---------------------------------------------------------------------------------------------------------- |
| MAP        | Number              | Map where the area exists.                                                                                 |
| IPX / IPY  | Number              | Starting corner of the rectangle.                                                                          |
| FPX / FPY  | Number              | Ending corner of the rectangle.                                                                            |
| TYPE       | `0`, `1` or `2`     | `0` = area without PVP. `1` = area with PVP, but without counting PK. `2` = area with PVP and counting PK. |

### <mark style="color:yellow;">Notes</mark>

* When multiple areas overlap, the last one that matches in the file takes precedence (the game checks all lines for the map and keeps the result of the last one containing the position) — in case of intentional overlapping (like the example, which first marks the entire stadium as without PVP and then carves out two smaller areas with PVP inside it), the smaller/more specific areas must come after the larger area in the file.
* Outside of any area listed here, the default behavior of the map applies (defined elsewhere, not in this file).


# CustomQuest

<mark style="color:green;">Configures a chain of sequential and custom quests (without a fixed NPC — the player advances using a command): the character can only do quest</mark> <mark style="color:green;"></mark><mark style="color:green;">`N+1`</mark> <mark style="color:green;"></mark><mark style="color:green;">after completing quest</mark> <mark style="color:green;"></mark><mark style="color:green;">`N`</mark><mark style="color:green;">. The file has 7 blocks, all linked by the</mark> <mark style="color:green;"></mark><mark style="color:green;">`Quest`</mark><mark style="color:green;">/</mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">column, which identifies the position in the chain.</mark>

### <mark style="color:yellow;">Block 0 — character requirements</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Quest</td><td>Number</td><td>Position in the chain (1 quest per line in this block).</td></tr><tr><td>Level / MLevel</td><td>Number, or <code>*</code></td><td>Minimum Level/Master Level. <code>*</code> = no requirement.</td></tr><tr><td>Reset / MReset</td><td>Number, or <code>*</code></td><td>Minimum Reset/Master Reset. <code>*</code> = no requirement.</td></tr><tr><td>Zen</td><td>Number</td><td>Required Zen (deducted upon completion).</td></tr><tr><td>WC / WP / GP</td><td>Number</td><td>Required WCoinC/WCoinP/Goblin Point (deducted upon completion).</td></tr><tr><td>AL</td><td>Number, or <code>*</code></td><td>Required Free/VIP1/VIP2/VIP3 account level. <code>*</code> = any.</td></tr><tr><td>RankUser</td><td>Number, or <code>*</code></td><td>Required ranking position. <code>*</code> = no requirement.</td></tr><tr><td>Kills</td><td>Number, or <code>*</code></td><td>Minimum amount of kills (PK) of the character. <code>*</code> = no requirement.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 1 — required item (removed from inventory)</mark>

| **Column**     | **Accepted values**                        | **What it is**                                            |
| -------------- | ------------------------------------------ | --------------------------------------------------------- |
| Quest          | Number                                     | The quest in the chain to which this requirement belongs. |
| Section / Type | Number / Number                            | Together they form the required item.                     |
| Level          | Number, or `*`                             | Required level (+how much) of the item. `*` = any.        |
| Luck / Skill   | `0` (without), `1` (with) or `*` (ignores) | Requires (or not) the Luck/Skill option on the item.      |
| Amount         | Number                                     | Required amount.                                          |

### <mark style="color:yellow;">Block 2 — monster to kill</mark>

| **Column** | **Accepted values**                     | **What it is**                                                |
| ---------- | --------------------------------------- | ------------------------------------------------------------- |
| Quest      | Number                                  | Which quest it belongs to (only 1 type of monster per quest). |
| Monster    | Number of an `Index` from `Monster.txt` | Monster that needs to be killed.                              |
| Amount     | Number                                  | Required amount of kills.                                     |

### <mark style="color:yellow;">Block 3 — currency reward</mark>

| **Column**   | **Accepted values** | **What it is**                               |
| ------------ | ------------------- | -------------------------------------------- |
| Quest        | Number              | Which quest it belongs to.                   |
| WC / WP / GP | Number              | WCoinC/WCoinP/Goblin Point given as a prize. |
| Money        | Number              | Zen given as a prize.                        |

### <mark style="color:yellow;">Block 4 — item reward</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Quest</td><td>Number</td><td>Which quest it belongs to.</td></tr><tr><td>Section / Type</td><td>Number / Number</td><td>Together they form the given item.</td></tr><tr><td>Level</td><td>Number</td><td>Level (+how much) of the item.</td></tr><tr><td>Durab</td><td>Number</td><td>Durability of the item.</td></tr><tr><td>Skill / Luck / Option</td><td>Number</td><td>Options of the item.</td></tr><tr><td>ExcOp</td><td>Number, in bits</td><td>Excellent options.</td></tr><tr><td>SetOp</td><td>Number</td><td>Ancient/set option.</td></tr><tr><td>JoH</td><td>Number</td><td>Jewel of Harmony option.</td></tr><tr><td>OEx</td><td>Number</td><td>Special "380" option.</td></tr><tr><td>Socket1 – Socket5</td><td>Number, or <code>255</code></td><td>Sockets of the item. <code>255</code> = empty.</td></tr><tr><td>Time</td><td>Number, or <code>0</code></td><td>Duration of the item (temporary item). <code>0</code> = permanent.</td></tr><tr><td>Class</td><td><code>*</code> or class number (<code>0</code> DW … <code>6</code> RF)</td><td>Restricts the item to a class. <code>*</code> = any class.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 5 — buff reward</mark>

| **Column**      | **Accepted values** | **What it is**              |
| --------------- | ------------------- | --------------------------- |
| Quest           | Number              | Which quest it belongs to.  |
| Effect          | Number of an effect | Buff given upon completion. |
| Power1 / Power2 | Number              | Strength of the buff.       |
| Time            | Number              | Duration of the buff.       |

### <mark style="color:yellow;">Block 6 — experience reward</mark>

| **Column**   | **Accepted values** | **What it is**             |
| ------------ | ------------------- | -------------------------- |
| Quest        | Number              | Which quest it belongs to. |
| Experience   | Number              | Experience given.          |
| LevelUpPoint | Number              | Status points given.       |

### <mark style="color:yellow;">Notes</mark>

* The player's progress in this chain is a single counter per character (not per quest) — upon completing quest `N`, the counter advances and unlocks quest `N+1`. It is not possible to skip quests or repeat an old quest using this system.
* All blocks are optional per quest: a quest without a reward line in any specific block simply does not grant that type of prize.
* This system is not tied to any fixed NPC — that is controlled by `CustomNpcQuest.txt` (which delivers a specific NPC + map position for each line of the chain).


# CustomQuiz

<mark style="color:green;">Configures the automatic quiz event (question and answer in chat, with one question drawn per round). Supports up to 24 independent quizzes (</mark><mark style="color:green;">`Index`</mark><mark style="color:green;">), each with its own schedule and its own question.</mark>

### <mark style="color:yellow;">Block 0 — times when the quiz triggers</mark>

| **Column**                                        | **Accepted values**     | **What it is**                                                                          |
| ------------------------------------------------- | ----------------------- | --------------------------------------------------------------------------------------- |
| Index                                             | Number from `0` to `23` | The quiz to which this time belongs. There can be multiple lines with the same `Index`. |
| Year / Month / Day / DoW / Hour / Minute / Second | Number, or `*`          | Date/time when the quiz starts. `*` = any value works.                                  |

### <mark style="color:yellow;">Block 1 — general quiz data</mark>

| **Column** | **Accepted values**     | **What it is**                                                              |
| ---------- | ----------------------- | --------------------------------------------------------------------------- |
| Index      | Number from `0` to `23` | The quiz to which this line belongs (only one line per quiz).               |
| Name       | Text in quotation marks | Name of the quiz, used in chat announcements.                               |
| AlarmTime  | Number (minutes)        | How long before the quiz starts that players are notified.                  |
| EventTime  | Number (minutes)        | How much time players have to answer before the quiz ends without a winner. |

### <mark style="color:yellow;">Block 2 — questions</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>ID</td><td>Number, one per question</td><td>Identifies the question.</td></tr><tr><td>WC</td><td>Number</td><td>WCoinC prize for the one who gets it right.</td></tr><tr><td>WP</td><td>Number</td><td>WCoinP prize for the one who gets it right.</td></tr><tr><td>GP</td><td>Number</td><td>Goblin Point prize for the one who gets it right.</td></tr><tr><td>Question</td><td>Text in quotation marks</td><td>The question displayed in the chat.</td></tr><tr><td>Answer</td><td>Text in quotation marks</td><td>The correct answer.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Each round, the game draws a question from block 2 — the questions are not tied to a specific quiz `Index`, they all enter the same general draw.
* Avoid accents and special characters in the `Answer`, as the comparison with what the player types in the chat is usually sensitive to these types of characters.
* Just like in `CustomEventDrop.txt`, `AlarmTime`/`EventTime` are in minutes.


# CustomRanking

<mark style="color:green;">Registers the custom rankings displayed on the in-game Ranking screen (F8) — the name of the ranking and the titles of the two columns in the list. Maximum of 30 rankings, all inside block</mark> <mark style="color:green;"></mark><mark style="color:green;">`0`</mark><mark style="color:green;">.</mark>

```
0
//Index	Name			Coluna1        Coluna2
0	"Level"			"Character"	"Level"
1	"Master Level"		"Character"	"Level"
end
```

| **Column** | **Accepted values**              | **What it is**                                                                                         |
| ---------- | -------------------------------- | ------------------------------------------------------------------------------------------------------ |
| Index      | Number, in sequence (0, 1, 2...) | Identifies the ranking (it is what the client requests when navigating between tabs on the F8 screen). |
| Name       | Text in quotation marks          | Name of the ranking shown on the tab.                                                                  |
| Coluna1    | Text in quotation marks          | Title of the 1st column of the list (usually the character's name).                                    |
| Coluna2    | Text in quotation marks          | Title of the 2nd column of the list (the ranked value: level, resets, score, etc.).                    |

### <mark style="color:yellow;">Notes</mark>

* This file only defines the titles displayed — the actual values of the list (who is in each position and the number for each column) come from the database, queried at the moment the player opens that tab.
* The order of the lines defines the order of the tabs on the in-game ranking screen.


# CustomRankUser

<mark style="color:green;">Registers the "ranks" (titles) for the player ranking by reset range (or master reset, or level+master level, depending on the server configuration), with a currency prize upon reaching each range for the first time. Maximum of 50 lines, all inside block</mark> <mark style="color:green;"></mark><mark style="color:green;">`0`</mark><mark style="color:green;">.</mark>

```
0
//#RI	#RN			#MNR	#MXR	#C1	#C2	#C3
0	"Soldier"		0	9	0	0	5
1	"Recruit"		10	19	0	0	10
...
19	"Supreme"		190	-1	100	100	100
end
```

| **Column**   | **Accepted values**              | **What it is**                                                                                                                          |
| ------------ | -------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
| RI           | Number, in sequence (0, 1, 2...) | Position of the rank in the list (also the order in which the ranking progresses).                                                      |
| RN           | Text in quotation marks          | Name of the rank displayed to the player.                                                                                               |
| MNR          | Number                           | Minimum value of the range (resets, master resets, or level+master level — depends on the server's `CustomRankUserType` configuration). |
| MXR          | Number, or `-1`                  | Maximum value of the range. `-1` = no maximum limit (mandatory for the last rank in the list).                                          |
| C1 / C2 / C3 | Number                           | WCoinC / WCoinP / Goblin Points given to the player the first time they enter this range.                                               |

### <mark style="color:yellow;">Notes</mark>

* The reward (`C1`/`C2`/`C3`) is only given once, exactly when the player's value matches the `MNR` of this range (e.g., upon completing reset 10, if a line has `MNR 10`) — it is not given again if the player has already passed this range.
* The last range in the list must have `MXR = -1`, otherwise players above the highest registered value will be left without a rank.
* What exactly `MNR`/`MXR` compare (resets, master resets, or level+master level combined) depends on a general server setting (`CustomRankUserType`) — it is not fixed in this file.


# CustomStartItem

<mark style="color:green;">Configures the "starter kit" automatically given the first time a character enters the game: minimum points/status, gift items, and buffs. It only works with</mark> <mark style="color:green;"></mark><mark style="color:green;">`CustomStartItem`</mark> <mark style="color:green;"></mark><mark style="color:green;">enabled (by account type) in the general server configuration, and it is applied only once per character. The file has 3 blocks.</mark>

### <mark style="color:yellow;">Block 0 — guaranteed minimum status</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Class</td><td>Class number (<code>0</code> DW … <code>6</code> RF), or <code>*</code></td><td>Which class this line applies to. <code>*</code> = all.</td></tr><tr><td>Reset</td><td>Number</td><td>Amount of bonus resets given.</td></tr><tr><td>LevelUpPoint</td><td>Number</td><td>Extra status points given.</td></tr><tr><td>Money</td><td>Number</td><td>Zen given.</td></tr><tr><td>Str / Agi / Vit / Ene</td><td>Number, or <code>*</code></td><td>Guaranteed minimum value of the attribute. <code>*</code> = does not change this attribute.</td></tr><tr><td>Com</td><td>Number, or <code>*</code></td><td>Guaranteed minimum value of Command (only applies to Dark Lord/Lord Emperor). <code>*</code> = does not change.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 1 — gift items</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>Class</td><td>Class number, or <code>*</code></td><td>Which class this item is given to. <code>*</code> = all.</td></tr><tr><td>Section / Item</td><td>Number / Number</td><td>Together they form the given item.</td></tr><tr><td>Level</td><td>Number</td><td>Level (+how much) of the item.</td></tr><tr><td>Durab</td><td>Number</td><td>Durability of the item.</td></tr><tr><td>Skill / Luck / Option</td><td>Number</td><td>Options of the item.</td></tr><tr><td>Excellent</td><td>Number, in bits</td><td>Excellent options.</td></tr><tr><td>Ancient</td><td>Number</td><td>Ancient/set option.</td></tr><tr><td>Socket1 – Socket5</td><td>Number, or <code>255</code></td><td>Sockets of the item. <code>255</code> = empty (only valid if the item accepts sockets).</td></tr><tr><td>Duration</td><td>Number (days), or <code>-1</code></td><td>Validity time of the item. <code>-1</code> = permanent.</td></tr></tbody></table>

### <mark style="color:yellow;">Block 2 — welcome buffs</mark>

| **Column**      | **Accepted values**  | **What it is**                                |
| --------------- | -------------------- | --------------------------------------------- |
| Class           | Class number, or `*` | Which class this buff is given to. `*` = all. |
| Effect          | Number of an effect  | Buff given.                                   |
| Power1 / Power2 | Number               | Strength of the buff.                         |
| Time            | Number               | Duration of the buff.                         |

### <mark style="color:yellow;">Notes</mark>

* The `Str`/`Agi`/`Vit`/`Ene`/`Com` values in block 0 are a guaranteed minimum, not an addition: they only overwrite the attribute if the value registered here is higher than the class default — they never reduce an attribute that is naturally higher from the start.
* The kit is delivered only once per character (it is marked internally); reducing or disabling the general switch later does not remove what has already been given.
* `Com` only has an effect on Dark Lord/Lord Emperor — for other classes, this column is ignored even if filled with a number.


# CustomTop

<mark style="color:green;">Registers the ranking "nicknames" used by the in-game Top command (e.g.,</mark> <mark style="color:green;"></mark><mark style="color:green;">`/top rr`</mark><mark style="color:green;">), linking each nickname to a query index that runs on the database (stored procedure</mark> <mark style="color:green;"></mark><mark style="color:green;">`WZ_CustomTop`</mark><mark style="color:green;">).</mark>

```
//Index	Command	Title
1	"rr"	"TOP RR"
2	"mr"	"TOP MR"
end
```

| **Column** | **Accepted values**     | **What it is**                                                                                 |
| ---------- | ----------------------- | ---------------------------------------------------------------------------------------------- |
| Index      | Number                  | Index sent to the database — it tells the `WZ_CustomTop` procedure which ranking to calculate. |
| Command    | Text in quotation marks | Word that the player types after the command (e.g., `/top rr`).                                |
| Title      | Text in quotation marks | Title displayed above the ranking list.                                                        |

### <mark style="color:yellow;">Notes</mark>

* What each `Index` actually means (which data is ranked, the order, filters) is completely defined by the `WZ_CustomTop` procedure in the database, not by this file — here you only register the chat shortcut and the displayed title.
* The `Command` is case-insensitive.


# CustomWing

<mark style="color:green;">Defines statistical formulas and options (normal and excellent) for a custom wing — overrides the default wing calculation only for the items listed here. Maximum of 100 lines.</mark>

```
//SI	WI	DA	IDA	IDB	DDA	DDB	OP1	OV1	OP2	OV2	OP3	OV3	NO1	NV1	NO2	NV2	NO3	NV3	NO4	NV4	ModelType  ModelName
0        6344    4       139     2       61      2       80      4       85      1       83      4       110     5       111     5       109     5       108     5       0          "xggd3e"
end
```

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td><strong>Column</strong></td><td><strong>Accepted values</strong></td><td><strong>What it is</strong></td></tr><tr><td>SI</td><td>Number, one per wing (<code>0</code> to <code>99</code>)</td><td>Identifies the line.</td></tr><tr><td>WI</td><td>Number (pre-combined item code, <code>(512×Section)+Item</code>)</td><td>Which wing item this line customizes.</td></tr><tr><td>DA</td><td>Number</td><td>Defense formula constant: <code>Defense = Wing level × DA</code>.</td></tr><tr><td>IDA / IDB</td><td>Number</td><td>Damage increase formula constants: <code>Increase = IDA + (Wing level × IDB)</code>.</td></tr><tr><td>DDA / DDB</td><td>Number</td><td>Damage reduction formula constants: <code>Reduction = DDA − (Wing level × DDB)</code>.</td></tr><tr><td>OP1 / OV1</td><td>Number / Number</td><td>Type and strength of the Option3 level 1 bonus (the 1st level of bonus for +1/+2/+3 options on the item).</td></tr><tr><td>OP2 / OV2</td><td>Number / Number</td><td>Type and strength of the Option3 level 2 bonus.</td></tr><tr><td>OP3 / OV3</td><td>Number / Number</td><td>Type and strength of the Option3 level 3 bonus.</td></tr><tr><td>NO1 / NV1</td><td>Number / Number</td><td>Type and strength of the 1st excellent option slot of the wing.</td></tr><tr><td>NO2 / NV2</td><td>Number / Number</td><td>Type and strength of the 2nd excellent option slot.</td></tr><tr><td>NO3 / NV3</td><td>Number / Number</td><td>Type and strength of the 3rd excellent option slot.</td></tr><tr><td>NO4 / NV4</td><td>Number / Number</td><td>Type and strength of the 4th excellent option slot.</td></tr><tr><td>ModelType</td><td>Number</td><td>Type of 3D model used by the wing.</td></tr><tr><td>ModelName</td><td>Text in quotation marks</td><td>File name of the 3D model of the wing (without extension).</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* `OP1`–`OP3`/`NO1`–`NO4` are not literal bonus values — they are bonus type codes (e.g., damage increase, defense, HP...); `OV`/`NV` represents the strength of that bonus per point/level. Each type code corresponds to a fixed bonus defined within the game engine.
* A wing item that is not registered here uses the default game calculation (the fixed formulas for normal wings), rather than the formulas in this file.
* The defense/damage formulas here use the wing's own level (+0 to +15 etc.), not the character's level.


# CustomWingMix

<mark style="color:green;">List of extra wings that enter the drawing pool of the Chaos Goblin "level 3 wing" mix (Combine Items), in addition to the normal wings already hardcoded. Maximum of 50 lines, all inside block</mark> <mark style="color:green;"></mark><mark style="color:green;">`0`</mark><mark style="color:green;">.</mark>

```
0
//Category 	Index
  7	39	//Wing X
end
```

| **Column** | **Accepted values**                  | **What it is**                                      |
| ---------- | ------------------------------------ | --------------------------------------------------- |
| Category   | Number (item group)                  | Together with `Index`, it forms the wing item code. |
| Index      | Number (item index within the group) | See `Category`.                                     |

### <mark style="color:yellow;">Notes</mark>

* This file only has block `0` — do not add any other block number, as the loader cannot handle any other and will crash when reading the file.
* Each line here adds one more possible option to the mix drawing pool, without replacing the wings already hardcoded — there is no need (nor is it recommended) to repeat wings that the Chaos Goblin already draws by default.


# Event


# BloodCastle

<mark style="color:green;">Complete configuration for the Blood Castle event. The file contains 7 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`6`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — General Timers</mark>

| Column       | Accepted Values    | Description                                                              |
| ------------ | ------------------ | ------------------------------------------------------------------------ |
| WarningTime  | Number, in minutes | How long before the event starts the countdown warning begins to appear. |
| NotifyTime   | Number, in minutes | Duration of the waiting/entry phase before the event actually starts.    |
| EventTime    | Number, in minutes | Duration of the event itself (time available to defeat the boss).        |
| CloseTime    | Number, in minutes | Duration of the closing phase after the event ends.                      |
| DeliveryTime | Number, in minutes | Extra grace period for reward delivery at the end (`0` disables it).     |

### <mark style="color:yellow;">Section 1 — Start Schedule</mark>

| Column                                            | Accepted Values | Description                                                                        |
| ------------------------------------------------- | --------------- | ---------------------------------------------------------------------------------- |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`   | One scheduled start time per line. `*` = any value (works like a "cron" schedule). |

In the default file, all rows use `*` for **Year/Month/Day/DoW** and only define the **Hour** — meaning the event starts every day, every 2 hours, always at minute `0` and second `0`.

### <mark style="color:yellow;">Section 2 — Experience (per Castle Level, 0 to 7)</mark>

| Column           | Accepted Values    | Description                                                                                             |
| ---------------- | ------------------ | ------------------------------------------------------------------------------------------------------- |
| Level            | Number from 0 to 7 | Castle level (Blood Castle 1 to 8).                                                                     |
| ExperienceTable1 | Number             | Experience awarded to the player who lands the final hit (and their party, if allowed — see the notes). |
| ExperienceTable2 | Number             | Experience awarded to all other participants.                                                           |

### <mark style="color:yellow;">Section 3 — Zen (per Castle Level)</mark>

| Column      | Accepted Values    | Description                                                          |
| ----------- | ------------------ | -------------------------------------------------------------------- |
| Level       | Number from 0 to 7 | Castle level.                                                        |
| MoneyTable1 | Number             | Zen awarded to the player who lands the final hit (and their party). |
| MoneyTable2 | Number             | Zen awarded to all other participants.                               |

### <mark style="color:yellow;">Section 4 — NPCs and Monsters (per Castle Level)</mark>

| Column         | Accepted Values    | Description                                                                                                              |
| -------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------ |
| Level          | Number from 0 to 7 | Castle level.                                                                                                            |
| GateNpcLife    | Number             | HP of the gate that must be destroyed to open the bridge.                                                                |
| StatueNpcLife  | Number             | HP of the Saint Statue (the final objective of the event).                                                               |
| HallwayMonster | Number             | Additional monsters spawned in the hallway/bridge **per player** who enters (this is not a fixed total — see the notes). |
| RoomMonster    | Number             | Additional monsters spawned in the final room **per player** who enters.                                                 |

### <mark style="color:yellow;">Section 5 — Coin Rewards (per Castle Level)</mark>

| Column | Accepted Values    | Description          |
| ------ | ------------------ | -------------------- |
| Level  | Number from 0 to 7 | Castle level.        |
| WC     | Number             | Bonus WCoinC.        |
| WP     | Number             | Bonus WCoinP.        |
| GP     | Number             | Bonus Goblin Points. |

### <mark style="color:yellow;">Section 6 — Minimum and Maximum Level/Reset Requirements</mark>

| Column                  | Accepted Values    | Description                                                                               |
| ----------------------- | ------------------ | ----------------------------------------------------------------------------------------- |
| Level                   | Number from 0 to 6 | Castle level (Blood Castle 8 is not configured here — see the notes).                     |
| NormalMin / NormalMax   | Number             | Allowed range for first-class characters (Dark Wizard, Dark Knight, Fairy Elf, Summoner). |
| SpecialMin / SpecialMax | Number             | Allowed range for special classes (Magic Gladiator, Dark Lord, Rage Fighter).             |

### <mark style="color:yellow;">Notes</mark>

* All timers in **Block 0** are measured in **minutes**, not seconds.
* In **Block 2** and **Block 3**, the `Table1` column only applies to the player who lands the final hit on the boss—and to their party as well, if the corresponding option is enabled in `Event.dat`. All other participants receive the rewards defined in `Table2`. This applies to both experience and Zen.
* In **Block 4**, `HallwayMonster` and `RoomMonster` are **not the total number of monsters**. The server multiplies these values by the number of players who entered that castle area.
* The coin rewards in **Block 5**, as well as the special reward item (linked to the "Blood Castle 1" through "Blood Castle 8" entries in EventItemBagManager.txt), are awarded only to the player who lands the final hit. Other participants do not receive them.
* **Block 6** does not include Level 7 (Blood Castle 8). Entry to this castle is automatically granted to players who have already exceeded the highest configured requirement (for example, after completing the 2nd class advancement, or exceeding the maximum Reset/Master Reset configured here, depending on the selected criteria).
* The requirement used to allow entry—character **Level**, **Reset** count, or **Master Reset** count—is defined by the `BloodCastleEnterType` option in `Event.dat`, not in this file.

\ <br>


# BonusManager

<mark style="color:green;">Temporary and scheduled server bonuses (e.g., double EXP during a weekend or increased Excellent item drop rates on holidays). Supports up to 30 independent bonuses (</mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">from 0 to 29), each with its own schedule. The file is divided into 3 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark><mark style="color:green;">,</mark> <mark style="color:green;"></mark><mark style="color:green;">`1`</mark><mark style="color:green;">, or</mark> <mark style="color:green;"></mark><mark style="color:green;">`2`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — bonus start schedule</mark>

| Column                                            | Accepted Values     | Description                                                                                                         |
| ------------------------------------------------- | ------------------- | ------------------------------------------------------------------------------------------------------------------- |
| Index                                             | Number from 0 to 29 | Which bonus this schedule entry belongs to.                                                                         |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`       | A scheduled start time. `*` = any value (cron-style schedule). The same `Index` can have multiple schedule entries. |

### <mark style="color:yellow;">Section 1 — bonus messages and duration</mark>

| Column       | Accepted Values        | Description                                                                                       |
| ------------ | ---------------------- | ------------------------------------------------------------------------------------------------- |
| Index        | Number from 0 to 29    | Which bonus this entry belongs to.                                                                |
| StartMessage | Message number or `*`  | Message broadcast to all players when the bonus starts. `*` = no message.                         |
| FinalMessage | Message number or `*`  | Message broadcast to all players when the bonus ends. `*` = no message.                           |
| BonusTime    | Number, **in seconds** | Bonus duration. Note that this value is in seconds, unlike `BloodCastle.dat`, which uses minutes. |

### <mark style="color:yellow;">Section 2 — bonus effects</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number from 0 to 29</td><td>Which bonus this rule belongs to. The same <code>Index</code> may have multiple entries—all of them are active at the same time while the bonus is running.</td></tr><tr><td>BonusIndex</td><td>Number from 0 to 8 (see table below)</td><td>The type of bonus granted by this entry.</td></tr><tr><td>BonusValue_AL0 / AL1 / AL2 / AL3</td><td>Number</td><td>Bonus value for Free / VIP1 / VIP2 / VIP3. <strong>The meaning of this value depends on the <code>BonusIndex</code></strong>—see the notes.</td></tr><tr><td>ItemIndex</td><td>Item number or <code>*</code></td><td>Restricts the bonus to a specific item. <code>*</code> = any item.</td></tr><tr><td>ItemLevel</td><td>Number or <code>*</code></td><td>Restricts the bonus to a specific item level. <code>*</code> = any level.</td></tr><tr><td>MapNumber</td><td>Map number or <code>*</code></td><td>Restricts the bonus to a specific map. <code>*</code> = any map.</td></tr><tr><td>MonsterClass</td><td>Monster class number or <code>*</code></td><td>Restricts the bonus to a specific monster. <code>*</code> = any monster.</td></tr><tr><td>MonsterLevelMin / MonsterLevelMax</td><td>Number or <code>*</code></td><td>Restricts the bonus by the defeated monster's level. <code>*</code> = no limit on that side.</td></tr></tbody></table>

#### <mark style="color:yellow;">BonusIndex values</mark>

<table data-search="false"><thead><tr><th>BonusIndex</th><th>Bonus Type</th><th>How BonusValue is applied</th></tr></thead><tbody><tr><td>0</td><td>Experience rate</td><td>Percentage added on top of the current value (e.g., <code>50</code> = +50%).</td></tr><tr><td>1</td><td>Master Experience rate</td><td>Percentage added on top of the current value.</td></tr><tr><td>2</td><td>Item drop rate</td><td>Percentage added on top of the current value.</td></tr><tr><td>3</td><td>Normal item drop chance</td><td><strong>Not a simple percentage</strong>—moves the current chance closer to the maximum possible chance by the specified proportion (see notes).</td></tr><tr><td>4</td><td>Excellent item drop chance</td><td>Same behavior as BonusIndex 3.</td></tr><tr><td>5</td><td>Ancient/Set item drop chance</td><td>Same behavior as BonusIndex 3.</td></tr><tr><td>6</td><td>Goblin Points</td><td>Added as a flat value (not a percentage).</td></tr><tr><td>7</td><td>Reset count</td><td>Added as a flat value (not a percentage).</td></tr><tr><td>8</td><td>Master Reset count</td><td>Added as a flat value (not a percentage).</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* `BonusValue_AL0`–`AL3` behaves in three different ways depending on the `BonusIndex`. This is hardcoded in the server:
  * `BonusIndex` `0`, `1`, or `2`: **adds a percentage** to the current value (`+50` = 50% more than the current value).
  * `BonusIndex` `3`, `4`, or `5`: **not a regular percentage**—the value moves the current drop chance closer to the maximum possible chance by the specified proportion. High values can result in a much larger increase than a simple "+X%", especially when the current chance is already high, so test carefully before using large numbers.
  * `BonusIndex` `6`, `7`, or `8`: **adds a flat value**, with no percentage involved.
* A single bonus (`Index`) can have multiple entries in Block 2—for example, one entry for **+Experience** and another for **+Normal Item Drop Rate**, both active simultaneously, each with different item, map, or monster filters.
* As in `BloodCastle.dat`, `*` in Block 0 means "any value". If `Day` is `*` and `BonusTime` lasts less than one full day, the bonus can reactivate every day within the scheduled period. This is how you would configure, for example, a bonus that is active throughout the entire month of April: `Month = 4`, `Day = *`, `BonusTime = 86400`.

\ <br>


# CastleDeepEvent

<mark style="color:green;">Monster waves that invade the Castle Siege during the siege. This event always takes place on the Castle Siege map—it cannot be configured to run on any other map. The file contains 4 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`3`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — start schedule</mark>

| Column                                            | Accepted Values | Description                                                                |
| ------------------------------------------------- | --------------- | -------------------------------------------------------------------------- |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`   | Scheduled start time for the event. `*` = any value (cron-style schedule). |

### <mark style="color:yellow;">Section 1 — available scenarios</mark>

| Column    | Accepted Values                         | Description                                                                                                                                                                        |
| --------- | --------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Group     | Number identifying an invasion scenario | Each `Group` is a complete and independent invasion scenario (its waves are defined in Blocks 2 and 3). Every time the event starts, the server randomly selects **one** scenario. |
| SpawnRate | Number                                  | Selection weight for this scenario (see notes—it is not an exact percentage).                                                                                                      |

### <mark style="color:yellow;">Section 2 — wave spawn timing</mark>

| Column      | Accepted Values                            | Description                                 |
| ----------- | ------------------------------------------ | ------------------------------------------- |
| Index       | Number matching a `Group` from Block 1     | Which scenario this wave belongs to.        |
| Group       | Wave number, in sequence (1, 2, 3...)      | The order of this wave within the scenario. |
| SpawnMinute | Number, in minutes since the event started | The minute at which this wave spawns.       |

### <mark style="color:yellow;">Section 3 — monsters in each wave</mark>

| Column  | Accepted Values                        | Description                                                                                |
| ------- | -------------------------------------- | ------------------------------------------------------------------------------------------ |
| Index   | Number matching a `Group` from Block 1 | Which scenario this monster belongs to.                                                    |
| Group   | Wave number (matches Block 2)          | Which wave this monster belongs to.                                                        |
| Monster | Monster class number                   | The monster that spawns in this wave.                                                      |
| Count   | Number                                 | How many of this monster spawn.                                                            |
| X / Y   | Coordinates                            | Where the monsters spawn.                                                                  |
| TX / TY | Coordinates                            | The destination the monsters move toward after spawning (e.g., the castle gate or statue). |

### <mark style="color:yellow;">Notes</mark>

* This event runs **only** during the Castle Siege and **only** on the Castle Siege map. There is no option in this file to change that.
* Each time the event starts, the server randomly selects one `Group` (scenario) from Block 1. `SpawnRate` is **not** a percentage that must total 100. Instead, the server repeatedly evaluates the available scenarios until one is selected, so scenarios with higher `SpawnRate` values are chosen more often, but there is no simple "100% divided among the scenarios" formula.
* The total duration of the event is **not** defined in this file. It is determined by the server's general Castle Siege duration settings.

\ <br>


# ChaosCastle

<mark style="color:green;">Complete configuration for the Chaos Castle event. The file contains 6 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`5`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — general timers</mark>

| Column      | Accepted Values    | Description                                                              |
| ----------- | ------------------ | ------------------------------------------------------------------------ |
| WarningTime | Number, in minutes | How long before the event starts the countdown warning begins to appear. |
| NotifyTime  | Number, in minutes | Duration of the waiting/entry phase before the event starts.             |
| EventTime   | Number, in minutes | Duration of the event itself.                                            |
| CloseTime   | Number, in minutes | Duration of the closing phase after the event ends.                      |

### <mark style="color:yellow;">Section 1 — start schedule</mark>

| Column                                            | Accepted Values | Description                                                               |
| ------------------------------------------------- | --------------- | ------------------------------------------------------------------------- |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`   | One scheduled start time per line. `*` = any value (cron-style schedule). |

### <mark style="color:yellow;">Section 2 — experience (per castle level)</mark>

| Column           | Accepted Values    | Description                                                      |
| ---------------- | ------------------ | ---------------------------------------------------------------- |
| Level            | Number from 0 to 6 | Chaos Castle level.                                              |
| ExperienceTable1 | Number             | Experience awarded **per player killed** (PvP) during the event. |
| ExperienceTable2 | Number             | Experience awarded **per monster killed** during the event.      |

### <mark style="color:yellow;">Section 3 — coin rewards (winner only)</mark>

| Column | Accepted Values    | Description                                      |
| ------ | ------------------ | ------------------------------------------------ |
| Level  | Number from 0 to 6 | Castle level.                                    |
| WC     | Number             | Bonus WCoinC awarded to the event winner.        |
| WP     | Number             | Bonus WCoinP awarded to the event winner.        |
| GP     | Number             | Bonus Goblin Points awarded to the event winner. |

### <mark style="color:yellow;">Section 4 — minimum and maximum level/reset requirements</mark>

| Column                  | Accepted Values    | Description                                                                               |
| ----------------------- | ------------------ | ----------------------------------------------------------------------------------------- |
| Level                   | Number from 0 to 5 | Castle level.                                                                             |
| NormalMin / NormalMax   | Number             | Allowed range for first-class characters (Dark Wizard, Dark Knight, Fairy Elf, Summoner). |
| SpecialMin / SpecialMax | Number             | Allowed range for special classes (Magic Gladiator, Dark Lord, Rage Fighter).             |

### <mark style="color:yellow;">Section 5 — entry cost</mark>

| Column | Accepted Values    | Description                             |
| ------ | ------------------ | --------------------------------------- |
| Level  | Number from 0 to 6 | Castle level.                           |
| Cost   | Number, in Zen     | Entry cost for this Chaos Castle level. |

### <mark style="color:yellow;">Notes</mark>

* Unlike what the column names in Block 2 might suggest (similar to `BloodCastle.dat`), **`ExperienceTable1` and `ExperienceTable2` are not "winner vs. everyone else."** Instead, they represent experience awarded **per player killed** and **per monster killed**, respectively. Every participant earns experience according to the number of kills they achieve.
* The coin rewards in Block 3 and the special reward item (linked to the "Chaos Castle 1" through "Chaos Castle 7" entries in [EventItemBagManager.txt](https://chatgpt.com/EventItemBagManager.txt.md)) are awarded to **a single winner only**. Unlike Blood Castle, there is no party sharing.
* All timers in Block 0 are measured in **minutes**.
* The entry cost in Block 5 is charged in Zen when entering the event, in addition to consuming the required entry item from the player's inventory. Players flagged as Outlaws (high PK level) may also be prevented from entering, depending on another server configuration.
* The requirement used to allow entry—**Level**, **Reset**, or **Master Reset**—is defined by the `ChaosCastleEnterType` option in `Event.dat`, not in this file.


# Crywolf

<mark style="color:green;">Complete configuration for the Crywolf event. The file contains 8 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`7`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — event start schedule</mark>

| Column                                  | Accepted Values                                         | Description                                                                                                                                                                                                                   |
| --------------------------------------- | ------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Mode                                    | `0` or `1`                                              | `0` = after completing a full cycle, the event waits for the next scheduled time in this table before starting again. `1` = after completing a full cycle, the event restarts automatically without using the schedule again. |
| State                                   | Number from `1` to `6` (see the state table in Block 1) | The event phase entered when this scheduled time is reached—normally the initial warning phase.                                                                                                                               |
| Month / Day / DayOfWeek / Hour / Minute | Number or `*`                                           | Scheduled time. `*` = any value (cron-style schedule).                                                                                                                                                                        |
| ContinuanceTime                         | Number or `*`                                           | Additional duration field for this specific schedule entry. In the default files, it is always `*`.                                                                                                                           |

### <mark style="color:yellow;">Section 1 — duration of each event phase</mark>

| Column                 | Accepted Values                                                                                        | Description                                                                                                                                                                      |
| ---------------------- | ------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| State                  | Fixed values: `1` Warning 1, `2` Warning 2, `3` Preparation, `4` Battle, `5` Closing, `6` End of Cycle | The event phase.                                                                                                                                                                 |
| Hour / Minute / Second | Number                                                                                                 | Duration of this phase, calculated by adding the three columns together (this is **not** a clock time—it is a total duration. For example, `0 0 900` is equivalent to `0 15 0`). |

### <mark style="color:yellow;">Section 2 — event monster groups</mark>

| Column        | Accepted Values      | Description                                                                          |
| ------------- | -------------------- | ------------------------------------------------------------------------------------ |
| AIGroupNumber | Number, one per line | Each entry is a monster AI group that participates in the event (attacking Crywolf). |

### <mark style="color:yellow;">Section 3 — event boss</mark>

| Column     | Accepted Values    | Description                                           |
| ---------- | ------------------ | ----------------------------------------------------- |
| Group      | Number             | AI group of the event boss.                           |
| TurnUpTime | Number, in seconds | Time after the battle begins before the boss appears. |

### <mark style="color:yellow;">Section 4 — monster behavior changes</mark>

| Column       | Accepted Values    | Description                                                                                  |
| ------------ | ------------------ | -------------------------------------------------------------------------------------------- |
| AIChangeTime | Number, in seconds | Interval at which the event monsters change their behavior/aggressiveness during the battle. |

### <mark style="color:yellow;">Section 5 — MVP score per defeated monster</mark>

| Column                          | Accepted Values | Description                                                                                                                                                                                                                                                                            |
| ------------------------------- | --------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| MVPScoreTable1 – MVPScoreTable7 | Number          | MVP points awarded for defeating each specific event monster/boss. The table positions correspond to monster classes hardcoded in the server and cannot be rearranged. The last position is used as the default score when the defeated monster is not one of those specific monsters. |

### <mark style="color:yellow;">Section 6 — MVP score thresholds</mark>

| Column                                  | Accepted Values    | Description                                                                |
| --------------------------------------- | ------------------ | -------------------------------------------------------------------------- |
| MVPRankScoreTable1 – MVPRankScoreTable5 | Increasing numbers | Minimum MVP score required to reach each MVP rank, from lowest to highest. |

### <mark style="color:yellow;">Section 7 — experience per MVP rank</mark>

| Column                              | Accepted Values | Description                                                                                  |
| ----------------------------------- | --------------- | -------------------------------------------------------------------------------------------- |
| MVPRankExpTable1 – MVPRankExpTable5 | Number          | Experience awarded to players who finish the event in each MVP rank (same order as Block 6). |

### <mark style="color:yellow;">Notes</mark>

* Block 1 defines **durations**, not clock times. The `Hour`, `Minute`, and `Second` values are simply added together to determine the total duration of each phase. For this reason, the default file uses values such as `0 0 900` (900 seconds) instead of `0 15 0`.
* The positions in Block 5 (`MVPScoreTable1`–`MVPScoreTable7`) are tied to specific Crywolf monster classes in the server code. You cannot add new monsters to this table by editing this file alone.
* Block 0 controls **only when the event starts**. Once the event has begun, the duration of each phase is always taken from Block 1, not from Block 0.


# DevilSquare

<mark style="color:green;">Complete configuration for the Devil Square event. The file contains 6 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`5`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — general timers</mark>

| Column      | Accepted Values    | Description                                                              |
| ----------- | ------------------ | ------------------------------------------------------------------------ |
| WarningTime | Number, in minutes | How long before the event starts the countdown warning begins to appear. |
| NotifyTime  | Number, in minutes | Duration of the waiting/entry phase before the event starts.             |
| EventTime   | Number, in minutes | Duration of the event itself.                                            |
| CloseTime   | Number, in minutes | Duration of the closing phase after the event ends.                      |

### <mark style="color:yellow;">Section 1 — start schedule</mark>

| Column                                            | Accepted Values | Description                                                               |
| ------------------------------------------------- | --------------- | ------------------------------------------------------------------------- |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`   | One scheduled start time per line. `*` = any value (cron-style schedule). |

### <mark style="color:yellow;">Section 2 — experience rewards by ranking (per event level)</mark>

| Column                                 | Accepted Values    | Description                                                                                                            |
| -------------------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------------------- |
| Level                                  | Number from 0 to 6 | Devil Square level.                                                                                                    |
| RewardExperience1 – RewardExperience10 | Number             | Experience awarded to players finishing from 1st to 10th place in the event ranking (`RewardExperience1` = 1st place). |

### <mark style="color:yellow;">Section 3 — Zen rewards by ranking (per event level)</mark>

| Column                       | Accepted Values    | Description                                                                                          |
| ---------------------------- | ------------------ | ---------------------------------------------------------------------------------------------------- |
| Level                        | Number from 0 to 6 | Event level.                                                                                         |
| RewardMoney1 – RewardMoney10 | Number             | Zen awarded to players finishing from 1st to 10th place in the ranking (`RewardMoney1` = 1st place). |

### <mark style="color:yellow;">Section 4 — coin rewards (1st place only)</mark>

| Column | Accepted Values    | Description                                          |
| ------ | ------------------ | ---------------------------------------------------- |
| Level  | Number from 0 to 6 | Event level.                                         |
| WC     | Number             | Bonus WCoinC awarded to the 1st-place player.        |
| WP     | Number             | Bonus WCoinP awarded to the 1st-place player.        |
| GP     | Number             | Bonus Goblin Points awarded to the 1st-place player. |

### <mark style="color:yellow;">Section 5 — minimum and maximum level/reset requirements</mark>

| Column                  | Accepted Values    | Description                                                                               |
| ----------------------- | ------------------ | ----------------------------------------------------------------------------------------- |
| Level                   | Number from 0 to 5 | Event level.                                                                              |
| NormalMin / NormalMax   | Number             | Allowed range for first-class characters (Dark Wizard, Dark Knight, Fairy Elf, Summoner). |
| SpecialMin / SpecialMax | Number             | Allowed range for special classes (Magic Gladiator, Dark Lord, Rage Fighter).             |

### <mark style="color:yellow;">Notes</mark>

* Unlike Blood Castle and Chaos Castle (which reward only the winner), Devil Square rewards players based on their **final ranking** (1st through 10th place). Both experience and Zen are awarded according to each participant's final position.
* The coin rewards in Block 4 are exclusive to the **1st-place** player. Players finishing from 2nd place onward do not receive any WC/WP/GP rewards.
* All timers in Block 0 are measured in **minutes**.
* The requirement used to allow entry—**Level**, **Reset**, or **Master Reset**—is defined by the `DevilSquareEnterType` option in `Event.dat`, not in this file.


# DoubleGoer

<mark style="color:green;">Double Goer event configuration (the "clone" that copies the player's own stats and disappears after a while). The file contains 3 blocks, each starting with the block number (0 to 2) on its own line and ending with end.</mark>

### <mark style="color:yellow;">Section 0 — general timers</mark>

| Column     | Accepted Values    | Description                                                  |
| ---------- | ------------------ | ------------------------------------------------------------ |
| NotifyTime | Number, in minutes | Duration of the waiting/entry phase before the event starts. |
| EventTime  | Number, in minutes | Duration of the event itself.                                |
| CloseTime  | Number, in minutes | Duration of the closing phase after the event ends.          |

<mark style="color:orange;">Unlike most other events, this one does not have a</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`WarningTime`</mark><mark style="color:orange;">.</mark>

### <mark style="color:yellow;">Section 1 — clone monster templates</mark>

| Column                                      | Accepted Values          | Description                                                     |
| ------------------------------------------- | ------------------------ | --------------------------------------------------------------- |
| MonsterAIUnitNumber1 – MonsterAIUnitNumber4 | Number, monster AI group | The AI groups used to spawn the clone monster during the event. |

### <mark style="color:yellow;">Section 2 — clone difficulty by level and party size</mark>

| Column              | Accepted Values             | Description                                                                                                                                                                |
| ------------------- | --------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index               | Number from 0 to 59         | Level range of the highest-level character in the party that entered: `Index = (level-1) / 10` (Index 0 = levels 1–10, Index 1 = levels 11–20, and so on).                 |
| Level1 – Level5     | Decimal number (multiplier) | Multiplies the copied player's level to determine the clone's level. Columns 1 through 5 correspond to the number of players in the party (1 = solo, 5 = full party of 5). |
| MaxLife1 – MaxLife5 | Decimal number (multiplier) | Same concept, applied to the clone's maximum HP.                                                                                                                           |
| Damage1 – Damage5   | Decimal number (multiplier) | Same concept, applied to the clone's damage.                                                                                                                               |
| Defense1 – Defense5 | Decimal number (multiplier) | Same concept, applied to the clone's defense.                                                                                                                              |

### <mark style="color:yellow;">Notes</mark>

* The clone **copies the player's own stats** and then applies the multipliers from this file. It is **not** a monster with fixed attributes. For this reason, the `Level`, `MaxLife`, `Damage`, and `Defense` columns contain multipliers (`1.00` = same as the player, `2.00` = twice the player's value), not absolute values.
* The column used (`1` through `5`) is determined by the **size of the party entering the event** (1 to 5 players), not by a manually selected difficulty.
* Maximum HP, damage, and defense (but **not** level) are also affected by an additional global difficulty rate configured outside this file. This server-wide percentage is applied on top of the multipliers defined in this table.


# IllusionTemple

<mark style="color:green;">Complete configuration for the Illusion Temple event (team battle: Yellow Team vs. Blue Team). The file contains 4 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`3`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — general timers</mark>

| Column      | Accepted Values    | Description                                                              |
| ----------- | ------------------ | ------------------------------------------------------------------------ |
| WarningTime | Number, in minutes | How long before the event starts the countdown warning begins to appear. |
| NotifyTime  | Number, in minutes | Duration of the waiting/entry phase before the event starts.             |
| EventTime   | Number, in minutes | Duration of the event itself.                                            |
| CloseTime   | Number, in minutes | Duration of the closing phase after the event ends.                      |

### <mark style="color:yellow;">Section 1 — start schedule</mark>

| Column                                            | Accepted Values | Description                                                               |
| ------------------------------------------------- | --------------- | ------------------------------------------------------------------------- |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`   | One scheduled start time per line. `*` = any value (cron-style schedule). |

### <mark style="color:yellow;">Section 2 — experience (per event level)</mark>

| Column           | Accepted Values    | Description                                                                                                                                                                                                               |
| ---------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Level            | Number from 0 to 5 | Illusion Temple level.                                                                                                                                                                                                    |
| ExperienceTable1 | Number             | Base experience awarded to both teams simply for participating.                                                                                                                                                           |
| ExperienceTable2 | Number             | Additional experience awarded per score point. Each point earned by the team grants this amount of experience. The winning team receives this portion doubled, based on the score difference compared to the losing team. |

### <mark style="color:yellow;">Section 3 — coin rewards (winning team only)</mark>

| Column | Accepted Values    | Description                                                     |
| ------ | ------------------ | --------------------------------------------------------------- |
| Level  | Number from 0 to 5 | Event level.                                                    |
| WC     | Number             | Bonus WCoinC awarded to each player on the winning team.        |
| WP     | Number             | Bonus WCoinP awarded to each player on the winning team.        |
| GP     | Number             | Bonus Goblin Points awarded to each player on the winning team. |

### <mark style="color:yellow;">Notes</mark>

* Both teams always receive experience (Block 2)—even the losing team, as long as it scores at least **1 point**. Only the winning team receives the doubled experience bonus, the special reward item (linked to the "Illusion Temple 1" through "Illusion Temple 6" entries in [EventItemBagManager.txt](https://chatgpt.com/EventItemBagManager.txt.md)), and the coin rewards from Block 3. These rewards are granted to **every player on the winning team**, not just the highest scorer.
* Unlike Blood Castle, Chaos Castle, and Devil Square, this file does **not** contain a block defining the minimum and maximum Level/Reset requirements for entry. Entry requirements based on character level are configured elsewhere.


# ImperialGuardian

<mark style="color:green;">Configuration for the Imperial Guardian event. The file contains 3 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`2`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — general timers</mark>

| Column     | Accepted Values    | Description                                                  |
| ---------- | ------------------ | ------------------------------------------------------------ |
| NotifyTime | Number, in minutes | Duration of the waiting/entry phase before the event starts. |
| EventTime  | Number, in minutes | Duration of the event itself.                                |
| CloseTime  | Number, in minutes | Duration of the closing phase after the event ends.          |

<mark style="color:orange;">Unlike most events, this one does not have a</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`WarningTime`</mark><mark style="color:orange;">.</mark>

### <mark style="color:yellow;">Section 1 — event monster groups</mark>

| Column                     | Accepted Values  | Description                                                  |
| -------------------------- | ---------------- | ------------------------------------------------------------ |
| DefaultMonsterAIUnitNumber | Number, AI group | AI group used by the event's regular monsters.               |
| SupportMonsterAIUnitNumber | Number, AI group | AI group used by the event's support/reinforcement monsters. |

### <mark style="color:yellow;">Section 2 — difficulty by level range</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number from 0 to 59</td><td>Level range based on the highest-level character among the participants: <code>Index = (level-1) / 10</code> (Index 0 = levels 1–10, Index 1 = levels 11–20, and so on).</td></tr><tr><td>Level</td><td>Number</td><td>Event monster level for this range. This is a direct value, <strong>not</strong> a multiplier.</td></tr><tr><td>MaxLife</td><td>Decimal number (multiplier)</td><td>Multiplies the event monster's base HP.</td></tr><tr><td>DamageMin / DamageMax</td><td>Decimal number (multiplier)</td><td>Multiplies the event monster's base minimum and maximum damage.</td></tr><tr><td>Defense</td><td>Decimal number (multiplier)</td><td>Multiplies the event monster's base defense.</td></tr><tr><td>AttackRate</td><td>Decimal number (multiplier)</td><td>Multiplies the event monster's base attack rate.</td></tr><tr><td>DefenseRate</td><td>Decimal number (multiplier)</td><td>Multiplies the event monster's base defense rate.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Unlike `DoubleGoer.dat`, the `Level` column here is used as an **absolute value** (the event monster's level for that range), while all other columns (`MaxLife`, `DamageMin`, `DamageMax`, `Defense`, `AttackRate`, and `DefenseRate`) are multipliers applied to the event monster's base stats.
* The `Index` is determined by the **highest-level character** among all participants, not by the party's average level.
* HP, damage, defense, attack rate, and defense rate are also affected by an additional global difficulty rate configured outside this file. This server-wide percentage is applied on top of the multipliers defined in this table.


# InvasionManager

<mark style="color:green;">Configuration for invasion events (Skeleton King, Red Dragons, Golden Monsters, White Wizard, Medusa, etc.). Supports up to 30 independent invasions (</mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">from 0 to 29). The file contains 4 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`3`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — start schedule</mark>

| Column                                                     | Accepted Values     | Description                                                                                                          |
| ---------------------------------------------------------- | ------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Index                                                      | Number from 0 to 29 | Which invasion this schedule entry belongs to.                                                                       |
| Year / Month / DayMonth / DayWeek / Hour / Minute / Second | Number or `*`       | A scheduled start time. `*` = any value (cron-style schedule). The same invasion may have multiple schedule entries. |

### <mark style="color:yellow;">Section 1 — general invasion settings</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number from 0 to 29</td><td>The invasion configured by this entry.</td></tr><tr><td>PreWarningMsg</td><td>Message number</td><td>Message broadcast before the invasion begins.</td></tr><tr><td>PreWarningTime</td><td>Number, in minutes</td><td>How long before the invasion starts the warning message is sent.</td></tr><tr><td>StartMessage</td><td>Message number or <code>*</code></td><td>Message broadcast when the invasion begins. <code>*</code> = no message.</td></tr><tr><td>EndMessage</td><td>Message number or <code>*</code></td><td>Message broadcast when the invasion ends. <code>*</code> = no message.</td></tr><tr><td>MonsterIndex</td><td>Monster class number</td><td>The main boss of the invasion (used in status messages).</td></tr><tr><td>DeathMessage</td><td>Message number</td><td>Message broadcast when the boss is defeated.</td></tr><tr><td>Duration</td><td>Number, in seconds</td><td>Total duration of the invasion.</td></tr><tr><td>Effect</td><td><code>0</code>, <code>1</code>, or <code>3</code></td><td>Announcement visual effect: <code>1</code> = flying Red Dragon, <code>3</code> = flying Golden Dragon, <code>0</code> = no special effect.</td></tr><tr><td>InvasionName</td><td>Text enclosed in quotes</td><td>Name of the invasion, displayed in the event UI and messages.</td></tr></tbody></table>

### <mark style="color:yellow;">Section 2 — invasion monster spawn locations</mark>

| Column | Accepted Values     | Description                                                                                                                                 |
| ------ | ------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Index  | Number from 0 to 29 | Which invasion this spawn point belongs to.                                                                                                 |
| Group  | Number from 0 to 19 | Spawn group. Must match the `Group` value in Block 3 to determine which monsters spawn here.                                                |
| Map    | Map number          | The map where this monster group spawns.                                                                                                    |
| Value  | Number              | Spawn point index within the map (multiple entries with the same `Map` but different `Value` represent different spawn points on that map). |

### <mark style="color:yellow;">Section 3 — monsters spawned by each group</mark>

| Column    | Accepted Values                       | Description                                                                                                                                                                   |
| --------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index     | Number from 0 to 29                   | Which invasion this monster belongs to.                                                                                                                                       |
| Group     | Number from 0 to 19 (matches Block 2) | The spawn group where this monster appears.                                                                                                                                   |
| Monster   | Monster class number                  | The monster spawned by this group.                                                                                                                                            |
| RegenType | `0` or any other number               | `0` = the monster does not respawn during the invasion (it spawns only once). Any other value = the monster respawns periodically, using `RegenTyme` as the respawn interval. |
| RegenTyme | Number, in milliseconds               | Respawn interval, used only when `RegenType` is not `0`.                                                                                                                      |

### <mark style="color:yellow;">Notes</mark>

* A complete invasion is identified by the same `Index` across all four blocks. The `Index` does **not** represent a specific monster—it identifies the invasion itself (e.g., `Index 0` = Skeleton King, `Index 4` = Medusa in the default file). The behavior of each invasion is defined by the remaining blocks.
* With `RegenType = 0` (used by all bosses in the default file), the monster spawns only once during the invasion. If it is killed before the event ends, it will not respawn.
* The Golden Monsters (Golden Titan, Golden Soldier, etc.), as well as the White Wizard and Medusa in the default file, use multiple `Group` entries simply to distribute different monsters and spawn locations within the same invasion. These groups do **not** represent different difficulty levels.


# Kanturu

<mark style="color:green;">Configuration file for the Kanturu event, which is actually a sequence of four sub-events:</mark> <mark style="color:green;"></mark><mark style="color:green;">**Battle Standby**</mark> <mark style="color:green;"></mark><mark style="color:green;">(entry queue),</mark> <mark style="color:green;"></mark><mark style="color:green;">**Battle of Maya**</mark><mark style="color:green;">,</mark> <mark style="color:green;"></mark><mark style="color:green;">**Battle of Nightmare**</mark><mark style="color:green;">, and</mark> <mark style="color:green;"></mark><mark style="color:green;">**Tower of Refinement**</mark><mark style="color:green;">, in that order. The file contains 11 blocks (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`10`</mark><mark style="color:green;">), each beginning with the block number on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">. Each block is read by a different part of the code (see Notes) — therefore, the order of the blocks in the file does not match the order in which the sub-events occur in-game.</mark>

### <mark style="color:yellow;">Common Pattern: State / Condition / Value Columns</mark>

<mark style="color:orange;">Blocks</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`0`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`1`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`2`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`3`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`7`</mark><mark style="color:orange;">, and</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`9`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">always use the same three columns:</mark>

| Column    | Accepted Values                                         | Description                                                                                                                                                                                                                                                                                                                 |
| --------- | ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| State     | Number, in sequence (`0`, `1`, `2`, ...)                | The stage within that block. The order and meaning of each stage are fixed in the server code — the file only adjusts timings; stages cannot be reordered or removed.                                                                                                                                                       |
| Condition | `0` or `1`                                              | `0` = this stage **does not have a fixed duration** — it advances automatically when a specific in-game condition is met (e.g., Standby or Tower being closed by another part of the code, or the player failing/completing a round). `1` = this stage **lasts for a fixed amount of time**, defined by the `Value` column. |
| Value     | Number, in seconds (only relevant when `Condition = 1`) | Duration of the stage. When `Condition = 0`, this value is completely ignored.                                                                                                                                                                                                                                              |

* <mark style="color:orange;">**Block 0**</mark><mark style="color:orange;">: Master sequence of the event (states: None, Battle Standby, Battle of Maya, Battle of Nightmare, Tower of Refinement, End of Cycle). Only the "End of Cycle" state (the 6th state,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`State 5`</mark><mark style="color:orange;">) has</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`Condition = 1`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">in the default file — this is the waiting period (</mark><mark style="color:orange;">`86400`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">= 24 hours) before the event can start again. The other states in this master list do not have their own timers: each sub-event determines its own completion through its respective block (see below).</mark>
* <mark style="color:orange;">**Block 1**</mark><mark style="color:orange;">: Internal stages of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**Battle Standby**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(None, Start, Notice, End).</mark>
* <mark style="color:orange;">**Block 2**</mark><mark style="color:orange;">: Time limit for each of the three rounds of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**Battle of Maya**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(1st Hand, 2nd Hand, Final Phase) — exceeding the time limit causes the attempt to fail.</mark>
* <mark style="color:orange;">**Block 3**</mark><mark style="color:orange;">: The 19 internal sub-stages of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**Battle of Maya**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(notices, openings, and endings for each of the three rounds, plus the overall closing stage).</mark>
* <mark style="color:orange;">**Block 7**</mark><mark style="color:orange;">: Internal stages of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**Battle of Nightmare**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(None, Idle, Notice, Start/Battle, End, End of Cycle).</mark>
* <mark style="color:orange;">**Block 9**</mark><mark style="color:orange;">: Internal stages of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**Tower of Refinement**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(None, Revitalization, Notice 1, Closed, Notice 2, End).</mark>

### <mark style="color:yellow;">Block 4 — Maya Hand(s) AI Change Timing</mark>

| Column       | Accepted Values                                  | Description                                                                                                                                                              |
| ------------ | ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| AIChangeTime | Number, in seconds, one per line (up to 4 lines) | At each time specified in this list, the Maya Hand currently in combat switches to the next attack pattern within its AI group, following the order defined in the list. |

### <mark style="color:yellow;">Block 5 — AI Group for Each Maya Round</mark>

| Column        | Accepted Values                                                                                     | Description                                              |
| ------------- | --------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| AIGroupNumber | A `Group` number from `MonsterAIGroup.txt`, one per line (3 lines: 1st Hand, 2nd Hand, Final Phase) | The AI behavior used by the hand/monster for that round. |

### <mark style="color:yellow;">Block 6 — Maya Ice Storm Chance</mark>

| Column       | Accepted Values     | Description                                                          |
| ------------ | ------------------- | -------------------------------------------------------------------- |
| IceStormRate | Number (percentage) | Chance for Maya to use the Ice Storm attack each time it is checked. |

### <mark style="color:yellow;">Block 8 — Battle of Nightmare AI Group</mark>

| Column        | Accepted Values                            | Description                                                        |
| ------------- | ------------------------------------------ | ------------------------------------------------------------------ |
| AIGroupNumber | A `Group` number from `MonsterAIGroup.txt` | The AI behavior used by the monster(s) in the Battle of Nightmare. |

### <mark style="color:yellow;">Block 10 — Moon Stone Requirement</mark>

| Column               | Accepted Values | Description                                                                                                     |
| -------------------- | --------------- | --------------------------------------------------------------------------------------------------------------- |
| EnableCheckMoonStone | `0` or `1`      | `1` = requires the player to possess a Moon Stone to participate in the event. `0` = no Moon Stone is required. |

### <mark style="color:yellow;">Notes</mark>

* This single physical file is read **independently by five different parts of the code**: the main event controller reads only blocks `0` and `10`; Battle Standby reads only block `1`; Battle of Maya reads blocks `2`, `3`, `4`, `5`, and `6`; Battle of Nightmare reads blocks `7` and `8`; Tower of Refinement reads only block `9`. Each component silently ignores all blocks that do not belong to it — there is no error if a block is effectively "unused" by a given component.
* In `State`/`Condition`/`Value` blocks, only modify the `Value` column on rows where `Condition = 1`. Changing `State`, `Condition`, or the number of rows in a block may break the event sequence, since each row is tied to a specific stage already hardcoded in the server.
* Time values are always entered **in seconds** in the file, even though the code internally converts them to milliseconds.


# MossMerchant

<mark style="color:green;">Configuration for the Moss Merchant NPC, which appears at scheduled times selling weapons with random options. The file contains 3 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`2`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — appearance schedule and location</mark>

| Column                                            | Accepted Values                           | Description                                                                            |
| ------------------------------------------------- | ----------------------------------------- | -------------------------------------------------------------------------------------- |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`                             | Scheduled time for the Moss Merchant to appear. `*` = any value (cron-style schedule). |
| Location                                          | Number matching a `Location` from Block 2 | Which predefined location from Block 2 the NPC appears at for this schedule entry.     |

### <mark style="color:yellow;">Section 1 — weapons sold and option chances</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Item number</td><td>The weapon sold by this entry.</td></tr><tr><td>Group</td><td>Number, groups weapons of the same category</td><td>Items within the same <code>Group</code> compete against each other during the random selection (see <code>GambleRate</code>). In the default file, each group contains one weapon category (swords/axes, staffs, bows, scepters, and sticks).</td></tr><tr><td>Option0</td><td>Number (table ID)</td><td>Controls the item's randomly selected enhancement level (+0 to +15) through a probability table defined in another file.</td></tr><tr><td>Option1 / Option2 / Option3</td><td>Number (table ID)</td><td>Control the item's three classic additional options (Luck, Skill, and the additional damage/defense percentage), each through the same probability table.</td></tr><tr><td>Option4</td><td>Number (table ID)</td><td>Controls the chance for the item to have Excellent options.</td></tr><tr><td>Option5</td><td>Number (table ID)</td><td>Controls the chance for the item to have Ancient/Set options.</td></tr><tr><td>Option6</td><td>Number (table ID)</td><td>Controls the chance for the item to have Socket options.</td></tr><tr><td>GambleRate</td><td>Number (weight)</td><td>Selection weight of this item within its <code>Group</code>. The higher its value relative to the other items in the same group, the more likely it is to be selected.</td></tr></tbody></table>

### <mark style="color:yellow;">Section 2 — possible Moss Merchant locations</mark>

| Column      | Accepted Values                 | Description                                     |
| ----------- | ------------------------------- | ----------------------------------------------- |
| Location    | Number identifying the location | Referenced by the `Location` column in Block 0. |
| Map         | Map number                      | Map where the NPC appears.                      |
| MapX / MapY | Coordinates                     | Position where the NPC appears.                 |
| Direction   | Number from 0 to 7              | Direction the NPC faces.                        |

### <mark style="color:yellow;">Notes</mark>

* The `Option0` through `Option6` columns do **not** define the item's final options. Instead, they are **IDs that reference probability tables** defined in another file (`ItemOptionRate`). Editing these values without knowing what each table ID represents may produce unexpected item option probabilities.
* `GambleRate` is a relative weight and is compared **only against other items within the same `Group`**. The values do not need to add up to 100, nor do they need to use the same scale across different groups.


# MuCastleData

<mark style="color:green;">Configuration for the Castle Siege event: cycle duration, phase schedule, and the castle's defense NPCs (gates, statues, towers, etc.). The file contains 3 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`2`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — cycle duration</mark>

| Column | Accepted Values | Description                                                                      |
| ------ | --------------- | -------------------------------------------------------------------------------- |
| Cycle  | Number, in days | Number of days between each Castle Siege cycle (registration → siege → results). |

### <mark style="color:yellow;">Section 1 — cycle phase schedule</mark>

| Column                             | Accepted Values                | Description                                                                                                             |
| ---------------------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| State                              | Sequential number (1, 2, 3...) | The phase of the Castle Siege cycle. The order and behavior of each phase are hardcoded in the server.                  |
| StartDay / StartHour / StartMinute | Number                         | When this phase begins, **relative to the start of the cycle** (day 0, hour 0). This is **not** an absolute clock time. |

### <mark style="color:yellow;">Section 2 — castle defense NPCs</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Monster</td><td>Monster class number</td><td>The defense NPC (gate, statue, tower, etc.).</td></tr><tr><td>Index</td><td>Number, unique in combination with <code>Monster</code></td><td>Identifies this specific instance of the NPC.</td></tr><tr><td>DBSave</td><td><code>0</code> or <code>1</code></td><td>Whether this NPC's current HP is saved and restored across server restarts.</td></tr><tr><td>Side</td><td>Number</td><td>The faction/group this NPC belongs to (statue and gate defenders use one value, while support NPCs use another).</td></tr><tr><td>DFLevel</td><td>Number from 0 to 3</td><td>Initial defense level of the NPC (the castle owner can upgrade it later).</td></tr><tr><td>RGLevel</td><td>Number from 0 to 3</td><td>Initial HP regeneration level of the NPC (also upgradeable by the castle owner).</td></tr><tr><td>MaxLife</td><td>Number</td><td>Maximum HP of the NPC.</td></tr><tr><td>X / Y</td><td>Coordinates</td><td>Where the NPC spawns.</td></tr><tr><td>TX / TY</td><td>Coordinates or <code>-1</code></td><td>Destination the NPC walks to after spawning. <code>-1</code> = remains at its spawn position.</td></tr><tr><td>Dir</td><td>Number from 0 to 7</td><td>Direction the NPC faces.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* **The header comment inside the original file lists the columns as `Monster Index Side DBSave ...`, but the server actually reads them in the order `Monster Index DBSave Side ...`.** In other words, the 3rd column is `DBSave` and the 4th is `Side`, the opposite of what the comment suggests. The table above reflects the actual order used by the server, as confirmed in `CastleSiege.cpp`.
* `StartDay`, `StartHour`, and `StartMinute` in Block 1 are offsets relative to the beginning of the Castle Siege cycle, not fixed clock times. This is why the values increase from one row to the next (for example: `0 0 0`, then `1 23 59`, then `2 0 0`, etc.) until the full cycle duration defined by `Cycle` is reached.
* `DFLevel` and `RGLevel` are only the initial values assigned to each NPC when a new Castle Siege cycle begins. During the preparation phase, the castle owner can spend resources to upgrade these levels through another game system.


# Raklion

<mark style="color:green;">Configuration for the Raklion event (the eggs that spawn the Selupan boss). The file contains 4 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`3`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — general timers</mark>

| Column             | Accepted Values    | Description                                                                           |
| ------------------ | ------------------ | ------------------------------------------------------------------------------------- |
| AppearanceDelay    | Number, in seconds | Time between half of the eggs being destroyed and the appearance of the Selupan boss. |
| BossZoneCloseDelay | Number, in seconds | How long the boss battle area remains open before closing.                            |
| BossZoneOpenDelay  | Number, in seconds | How long the result screen remains active before the event resets.                    |

### <mark style="color:yellow;">Section 1 — event eggs</mark>

| Column      | Accepted Values | Description                                                                                                                 |
| ----------- | --------------- | --------------------------------------------------------------------------------------------------------------------------- |
| BossEggHalf | Number          | Number of remaining eggs that marks the "halfway point" and starts the `AppearanceDelay` countdown before the boss appears. |
| BossEggMax  | Number          | Total number of eggs spawned during the event.                                                                              |

### <mark style="color:yellow;">Section 2 — boss skill speed</mark>

| Column     | Accepted Values         | Description                                        |
| ---------- | ----------------------- | -------------------------------------------------- |
| SkillDelay | Number, in milliseconds | Delay between each skill used by the Selupan boss. |

### <mark style="color:yellow;">Section 3 — attack pattern changes based on remaining HP</mark>

| Column              | Accepted Values                         | Description                                                                                                                                                                                      |
| ------------------- | --------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Pattern1 – Pattern6 | Number, percentage, in descending order | Boss HP thresholds (%) that trigger a change in attack pattern. When the boss's HP falls below `Pattern1`, it switches to the second pattern; below `Pattern2`, to the third pattern; and so on. |

### <mark style="color:yellow;">Notes</mark>

* The values in Block 3 must remain in **descending order** (as in the default file: `80 60 50 40 20 10`). These are the HP thresholds checked sequentially to determine when the boss changes its attack behavior.


# ReiDoMU

<mark style="color:green;">Configuration for the King of MU event (the</mark> <mark style="color:green;"></mark><mark style="color:green;">`/king`</mark> <mark style="color:green;"></mark><mark style="color:green;">command and throne battle between guilds). The file contains 4 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`3`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — general timers</mark>

| Column      | Accepted Values    | Description                                                              |
| ----------- | ------------------ | ------------------------------------------------------------------------ |
| WarningTime | Number, in minutes | How long before the event starts the countdown warning begins to appear. |
| EventTime   | Number, in minutes | Duration of the event itself.                                            |

### <mark style="color:yellow;">Section 1 — start schedule</mark>

| Column                                            | Accepted Values | Description                                                               |
| ------------------------------------------------- | --------------- | ------------------------------------------------------------------------- |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`   | One scheduled start time per line. `*` = any value (cron-style schedule). |

### <mark style="color:yellow;">Section 2 — reward for the winning guild</mark>

| Column | Accepted Values | Description                                                |
| ------ | --------------- | ---------------------------------------------------------- |
| WC     | Number          | WCoinC awarded to **every member** of the winning guild.   |
| WP     | Number          | WCoinP awarded to every member of the winning guild.       |
| GP     | Number          | Goblin Point awarded to every member of the winning guild. |

### <mark style="color:yellow;">Section 3 — individual reward for the "king(s)"</mark>

| Column | Accepted Values | Description                                                   |
| ------ | --------------- | ------------------------------------------------------------- |
| WC     | Number          | WCoinC awarded to each of the top 5 individual players.       |
| WP     | Number          | WCoinP awarded to each of the top 5 individual players.       |
| GP     | Number          | Goblin Point awarded to each of the top 5 individual players. |

### <mark style="color:yellow;">Notes</mark>

* Block 2 rewards **every member of the winning guild**, even players who did not directly participate in the throne battle. The server finds all online members of the winning guild and grants the reward to each of them.
* Block 3 rewards the **top 5 individual players** (1st through 5th place). All five receive **the same reward**—there is no separate reward table based on placement.


# TvTEvent

<mark style="color:green;">Configuration for the Team vs Team event (Blue Team vs Red Team). The file contains 4 blocks, each starting with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`3`</mark><mark style="color:green;">) on its own line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — general timers</mark>

| Column    | Accepted Values    | Description                                                              |
| --------- | ------------------ | ------------------------------------------------------------------------ |
| AlarmTime | Number, in minutes | How long before the event starts the countdown warning begins to appear. |
| StandTime | Number, in minutes | Duration of the waiting/entry phase before the event begins.             |
| EventTime | Number, in minutes | Duration of the event itself.                                            |
| CloseTime | Number, in minutes | Duration of the closing phase after the event ends.                      |

### <mark style="color:yellow;">Section 1 — start schedule</mark>

| Column                                            | Accepted Values | Description                                                               |
| ------------------------------------------------- | --------------- | ------------------------------------------------------------------------- |
| Year / Month / Day / DoW / Hour / Minute / Second | Number or `*`   | One scheduled start time per line. `*` = any value (cron-style schedule). |

### <mark style="color:yellow;">Section 2 — entry and map settings</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>ReqItemIndex</td><td>Number, or <code>0</code></td><td>See the notes below — <strong>the actual order read by the server differs from the order shown in the file comment.</strong></td></tr><tr><td>ReqItemLevel</td><td>Number, or <code>0</code></td><td>See the notes below.</td></tr><tr><td>ReqItemCount</td><td>Number, or <code>0</code></td><td>See the notes below.</td></tr><tr><td>EventMap</td><td>Map number</td><td>Map where the TvT event takes place.</td></tr><tr><td>WaitingGate</td><td>Gate number (<code>Gate.txt</code>)</td><td>Gate used to send players during the waiting phase.</td></tr><tr><td>BlueTeamGate</td><td>Gate number</td><td>Entry gate for the Blue Team when the event begins.</td></tr><tr><td>RedTeamGate</td><td>Gate number</td><td>Entry gate for the Red Team when the event begins.</td></tr><tr><td>SetSkin</td><td><code>0</code> or <code>1</code></td><td>Applies a team appearance (blue/red) to participants during the event.</td></tr><tr><td>MinLevel / MaxLevel</td><td>Number or <code>*</code></td><td>Allowed level range. <code>*</code> = no limit.</td></tr><tr><td>MinReset / MaxReset</td><td>Number or <code>*</code></td><td>Allowed reset range. <code>*</code> = no limit.</td></tr><tr><td>MinMasterReset / MaxMasterReset</td><td>Number or <code>*</code></td><td>Allowed master reset range. <code>*</code> = no limit.</td></tr></tbody></table>

### <mark style="color:yellow;">Section 3 — coin reward (winning team only)</mark>

| Column | Accepted Values | Description                                                    |
| ------ | --------------- | -------------------------------------------------------------- |
| WC     | Number          | Bonus WCoinC awarded to each player on the winning team.       |
| WP     | Number          | Bonus WCoinP awarded to each player on the winning team.       |
| GP     | Number          | Bonus Goblin Point awarded to each player on the winning team. |

### <mark style="color:yellow;">Notes</mark>

* **The first three columns of Block 2 do not follow the order shown in the file's own comment.** The comment lists them as `ReqItemIndex ReqItemLevel ReqItemCount`, but the server actually reads them as: **1st column = `ReqItemCount`, 2nd column = `ReqItemIndex`, 3rd column = `ReqItemLevel`** (confirmed in `EventTvT.cpp`). Since all three values are `0` in the default file (no required item), this usually goes unnoticed. However, if you configure an entry item, this is the actual column order that matters.
* The reward from Block 3 is granted only to players on the **team with the highest score** when the event ends. If the match ends in a tie, nobody receives the reward.
* The gates (`WaitingGate`, `BlueTeamGate`, and `RedTeamGate`) must reference valid entries in `Gate.txt`.


# EventItemBag


# Standard EventBag

<mark style="color:green;">Simple reward bag format: an event or monster drops either Zen or an item randomly selected from a short list. The number at the beginning of the filename (</mark><mark style="color:green;">`000 -`</mark> <mark style="color:green;"></mark><mark style="color:green;">,</mark> <mark style="color:green;"></mark><mark style="color:green;">`001 -`</mark> <mark style="color:green;"></mark><mark style="color:green;">, etc.) must match the</mark> <mark style="color:green;"></mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">of a row in</mark> [<mark style="color:green;">EventItemBagManager.txt</mark>](https://chatgpt.com/EventItemBagManager.txt.md)<mark style="color:green;">. This link determines which event or monster uses which bag.</mark>

### <mark style="color:yellow;">Section 0 — General bag settings</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>Name</td><td>Text enclosed in quotes</td><td>Bag name, used only for identification while editing the file.</td></tr><tr><td>DropZen</td><td>Number</td><td>Amount of Zen dropped whenever an item is not awarded (see <code>Rate</code>).</td></tr><tr><td>Rate</td><td>Number from 0 to 100 (%)</td><td>Chance to drop an item from the Block 1 table. The remaining chance drops <code>DropZen</code> Zen instead.</td></tr><tr><td>Count</td><td>Number</td><td>How many times the bag performs the drop roll (Zen or item).</td></tr><tr><td>Coin1 / Coin2 / Coin3</td><td>Number</td><td>WCoinC / WCoinP / Goblin Point granted directly to the player once per bag (not affected by <code>Count</code>).</td></tr><tr><td>SetRate</td><td>Number, scale from 0 to 10000</td><td>Chance (on each item roll) to generate a random Ancient/Set item <strong>instead of</strong> the item from the Block 1 table.</td></tr><tr><td>DropType</td><td><code>0</code> or <code>1</code></td><td><code>0</code> = uses Skill/Luck/JoL exactly as defined in the Block 1 table. Any value other than <code>0</code> = randomly generates Skill/Luck/Additional Option when the item is created, ignoring the fixed values from the table.</td></tr><tr><td>Fireworks</td><td><code>0</code> or <code>1</code></td><td>Triggers fireworks when the item is awarded.</td></tr><tr><td>DropInventory</td><td><code>0</code> or <code>1</code></td><td><code>1</code> = attempts to place the item directly into the inventory (if there is no space, it drops on the ground). <code>0</code> = always drops on the ground.</td></tr></tbody></table>

### <mark style="color:yellow;">Section 1 — Item table</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number (item group)</td><td>Together with <code>Item</code>, forms the item code (same group/index system used throughout the game).</td></tr><tr><td>Item</td><td>Number (item index within the group)</td><td>See <code>Index</code>.</td></tr><tr><td>LvlMin / LvlMax</td><td>Number</td><td>Random level range for the item. If both values are equal, the level is fixed.</td></tr><tr><td>Skill</td><td>Number</td><td>Applies the Skill option, if supported by the item type.</td></tr><tr><td>Luck</td><td>Number</td><td>Applies the Luck option.</td></tr><tr><td>JoL</td><td>Number</td><td>Applies the Additional Option (Jewel of Life bonus).</td></tr><tr><td>Exc</td><td>Number</td><td>Number of Excellent options to attempt to apply.</td></tr><tr><td>Comment</td><td>Text after <code>//</code></td><td>Free comment, ignored by the game.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* This format is used only when the file **does not** contain any populated Advanced format blocks (3, 4, 5, etc.). If the file contains both formats at the same time, the server completely ignores the Standard format and uses only the Advanced one instead—see [EventItemBag - Advanced](https://chatgpt.com/c/EventItemBag%20-%20Advanced.md).


# Advanced EventBag

<mark style="color:green;">Advanced reward bag format: supports multiple independent drop groups, separate item tables, and class restrictions. The number at the beginning of the filename (</mark><mark style="color:green;">`000 -`</mark> <mark style="color:green;"></mark><mark style="color:green;">,</mark> <mark style="color:green;"></mark><mark style="color:green;">`007 -`</mark> <mark style="color:green;"></mark><mark style="color:green;">, etc.) must match the</mark> <mark style="color:green;"></mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">of a row in</mark> [<mark style="color:green;">EventItemBagManager.txt</mark>](https://chatgpt.com/EventItemBagManager.txt.md)<mark style="color:green;">. This link determines which event or monster uses which bag.</mark>

### <mark style="color:yellow;">Section 3 — Bag drop group(s)</mark>

| Column        | Accepted values               | Description                                                                                                                                             |
| ------------- | ----------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index         | Number                        | Identifies this drop group. A file may contain multiple Block 3 sections, each with its own `Index`. Each group performs its own independent drop roll. |
| Rate          | Number, scale from 0 to 10000 | Chance for this group to drop something.                                                                                                                |
| DropInventory | `0` or `1`                    | `1` = attempts to place items directly into the inventory. `0` = always drops them on the ground.                                                       |

### <mark style="color:yellow;">Section 4 — What each group can drop</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>A Block 3 <code>Index</code> value</td><td>Specifies which drop group this row belongs to.</td></tr><tr><td>Section</td><td>Number of an item table block (5 or higher, see below)</td><td>Item table used when this row is selected.</td></tr><tr><td>Rate</td><td>Number (weight)</td><td>Selection weight for this row, compared only against other rows with the same <code>Index</code>.</td></tr><tr><td>Zen</td><td>Number</td><td>Zen dropped if the referenced item table (<code>Section</code>) does not exist or is empty. Acts as a fallback.</td></tr><tr><td>DropCount</td><td>Number</td><td>Number of times this row performs its drop roll.</td></tr><tr><td>Coin1 / Coin2 / Coin3</td><td>Number</td><td>WCoinC / WCoinP / Goblin Point granted when this row is selected.</td></tr><tr><td>Options</td><td>Number (sum of flags)</td><td><code>1</code> = trigger fireworks · <code>2</code> = evaluate the class of any party member, not only the player receiving the drop · <code>4</code> = drop <strong>every</strong> item from the selected table (<code>Section</code>) instead of choosing only one · <code>8</code> = also generate a random Ancient/Set item. Combine flags by adding their values (e.g. <code>1 + 8 = 9</code>).</td></tr><tr><td>DW / DK / FE / MG / DL / SU / RF</td><td><code>0</code>, <code>1</code>, <code>2</code>, or <code>3</code></td><td>Class restriction: <code>0</code> = this class cannot receive the drop. <code>1</code>, <code>2</code>, or <code>3</code> = available starting from the 1st, 2nd, or 3rd class advancement for that class.</td></tr></tbody></table>

### <mark style="color:yellow;">Section 5 (or any number ≥ 5) — Item table</mark>

<mark style="color:orange;">The block number is not fixed to</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`5`</mark><mark style="color:orange;">—it may be</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`5`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`6`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`7`</mark><mark style="color:orange;">, etc. Each block represents a different item table, selected through the</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`Section`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">column in Block 4.</mark>

| Column            | Accepted values                                                                                            | Description                                                                                                                                                                                       |
| ----------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index             | Either a single number (direct item code) **or** two comma-separated numbers (`group,index`, e.g. `14,14`) | The item. The comma-separated form builds the item code from the item group and item index, just like the `Index`/`Item` pair in the Standard format.                                             |
| Level             | Number                                                                                                     | Item level.                                                                                                                                                                                       |
| Grade             | Number                                                                                                     | For stackable items (such as jewels), this is the **stack size**. For equipment, it is used as an alternative Excellent option only if `Option4` does not generate one.                           |
| Option0 – Option6 | Number, or `*`                                                                                             | Each option controls one item attribute (level, skill/luck/additional option, excellent, ancient/set, socket, etc.) through a probability table defined in another file. `*` = no option applied. |
| Duration          | Number, in seconds, or `0`                                                                                 | If greater than `0`, the item expires and disappears after that amount of time. `0` = permanent item.                                                                                             |
| Comment           | Text after `//`                                                                                            | Free comment, ignored by the game.                                                                                                                                                                |

### <mark style="color:yellow;">Notes</mark>

* If this format (Blocks 3/4/5+) contains any content, the server **completely ignores** the Standard format (Blocks 0/1), even if both are populated in the same file. See [EventItemBag - Standard](https://chatgpt.com/c/EventItemBag%20-%20Standard.md). Never use both formats in the same file.
* `Options` (Block 4) is a bitmask represented as the sum of flags, allowing multiple behaviors to be combined in a single value.
* `Grade` (Block 5+) changes its meaning depending on the item type: for jewels and other stackable items it represents the stack size, while for equipment it serves as a fallback Excellent option.


# Hack


# HackPacketCheck

<mark style="color:green;">Anti-hack validation rules for each type of packet sent by the client to the GameServer.</mark>

| Column   | Accepted values                 | Description                                                                                                                                                                                                             |
| -------- | ------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index    | Number from 0 to 255            | The packet type (protocol opcode) this rule applies to.                                                                                                                                                                 |
| Value    | Number, or `*`                  | Specific sub-value for this packet. `*` = the rule applies to any sub-value of this packet. A specific number = the rule applies only to packets with exactly that sub-value (see notes).                               |
| Encrypt  | `0`, `1`, or `*`                | Encryption type the packet must use to be accepted. `*` = the encryption type is not checked.                                                                                                                           |
| MaxDelay | Number, in milliseconds, or `0` | Time window used to count repeated occurrences of this packet. `0` = disables repeat counting for this packet (`MinCount` and `MaxCount` are ignored).                                                                  |
| MinCount | Number, or `0`                  | Within the time window (`MaxDelay`), how many times this packet may be received before it is considered suspicious. Once this limit is exceeded, the packet is ignored (the connection remains active). `0` = disabled. |
| MaxCount | Number, or `0`                  | Higher limit within the same time window. If exceeded, the player's connection is immediately terminated. `0` = disabled.                                                                                               |

### <mark style="color:yellow;">Notes</mark>

* When an `Index` has **multiple entries with specific `Value` values** (instead of `*`), they act as a whitelist: only the listed sub-values are accepted for that `Index`. Any other unlisted sub-value is treated as an unknown packet, and the connection is immediately terminated. This is the case for packet indices `77`, `78`, and `236` in the default file, which accept only the explicitly listed sub-values.
* `MinCount` and `MaxCount` work together: exceeding `MinCount` marks the packet as suspicious and records it in the log (that packet instance is discarded), while exceeding `MaxCount` causes the player's connection to be terminated.
* In the default configuration, repeat detection (`MaxDelay`/`MinCount`/`MaxCount`) is enabled only for `Index 24`. All other packet types have these three fields set to `0`, meaning no repeat checking is performed—only the encryption check (`Encrypt`), when applicable.


# HackSkillCheck

<mark style="color:green;">Usage limits for the anti-speedhack system, defined per skill and character attack speed range.</mark>

| Column     | Accepted values         | Description                                                                                                                            |
| ---------- | ----------------------- | -------------------------------------------------------------------------------------------------------------------------------------- |
| SkillIndex | Skill ID                | The skill this rule applies to. A single skill may have multiple entries, one for each attack speed range (see `MinSpeed`/`MaxSpeed`). |
| MinSpeed   | Number                  | Minimum character attack speed for this rule to apply.                                                                                 |
| MaxSpeed   | Number, or `*`          | Maximum character attack speed for this rule to apply. `*` = no upper limit.                                                           |
| MaxDelay   | Number, in milliseconds | Time window used to count how many times the skill is used.                                                                            |
| MaxCount   | Number                  | Maximum number of times the skill may be used within the time window (`MaxDelay`) before it is considered speed hacking.               |
| Comment    | Text after `//`         | Free comment (typically the skill name), ignored by the game.                                                                          |

### <mark style="color:yellow;">Notes</mark>

* For the same skill, the attack speed ranges (`MinSpeed`/`MaxSpeed`) should cover the entire range from lowest to highest without overlapping, as in the default file (`0–125`, `126–250`, `251–500`, `501–1000`, `1001–*`). The server uses the first range that matches the character's current attack speed.
* This file defines only **when** skill usage is considered speed hacking (based on the number of uses within a time window). What happens afterward—whether the server only logs the event, ignores the attack, disconnects the player, or bans them—is controlled by another server setting, not by this file.


# Item


# 380ItemOption

<mark style="color:green;">Fixed catalog of the special bonuses that a</mark> <mark style="color:green;"></mark><mark style="color:green;">**380 item**</mark> <mark style="color:green;"></mark><mark style="color:green;">(high-level items marked with the 380 option flag) can grant. This file is used by</mark> <mark style="color:green;"></mark><mark style="color:green;">`380ItemType.txt`</mark><mark style="color:green;">, which determines which item receives each of these bonuses.</mark>

| Column | Accepted values          | Description                                                                                                    |
| ------ | ------------------------ | -------------------------------------------------------------------------------------------------------------- |
| Index  | Fixed number from 1 to 8 | The bonus type. The list is hardcoded in the server—you cannot add new bonus types by editing this file alone. |
| Name   | Text enclosed in quotes  | Bonus name, used only for identification while editing the file.                                               |
| Value  | Number                   | Default value for this bonus, used when `380ItemType.txt` does not specify a custom value for the item.        |

### <mark style="color:yellow;">Notes</mark>

* The eight bonus types are fixed: Increase PvP Attack Success Rate, Increase PvP Damage, Increase PvP Defense Success Rate, Increase PvP Defense, Increase Maximum HP, Increase Maximum Shield (SD), Set SD Recovery Type, and Increase SD Recovery Rate.
* This file only stores the **default value** for each bonus. The file that actually assigns a bonus to a specific item is `380ItemType.txt`.


# 380ItemType

<mark style="color:green;">Defines which items can receive</mark> <mark style="color:green;"></mark><mark style="color:green;">**380 bonuses**</mark> <mark style="color:green;"></mark><mark style="color:green;">(see</mark> [<mark style="color:green;">380ItemOption.txt</mark>](https://chatgpt.com/c/380ItemOption.txt.md)<mark style="color:green;">) and which two bonuses each item receives.</mark>

| Column       | Accepted values                      | Description                                                                                                                     |
| ------------ | ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| Section      | Number (item group)                  | Together with `Type`, forms the item code.                                                                                      |
| Type         | Number (item index within the group) | See `Section`.                                                                                                                  |
| OptionIndex1 | Number from 1 to 8, or `*`           | First 380 bonus assigned to the item—the corresponding `Index` in `380ItemOption.txt`. `*` = no bonus is assigned to this slot. |
| OptionValue1 | Number, or `*`                       | Value of the first bonus. `*` = uses the default value defined in `380ItemOption.txt`.                                          |
| OptionIndex2 | Number from 1 to 8, or `*`           | Second 380 bonus assigned to the item, following the same rules as the first.                                                   |
| OptionValue2 | Number, or `*`                       | Value of the second bonus. `*` = uses the default value.                                                                        |

### <mark style="color:yellow;">Notes</mark>

* An item participates in the 380 bonus system only if it is listed in this file **and** the specific item instance has the **380 item flag**. That flag is assigned elsewhere when the item is generated—this file only defines which bonuses are applied if the item is a 380 item.
* Each item can have at most **two** 380 bonuses at the same time (`OptionIndex1` and `OptionIndex2`).


# ExcellentOptionRate

<mark style="color:green;">Adjusts the chance of each individual Excellent option being selected for different item ranges, instead of all six Excellent options having the same probability.</mark>

| Column                      | Accepted values                   | Description                                                                                                                                                                |
| --------------------------- | --------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index                       | `1`, `2`, `4`, `8`, `16`, or `32` | Specifies which of the six Excellent options this entry configures (each option corresponds to a bit: 1st = `1`, 2nd = `2`, 3rd = `4`, 4th = `8`, 5th = `16`, 6th = `32`). |
| ItemMinIndex / ItemMaxIndex | Number (item code range)          | Item code range to which this rule applies (e.g. `0`–`2559` covers regular weapons).                                                                                       |
| Name                        | Text enclosed in quotes           | Name of the option, provided only for readability while editing. **It is not used by the game**, even though it is an actual column (not a `//` comment).                  |
| Rate                        | Number from 0 to 100              | Weight of this specific Excellent option when selecting the item's Excellent bonuses, compared only against the other options defined for the same item range.             |
| Comment                     | Text after `//`                   | Free comment (typically the item category), ignored by the game.                                                                                                           |

### <mark style="color:yellow;">Notes</mark>

* This file only affects items whose internal item code falls within one of the configured ranges (`ItemMinIndex`–`ItemMaxIndex`). If an item does not match any listed range, its Excellent options are selected with a **uniform** probability (all six options have the same chance), without using this file.
* A single item range may (and typically should) contain one entry for each applicable Excellent option (`1`, `2`, `4`, `8`, `16`, `32`). Not every item type needs all six options—for example, jewels and wings usually use only a subset of them.


# Item

<mark style="color:green;">Main database of every item in the game: name, size, requirements, and base stats. The file is divided into 16 sections (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`15`</mark><mark style="color:green;">), each representing an item category. Each category has a slightly different set of stat columns between the item name and the requirement fields.</mark>

### <mark style="color:yellow;">Columns present in every section (before the stats)</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>Type</td><td>Number, sequential within the section</td><td>Together with the section number, forms the item code.</td></tr><tr><td>Slot</td><td>Number, or <code>*</code></td><td>Equipment slot used by the item. <code>*</code> = the item cannot be equipped (it stays in the inventory, like a potion or scroll). Common values: <code>0</code> right hand, <code>1</code> left hand/bow, <code>2</code> helm, <code>3</code> armor, <code>4</code> pants, <code>5</code> gloves, <code>6</code> boots, <code>7</code> wings, <code>8</code> pet.</td></tr><tr><td>Skill</td><td>Number</td><td>Skill or effect activated by the item (for example, a weapon skill). <code>0</code> = none.</td></tr><tr><td>Width / Height</td><td>Number, in inventory slots</td><td>Item size in the inventory/warehouse grid.</td></tr><tr><td>HaveSerial</td><td><code>0</code> or <code>1</code></td><td>Whether the item receives a unique serial number when created (used for anti-duplication tracking).</td></tr><tr><td>HaveOption</td><td><code>0</code> or <code>1</code></td><td>Whether the item can receive options (Excellent, Ancient/Set, Socket, +Level, etc.).</td></tr><tr><td>DropItem</td><td><code>0</code> or <code>1</code></td><td>Whether the item can be dropped on the ground, traded, or sold normally.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Item name.</td></tr></tbody></table>

### <mark style="color:yellow;">Section-specific columns (between</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">`Name`</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">and the requirements)</mark>

<table data-search="false"><thead><tr><th>Section</th><th>Category</th><th>Section-specific columns</th></tr></thead><tbody><tr><td>0</td><td>Swords</td><td>Level, DamageMin, DamageMax, AttackSpeed, Durability, MagicDurability, MagicDamageRate</td></tr><tr><td>1</td><td>Axes</td><td>(same columns as Section 0)</td></tr><tr><td>2</td><td>Maces / Scepters</td><td>(same columns as Section 0)</td></tr><tr><td>3</td><td>Spears</td><td>(same columns as Section 0)</td></tr><tr><td>4</td><td>Bows / Crossbows (includes arrows and bolts as separate items)</td><td>(same columns as Section 0)</td></tr><tr><td>5</td><td>Staffs / Sticks / Spell Books</td><td>(same columns as Section 0)</td></tr><tr><td>6</td><td>Shields</td><td>Level, Defense, DefenseSuccessRate, Durability</td></tr><tr><td>7</td><td>Helms</td><td>Level, Defense, MagicDefense, Durability</td></tr><tr><td>8</td><td>Armors</td><td>Level, Defense, MagicDefense, Durability</td></tr><tr><td>9</td><td>Pants</td><td>Level, Defense, MagicDefense, Durability</td></tr><tr><td>10</td><td>Gloves</td><td>Level, Defense, AttackSpeed, Durability</td></tr><tr><td>11</td><td>Boots</td><td>Level, Defense, WalkSpeed, Durability</td></tr><tr><td>12</td><td>Wings / Capes</td><td>Level, Defense, Durability, ReqLevel, ReqEnergy, ReqStrength, ReqDexterity, ReqLeadership, BuyMoney (custom format, without <code>None</code> or <code>ReqVitality</code>—see notes)</td></tr><tr><td>13</td><td>Pets / Mounts</td><td>Level, Durability, Resistance1, Resistance2, Resistance3, Resistance4, Resistance5, Resistance6, Resistance7</td></tr><tr><td>14</td><td>Potions / Consumables</td><td>Value, Level (minimal format—no requirements or class restrictions; see notes)</td></tr><tr><td>15</td><td>Summoning Scrolls</td><td>Level, ReqLevel, ReqEnergy, BuyMoney (custom format; see notes)</td></tr></tbody></table>

### <mark style="color:yellow;">Final columns (requirements and classes)</mark>

<mark style="color:orange;">Applies to Sections</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**0–11 and 13**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">only. Sections 12, 14, and 15 use their own layouts (see the table above and the notes).</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>ReqLevel</td><td>Number</td><td>Minimum level required to equip the item.</td></tr><tr><td>ReqStrength</td><td>Number</td><td>Minimum Strength required.</td></tr><tr><td>ReqDexterity</td><td>Number</td><td>Minimum Dexterity required.</td></tr><tr><td>ReqEnergy</td><td>Number</td><td>Minimum Energy required.</td></tr><tr><td>ReqVitality</td><td>Number</td><td>Minimum Vitality required.</td></tr><tr><td>ReqLeadership</td><td>Number</td><td>Minimum Leadership required (Dark Lord).</td></tr><tr><td>None</td><td>Number</td><td>Present in the file but <strong>ignored by the game</strong>—see notes.</td></tr><tr><td>DW / DK / FE / MG / DL / SU / RF</td><td><code>0</code>, <code>1</code>, or <code>2</code></td><td>Class requirement: <code>0</code> = this class cannot equip the item. <code>1</code> = available starting from the 1st class advancement. <code>2</code> = available only from the 2nd class advancement.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* The `None` column (between `ReqLeadership` and the class columns) is parsed, but its value is **never stored or used**. It is effectively a dead column that exists only for file compatibility. This applies to Sections 0–11 and 13. Sections 12, 14, and 15 do not include this column.
* For weapons (Sections 0–5), whether the weapon is one-handed or two-handed is determined automatically from its width (`Width >= 2` = two-handed weapon). There is no separate column for this.
* Section 14 (Potions/Consumables) is the simplest format: after the item name, it contains only `Value` (shop value) and `Level`. There are no requirements or class restrictions, so every class can use these items.
* In Section 15 (Summoning Scrolls), the scroll's attack damage is not stored in a column. The server calculates it automatically from the `Level` (`DamageMin = Level`, `DamageMax = Level + Level / 2`).
* Ammunition items (arrows and bolts in Section 4) and the `Custom ... Test` items follow the normal format of their section, but they typically have `HaveSerial`, `HaveOption`, and `DropItem` set to `0`.


# ItemDrop

<mark style="color:green;">General drop table for special items (jewels, symbols, event boxes, etc.) dropped by monsters, with filters based on map, monster class, and monster level.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number (combined item code)</td><td>The item that can be dropped. Unlike many other files, this one does not use separate <code>Section</code>/<code>Type</code> columns—it stores the complete item code directly.</td></tr><tr><td>DropLog</td><td><code>0</code> or <code>1</code></td><td>Controls only whether this specific drop is written to the item drop log (<code>WriteItemDropLog</code>). <strong>It does not determine whether the item can drop.</strong></td></tr><tr><td>Level</td><td>Number</td><td>Fixed item level when dropped.</td></tr><tr><td>Grade</td><td>Number</td><td>For stackable items (such as jewels), this is the stack size. For equipment, it is used as an alternative Excellent option only if <code>Option4</code> does not generate one.</td></tr><tr><td>Option0 – Option6</td><td>Number, or <code>*</code></td><td>Each option controls one item attribute (level, skill/luck/additional option, excellent, ancient/set, socket, etc.) through a probability table defined in another file. <code>*</code> = no option applied.</td></tr><tr><td>Duration</td><td>Number, in seconds, or <code>0</code></td><td>If greater than <code>0</code>, the item expires and disappears after that amount of time. <code>0</code> = permanent item.</td></tr><tr><td>MapNumber</td><td>Map ID, or <code>*</code></td><td>Restricts the drop to a specific map. <code>*</code> = any map.</td></tr><tr><td>MonsterClass</td><td>Monster class ID, or <code>*</code></td><td>Restricts the drop to a specific monster. <code>*</code> = any monster.</td></tr><tr><td>MonsterLevelMin / MonsterLevelMax</td><td>Number, or <code>*</code></td><td>Restricts the drop based on the defeated monster's level. <code>*</code> = no limit on that side of the range.</td></tr><tr><td>DropRate_AL0 – AL3</td><td>Number from 0 to 1,000,000, or <code>*</code></td><td>Drop chance for Free / VIP1 / VIP2 / VIP3 accounts (e.g. <code>1000</code> = 0.1%). <code>*</code> = always participates in the drop selection with the minimum possible weight.</td></tr><tr><td>Comment</td><td>Text after <code>//</code></td><td>Free comment (typically the item name), ignored by the game.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* `DropLog` is **not** an enable/disable switch for the drop. It only controls whether successful drops are recorded in the log file. The actual drop chance is determined by `DropRate_AL0–AL3`.
* Many event items in the default configuration (Ribbon Boxes, Chocolate Boxes, Sweet Boxes, Lucky Coins, Pumpkins, etc.) have all `DropRate` values set to `0` for every account level. This means they **do not drop under normal conditions**. They only become obtainable when an item drop bonus (configured in `BonusManager.dat`) is active, since the bonus formula can increase a drop chance that starts at zero.
* `MapNumber`, `MonsterClass`, `MonsterLevelMin`, and `MonsterLevelMax` together determine whether a row is eligible for the drop calculation. If the defeated monster does not satisfy **all** specified filters, that row is ignored.


# ItemLevelName

<mark style="color:green;">Alternative names for the same item based on the level (+0, +1, +2, etc.) of that specific item instance. This file is used when a single item code (defined only once in</mark> <mark style="color:green;"></mark><mark style="color:green;">`Item.txt`</mark><mark style="color:green;">) needs to appear with different names depending on its level, such as reward boxes, transformation rings, or teleport scrolls.</mark>

| Column    | Accepted values         | Description                                                 |
| --------- | ----------------------- | ----------------------------------------------------------- |
| ItemIndex | Number (item code)      | The item to which this alternative name applies.            |
| ItemLevel | Number                  | The specific item level that uses this name.                |
| Name      | Text enclosed in quotes | The name displayed in-game for this item/level combination. |

### <mark style="color:yellow;">Notes</mark>

* A single `ItemIndex` typically has multiple entries, one for each supported level. This is how, for example, the same item code `7179` appears as **"Lucky Box"** at level 0, **"Firecracker"** at level 2, **"Box of Heaven"** at level 7, and so on.
* If a particular `ItemIndex`/`ItemLevel` combination is not listed here, the game simply uses the default item name defined in `Item.txt`.


# ItemMove

<mark style="color:green;">Restricts which actions can be performed on items within a specific item code range—dropping them on the ground, selling them, trading them, storing them in the vault, and more.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>MinIndex / MaxIndex</td><td>Number (item code range)</td><td>Item code range this rule applies to.</td></tr><tr><td>AllowDrop</td><td><code>0</code> or <code>1</code></td><td>Whether the item can be dropped on the ground.</td></tr><tr><td>AllowSell</td><td><code>0</code> or <code>1</code></td><td>Whether the item can be sold to an NPC.</td></tr><tr><td>AllowTrade</td><td><code>0</code> or <code>1</code></td><td>Whether the item can be traded with another player.</td></tr><tr><td>AllowVault</td><td><code>0</code> or <code>1</code></td><td>Whether the item can be stored in the personal vault.</td></tr><tr><td>AllowStore</td><td><code>0</code> or <code>1</code></td><td>Whether the item can be placed in a Personal Shop.</td></tr><tr><td>AllowMix</td><td><code>0</code> or <code>1</code></td><td>Whether the item can be used in the Chaos Machine (item combinations, wings, etc.).</td></tr><tr><td>AllowGuildVault</td><td><code>0</code> or <code>1</code></td><td>Whether the item can be stored in the guild vault.</td></tr><tr><td>Comment</td><td>Text after <code>//</code></td><td>Free comment (typically the item group name), ignored by the game.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Any item that does not fall within a configured range has **all actions allowed by default**. This file is used only to define exceptions and restrictions, not to grant permissions.
* Item code ranges must not overlap. The server uses the first range that matches the item's code.


# ItemOption

<mark style="color:green;">Special bonus definitions for wings, rings, pendants, and mounts (the type of bonus that scales with the item's enhancement level, such as Fenrir, Dark Horse, and elemental rings).</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>IND (Index)</td><td>Number from 0 to 13</td><td><strong>Not the item code.</strong> This is the item's <strong>special bonus slot</strong>. An item can have multiple special bonuses at the same time, each assigned to a different slot.</td></tr><tr><td>OPI (Option Index)</td><td>Number (fixed bonus ID)</td><td>The bonus granted by this slot. This is a fixed server-defined bonus ID (e.g. increased movement speed, wing HP bonus, critical damage rate). New bonus types cannot be created by editing this file.</td></tr><tr><td>OPV (Option Value)</td><td>Number</td><td>Strength/value of the bonus.</td></tr><tr><td>MNI / MXI (Item Min/Max Index)</td><td>Number (item code range), or <code>*</code></td><td>Item code range this rule applies to. <code>*</code> = no limit on that side of the range.</td></tr><tr><td>MNL / MXL (Item Min/Max Level)</td><td>Number, or <code>*</code></td><td>Item enhancement level (+0, +1, etc.) this rule applies to. <code>*</code> = no limit on that side of the range.</td></tr><tr><td>ISK (Item Skill Option)</td><td>Number, or <code>*</code></td><td>Requires the item's Skill option to be at least this value. <code>*</code> = no requirement.</td></tr><tr><td>ILK (Item Luck Option)</td><td>Number, or <code>*</code></td><td>Requires the item's Luck option to be at least this value. <code>*</code> = no requirement.</td></tr><tr><td>ILO (Item Life Option)</td><td>Number, or <code>*</code></td><td>Requires the item's Additional Option (Life/Option) to be at least this value. <code>*</code> = no requirement.</td></tr><tr><td>IEX (Item Excellent Option)</td><td>Number, or <code>*</code></td><td>Requires the item to have at least one of the Excellent option bits specified by this value (bitmask, using the same format as <code>ExcellentOptionRate.txt</code>). <code>*</code> = no requirement.</td></tr><tr><td>IAP (Item Ancient Option)</td><td>Number, or <code>*</code></td><td>Requires the item to have the specified Ancient/Set option bit(s). <code>*</code> = no requirement.</td></tr><tr><td>Comment</td><td>Text after <code>//</code></td><td>Free comment (typically the item name), ignored by the game.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* `IND` is the easiest field to confuse: although it looks like an item index, it actually represents the **special bonus slot**. The same item may have multiple entries with different `IND` values—for example, a wing can receive one bonus in slot `1` and another in slot `2` at the same time.
* `MNI`/`MXI` (item code range) together with `MNL`/`MXL` (item level range) determine exactly which item instances receive the bonus. This is how, for example, a +9 wing can gain a bonus that the same wing at +0 does not.
* `ISK`, `ILK`, and `ILO` are **minimum value requirements**: the item must already have those options at or above the specified values. `IEX` and `IAP`, on the other hand, are **bitmask requirements**: the item must have at least one of the option bits specified by the value, rather than meeting a minimum numeric value.
* The bonus ID (`OPI`) comes from a large, fixed server-defined list (covering dozens of effects, from increased movement speed to critical damage resistance). It is not possible to create new bonus types simply by editing this file.


# ItemOptionRate

<mark style="color:green;">Central probability table used by the server's entire item generation system (</mark><mark style="color:green;">`ItemBag`</mark><mark style="color:green;">,</mark> <mark style="color:green;"></mark><mark style="color:green;">`EventItemBag`</mark><mark style="color:green;">,</mark> <mark style="color:green;"></mark><mark style="color:green;">`ItemDrop.txt`</mark><mark style="color:green;">,</mark> <mark style="color:green;"></mark><mark style="color:green;">`MossMerchant.txt`</mark><mark style="color:green;">, etc.) whenever those files request an item</mark> <mark style="color:green;"></mark><mark style="color:green;">**option**</mark> <mark style="color:green;"></mark><mark style="color:green;">(</mark><mark style="color:green;">`Option0`</mark> <mark style="color:green;"></mark><mark style="color:green;">through</mark> <mark style="color:green;"></mark><mark style="color:green;">`Option6`</mark><mark style="color:green;">). Each block (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`6`</mark><mark style="color:green;">) corresponds to one type of item option, and each row within a block defines a probability preset. The value specified by other files in their</mark> <mark style="color:green;"></mark><mark style="color:green;">`Option0`</mark><mark style="color:green;">–</mark><mark style="color:green;">`Option6`</mark> <mark style="color:green;"></mark><mark style="color:green;">columns is simply the</mark> <mark style="color:green;"></mark><mark style="color:green;">`Index`</mark> <mark style="color:green;"></mark><mark style="color:green;">of one of these presets.</mark>

### <mark style="color:yellow;">How each row works</mark>

<mark style="color:orange;">After the</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`Index`</mark><mark style="color:orange;">, the remaining columns represent the possible values for that option (for example,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`+0`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`+1`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`+2`</mark><mark style="color:orange;">, etc.). Each cell contains the</mark> <mark style="color:orange;"></mark><mark style="color:orange;">**selection weight**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">for that value. The weights in a row typically add up to</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`10000`</mark><mark style="color:orange;">, and the higher a value's weight, the more likely it is to be selected. A weight of</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`0`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">means that value can never be selected by that preset.</mark>

### <mark style="color:yellow;">The 7 blocks (one for each option type)</mark>

<table data-header-hidden data-search="false"><thead><tr><th></th><th></th><th></th></tr></thead><tbody><tr><td>Block</td><td>Option (corresponds to <code>Option0</code>–<code>Option6</code> in other files)</td><td>Possible column values</td></tr><tr><td>0</td><td>Item level (+0 to +15)</td><td><code>+0</code> through <code>+15</code></td></tr><tr><td>1</td><td>Skill option</td><td><code>0</code> or <code>1</code></td></tr><tr><td>2</td><td>Luck option</td><td><code>0</code> or <code>1</code></td></tr><tr><td>3</td><td>Jewel of Life (JoL) option</td><td><code>+0</code>, <code>+4</code>, <code>+8</code>, <code>+12</code>, <code>+16</code>, <code>+20</code>, <code>+24</code>, <code>+28</code></td></tr><tr><td>4</td><td>Excellent option (bitmask)</td><td><code>0</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>16</code>, <code>32</code>, <code>63</code></td></tr><tr><td>5</td><td>Ancient/Set option</td><td><code>0</code>, <code>1</code>, <code>2</code></td></tr><tr><td>6</td><td>Socket option (number of sockets)</td><td><code>0</code> through <code>5</code></td></tr></tbody></table>

### <mark style="color:yellow;">Common preset indices</mark>

<table data-search="false"><thead><tr><th>Index</th><th>Typical usage</th></tr></thead><tbody><tr><td><code>0</code></td><td>Normal item (regular monster drop)</td></tr><tr><td><code>1</code></td><td>Excellent item</td></tr><tr><td><code>2</code></td><td>Ancient item</td></tr><tr><td><code>3</code></td><td>Chaos Machine combinations</td></tr><tr><td><code>4</code>, <code>5</code>, <code>6</code></td><td>Level 2 / Level 1 / Level 3 Wing combinations</td></tr><tr><td><code>7</code></td><td>Monster Wing combination</td></tr><tr><td><code>8</code></td><td>Socket weapon combination</td></tr><tr><td><code>9</code></td><td>Moss Merchant</td></tr><tr><td><code>10</code></td><td>Lucky Item</td></tr><tr><td><code>11</code> and above</td><td>Presets used by <code>EventItemBag</code>—each one locks a specific value or allows only a narrow range of values (see the comments for each row in the file).</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* When another file uses `*` in an `Option0`–`Option6` column, the server **does not look up this file**. That option is simply left at its default value, regardless of what is defined here.
* Presets `11` and above (used by `EventItemBag`) typically force a single value with a 100% chance or distribute the probability almost evenly across a small range of two or three values. This is how a reward bag can guarantee, for example, that it always generates an item at exactly `+3`.
* Editing the weights in this file changes the probability for **every item on the server** that references the corresponding `Index`. These presets are shared globally and are not specific to any individual item.


# ItemStack

<mark style="color:green;">Defines which items can be stacked in the inventory (such as jewels and potions) and, optionally, whether a full stack is automatically converted into another item.</mark>

| Column      | Accepted values            | Description                                                                                                                                                                                |
| ----------- | -------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Index       | Number (item code)         | The item that can be stacked.                                                                                                                                                              |
| Level       | Number, or `*`             | Restricts the rule to a specific level of that item. `*` = applies to any level (used when there is no rule for the exact level).                                                          |
| MaxStack    | Number from 1 to 255       | Maximum number of items that can be stored in a single stack.                                                                                                                              |
| CreateIndex | Number (item code), or `*` | If specified, when the stack reaches **exactly** `MaxStack`, the entire stack is automatically converted into one unit of this item. `*` = no conversion; the item simply stacks normally. |
| Comment     | Text after `//`            | Free comment (typically the item name), ignored by the game.                                                                                                                               |

### <mark style="color:yellow;">Notes</mark>

* Any item not listed in this file cannot be stacked and always occupies its own inventory slot.
* Automatic conversion (`CreateIndex`) occurs only when the stack reaches **exactly** `MaxStack`. This is how, for example, 24 **Card Pieces** become a different item, or 5 **Symbols of Kundun** become 1 **Jewel of Chaos** (see each row's destination item in the file).
* Items such as **Box of Kundun** use multiple entries for the same `Index` (`7179`), one for each item level (`+1` through `+5`). This makes it possible to assign a different `MaxStack` for each level, even though the default configuration uses `255` for all of them.


# ItemValue

<mark style="color:green;">Defines the buy and sell price of specific items in NPC shops. This file is used to assign custom prices to items that do not follow the server's automatic price calculation, such as jewels, arrows, bolts, and event items.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number (item code)</td><td>The item this rule applies to.</td></tr><tr><td>Level</td><td>Number, or <code>*</code></td><td>Restricts the rule to a specific item level. <code>*</code> = any level.</td></tr><tr><td>OpExe</td><td>Number, or <code>*</code></td><td>Restricts the rule to a specific Excellent option on the item. <code>*</code> = any Excellent option.</td></tr><tr><td>BuyValue</td><td>Number, in Zen</td><td>Price charged by an NPC to sell this item to the player.</td></tr><tr><td>Coin1 / Coin2 / Coin3</td><td>Number</td><td>Additional cost in WCoinC / WCoinP / Goblin Point (for NPC shops that use premium currencies).</td></tr><tr><td>SellValue</td><td>Number, in Zen</td><td>Amount of Zen the player receives when selling the item to an NPC.</td></tr><tr><td>Comment</td><td>Text after <code>//</code></td><td>Free comment (typically the item name), ignored by the game.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* For stackable items (such as jewels and potions), `BuyValue` is **multiplied by the number of items in the stack**. The only exceptions are **Arrows** and **Bolts**, which always use the full price defined in the row regardless of the stack size.
* The server searches for a matching row using the following priority order: first, an exact match for both `Level` and `OpExe`; if none is found, it looks for the exact `Level` with `OpExe = *`; then for the exact `OpExe` with `Level = *`; and finally for a row where both `Level` and `OpExe` are `*`.
* Any item not listed in this file uses the price calculated automatically by the server based on its attributes defined in `Item.txt`, rather than a fixed value.


# ItemValueTrade

<mark style="color:green;">Defines an automatic Zen/currency fee charged when a specific item is placed into the trade window with another player. In the default configuration, this table is empty (no items have a trade fee).</mark>

| Column                | Accepted values    | Description                                                                                                |
| --------------------- | ------------------ | ---------------------------------------------------------------------------------------------------------- |
| Index                 | Number (item code) | The item that triggers the trade fee when placed into a trade.                                             |
| Level                 | Number             | Specific item level that activates the fee.                                                                |
| Zen                   | Number             | Amount of Zen deducted from the player who placed the item into the trade.                                 |
| Coin1 / Coin2 / Coin3 | Number             | Amount of WCoinC / WCoinP / Goblin Point also deducted from the player who placed the item into the trade. |
| Comment               | Text after `//`    | Free comment, ignored by the game.                                                                         |

### <mark style="color:yellow;">Notes</mark>

* This is **not** the item's selling price. It is a fee charged to the player who places the item into the trade window, deducted from that player's own Zen and/or premium currencies (not from the other participant). If the player does not have enough Zen or currency to pay the fee, the entire trade is canceled.
* If **both players** place fee-based items into the same trade, each player pays the fee for their own items independently.
* For stackable items (such as jewels and potions), the fee is multiplied by the stack size. The only exceptions are **Arrows** and **Bolts**, which always use the full fee defined in the row regardless of the quantity in the stack.


# ItemOfHarmonyOption

<mark style="color:green;">Defines the bonuses that a</mark> <mark style="color:green;"></mark><mark style="color:green;">**Jewel of Harmony**</mark> <mark style="color:green;"></mark><mark style="color:green;">can apply to an item, and how each bonus scales from Harmony Level 0 to 15. The file is divided into three blocks:</mark> <mark style="color:green;"></mark><mark style="color:green;">`1`</mark> <mark style="color:green;"></mark><mark style="color:green;">for weapons,</mark> <mark style="color:green;"></mark><mark style="color:green;">`2`</mark> <mark style="color:green;"></mark><mark style="color:green;">for staffs, and</mark> <mark style="color:green;"></mark><mark style="color:green;">`3`</mark> <mark style="color:green;"></mark><mark style="color:green;">for armor. Each block begins with its block number on a line by itself and ends with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number, fixed for each category</td><td>Identifies the bonus. The list of available bonuses is hardcoded for each category (weapon, staff, or armor), so new bonus types cannot be created by editing this file.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Bonus name, for identification only.</td></tr><tr><td>Rate</td><td>Number (weight)</td><td>Selection weight of this bonus compared only with the other bonuses in the <strong>same category</strong> (weapon, staff, or armor) when a Jewel of Harmony is used.</td></tr><tr><td>Level</td><td>Number</td><td>Minimum item enhancement level (<code>+</code>) required for this bonus to be eligible. This is also the Harmony Level at which the bonus starts when first applied.</td></tr><tr><td>Value0 – Value15</td><td>Number</td><td>Strength of the bonus at each Harmony Level (0 through 15). The Harmony Level increases as the bonus is upgraded (using a Smelt Stone / Fusion Stone).</td></tr><tr><td>Money0 – Money15</td><td>Number, in Zen</td><td>Cost to restore (remove) the bonus from the item when it is at that Harmony Level.</td></tr><tr><td>Comment</td><td>Text after <code>//</code></td><td>Free comment, ignored by the game (when present).</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* The **Reduce Strength Requirement** and **Reduce Dexterity Requirement** bonuses are only eligible if the item **already requires** that attribute (that is, its requirement is greater than zero). For example, an item with no Strength requirement can never receive the Reduce Strength Requirement bonus.
* An item's Harmony Level (0 to 15) always starts at the value specified in the bonus's `Level` column—it does **not** start at zero. It can only be increased by using a **Smelt Stone** (also known as a Fusion Stone), with the success rate configured elsewhere. If an upgrade fails, the Harmony Level resets to the bonus's initial `Level`.
* `Money0` through `Money15` are **not** the upgrade costs. They define the cost to **remove (restore)** the Harmony bonus from the item based on its current Harmony Level.


# ItemOfHarmonyType

<mark style="color:green;">Defines the minimum enhancement level (</mark><mark style="color:green;">`+`</mark><mark style="color:green;">) an item must have in order to accept a</mark> <mark style="color:green;"></mark><mark style="color:green;">**Jewel of Harmony**</mark><mark style="color:green;">.</mark>

| Column  | Accepted values                      | Description                                                                               |
| ------- | ------------------------------------ | ----------------------------------------------------------------------------------------- |
| Section | Number (item group)                  | Together with `Type`, forms the item's code.                                              |
| Type    | Number (item index within the group) | See `Section`.                                                                            |
| Level   | Number                               | Minimum item enhancement level (`+`) required for that item to accept a Jewel of Harmony. |

### <mark style="color:yellow;">Notes</mark>

* This file is **not** a whitelist of eligible items. Any item **not** listed here can still receive a Jewel of Harmony normally, with no minimum enhancement level requirement. The sole purpose of this file is to enforce a minimum level for the items that are listed.
* The other requirements for accepting a Jewel of Harmony (such as not being a Set item, not being a Socket item, not already having a Harmony bonus applied, etc.) are **not** controlled by this file. They are checked separately by the server.


# LuckyItem

<mark style="color:green;">Defines</mark> <mark style="color:green;"></mark><mark style="color:green;">**Lucky Items**</mark> <mark style="color:green;"></mark><mark style="color:green;">(equipment obtained from lucky boxes/events, with randomly generated options and a custom wear system that is different from normal durability).</mark>

| Column            | Accepted values    | Description                                                                                                                                                                                                   |
| ----------------- | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index             | Number (item code) | The equipment item that can be generated as a Lucky Item.                                                                                                                                                     |
| Group             | Number             | Groups equivalent items from the same equipment slot. When the server generates a Lucky Item, it selects from the same `Group` the item version whose class restriction matches the receiving player's class. |
| Decay             | Number             | Accumulated wear limit before the item loses 1 point of its actual durability. Lucky Items have this separate wear system, independent from normal combat durability loss.                                    |
| Option0 – Option6 | Number (table ID)  | Each one controls an item attribute (level, skill/luck/additional option, excellent, ancient/set, socket) using the same probability tables from `ItemOptionRate.txt`.                                        |
| Comment           | Text after `//`    | Free comment (typically the item name), ignored by the game.                                                                                                                                                  |

### <mark style="color:yellow;">Notes</mark>

* `Decay` is **not** the item's durability. It represents how much accumulated wear from usage/combat the Lucky Item can withstand before losing 1 point of real durability. The higher the value, the more resistant the item is to this wear.
* Items with the same `Group` and the same equipment slot (same item category/group) usually exist in multiple versions, one for each class. The server selects the correct version according to the class of the player receiving the item.


# SetItemOption

<mark style="color:green;">Defines the bonuses for each Ancient Set (for example: Warrior, Anonymous, Hyperion), including partial set bonuses (based on the number of equipped pieces) and the full set bonus when the complete set is equipped.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number, one per set</td><td>Identifies the Ancient Set.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Set name.</td></tr><tr><td>Option1 / Value1, Option2 / Value2</td><td>Number (fixed option ID), or <code>*</code></td><td>Bonuses unlocked when equipping <strong>2 pieces</strong> of the set. Up to 2 bonuses can be active at this stage.</td></tr><tr><td>Option3 / Value3, Option4 / Value4</td><td>Number, or <code>*</code></td><td><strong>Additional</strong> bonuses unlocked when equipping 3 pieces (added on top of the 2-piece bonus).</td></tr><tr><td>Option5 / Value5, Option6 / Value6</td><td>Number, or <code>*</code></td><td>Additional bonuses unlocked when equipping 4 pieces.</td></tr><tr><td>Option7 / Value7, Option8 / Value8</td><td>Number, or <code>*</code></td><td>Additional bonuses unlocked when equipping 5 pieces.</td></tr><tr><td>Option9 / Value9, Option10 / Value10</td><td>Number, or <code>*</code></td><td>Additional bonuses unlocked when equipping 6 pieces.</td></tr><tr><td>Option11 / Value11, Option12 / Value12</td><td>Number, or <code>*</code></td><td>Additional bonuses unlocked when equipping 7 pieces.</td></tr><tr><td>FullOption1 / FullValue1 … FullOption5 / FullValue5</td><td>Number, or <code>*</code></td><td><strong>Exclusive</strong> bonuses activated only when the player equips the maximum number of pieces for that specific set (defined in <code>SetItemType.txt</code>; it is not always the same number for every set).</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Piece-based bonuses are **cumulative**: a player wearing 4 pieces receives the 2-piece bonus **plus** the 3-piece bonus **plus** the 4-piece bonus at the same time. These are not replacement tiers.
* The **Full** bonus only activates when the number of equipped pieces exactly matches the maximum piece count defined for that specific set. It is not always "7 pieces" or any other fixed number.
* The code for each `Option`/`FullOption` comes from a fixed list of approximately 36 possible effects (attributes, physical/magic damage, defense, HP, mana, critical damage, elemental damage, and others). New effects cannot be created by editing this file.


# SetItemType

<mark style="color:green;">Defines which items are pieces of an Ancient Set, which set each piece belongs to, and which attribute it automatically reinforces.</mark>

| Column       | Accepted values                                             | Description                                                                                                                                                                                                                                                                                                                                                             |
| ------------ | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Section      | Number (item group)                                         | Together with `Type`, forms the item's code.                                                                                                                                                                                                                                                                                                                            |
| Type         | Number (item index within the group)                        | See `Section`.                                                                                                                                                                                                                                                                                                                                                          |
| StatType     | `0`, `1`, `2`, or `3`                                       | Determines which attribute this item automatically increases because it is an Ancient Set piece: `0` = Strength (general weapons), `1` = Agility (bows/crossbows), `2` = Energy (staffs), `3` = Vitality (shield, helm, armor, pants, gloves, boots). The bonus (+5, +10, or +15) depends on the Ancient grade rolled for that specific item instance; it is not fixed. |
| OptionIndex1 | Number matching an `Index` from `SetItemOption.txt`, or `0` | The Ancient Set this piece belongs to.                                                                                                                                                                                                                                                                                                                                  |
| OptionIndex2 | Number matching an `Index` from `SetItemOption.txt`, or `0` | A second Ancient Set this same piece can belong to (most items belong to only one set, so this is usually `0`).                                                                                                                                                                                                                                                         |

### <mark style="color:yellow;">Notes</mark>

* `StatType` is an automatic bonus **separate** from the set bonuses defined in `SetItemOption.txt`. Every Ancient Set piece provides a small attribute increase according to its category, even when used alone without combining it with other pieces of the same set.
* `OptionIndex1`/`OptionIndex2` are the links that connect this item to `SetItemOption.txt`. Without this connection, the item does not count as a piece of any set, even if its name appears to belong to one.


# SocketItemOption

<mark style="color:green;">Defines the bonuses granted by an elemental seed/jewel when inserted into a socket, as well as additional bonuses obtained by combining elemental socket types on the same item or across the character's entire equipment. The file contains 3 blocks, each beginning with the block number (</mark><mark style="color:green;">`0`</mark> <mark style="color:green;"></mark><mark style="color:green;">to</mark> <mark style="color:green;"></mark><mark style="color:green;">`2`</mark><mark style="color:green;">) on a separate line and ending with</mark> <mark style="color:green;"></mark><mark style="color:green;">`end`</mark><mark style="color:green;">.</mark>

### <mark style="color:yellow;">Section 0 — Bonus from each individual socket</mark>

| Column          | Accepted values         | Description                                                                                                                                                                                    |
| --------------- | ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index           | Number, fixed           | Bonus ID. The list of available bonuses is fixed by the server.                                                                                                                                |
| Type            | Number from 1 to 6      | Seed element that grants this bonus: `1` Fire, `2` Water, `3` Ice, `4` Wind, `5` Lightning, `6` Earth.                                                                                         |
| SubIndex        | Number                  | Position of this bonus within the bonus list of that element.                                                                                                                                  |
| Name            | Text enclosed in quotes | Bonus name.                                                                                                                                                                                    |
| Rate            | Number (weight)         | Selection weight of this bonus within the same element when a seed of that element is inserted.                                                                                                |
| Value1 – Value5 | Number                  | Bonus strength according to the grade/level of the seed or sphere used in the socket (`1` = weakest seed, `5` = strongest). It does **not** depend on which of the item's sockets it occupies. |

### <mark style="color:yellow;">Section 1 — Extra bonus from elemental combinations on the same item</mark>

| Column                          | Accepted values            | Description                                                                                                                                                    |
| ------------------------------- | -------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index                           | Number, fixed              | Extra bonus ID (fixed list: weapon damage, weapon skill damage, staff damage, staff skill damage, armor defense, armor maximum HP).                            |
| MinItemSection / MaxItemSection | Number (item group range)  | Item categories where this extra bonus applies (for example: weapons, staffs, armor).                                                                          |
| Name                            | Text enclosed in quotes    | Bonus name.                                                                                                                                                    |
| Value                           | Number                     | Strength of the extra bonus.                                                                                                                                   |
| ReqOptionType1 – ReqOptionType5 | Number from 1 to 6, or `0` | Required elemental socket types (using the same numbering as Block 0) that must exist together on the same item to activate this bonus. `0` = unused position. |

### <mark style="color:yellow;">Section 2 — Elemental combination bonus across the entire equipment</mark>

| Column                                    | Accepted values         | Description                                                                                                                                             |
| ----------------------------------------- | ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index                                     | Number, fixed           | Bonus ID (fixed list: increased double damage rate, increased ignore defense rate).                                                                     |
| Name                                      | Text enclosed in quotes | Bonus name.                                                                                                                                             |
| Value                                     | Number                  | Bonus strength.                                                                                                                                         |
| ReqOptionTypeCount1 – ReqOptionTypeCount6 | Number                  | Number of sockets of each element required (1 Fire, 2 Water, 3 Ice, 4 Wind, 5 Lightning, 6 Earth) across **all equipped items** to activate this bonus. |

### <mark style="color:yellow;">Notes</mark>

* Block 0 applies to each individual socket. Block 1 applies to elemental combinations inside the **same item**. Block 2 applies to elemental combinations across the character's **entire equipment**. These are three separate bonus systems and all of them can be active at the same time.
* `Value1`–`Value5` in Block 0 depend on the quality/level of the seed or sphere inserted, not the socket position. Inserting the same seed into the 1st or 5th socket provides the same bonus value.


# SocketItemType

<mark style="color:green;">Lists the items that support sockets and defines how many sockets each item has.</mark>

| Column    | Accepted values                      | Description                                  |
| --------- | ------------------------------------ | -------------------------------------------- |
| Section   | Number (item group)                  | Together with `Type`, forms the item's code. |
| Type      | Number (item index within the group) | See `Section`.                               |
| MaxSocket | Number from 1 to 5                   | Number of sockets available on this item.    |

### <mark style="color:yellow;">Notes</mark>

* Only items listed in this file can receive sockets. An item that does not appear here can never receive seeds/elemental jewels, even if `Item.txt` allows that item to have options.


# Message


# Message\_\[LANG]

<mark style="color:green;">Game message texts (notifications, event results, etc.), with one file per language: English, Portuguese, and Spanish. All three share the exact same format.</mark>

| Column  | Accepted Values ​​ | Description                                                                                                                                                             |
| ------- | ------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Index   | Number             | Identifies the message. **Must be the same number in all three files** so that the message at `Index` X in one file corresponds to the translation in the others.       |
| Message | Text in quotes     | The message text in the specific language of that file. It may contain `%d` (number) and `%s` (text) placeholders, which the game fills in when displaying the message. |

### <mark style="color:yellow;">Notes</mark>

* The game automatically selects which of the three files to use for each player based on their account or client language settings—this is not defined here.
* Translation relies on the **English text**, not just the number: the server takes the English message, searches for identical text within `Message_Eng.txt` to identify the `Index`, and only then looks up that same `Index` in `Message_Por.txt` or `Message_Spn.txt`. Consequently:
  * Two different messages with the **exact same text** in `Message_Eng.txt` can lead to incorrect translations (the server cannot distinguish which one you intended).
  * `Message_Por.txt` and `Message_Spn.txt` must use the **same number and order** of `%d`/`%s` placeholders as `Message_Eng.txt` for a given `Index`—values ​​are populated after translation, using the original message as a template.
* Unused indices contain a blank space (`" "`) simply to avoid gaps in the numbering sequence.


# Notice

<mark style="color:green;">Messages that scroll across all players' screens in a rotation (one at a time, following the file's order).</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values ​​</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Sequential number (0, 1, 2...)</td><td>The message's position in the rotation.</td></tr><tr><td>[Eng Message]</td><td>Text in quotes</td><td>English text.</td></tr><tr><td>[Por Message]</td><td>Text in quotes</td><td>Portuguese text.</td></tr><tr><td>[Spn Message]</td><td>Text in quotes</td><td>Spanish text.</td></tr><tr><td>Type</td><td>Number</td><td>Visual style of the message.</td></tr><tr><td>Count</td><td>Number</td><td>How many times the message repeats on the screen.</td></tr><tr><td>Opacity</td><td>Number</td><td>Message transparency.</td></tr><tr><td>Delay</td><td>Number (milliseconds)</td><td>Interval between repetitions of the same message.</td></tr><tr><td>Red / Green / Blue</td><td>Number (0 to 255)</td><td>Text color.</td></tr><tr><td>Speed ​​</td><td>Number</td><td>Speed ​​at which the message scrolls across the screen.</td></tr><tr><td>RepeatTime</td><td>Number (seconds)</td><td>Duration the message is displayed before the server moves to the next one in the list.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Each player sees the message in the language configured for their account/client—the three language columns simply provide translations of the same notice, not different notices.
* The rotation never stops: once the `RepeatTime` for the last message elapses, the server returns to `Index` `0`.


# Monster


# MonsterAI


# MonsterAIAutomata

<mark style="color:green;">State machine that determines when a monster changes behavior (e.g., from "idle" to "chasing," from "chasing" to "attacking," or from "attacking" to "fleeing"). Used by</mark> <mark style="color:green;"></mark><mark style="color:green;">`MonsterAIUnit.txt`</mark><mark style="color:green;">.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Number</td><td>Number, one per state machine</td><td>Identifies this state machine. Referenced by the <code>Automata</code> column in <code>MonsterAIUnit.txt</code>.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Description of the transition (e.g., <code>"General -> Go"</code>), used for identification only.</td></tr><tr><td>Priority</td><td>Number, in sequence (0, 1, 2...)</td><td>Order in which this transition rule is evaluated within the same current state.</td></tr><tr><td>CurrentState</td><td>Number</td><td>The state the monster must currently be in for this rule to apply.</td></tr><tr><td>NextState</td><td>Number</td><td>The state the monster transitions to if the rule is triggered.</td></tr><tr><td>TransitionType</td><td>Number (fixed code)</td><td>Condition that triggers the state change (e.g., always, time-based, health-based, distance-based).</td></tr><tr><td>TransitionRate</td><td>Number (%)</td><td>Chance that the transition actually occurs when the condition is met.</td></tr><tr><td>TransitionValueType</td><td>Number, or <code>*</code></td><td>Determines how <code>TransitionValue</code> is interpreted. <code>*</code> = not used.</td></tr><tr><td>TransitionValue</td><td>Number, or <code>*</code></td><td>Value used by the condition (e.g., distance, time, health percentage). <code>*</code> = not used.</td></tr><tr><td>DelayTime</td><td>Number, in milliseconds</td><td>Minimum interval before this transition can be evaluated again.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* The states (`CurrentState`/`NextState`) are fixed internal server values (e.g., idle, chase, attack, flee)—the same numbering scheme is used across all state machines in the file.
* A single `CurrentState` may have multiple entries with different `Priority` values—the server evaluates the lowest `Priority` first.


# MonsterAIElement

<mark style="color:green;">Concrete actions that a monster can perform (move, attack, heal, flee, summon, etc.), used by</mark> <mark style="color:green;"></mark><mark style="color:green;">`MonsterAIUnit.txt`</mark><mark style="color:green;">.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number, one per action</td><td>Identifies this action. Referenced by the <code>AIClass...</code> slots in <code>MonsterAIUnit.txt</code>.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Action name, used for identification only.</td></tr><tr><td>Class</td><td>Number</td><td>Action category (groups actions of the same type).</td></tr><tr><td>Type</td><td>Number (fixed code)</td><td>Defines what the action actually does—see the table below.</td></tr><tr><td>SuccessRate</td><td>Number (%)</td><td>Chance that the action is actually performed when it is selected.</td></tr><tr><td>DelayTime</td><td>Number, in milliseconds</td><td>Minimum interval between repetitions of this action.</td></tr><tr><td>TargetType</td><td>Number, or <code>*</code></td><td>Determines how the monster selects the target for this action.</td></tr><tr><td>X / Y</td><td>Coordinates, or <code>*</code></td><td>Position used by movement actions that move to a fixed point (<code>Type</code> = "move to target location"). <code>*</code> = no fixed position used.</td></tr></tbody></table>

### <mark style="color:yellow;">Type Values</mark>

<table data-search="false"><thead><tr><th>Type</th><th>Action</th></tr></thead><tbody><tr><td>1</td><td>Common/normal behavior</td></tr><tr><td>11</td><td>Move freely</td></tr><tr><td>12</td><td>Move to a fixed point (uses <code>X</code>/<code>Y</code>)</td></tr><tr><td>13</td><td>Move the entire group</td></tr><tr><td>14</td><td>Move the entire group to a fixed point</td></tr><tr><td>21</td><td>Perform a normal attack</td></tr><tr><td>22</td><td>Perform an area attack</td></tr><tr><td>23</td><td>Perform a piercing attack (hits targets behind the primary target)</td></tr><tr><td>31</td><td>Heal itself</td></tr><tr><td>32</td><td>Heal the group</td></tr><tr><td>41</td><td>Flee/avoid</td></tr><tr><td>51</td><td>Support the group by healing</td></tr><tr><td>52</td><td>Support the group with a buff</td></tr><tr><td>62</td><td>Summon other monsters</td></tr><tr><td>64</td><td>Become immune</td></tr><tr><td>65</td><td>Summon nightmare monsters</td></tr><tr><td>66</td><td>Teleport</td></tr><tr><td>67</td><td>Use an attack skill</td></tr><tr><td>68</td><td>Switch AI profile</td></tr><tr><td>71</td><td>Event action</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* `Type` values come from a fixed server-defined list—it is not possible to create a new action type simply by editing this file.


# MonsterAIGroup

<mark style="color:green;">Scripted spawning of "intelligent" monster squads—similar to</mark> <mark style="color:green;"></mark><mark style="color:green;">`SetBase\`</mark><mark style="color:green;">, but each monster is assigned an AI profile directly from</mark> <mark style="color:green;"></mark><mark style="color:green;">`MonsterAIUnit.txt`</mark><mark style="color:green;">, and members of the same group recognize each other (they can heal allies, follow a leader, etc.). Used by events such as the Dark Elf invasion.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Number</td><td>Number, one per group</td><td>Identifies the squad. All monsters with the same <code>Number</code> recognize each other as members of the same group.</td></tr><tr><td>Guid</td><td>Number, unique within the group</td><td>Identifies this monster within the group.</td></tr><tr><td>Monster</td><td>Monster class number</td><td>The entity that spawns.</td></tr><tr><td>Rank</td><td><code>0</code> or <code>*</code></td><td><code>0</code> = this monster is the group leader. <code>*</code> = regular member.</td></tr><tr><td>StartAI</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIUnit.txt</code></td><td>Initial AI profile assigned to this monster.</td></tr><tr><td>AI1 / AI2 / AI3</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIUnit.txt</code></td><td>Alternate AI profiles that this monster may switch to later (triggered by a "switch AI profile" action in <code>MonsterAIElement.txt</code>).</td></tr><tr><td>CreateType</td><td>Number</td><td>Method used to create/spawn the monster.</td></tr><tr><td>Map</td><td>Map number</td><td>Map where the monster spawns.</td></tr><tr><td>X / Y</td><td>Coordinates</td><td>Spawn location.</td></tr><tr><td>Dir</td><td>Number from 0 to 7, or <code>*</code></td><td>Initial facing direction. <code>*</code> = random direction.</td></tr><tr><td>RegenType</td><td>Number</td><td>Whether and how this monster respawns after death.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Unlike `SetBase\`, the `Map` column is actually used here—there is no "filename determines the map" rule.
* `AI1`/`AI2`/`AI3` are not used automatically in sequence—they only become active if a `MonsterAIElement` of type "switch AI profile" explicitly references them.


# MonsterAIRule

<mark style="color:green;">Temporarily switches the AI profile of a monster class when a time- or event-based condition is met (e.g., a monster becomes more aggressive only during a specific date/time window, or while the Crywolf event is active). The default file is empty—no rules are configured.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number, one per rule</td><td>Identifies the rule.</td></tr><tr><td>Monster</td><td>Monster class number</td><td>Specifies which monsters the rule applies to.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Rule description, used for identification only.</td></tr><tr><td>AIUnit</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIUnit.txt</code></td><td>AI profile that becomes active while the rule is in effect.</td></tr><tr><td>RuleCondition</td><td><code>1</code>, <code>71</code>, or <code>72</code></td><td>Condition that activates the rule: <code>1</code> = specific date/time (uses <code>Month</code>/<code>Day</code>/<code>Week</code>/<code>Hour</code>/<code>Minute</code>), <code>71</code> = while Crywolf is starting, <code>72</code> = while Crywolf is ending.</td></tr><tr><td>WaitTime</td><td>Number</td><td>Delay before the rule is applied.</td></tr><tr><td>ContinuanceTime</td><td>Number</td><td>Duration for which the rule remains active after being triggered.</td></tr><tr><td>Month / Day / Week / Hour / Minute</td><td>Number, or <code>*</code></td><td>Specific date/time values, used only when <code>RuleCondition = 1</code>. <code>*</code> = any value.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* Only three conditions are supported (`1`, `71`, and `72`)—it is not possible to create a new condition simply by editing this file.


# MonsterAIUnit

<mark style="color:green;">An "AI profile" that can be assigned to a monster—links a state machine (</mark><mark style="color:green;">`MonsterAIAutomata.txt`</mark><mark style="color:green;">) to the concrete actions the monster performs in each situation (</mark><mark style="color:green;">`MonsterAIElement.txt`</mark><mark style="color:green;">).</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number, one per AI profile</td><td>Identifies this AI profile. This is the number used by <code>MonsterAIGroup.txt</code> to determine which AI a spawned monster will follow.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Profile name, used for identification only.</td></tr><tr><td>DelayTime</td><td>Number, in milliseconds</td><td>Interval between AI evaluations for this monster.</td></tr><tr><td>Automata</td><td>Number corresponding to a <code>Number</code> in <code>MonsterAIAutomata.txt</code></td><td>Specifies which state machine (Idle, Chase, Attack, Flee, etc.) this profile uses.</td></tr><tr><td>AIClassNormal</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIElement.txt</code>, or <code>*</code></td><td>Action executed while in the "Normal/Idle" state.</td></tr><tr><td>AIClassMove</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIElement.txt</code>, or <code>*</code></td><td>Action executed while in the "Move" state.</td></tr><tr><td>AIClassAttack</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIElement.txt</code>, or <code>*</code></td><td>Action executed while in the "Attack" state.</td></tr><tr><td>AIClassHeal</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIElement.txt</code>, or <code>*</code></td><td>Action executed while in the "Heal" state.</td></tr><tr><td>AIClassAvoid</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIElement.txt</code>, or <code>*</code></td><td>Action executed while in the "Flee/Avoid" state.</td></tr><tr><td>AIClassHelp</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIElement.txt</code>, or <code>*</code></td><td>Action executed while in the "Help/Support" state.</td></tr><tr><td>AIClassSpecial</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIElement.txt</code>, or <code>*</code></td><td>Action executed while in the "Special" state (summoning, teleporting, switching AI profiles, etc.).</td></tr><tr><td>AIClassEvent</td><td>Number corresponding to an <code>Index</code> in <code>MonsterAIElement.txt</code>, or <code>*</code></td><td>Action executed while in the "Event" state.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* A `*` in an action slot means that this AI profile does not define a specific action for that state.
* This file only defines the monster's "toolkit"—`MonsterAIAutomata.txt`, referenced by `Automata`, determines when the monster changes states.
* Regular monsters defined through `Monster.txt`/standard `SetBase\` files do not use this system—it is intended for monsters explicitly configured through `MonsterAIGroup.txt` (scripted squads, such as Dark Elf invasions).


# MonsterSkill


# MonsterSkill

<mark style="color:green;">Associates a monster class with the "skill kits" (</mark><mark style="color:green;">`MonsterSkillUnit.txt`</mark><mark style="color:green;">) it can use, with each kit tied to a specific trigger condition.</mark>

| Column         | Accepted Values                                                      | Description                                                                                                          |
| -------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| Monster        | Monster class number                                                 | Specifies which monster this row applies to.                                                                         |
| Name           | Text enclosed in quotes                                              | Present in the file, but **not read by the server**—it is effectively a dead column used only for visual annotation. |
| Type1 – Type10 | Number, or `*`                                                       | Trigger code that determines when the corresponding `UnitN` is used. `*` = empty slot.                               |
| Unit1 – Unit10 | Number corresponding to an `Index` in `MonsterSkillUnit.txt`, or `*` | Skill kit used for this trigger. `*` = empty slot.                                                                   |

### <mark style="color:yellow;">Notes</mark>

* The `Name` column exists in the file, but the server skips it during loading—changing its text has no effect whatsoever in-game.
* A monster can have up to 10 trigger/skill combinations simultaneously (`Type1`/`Unit1` through `Type10`/`Unit10`). Multiple slots may use the same `Type`; in that case, the server randomly selects one of the `Unit` entries that share that trigger.


# MonsterSkillElement

<mark style="color:green;">The concrete effect applied by a monster skill (stun, life drain, defense reduction, summoning, poison, etc.). Used by</mark> <mark style="color:green;"></mark><mark style="color:green;">`MonsterSkillUnit.txt`</mark><mark style="color:green;">.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number, one per effect</td><td>Identifies the effect. Referenced by the slots in <code>MonsterSkillUnit.txt</code>.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Effect name, used for identification only.</td></tr><tr><td>Type</td><td>Number (fixed code)</td><td>Defines what the effect does—see the table below.</td></tr><tr><td>SuccessRate</td><td>Number (%)</td><td>Chance that the effect is successfully applied when the skill is used.</td></tr><tr><td>ContinuanceTime</td><td>Number, in seconds</td><td>Duration of the effect.</td></tr><tr><td>IncAndDecType</td><td>Number (fixed code), or <code>*</code></td><td>Determines how <code>IncAndDecValue</code> is applied—see the table below. <code>*</code> = not used.</td></tr><tr><td>IncAndDecValue</td><td>Number, or <code>*</code></td><td>Effect value (percentage or fixed amount, depending on <code>IncAndDecType</code>). <code>*</code> = not used.</td></tr><tr><td>NullifiedMagic</td><td>Number, or <code>*</code></td><td>Player skill that nullifies or resists this effect. <code>*</code> = none.</td></tr><tr><td>CharacterClass</td><td>Number, or <code>0</code></td><td>Restricts the effect to a specific character class. <code>0</code> = any class.</td></tr><tr><td>CharacterLevel</td><td>Number, or <code>0</code></td><td>Restricts the effect to characters at or above a certain level. <code>0</code> = no restriction.</td></tr></tbody></table>

### <mark style="color:yellow;">Type Values</mark>

<table data-search="false"><thead><tr><th>Type</th><th>Effect</th></tr></thead><tbody><tr><td>0</td><td>Stun</td></tr><tr><td>1</td><td>Push/move the target</td></tr><tr><td>2</td><td>Modify HP</td></tr><tr><td>3</td><td>Modify Mana</td></tr><tr><td>4</td><td>Modify AG (Shield)</td></tr><tr><td>5</td><td>Modify Defense</td></tr><tr><td>6</td><td>Modify Attack</td></tr><tr><td>7</td><td>Modify equipment durability</td></tr><tr><td>8</td><td>Summon monsters</td></tr><tr><td>9</td><td>Knockback</td></tr><tr><td>10</td><td>Modify Energy</td></tr><tr><td>11</td><td>Modify Strength</td></tr><tr><td>12</td><td>Modify Agility</td></tr><tr><td>13</td><td>Modify Vitality</td></tr><tr><td>14</td><td>Remove a character skill</td></tr><tr><td>15</td><td>Grant resistance to a skill</td></tr><tr><td>16</td><td>Grant immunity to a skill</td></tr><tr><td>17</td><td>Teleport</td></tr><tr><td>18</td><td>Double the monster's HP</td></tr><tr><td>19</td><td>Poison</td></tr><tr><td>20</td><td>Normal attack (no special effect)</td></tr><tr><td>21</td><td>Berserk</td></tr></tbody></table>

### <mark style="color:yellow;">IncAndDecType Values</mark>

<table data-search="false"><thead><tr><th>IncAndDecType</th><th>Description</th></tr></thead><tbody><tr><td><code>0</code></td><td>None</td></tr><tr><td><code>1</code></td><td>Increase by percentage</td></tr><tr><td><code>2</code></td><td>Decrease by percentage</td></tr><tr><td><code>11</code></td><td>Increase by a fixed value</td></tr><tr><td><code>12</code></td><td>Decrease by a fixed value</td></tr><tr><td><code>100</code></td><td>Percentage, applied repeatedly over time</td></tr><tr><td><code>101</code></td><td>Percentage increase, applied repeatedly over time</td></tr><tr><td><code>102</code></td><td>Percentage decrease, applied repeatedly over time</td></tr><tr><td><code>110</code></td><td>Fixed value, applied repeatedly over time</td></tr><tr><td><code>111</code></td><td>Fixed value increase, applied repeatedly over time</td></tr><tr><td><code>112</code></td><td>Fixed value decrease, applied repeatedly over time</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* `Type` and `IncAndDecType` are defined by fixed server-side lists—it is not possible to create a new effect type simply by editing this file.
* The "repeated over time" effects (`100` and above) apply their value periodically for the duration of the effect, rather than only once when the effect is applied.


# MonsterSkillUnit

<mark style="color:green;">A monster "skill kit": defines who is affected, the effect range, and which effects (</mark><mark style="color:green;">`MonsterSkillElement.txt`</mark><mark style="color:green;">) are applied simultaneously.</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Index</td><td>Number, one per kit</td><td>Identifies the skill kit. Referenced by the <code>UnitN</code> columns in <code>MonsterSkill.txt</code>.</td></tr><tr><td>Name</td><td>Text enclosed in quotes</td><td>Skill kit name, used for identification only.</td></tr><tr><td>TargetType</td><td><code>0</code>, <code>1</code>, or <code>2</code></td><td>Determines who is affected: <code>0</code> = nobody, <code>1</code> = the monster's normal attack target, <code>2</code> = the monster itself.</td></tr><tr><td>ScopeType</td><td><code>0</code>, <code>1</code>, or <code>*</code></td><td>Effect range: <code>0</code> = area effect, <code>1</code> = only the directly hit target. <code>*</code> = no area (single-target effect only).</td></tr><tr><td>ScopeValue</td><td>Number</td><td>Area radius, used when <code>ScopeType = 0</code>.</td></tr><tr><td>Delay</td><td>Number, in milliseconds</td><td>Minimum interval between uses of this skill kit.</td></tr><tr><td>Slot1 – Slot5</td><td>Number corresponding to an <code>Index</code> in <code>MonsterSkillElement.txt</code>, or <code>*</code></td><td>Effects applied when this kit is used (up to 5 simultaneously). <code>*</code> = empty slot.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* A skill kit can stack multiple effects from `MonsterSkillElement.txt` at the same time (`Slot1`–`Slot5`). This is how a single monster attack can, for example, both stun and reduce the target's defense simultaneously.


# MovePath


# MovePath\_35

<mark style="color:green;">A waypoint network used to guide scripted monster groups to a distant destination without crossing map obstacles—currently used only by Crywolf, for the Dark Elf invasion monsters marching toward the statue.</mark>

| Column | Accepted Values | Description                                                                                               |
| ------ | --------------- | --------------------------------------------------------------------------------------------------------- |
| State  | Number          | Present in the file, but the server **does not use this value anywhere**—it is effectively a dead column. |
| Map    | Map number      | The map to which this waypoint belongs.                                                                   |
| X / Y  | Coordinates     | Waypoint position.                                                                                        |

### <mark style="color:yellow;">Notes</mark>

* Despite the filename (`MovePath_35`), this number is not automatically read from anywhere—the Crywolf path is referenced directly by the file's full name in the server code. Renaming the file would cause the server to stop finding it.
* The server selects the waypoint closest to the monster's current position (within a radius of 10 tiles) and, among those candidates, chooses the one closest to the final destination. This is how the group "hops" from waypoint to waypoint until it arrives, rather than moving in a straight line.
* This is currently the only file of this type referenced by the server (used exclusively by the Crywolf map). Creating a new one would also require referencing it elsewhere in the server code—it is not automatically discovered based on its folder location.


# SetBase


# Event


# 000 - MapName

## <mark style="color:yellow;">SetBase\Event — Event Instance Maps</mark>

<mark style="color:green;">Defines the static population of event instance maps (Blood Castle, Chaos Castle, Devil Square, Illusion Temple, Imperial Guardian): the entrance guard NPC and the regular monsters that populate the corridor/arena. It uses the same format as</mark> <mark style="color:green;"></mark><mark style="color:green;">`SetBase`</mark> <mark style="color:green;"></mark><mark style="color:green;">in the root folder—the only difference is the type of content stored in each file.</mark>

<mark style="color:orange;">**This is not the event mechanism itself.**</mark> <mark style="color:orange;"></mark><mark style="color:orange;">Boss appearances, event phases, timers, and closing conditions are defined by the event's own data file (</mark><mark style="color:orange;">`BloodCastle.dat`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`ChaosCastle.dat`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`DevilSquare.dat`</mark><mark style="color:orange;">, etc.), each of which implements its own separate spawn logic.</mark>

<mark style="color:orange;">The filename must begin with three digits followed by</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`-`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(e.g.,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`011 - Blood Castle 1.txt`</mark><mark style="color:orange;">). Each file contains one or more blocks, identified by a number (</mark><mark style="color:orange;">`0`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`1`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`2`</mark><mark style="color:orange;">,</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`3`</mark><mark style="color:orange;">, or</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`4`</mark><mark style="color:orange;">) on its own line and terminated by</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`end`</mark><mark style="color:orange;">.</mark>

### <mark style="color:yellow;">Section</mark>  <mark style="color:yellow;"></mark><mark style="color:yellow;">`0`</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">and Section</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">`4`</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">— Fixed Spawn at an Exact Position</mark>

| Column                | Accepted Values             | Description                                        |
| --------------------- | --------------------------- | -------------------------------------------------- |
| Monster               | Monster/NPC class number    | The entity that spawns.                            |
| Map                   | Map number                  | **No effect** — see notes.                         |
| Range                 | Number                      | Monster movement radius around its spawn point.    |
| PositionX / PositionY | Coordinates                 | Spawn location.                                    |
| Direction             | Number from 0 to 7, or `-1` | Initial facing direction. `-1` = random direction. |
| Comment               | Text after `//`             | Free-form note; ignored by the game.               |

<mark style="color:orange;">In the default files, block</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`0`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">contains the entrance guard NPC (e.g., the Archangel), while block</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`4`</mark> <mark style="color:orange;"></mark><mark style="color:orange;">(labeled "EVENT" in comments only) contains the regular monsters in the corridor/arena, one per line.</mark>

### <mark style="color:yellow;">Section</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">`2`</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">— Fixed Spawn with Slight Random Variation</mark>

<mark style="color:orange;">Uses the same columns as blocks</mark> <mark style="color:orange;"></mark><mark style="color:orange;">`0`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`4`</mark><mark style="color:orange;">, but the final position (</mark><mark style="color:orange;">`PositionX`</mark><mark style="color:orange;">/</mark><mark style="color:orange;">`PositionY`</mark><mark style="color:orange;">) is randomly selected within a 7x7 area around the specified point—chosen once when the server starts, and chosen again (within an even smaller area) each time the monster respawns.</mark>

### <mark style="color:yellow;">Section</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">`1`</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">and Section</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">`3`</mark> <mark style="color:yellow;"></mark><mark style="color:yellow;">— Multiple Monsters Within an Area</mark>

<table data-search="false"><thead><tr><th>Column</th><th>Accepted Values</th><th>Description</th></tr></thead><tbody><tr><td>Monster</td><td>Monster class number</td><td>The entity that spawns.</td></tr><tr><td>Map</td><td>Map number</td><td><strong>No effect</strong> — see notes.</td></tr><tr><td>Range</td><td>Number</td><td>Movement radius for each monster around its individual spawn point.</td></tr><tr><td>PositionX / PositionY</td><td>Coordinates</td><td>One corner of the spawn area.</td></tr><tr><td>TargetX / TargetY</td><td>Coordinates</td><td>Opposite corner of the spawn area—each monster spawns at a random point within the rectangle defined by both corners.</td></tr><tr><td>Direction</td><td>Number from 0 to 7, or <code>-1</code></td><td>Initial facing direction. <code>-1</code> = random.</td></tr><tr><td>Count</td><td>Number</td><td>Number of monsters of this type spawned throughout the area.</td></tr><tr><td>Value <em>(Block 3 only)</em></td><td>Number</td><td>Additional value associated with this spawn group.</td></tr><tr><td>Comment</td><td>Text after <code>//</code></td><td>Free-form note; ignored by the game.</td></tr></tbody></table>

### <mark style="color:yellow;">Notes</mark>

* **The `Map`/`Lorencia` column inside the file has no effect whatsoever.** The actual map is determined by the three digits in the **filename**. To move a spawn group to another map, the file must be renamed or moved—editing the column inside the file changes nothing.
* Blocks `0` and `4` behave identically when determining spawn positions. The distinction between them is handled elsewhere in the server and does not affect where monsters spawn.
* These monsters are always present in the instance map, regardless of whether the event is currently running—they are not created or removed by the event timer.




---

[Next Page](/llms-full.txt/1)

