Define monsters with stats, behaviors, and spawn rules.
Mobs & AI
The Mobs editor lets you create enemies and creatures. Each mob has combat stats, AI behavior, abilities, loot, and a visual appearance.

Creating a Mob
| Property | Description |
|---|---|
| Name | Display name (e.g., "Forest Slime") |
| HP, Mana | Health and mana pools |
| Attack, Defense | Physical combat stats |
| Magic Power, Magic Resist | Magical combat stats |
| Level | Mob level (affects XP granted and difficulty) |
| AI Behavior | How the mob acts (see below) |
| Abilities | Which attacks/spells it can use |
| Loot Table | What items it drops when defeated |
| Sprite | Visual appearance and animations |
| Light Emission | Optional glow effect |
How Kill XP Is Paid Out
A kill's XP is not pasted straight onto the character — it flows XP Reward → damage split → level scaling → skill split, and each step can shrink it:
1. Damage split — the authored XP Reward is divided among everyone who damaged the mob, by damage share. 2. Level ("con") scaling — only for mobs with a fixed level (auto-scale off): a mob 10 or more levels below its killer pays just 10% of its XP. Mobs set to auto-scale always pay full XP. 3. Skill split — the surviving amount is divided across the skills the kill trains (the weapon type's linked skills, or the ability's), with a minimum of 1 each.
So a level-5 wolf with XP Reward 5, killed by a veteran character, pays 5 × 0.1 = 0.5 → 1 XP per skill — the floor every step rounds up to. If kills in your world read "1 XP" everywhere: raise XP Reward (values under ~20 disappear into the floors), and either switch mobs to auto-scale or keep their fixed levels near your players' levels.
Spawn Variants (different-looking spawns)
One mob definition can spawn with more than one look — a wolf pack with grey, brown and rare white wolves is one wolf mob with two variants, not three definitions. The server rolls one look per spawn, so every player sees the same creature, and respawns re-roll naturally.
Where: Mob editor → Avatar tab → Spawn Variants, under the avatar editor.
How to set it up:
1. Author the mob's base look in the Avatar editor as usual. 2. Click + Add Variant and pick the variant's sprite sheet. Use a sheet laid out like the base (same frame grid) — the variant reuses the base look's layout and animations and only swaps the sheet. 3. Set the weight. The base look always rolls with weight 1; each variant competes with its own weight — 1 is as common as the base, 0.1 is a rare skin, 0 turns the variant off without deleting it. 4. Save. The next spawns (and respawns) roll among the looks; already-spawned mobs keep the look they rolled.
| Field | What it does |
|---|---|
| Sprite Sheet | The alternate sheet drawn for this variant. |
| Label | Optional editor-only name ("Albino"). Players never see it. |
| Weight | Spawn chance relative to the base look's fixed weight of 1. 0 = disabled. |
Gotchas:
- A variant only changes the look — stats, loot, abilities and name stay the mob's own. For a stronger rare, make a separate mob definition.
- Sheets with a different frame grid than the base will animate wrongly — the variant borrows the base's frame layout.
- The roll happens per spawn on the server; there is no way to force a specific variant at a specific spawn point.
- Rows with no sprite sheet picked are dropped on save.
AI Behaviors
| Behavior | Description |
|---|---|
| Passive | Won't attack unless attacked first (the default) |
| Aggressive | Attacks players on sight within its aggro range |
| Territorial | Attacks only players who enter its home area |
| Patrol | Walks a set route, fights if provoked |
| Target dummy | Never moves, never attacks and never fights back. It stands where you put it and takes hits |
Target Dummies (practice targets)
A target dummy is a mob that stands still and takes every hit without fighting back. Put one in a town or training yard and players can try out weapons, abilities and gear and see exactly how much damage they do.
Where: Mob editor → General tab → Behavior → AI Behavior → Target dummy.
How to set it up:
1. Create a mob (or open the one you want to use) and give it a name and sprite, for example a straw dummy. 2. On the General tab, set AI Behavior to Target dummy. 3. Set Max HP high enough that a test lasts. A dummy can still die, and it respawns like any other mob. 4. Set XP Reward to 0 and leave its loot empty, so players can't farm the dummy for XP or items. 5. Save, then place it in a zone with a spawn rule or a placed spawn, the same as any mob.
| Setting | What it does on a dummy |
|---|---|
| AI Behavior: Target dummy | Turns off targeting, chasing and attacking completely. Getting hit doesn't make it fight back. |
| Max HP / Defense / Magic Resist | Still apply. Set them to match the enemy you want players to test against. |
| Element & status rates | Still apply, so you can test elemental weaknesses and status effects. |
| Scale with player | Still works. The dummy matches the level of the first player who hits it. |
| Aggro range, leash range, abilities, patrol | Ignored. A dummy never uses them. |
Gotchas:
- Passive is not the same thing. A passive mob fights back as soon as it's hit. Use Target dummy for anything that should never attack.
- Charm and taunt don't work on a dummy. Stun, root, sleep and fear still do, so you can test them. A dummy that gets knocked, pulled or scared off its spot walks back to it.
- It never drinks potions, even ones in its loot, so its HP only goes down from your hits.
- Mobs already in the world keep the behavior they spawned with. Dummies you placed on the map switch over when you publish. Mobs that come from a spawn rule switch over the next time the game server restarts.
How Mob AI Works
Each mob follows a state machine:
- Idle — standing at spawn, looking for targets within its aggro range
- Patrol — walking a predefined route
- Chase — running toward a detected player
- Combat — using abilities via its weighted ability rotation (see below)
- Return — walking back to spawn if it gets too far away (leash range)
- Aggro range — how far the mob can spot players (default 5 tiles)
- Leash range — max distance from spawn before it resets and walks back (default 15 tiles)
- Move speed — the calm wander/patrol pace, in tiles per second
- Chase speed — the sprint once it has a target. Set it above Move speed so the creature ambles on patrol and breaks into a run on the pull.
- Move frequency — how long it rests between wander decisions and at each patrol waypoint, in seconds. Leave it at 0 and the creature takes a randomised 1.4–3.6 second breather every time, so a line of guards doesn't march in lockstep. Set a number to pin the rest to exactly that long.
idle2, idle_look, and so on; the plain idle stays the default resting pose.
NPCs have the same three movement settings under their own Movement section, and events have a per-page Move frequency on the event editor's Movement row — so a wandering mob, a patrolling guard and a pacing shopkeeper are all tuned the same way.
Perception & Stealth
When the stealth / encounterAI features are on, mobs use real perception instead of a flat radius. Each mob's perception profile has a sight radius, a sight cone (degrees), a hearing radius, and light sensitivity — so a stealthed player can slip past a mob's back or stay out of its cone and lamplight. This feeds the area-of-interest and aggro checks server-side.
Weighted Ability Rotation
Rather than a fixed rotation, each mob ability carries a weight plus conditions — min/max range, the mob's own HP %, the target's HP %, and a minimum number of targets caught in an AoE. The AI picks among eligible abilities by weight, so casters kite, healers top up allies, and bombers wait for clustered targets.
Element & Status Traits
Mobs can be tuned defensively and offensively:
- Element — an
elementIdplus element rates (resist/weakness multipliers) that plug into the element effectiveness matrix. - Status rates & immunities — per-status susceptibility multipliers and hard immunities (e.g. a slime that can't be poisoned).
Encounter Scripts (Bosses & Packs)
For bosses and coordinated groups, the Encounters editor defines data-driven encounter scripts:
- Phases triggered by HP thresholds or elapsed time
- Actions per phase — cast an ability, spawn adds, play a telegraph, or enrage
- Pack behavior — shared aggro on pull, a leader role, and formation, so a whole camp reacts together
Death VFX
Each mob can select a per-mob Death VFX from the VFX editor. Leave it unset and the mob uses the engine default (default.death_burst), which is itself an editable VFX definition.
Spawn VFX
Enemies announce their arrival with a Spawn VFX — the effect that plays where a monster appears. It matters most for the spawns a player did not walk up to: arena horde waves, event spawns, summons, and respawns landing in view.
Where to author it: Mobs → pick a mob → Effects tab → Spawn VFX.
| Setting | What it does |
|---|---|
| Engine default (Enemy Spawn) | Plays the shared default.spawn_burst effect — a ground mark, a flash, and motes gathering upward. |
| A VFX definition | Plays that effect instead, for this monster only. Build it in the VFX editor. |
Two things to know:
- Editing the default restyles every spawn.
default.spawn_burstis an ordinary VFX definition, so open it in the VFX editor and change it once to change every monster that has no override. - Deleting the default turns spawn effects off. Unlike the death burst, there is no built-in fallback drawing — if
default.spawn_burstis gone and a monster sets no Spawn VFX of its own, its arrival plays nothing. That is the supported way to disable spawn effects world-wide.
Monster Parties
Group up to 5 mobs into a Monster Party with assigned roles:
- Tank — high HP, draws attention
- Damage — high attack, less durable
- Support — heals or buffs other mobs
Spawn Rules
A spawn rule populates one zone with one monster party. Author them in Mobs → Spawn Rules.
| Setting | What it does |
|---|---|
| Zone | Which zone the rule populates |
| Biome | Only spawn on tiles painted with this biome. Accepts several, comma-separated (plains,forest) |
| Max count | How many copies of the whole party live at once. A 3-mob party with max count 4 puts 12 mobs in the zone |
| Respawn interval | Seconds after the party dies before it comes back, at the same spot |
| Time condition | The pack only exists at this time of day |
| Weather condition | The pack only exists during this weather |
How the conditions behave
A rule with a time or weather condition is checked continuously, not just at world start:
- When the condition starts matching, the pack spawns (up to max count) within about ten seconds.
- When it stops matching, the pack is removed — except any mob currently fighting a player. Those finish their fight and simply don't come back.
- A pack that died during its window waits for the window to return instead of respawning outside it. A night-only pack killed at 3am comes back the next night, not at noon.
How the biome filter behaves
The biome is a real constraint: the spawner sweeps the zone for tiles painted with that biome and places the party there, even when the region is a small painted patch on a big map.
The one exception is a zone where the biome isn't painted anywhere — typically an imported map whose tiles carry no biome tags. Rather than leaving the map empty, the pack spawns on any walkable tile and the server log says so:
[MobAI] Spawned 24 mobs in 6 party groups (24 from DB rules, 3 placed outside
their rule biome — the zone has no tiles tagged with that biome (paint biome
regions to constrain them))If you see that line, paint the biome region you meant and re-publish.
Gotchas
- Mobs never spawn on top of you — a candidate tile within 5 tiles of a player, inside a no-spawn land claim, or on unwalkable terrain is skipped.
- Editing rules re-seeds the zone. Publishing spawn-rule changes removes the mobs those rules created and spawns fresh ones; hand-placed and event mobs are untouched.
- World events can scale respawns. A "spawn rate" world event multiplies every rule's interval while it runs.
Loot, gear and potions
A mob can drop from three places, and only one of them is something the mob gets to use:
| Source | Where | When it rolls | Can the mob use it? |
|---|---|---|---|
| Assigned Loot Tables | Loot tab | Once, when the mob spawns | Yes. This is its inventory: it wears the gear and drinks the potions, and drops whatever is left |
| Direct Loot Drops | Loot tab | When it dies | No. These always just drop |
| World Loot Pool | Loot tab | When it dies | No. These always just drop |
So a mob given a loot table with a sword wears that sword, and the sword in its hand is the sword that drops. A table that gives it five potions lets it drink two in a fight and drop three. A sword or potion added under Direct Loot Drops never shows in its hand and is never drunk; it simply drops by its chance when the mob dies.
Setting it up
1. Build the kit under Database → Loot Tables: the gear and potions this kind of mob carries. 2. Open Database → Mobs, edit the mob, and on the Loot tab add that table under Assigned Loot Tables. 3. On the Combat tab, tick the Equip Slots the mob may wear from its tables (Main Hand by default). 4. Back on Loot, leave Drinks what it carries on for a mob that should use its potions, or turn it off for one that should keep them for the player. 5. Add anything that should only ever drop under Direct Loot Drops. 6. Save and publish. Mobs that spawn or respawn after that use the new setup.
| Field | Where | What it does |
|---|---|---|
| Assigned Loot Tables | Loot tab | Each table's rows roll once at spawn into the mob's inventory. Rows for the same item stack. |
| Equip Slots | Combat tab | The slots the mob may fill from its tables. It picks the best piece per slot; anything else it carries unworn and still drops. |
| Drinks what it carries | Loot tab | On by default. Below half health the mob drinks one healing potion or food from its tables' items, at most one every 5 seconds. Each one it drinks is gone from its drop. |
| Direct Loot Drops | Loot tab | Rolled when the mob dies, each row by its own chance and quantity. Never worn or drunk. |
| World Loot Pool | Loot tab | Rolled when the mob dies, merged with the direct drops or replacing them per World Loot Mode. Never worn or drunk. |
What a mob will drink: potions and food from its tables that restore HP. A potion set to restore a percent heals that percent of the mob's own max HP. Mana-only potions, gear and materials are never drunk.
Gotchas
- Re-save the mob after editing a loot table. A table's rows are copied onto the mob when you save it, so a change to the table reaches a mob the next time you save that mob.
- Mobs made before this change have only direct drops. Their loot was saved as one list, so every row now drops at death and nothing is worn or drunk. Move the rows you want the mob to use into a loot table and assign it.
- Edits reach new spawns, not standing mobs. A mob already in the world keeps the inventory it rolled. Players see the change as mobs respawn.
- Loot find is a second look, not a reroll. A player's loot find bonus gives the table rows the mob did not roll a lucky extra chance when they kill it, and raises the odds of its direct drops. It never adds back what the mob drank.
- A mob can heal through a fight. A tough mob with a stack of potions lasts noticeably longer. Lower the quantity, pick smaller potions, or turn Drinks what it carries off.
- Mobs you place by hand, spawn from the admin tools, or bring in with a world event or territory boss never spawned with an inventory, so they roll everything once when they die. They don't wear or drink loot.
- The world's loot multiplier still scales the quantity of each stack as it drops.