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
None
Base stats file, no dependencies
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
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.
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
Resistance0Type 1 -> Poison, checked against
Resistance1Type 2 -> Lightning, checked against
Resistance2Type 3 -> Fire, checked against
Resistance3Types 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.
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 rolledMoneyRate- base zen weightServer-wide drop-rate multipliers and event bonuses
Attack Speed vs Move Speed
Both values are in milliseconds and lower values are faster:
MoveSpeed400 is the default for most ground monstersMoveSpeed200 is roughly twice as fastAttackSpeed1600-2000 is typicalAttackSpeed800-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)LifeDamageMin/DamageMaxDefense/MagicDefenseResistance0..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
Set a long
RegenTime(3600 = one hour).Raise
Level,Life,Defense,AttackRateandDefenseRate.Raise
ItemRate/MaxItemLevelso the kill is worthwhile.Set non-zero resistances and pair with MonsterSkill.xml to give the boss its special abilities.
Common Issues
MoveRange="0" produces stationary monsters. Use it deliberately for NPCs and pinned spawns; set 1-3 for normal wandering monsters.
AttackSpeed="0" can cause the attack timer to misbehave. Use at least 800-1000 for very fast attackers and 1600-2000 for typical monsters.
Very large ViewRange values cost CPU because every nearby player is evaluated. Keep to 3-7 for normal monsters; reserve higher values for bosses.
Monster.xml is only read at server start. Monsters that are already spawned keep their old stats until they die and respawn.
Related Files
MonsterSetBase/ - where monsters spawn
KanturuMonsterSetBase.xml - Kanturu spawns
MonsterSkill.xml - assigns skill units to monsters
MonsterSkillUnit.xml - skill unit definitions
MonsterSkillElement.xml - element effects referenced by skill units
MonsterAIGroup.xml - AI group memberships
MonsterAIUnit.xml - AI per-monster unit settings
MonsterAIRule.xml - AI rule bindings
MonsterAIElement.xml - AI element actions
MonsterAIAutomata.xml - AI state machine definitions
Skill.txt - skill IDs used by
AttackType
Last updated