Design spells, attacks, and skill progression.
Abilities & Skills
Abilities
Abilities are the actions characters use in combat — attacks, spells, buffs, and special moves.

Ability Properties
| Property | Description |
|---|---|
| Name / Description | What the player sees |
| Type | Instant, Cast (charge-up), or Channel |
| Damage Type | Physical, Magic, or True (ignores defense) |
| Element | Optional — Fire, Ice, etc. Feeds the element effectiveness matrix; separate from Damage Type |
| Base Damage | Flat damage value |
| Scaling Stat | Which stat multiplies damage (Attack, Magic Power, etc.) |
| Scaling Ratio | How much of the stat applies (0.5 = 50%) |
| Cooldown / GCD | Per-ability cooldown, plus the shared global cooldown (gcdMs) |
| Cast Time | Charge-up time (0 = instant) |
| Mana / Stamina Cost | Resources consumed on use |
| Range | Maximum distance in tiles |
| Target Mode | Enemies, Allies, All, or Self |
| Class / Weapon / Skill requirements | Optional gates on who can use it |
AoE Shapes
Abilities can hit multiple targets using 9 area-of-effect shapes. The column that decides how a shape behaves is Centred on — whether the area sits on the caster or on the point the ability lands.
| Shape | Centred on | Description |
|---|---|---|
| None | — | Single target only |
| Circle | Aim point | All targets within a radius of where it lands |
| Cone | Caster | Fan-shaped area, pointed at the aim |
| Line | Caster | Narrow beam from the caster out to its range |
| Rectangle | Caster | Rectangular band from the caster toward the aim |
| Ring | Aim point | Donut — outer radius with a hole in the middle |
| Cross | Aim point | Plus-shaped (+) pattern |
| Nova | Caster | A burst covering the ground around the caster |
| Wave | Caster | Expanding arc, pointed at the aim |
Making a blast centred on yourself
Use nova. It is the shape that means "everything around me".
The trap is that circle looks like it should do this if you set the range low enough. It does not: a circle is centred on the aim point, so with a range of 0 or 1 it still lands on whatever you are aimed at or locked to, and it catches only what is near them — which reads as the spell doing nothing to the enemies packed around you.
To author one:
1. AoE Shape → nova. 2. AoE Radius → how far the burst reaches, in tiles. This is the number that matters; the ability's Range does not size a nova. 3. Aiming → Free aim if the spell should fire whenever it is pressed. On Locked, a nova still demands a selected target and is refused with "This ability requires a target" when there is none.
The shape diagram in the editor shows which anchor is in force, and warns you when you have picked an aim-point shape at a range short enough that you probably meant a nova.
To hit several targets one after another instead of all at once — chain lightning, a ricocheting arrow, a cascading heal — see Chaining Abilities.
Where an ability lands: Aiming
Abilities → (pick one) → Targeting & AoE → Aiming.
| Mode | Where it lands |
|---|---|
| Auto | Your selected target if you have one; otherwise wherever the cursor points. The both-worlds option. |
| Free aim | Always the cursor. A selected target is ignored entirely — the spell is a pure skill shot. |
| Locked | Must have a target. With nothing selected it refuses with "This ability requires a target" — it never fires at bare ground, even with the cursor sitting on an enemy. |
Abilities authored before this dropdown existed keep the behaviour of their old Requires Target checkbox until you pick a mode: checked behaves as Auto, unchecked as Free aim. Nothing changes until you choose.
Gotchas:
- Free aim really does ignore your target. If your fireball keeps flying
- Locked can never be ground-cast. A ground-target AoE authored Locked
Channelled abilities
An ability whose Type is Channel runs while the key is held: pressing starts the channel immediately, and its Cast Time is the maximum channel duration. With a Channel Tick Interval authored, the effect lands over and over for as long as the key stays down — letting go stops the ticks, and you keep everything already delivered. Without a tick interval, the effect fires once when the channel completes; releasing early interrupts it (and refunds the mana, since nothing was delivered).
Mana, cooldown and the GCD are paid once, when the channel starts — ticks are free, and stopping a channel that already landed ticks does not refund.
Knockback and pull
Abilities → (pick one) → Effects → Knockback / pull.
| Direction | What happens to the victim |
|---|---|
| Away (knockback) | Pushed the set distance straight away from you. |
| Toward (pull a set distance) | Dragged the full set distance along the line — deliberately, even past you. A 10-tile pull on something standing next to you yanks it through and out the other side, which is a tool in its own right (throw an enemy behind you, into your group, off a ledge). |
| To the caster (pull all the way in) | Lands one tile in front of you, however far away it was — never behind you. There is no distance to set; the ability's Range still decides who can be hit at all. This is the one to use for a hook that should deliver the enemy to your feet. |
Gotchas:
- The Knockback status effect moves nobody. It is a crowd-control tag
- Roll the server after editing — ability definitions load at boot.
When actions run: before or after the damage
Abilities → (pick one) → Costs & Effects → Actions run. Appears once the ability has at least one world action.
| Setting | What happens |
|---|---|
| After the damage (default) | The classic order: the hit resolves first, then the actions — a pull lands after the damage, a summon appears after the strike. |
| Before the damage | The actions commit first, and the damage resolves from wherever they leave you. A blink moves you and then the shot fires — from where you land, so a piercing beam sweeps from your destination and an area centres on it. |
Before the damage is the order for gap-closers: blink to the enemy, then strike. After the damage is the order for finishers: hit them, then yank them in.
A blink that also deals damage will not pick fights for you
If an ability carries a Teleport / blink, Summon, or Raise dead action, its damage half is optional:
- Nothing selected — the ability skips its damage entirely and just does
- A protected unit selected — a player in a PvP-safe zone, a protected
- A live enemy you may attack selected — both halves run: the damage
This only applies to actions that work without a victim. Knockback / pull acts on the target, so an ability whose only action is a pull keeps the full targeting rules — it still refuses when the selected unit cannot be attacked.
Status Effects on Hit
Abilities can apply status effects with a configurable chance. For example, a fire spell might have a 25% chance to apply "Burn" (damage over time).
Visual Effects & Telegraphs
Every ability can point at authorable VFX definitions for each moment of the cast:
- Telegraph VFX — a ground indicator drawn while the ability winds up, sized to its AoE shape, so players can dodge. Unset = the editable engine default (
default.telegraph). - Cast / Projectile / Impact / Channel VFX — the wind-up flare, the traveling projectile, the on-hit burst, and any sustained channel beam.
Ability Slots
Characters have a mixed action bar:
- equipment-driven slots for primary attack and gear-specific abilities
- 4 configurable hotbar slots for player-chosen abilities or supported consumables
Skills
Skills represent long-term progression — Mining, Woodcutting, Cooking, Swordsmanship, Fishing, etc. Each one levels independently, and a character's player level is the average of all skill levels (skills they haven't trained count as level 1), so broad progress raises your level rather than one grinded skill. You can also author your own skill categories (name, color, sort order) — the in-game Skills panel tabs follow them.
Skill Properties
| Property | Description |
|---|---|
| Name / Description | What the player sees |
| Category | Gathering, Refining, Crafting, Combat, or Utility |
| Max Level | This skill's own ceiling. Left at the default (100), the skill follows the world-wide cap instead — see below |
| XP Scaling | Linear or exponential curve |
| Base XP | Starting XP requirement |
| Discovery Trigger | Action that first unlocks the skill |
| Prerequisites | Other skills required at specific levels |
How the level cap is decided
Two settings decide how far a skill can be trained, and they're designed to layer:
1. Combat → Skill & XP → Max Skill Level is the world-wide cap. Raise it to 200 and every skill still on the default Max Level goes to 200 — you don't have to edit each skill. 2. A skill's own Max Level overrides that world cap, up or down. Set a skill to 250 and it beats a world cap of 200; set it to 5 and it stops at 5 no matter how high the world cap goes.
A skill left at the default 100 is treated as "follow the world" rather than "stop at 100" — so the one number you'd expect to raise everything does. The engine clamps any resolved cap to 1000.
Guests train less far
Combat → Skill & XP → Guest Max Skill Level caps guest accounts (default 10) so a trial player is nudged toward registering. Set it to 0 to let guests train as far as anyone else. Admin, GM and superadmin sessions are never capped, even when signed in as a guest.
When a player reaches any cap, they're told once per skill — "Mining has reached its maximum level (200)", or the guest version that points at registering. If a skill has quietly stopped gaining XP, that message is the first thing to look for; the second is which of the two caps above is actually in force.
Skill Discovery
Skills are hidden until the player performs a specific action for the first time:
- Chop a tree → discover Woodcutting
- Mine ore → discover Mining
- Cook food → discover Cooking
- Catch a fish → discover Fishing
Per-Level Bonuses
Each skill level can grant:
- Increased gathering yield
- Faster crafting speed
- Higher critical chance
- New recipe or ability unlocks
Absorb — life, mana and stamina drain
Abilities → Costs & Effects → Absorb.
An absorbing ability takes a resource off whoever it hits and hands it to the caster. Drain Life, Mana Burn, a stamina-sapping poison.
One dropdown decides both ends, because you drain what you restore: a life drain takes health and gives health, a mana drain takes mana and gives mana.
| Field | What it does |
|---|---|
| Drains | The pool this ability takes and returns. Nothing (the default), Health, Mana or Stamina. |
| Restores (%) | How much of what was drained reaches the caster. 100 = a true drain, 25 = a lifesteal trickle, 0 = a pure burn that destroys the resource and gives you nothing. |
| Max Drain per Hit | Ceiling on one hit's drain, before the restore share is taken. 0 = uncapped. This is what stops a crit on a full-mana target refilling you in one press. |
| Only the main target feeds you | Area abilities only. Off, a drain thrown into a pack restores once per victim. |
| Take health when the target has no mana/stamina | Mana and stamina drains only. See "Things that have no mana" below. |
Health drains are not the same as mana drains
- Health — the hit lands as normal damage, and you are healed for a
- Mana / Stamina — the ability's damage comes out of **that pool instead of
Want an ability that does both — real damage and a mana burn? Author the burn as its own ability and attach it to the damaging one as an On-hit ability.
Setting one up
1. Open Database → Abilities and edit (or create) an ability. 2. Go to the Costs & Effects tab and find Absorb. 3. Set Drains to Health, Mana or Stamina. 4. Set Restores (%) — start at 100 for a drain, 20–30 for lifesteal on a weapon skill. 5. Leave Max Drain per Hit at 0 unless the ability crits for a lot. 6. Save. The field beneath the cap previews what one average hit returns.
You only ever drain what was there
A 400-damage drain on a mob with 5 health left heals you for 5, not 400. Draining 200 mana from someone holding 30 takes 30 and gives you 30. The number on the ability is what it tries to take; what you get is what the victim had.
The same applies at your end — a drain never overfills you, and the overflow is not banked.
Things that have no mana
Mobs carry health and nothing else. No mana, no stamina. So a mana drain aimed at a wolf would do nothing at all, which is why **Take health when the target has no mana** is on by default: the drain comes out of the wolf's health instead, and still restores your mana.
Turn it off for a strictly anti-caster utility ability that should be a no-op against beasts — the editor warns you when you do, because it is easy to author that by accident and then wonder why nothing happens in a playtest.
Gotchas
- Damage-over-time never feeds you. Only direct hits drain. A drain that
- A pure burn still needs damage. The drain is sized from the ability's
- Area drains are strong. A drain with an AoE shape restores from every
- In-game the numbers are colour-coded: mana moves in blue, stamina in
Piercing
Abilities → Targeting & AoE → Pierces through targets.
Normally a shot stops at the first thing it touches. A piercing ability cuts a line instead, and everything standing in that line is hit — beams, rail shots, a spinning blade thrown through a crowd.
| Field | What it does |
|---|---|
| Extra Targets | Further bodies the shot passes through after the first. 0 = unlimited, which is what a beam is. |
| Damage Falloff (%) | Lost per additional body, compounding. 0 = every victim takes it in full. |
| Beam Width (tiles) | How far either side of the line a target can stand and still be caught. Blank uses 1.2 tiles. |
Piercing and areas together
Pierce governs the journey; the AoE shape still governs the landing. With no AoE shape set, the ability is a pure beam: everything in the line, once each. Add a shape and you get the same beam plus a burst where it lands.
Nobody is hit twice. The landing burst only catches whoever the beam missed — otherwise a target standing exactly where you aimed would take the beam and the explosion, doubling its damage in a way no number on the page would show you.
Indicators
Abilities → Targeting & AoE → Indicator.
Every ability draws an aim preview: a reach ring around the caster, and a footprint showing what will be hit. This is where you style this ability's.
| Field | Blank means |
|---|---|
| Colour | Automatic — red for damage, green for heals and ally spells. Set it for a movement ability, where red reads as danger to the player using it. |
| Style | Inherit the world's — ring, filled or dashed. |
| Marker | Automatic. What is drawn besides the area: nothing, a landing marker, a flight path, or both. |
| Line Thickness | Inherit the world's. |
| Show an indicator at all | On. The master switch: off hides everything drawn while aiming this ability — reach ring, footprint, landing marker and flight path. The ability still aims and fires exactly the same. This is the one to use for a blink. |
| Show the reach ring | On. Turn it off where reach is obvious and the ring is just noise — the footprint and marker stay. |
Custom artwork
Pick a ground decal to draw inside the footprint. It is laid flat on the floor, so it skews with the isometric view automatically — author it flat, not pre-skewed.
| Fit | For |
|---|---|
| Stretch to fit | Circles and cones — art drawn to match the shape |
| Along the path | Beams: stretched down the aim axis with the width held |
| Centre at native size | Dash reticles and landing markers |
Keep artwork around 256–512px. It is redrawn while the player aims, and a 4K image scaled down to a three-tile circle costs the same as one drawn at size.
The one thing you cannot change
Size and shape are not style options. They come from the ability's range and AoE fields — the same values the server hits with — so the preview can never promise something the ability will not do.
That is also why the real boundary is still drawn over your artwork by default. Nothing stops a narrow cone image being attached to a circular ability, and when that happens the outline makes it look wrong rather than letting players trust it. Art only turns the outline off for art drawn to the exact geometry; from then on, accuracy is yours to guarantee.