For the complete documentation index, see llms.txt. This page is also available as Markdown.

Monster

Monster stats, levels, damage, defense, resistances, respawn time

Defines all monster and NPC base statistics including level, health, mana, damage, defense, attack patterns, drop rates, and respawn timing. Each entry is keyed by Index and is referenced from spawn and skill files.

File Location

Data/Monster/Monster.xml

Dependencies

Depends On
Purpose

None

Base stats file, no dependencies

Used By
Purpose

Per-map spawn files reference monsters by Index (Class)

Kanturu event spawns reference monsters by Index

Skill assignments reference monsters by Index

AI groups reference monsters by Index

Rules target monsters by Class (monster Index) for time-scheduled AI Unit overrides

AttackType selects a skill entry used as the monster's attack

Configuration Structure

Each monster is defined with an <Info> element containing all stats. The loader creates one record per Index and stores it in a fixed-size table; duplicate Index values overwrite earlier entries.

Monster Attributes

Attribute
Type
Description

Index

int

Unique monster ID. Must be in range 0..999. Used as the key in spawn files and skill assignments.

Rate

int

Stored on the record but not consumed by the base stats loader. Legacy spawn-rate multiplier.

Name

string

Descriptive name (up to 31 characters). Used for server-side logs and admin output; not the client-visible name.

Level

int

Monster level. Used for experience scaling, drop tier lookup, and level-based damage calculations.

Life

int

Maximum HP. The loaded value is multiplied by the MonsterLifeRate server setting before being stored. Monster dies when HP reaches 0.

Mana

int

Maximum Mana. Unused by most monsters; kept for skill-casting monsters that consume MP.

DamageMin

int

Minimum physical damage per hit.

DamageMax

int

Maximum physical damage per hit. Actual damage is randomised between min and max.

Defense

int

Physical defense. Reduces incoming physical damage.

MagicDefense

int

Magic defense. Reduces incoming magic damage.

AttackRate

int

Hit accuracy. Compared against target defense rate to decide whether an attack connects.

DefenseRate

int

Evasion. Reduces the chance of being hit.

MoveRange

int

Maximum tile distance the monster can wander from its spawn point. 0 means stationary.

AttackType

int

Attack skill ID. 0 = plain melee, non-zero = a skill entry from Skill.txt. Special value 150 = monster area attack (used for bosses). See Attack Skills below.

AttackRange

int

Maximum tile distance at which the monster can attack. 1 = melee, larger values = ranged.

ViewRange

int

Aggression radius in tiles. Monsters inside this range of a player become hostile.

MoveSpeed

int

Movement pacing value in milliseconds. Used as the base action delay between movement steps; lower values produce faster monsters. Typical value is 400.

AttackSpeed

int

Delay between attacks in milliseconds. Lower values attack more frequently.

RegenTime

int

Respawn delay in seconds after the monster dies. Zero means the monster does not respawn through the generic respawn path (event or map logic handles it).

Attribute

int

Behaviour and map-tagging flag. Not an elemental attribute. Values such as 51..57 tag Kalima gate-keepers, 58 tags the Kalima boss, 62 tags Castle Deep monsters, and 100+ marks certain event monsters. For regular monsters a value of 2 is common; the exact meaning is map- and class-specific.

ItemRate

int

Base drop chance out of 10000 used by the item drop roll. Higher values increase how often the monster drops any item.

MoneyRate

int

Base zen drop weight. Combined with level to produce the actual zen amount.

MaxItemLevel

int

Upper bound on the level of items that can drop from this monster (0..15).

MonsterSkill

int

Legacy field. Loaded into the record but not consumed by runtime combat logic. Monster skill bindings are driven by MonsterSkill.xml via the monster Index, not this field.

Resistance0

int

Ice resistance. Used as the denominator in a rand % (value+1) == 0 damage check; higher values resist more often. 0 = never resist, 255 (0xFF) = always resist.

Resistance1

int

Poison resistance. Same formula as Resistance0.

Resistance2

int

Lightning resistance. Same formula as Resistance0.

Resistance3

int

Fire resistance. Same formula as Resistance0.

The server stores 7 resistance slots internally (Ice / Poison / Lightning / Fire / Earth / Wind / Water), but Monster.xml only loads Resistance0..Resistance3. Slots 4..6 are always 0 for monsters in Season 6.3; only items can fill them through their own resistance attributes.

Attack Skills

AttackType specifies the skill a monster uses when it attacks. 0 disables the skill path entirely and the monster performs a plain melee swing. Any non-zero value is looked up as a skill ID in Skill.txt and attached to the monster at spawn. The special value 150 is the "monster area attack" skill used by bosses; other common values are listed below.

Value
Behaviour

