Monster Configuration
The Monster system controls all NPC and monster behavior in the game including spawning, stats, AI, and skills.
Configuration Files#
Core Monster Definitions#
| File | Purpose |
|---|---|
| Monster.xml | Monster stats, levels, resistances, regen time |
Spawn Configuration#
| File/Directory | Purpose |
|---|---|
| MonsterSetBase/ | Directory containing per-map spawn files (e.g., 000 - Lorencia.xml, 002 - Devias.xml) |
| KanturuMonsterSetBase.xml | Kanturu event map spawns (loaded separately by the Kanturu system) |
Monster Skills#
| File | Purpose |
|---|---|
| MonsterSkill.xml | Assigns skills to specific monsters |
| MonsterSkillUnit.xml | Defines skill behaviors (targeting, scope, delay) |
| MonsterSkillElement.xml | Defines skill effects (damage, debuffs, buffs) |
Advanced AI System#
| File | Purpose |
|---|---|
| MonsterAIGroup.xml | Assigns AI personalities to monster spawns |
| MonsterAIUnit.xml | Defines complete AI personalities (links automata to actions) |
| MonsterAIAutomata.xml | State machine definitions (when to change behavior) |
| MonsterAIElement.xml | Atomic AI actions (what to do in each state) |
| MonsterAIRule.xml | Time-scheduled per-class AI Unit overrides (shipped file is empty; loader and dispatcher are wired) |
File Location#
All monster configs are in: Data/Monster/
Basic spawn files are in: Data/Monster/MonsterSetBase/ (directory with per-map XML files)
Workflow Overview#
Adding a New Monster#
- Define stats in Monster.xml - Add
<Info>entry with unique Index, stats, resistances, RegenTime - Assign skills (optional) in MonsterSkill.xml - Add
<Monster>entry linking monster Index to skill units - Configure spawns - Choose one method:
- Basic spawn: Edit appropriate map file in MonsterSetBase/ directory
- Advanced AI spawn: Create entries in MonsterAIGroup.xml with AI personality
Modifying Monster Behavior#
- Change stats - Edit Monster.xml (Level, Life, DamageMin/Max, Defense, etc.)
- Change spawn density - Edit Count attribute in map-specific MonsterSetBase/*.xml file (Type 1 or 3 only)
- Change spawn locations - Edit X/Y (and TX/TY for Type 1/3) coordinates in map-specific file
- Change respawn time - Edit RegenTime in Monster.xml (in seconds, server multiplies by 1000)
- Add/remove skills - Edit MonsterSkill.xml (add or remove
<Monster>entry) - Change AI behavior - Edit MonsterAIGroup.xml (for AI-controlled monsters only)
Creating Custom Skills#
- Define effects in MonsterSkillElement.xml - Create Element entries
- Define behavior in MonsterSkillUnit.xml - Create Unit entry referencing Elements
- Assign to monster in MonsterSkill.xml - Reference Unit index
Important Concepts#
Spawn File Loading Behavior#
The GameServer loads monster configuration files at startup in this order:
KanturuMonsterSetBase.xml- Kanturu event spawn list (200-entry table)MonsterAIAutomata.xml,MonsterAIElement.xml,MonsterAIGroup.xml,MonsterAIRule.xml,MonsterAIUnit.xmlMonster.xml- Monster stat definitions- All
.xmlfiles in theMonsterSetBase/directory (one file per map), appended into one global table MonsterSkillElement.xml,MonsterSkillUnit.xml,MonsterSkill.xml
After step 4 the server logs [MonsterSetBase] loaded N / 20000 entries, and [MonsterSetBase] CAP HIT if the table filled.
Spawn directory loading behavior:
- Server scans the appropriate spawn directory and loads ALL
.xmlfiles found - Files are processed in alphabetical order by filename
- If you add a new map spawn file, just place it in the directory - no registry file needed
- No master spawn registry file exists
Monster Index#
Every monster has a unique Index number used throughout all configs:
- 0-99: Common monsters (Bull Fighter, Spider, etc.)
- 200-299: NPCs (Trainers, merchants, guards)
- 300+: Special monsters and bosses
Spawn Types#
| Type | Behavior | Use Case |
|---|---|---|
| 0 | Fixed position | NPCs, guards, bosses |
| 1 | Count monsters in rectangle defined by X,Y and TX,TY | Normal monster groups |
| 2 | Single monster, X/Y offset by +/-3 at load time | Scattered spawns |
| 3 | Same as Type 1 but filtered out of normal init; activated by Invasion Manager using Value | Invasions, White Wizard, custom events |
| 4 | Single monster at fixed X/Y; filtered out of normal init; activated by event code | Blood Castle, Devil Square, Illusion Temple, Imperial Guardian, Raklion |
Skills System#
Skills are modular:
- Elements define effects (damage, stun, heal)
- Units combine Elements into a complete skill
- MonsterSkill assigns Units to monsters
A monster can have up to 6 skill unit slots.
Dependencies#
Basic Monster System#
Monster.xml (defines stats, RegenTime by Index)
↑
| (references monster Index)
|
MonsterSetBase/*.xml (spawns monsters at locations)
Skill System#
Monster.xml (monster Index)
↑
| (references monster Index)
|
MonsterSkill.xml (assigns skill units to monsters)
↓ (references unit Index)
MonsterSkillUnit.xml (skill behavior)
↓ (references element Index)
MonsterSkillElement.xml (skill effects)
Advanced AI System#
MonsterAIGroup.xml (spawns monsters with AI)
↓ (references StartAI, AI01-03)
MonsterAIUnit.xml (AI personality)
↓ (references Automata + Elements)
|
+→ MonsterAIAutomata.xml (state transitions)
+→ MonsterAIElement.xml (actions in each state)
Common Tasks#
Increase Monster Difficulty#
- Edit Monster.xml - Increase Level, DamageMin/Max, Defense
- Optionally add skills in MonsterSkill.xml
Add Boss Spawn#
- Ensure boss exists in Monster.xml with proper stats
- Add Type="0" entry in appropriate map file with fixed X/Y
- Set high RegenTime in Monster.xml (e.g., 3600 = 1 hour)
Create Monster-Dense Zone#
- Find the appropriate map file in
Data/Monster/MonsterSetBase/directory - Add multiple
Type="1"entries with sameClassattribute - Set
Countattribute to desired density (e.g.,Count="20"for 20 monsters per spawn point) - Define spawn area with
X,Y,TX,TYcoordinates (monsters spawn randomly within this rectangle)
Disable Monster Skills#
- Find monster Index in MonsterSkill.xml
- Change UnitType/UnitIndex to "*" (wildcard) to disable slots
- Or remove entire Monster entry
Related Pages#
- Kanturu event state machine - Stage timing that drives
KanturuMonsterSetBase.xmlspawn groups - MapManager - Map index table; spawn entries on maps not enabled here are dropped at load time
Next Steps#
- Monster Stats Configuration - Define monster attributes
- Monster Spawning - Configure spawn locations and density
- Monster Skills - Assign and create monster skills