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

Monster Configuration

Monster and NPC definitions - stats, spawn locations, AI, skills, map-specific overrides

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 stats, levels, resistances, regen time

Spawn Configuration

File/Directory
Purpose

Directory containing per-map spawn files (e.g., 000 - Lorencia.xml, 002 - Devias.xml)

Kanturu event map spawns (loaded separately by the Kanturu system)

How spawns load: The server scans the MonsterSetBase/ directory and loads every .xml file found. There is no master registry file; files load alphabetically.

Monster Skills

File
Purpose

Assigns skills to specific monsters

Defines skill behaviors (targeting, scope, delay)

Defines skill effects (damage, debuffs, buffs)

Advanced AI System

File
Purpose

Assigns AI personalities to monster spawns

Defines complete AI personalities (links automata to actions)

State machine definitions (when to change behavior)

Atomic AI actions (what to do in each state)

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)

How spawns load: The GameServer scans MonsterSetBase/ directory and loads ALL .xml files found. Each file is named by map number and name (e.g., 000 - Lorencia.xml, 002 - Devias.xml). There is no master registry file controlling which maps load.

Workflow Overview

Adding a New Monster

  1. Define stats in Monster.xml - Add <Info> entry with unique Index, stats, resistances, RegenTime

  2. Assign skills (optional) in MonsterSkill.xml - Add <Monster> entry linking monster Index to skill units

  3. Configure spawns - Choose one method:

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

  1. Define effects in MonsterSkillElement.xml - Create Element entries

  2. Define behavior in MonsterSkillUnit.xml - Create Unit entry referencing Elements

  3. 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:

  1. KanturuMonsterSetBase.xml - Kanturu event spawn list (200-entry table)

  2. MonsterAIAutomata.xml, MonsterAIElement.xml, MonsterAIGroup.xml, MonsterAIRule.xml, MonsterAIUnit.xml

  3. Monster.xml - Monster stat definitions

  4. All .xml files in the MonsterSetBase/ directory (one file per map), appended into one global table

  5. 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 .xml files 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

Type 1 vs Type 2: Type 1 spawns require TX/TY coordinates defining a spawn area and a Count field. Type 2 has no TX/TY and no Count; the loader offsets the configured X/Y by a random value in the range -3..+3 once at load time.

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

Skill System

Advanced AI System

Common Tasks

Increase Monster Difficulty

  1. Edit Monster.xml - Increase Level, DamageMin/Max, Defense

  2. Optionally add skills in MonsterSkill.xml

Add Boss Spawn

  1. Ensure boss exists in Monster.xml with proper stats

  2. Add Type="0" entry in appropriate map file with fixed X/Y

  3. Set high RegenTime in Monster.xml (e.g., 3600 = 1 hour)

Create Monster-Dense Zone

  1. Find the appropriate map file in Data/Monster/MonsterSetBase/ directory

  2. Add multiple Type="1" entries with same Class attribute

  3. Set Count attribute to desired density (e.g., Count="20" for 20 monsters per spawn point)

  4. Define spawn area with X, Y, TX, TY coordinates (monsters spawn randomly within this rectangle)

Disable Monster Skills

  1. Find monster Index in MonsterSkill.xml

  2. Change UnitType/UnitIndex to "*" (wildcard) to disable slots

  3. Or remove entire Monster entry

  • Kanturu event state machine - Stage timing that drives KanturuMonsterSetBase.xml spawn groups

  • MapManager - Map index table; spawn entries on maps not enabled here are dropped at load time

Next Steps

Last updated