0

Plain melee, no skill

1

Poison

2

Meteorite (magic attack)

3

Lightning

7

Ice (slow effect)

11

Hell Fire (DoT)

17

Ice Arrow

150

Monster area attack (AoE melee used by bosses)

The skill's own Type field (from Skill.txt) selects which resistance slot the attack is checked against:

  • Type 0 -> Ice, checked against Resistance0

  • Type 1 -> Poison, checked against Resistance1

  • Type 2 -> Lightning, checked against Resistance2

  • Type 3 -> Fire, checked against Resistance3

  • Types 4..6 (Earth / Wind / Water) route to the higher resistance slots, which are not set from Monster.xml.

Monster Index Ranges

Index ranges below are conventions used across the shipped data files, not enforced by the loader. The server accepts any Index in 0..999.

Range
Typical use

0-99

Common field monsters

100-199

Mid-tier and elite variants

200-299

NPCs (trainers, merchants, guards, quest givers)

300-399

Boss monsters

400+

Event, dungeon and special monsters (Castle Siege, Kanturu, Crywolf, Kalima, etc.)

Important Behavior

Life Rate Scaling

The Life value you see in the file is scaled by the MonsterLifeRate server setting when the monster table is loaded. If the server rate is 150, a monster with Life="1000" is stored with 1500 HP.

Respawn Time

RegenTime is expressed in seconds. A value of 10 means the monster respawns 10 seconds after death.

Rule-of-thumb ranges used in the shipped data:

  • Normal field monsters: 10

  • Mini-bosses: 60-300

  • Major bosses: 600-3600 (10 minutes to 1 hour)

  • Event bosses: RegenTime is usually ignored; the owning event decides when to respawn

Drop Calculations

ItemRate is a base chance out of 10000 used by the server's drop roll. Higher values mean more frequent drops. Actual drops are also affected by:

  • MaxItemLevel - caps the level of items that can be rolled

  • MoneyRate - base zen weight

  • Server-wide drop-rate multipliers and event bonuses

Attack Speed vs Move Speed

Both values are in milliseconds and lower values are faster:

  • MoveSpeed 400 is the default for most ground monsters

  • MoveSpeed 200 is roughly twice as fast

  • AttackSpeed 1600-2000 is typical

  • AttackSpeed 800-1200 produces a visibly aggressive attacker

Resistances

Resistance is rolled as rand % (resist + 1) == 0 -> damage goes through, otherwise the hit is fully resisted and deals no damage. The special value 0xFF (255) is handled as "always resist". Iron Defense effects and certain high-Authority items also force a resist.

Resistance value and resulting resist chance:

  • 0 -> 0% resist (always damaged)

  • 1 -> 50% resist

  • 3 -> 75% resist

  • 6 -> ~85.7% resist

  • 9 -> 90% resist

  • 15 -> ~93.75% resist

  • 19 -> 95% resist

  • 99 -> 99% resist

  • 255 (0xFF) -> 100% immune (special case)

Resistance is all-or-nothing. If the resist check succeeds, the attack deals no damage. If it fails, normal damage is applied (still reduced by Defense or MagicDefense).

Examples

Low-level monster, plain melee, 10-second respawn, no resistances.

High-HP boss, ~85.7% resist to all four elements, 150-second respawn.

Non-combat NPC with no movement or attacks. RegenTime="0" keeps the NPC in place permanently.

Plain melee attack with an extended AttackRange for arrow-style hits, 50% resist to each element.

Uses the Lightning skill (AttackType="3") for its attack. 75% resist to lightning, ~66.7% to each of the other three elements.

Uses the monster area attack (AttackType="150"). ~90.9% resist to Ice / Poison / Lightning, ~93.75% to Fire.

Common Tasks

Make a Monster Harder

Increase any of:

  • Level (affects level-based calculations)

  • Life

  • DamageMin / DamageMax

  • Defense / MagicDefense

  • Resistance0..3

Make a Monster Faster

Decrease:

  • MoveSpeed (shorter step delay = faster movement)

  • AttackSpeed (shorter interval between attacks)

Increase Drops

Increase:

  • ItemRate (more frequent item drops)

  • MaxItemLevel (higher-level item pool)

  • MoneyRate (larger zen drops)

Create a Rare Boss

  1. Set a long RegenTime (3600 = one hour).

  2. Raise Level, Life, Defense, AttackRate and DefenseRate.

  3. Raise ItemRate / MaxItemLevel so the kill is worthwhile.

  4. Set non-zero resistances and pair with MonsterSkill.xml to give the boss its special abilities.

Common Issues

Monster.xml is only read at server start. Monsters that are already spawned keep their old stats until they die and respawn.

Last updated