AbilitySet slot (Q/W/E/R) with a cooldown, a mana cost, and a
composable effect; the /ability/* routes drive whatever ability set an entity already carries.
Attaching an AbilitySet is done only in Rust (by the MOBA example game’s spawn_hero),
which the shipped world does not currently call — so the ability routes are dormant over HTTP today
(see Active abilities). Both advance only when the simulation ticks — you queue or
apply them over HTTP, then /step. This page applies a poison and a slow to a freshly spawned unit and
watches them tick; every command is real and runnable against a local server, and the
outputs below are captured from one.
Apply a poison and a slow, then cleanse
1. Spawn a unit. A generic unit is enough — status effects work on any entity.tag, a duration, a list of
"stat:op:value" modifiers, an optional tick_effect (dps:N / hps:N / custom:name), and a
stack_policy (replace or stack:N). Apply two — one that ticks damage, one that only modifies a stat.
remaining counts down by the elapsed time; the poison’s
dps drains health.
/effect/cleanse removes effects whose tag matches filter; an empty filter clears
everything.
Active abilities
The/ability/* routes operate on any entity that carries an AbilitySet (with the Mana and
base/growth stats that go with it). There is no generic HTTP route to attach one — an AbilitySet
is inserted only in Rust, by the MOBA example game’s spawn_hero. And the shipped MOBA world does not
currently invoke spawn_hero (its level data carries no ability sets), so on every entity you can reach
over HTTP today, /ability/list returns an empty set. The routes are wired and correct; the ability data
to drive them is, for now, dormant.
/ability/list/{id} always answers — it reports each slot’s cooldown, mana cost, and ready flag for an
ability-carrying unit, or an empty set otherwise:
/ability/use queues a use-ability event for the next tick. On a unit with no ability in that slot it
returns ok:true but does nothing (the event is queued, then dropped); on a unit that does carry the
slot, the cooldown starts and the mana is spent when the ability system runs on the next /step:
Behavior and gotchas
The things you only learn by running it:- Status effects work on any entity; abilities need an
AbilitySetthat nothing currently attaches over HTTP./effect/*applies to a bare/spawnunit./ability/useand/ability/listanswer for any entity, but every reachable entity lists"abilities":[]and"mana":null, and/ability/useis a no-op on them — the use event is queued, then dropped because there’s no ability to fire. - The deleted hero routes are gone.
/hero/defineand/hero/select(the old way to stamp anAbilitySet) 404. The only path that attaches abilities is the MOBA game’s Rustspawn_hero, which the shipped world does not call — so the ability routes are dormant over HTTP until a game wires it. - Cooldown and mana resolve on a tick, not on the call.
/ability/usequeues aUseAbilityEvent; read/ability/listimmediately and it’s stillready:trueat full mana./steponce, then read. - The poison’s DoT double-drains like direct damage. One second of
dps:10took health from600to about580.16, not590— the same event-buffer double-drain documented on Gameplay & combat. The countdown ofremainingis exact; treat the DoT magnitude from a manual apply as approximate. modifiersare recorded on the effect; this page verifies the bookkeeping, not movement. Themove_speed:multiply:0.5string is stored and returned verbatim by/effect/list. Whether the unit actually moves slower is the movement system’s job.- Cleansing leaves an empty effect set, not a missing one. After clearing everything,
/effect/list/{id}returns{"count":0,"effects":[]}— theStatusEffectscomponent still exists. The"Entity not found or has no status effects"error is for an entity that never had one.
Endpoints
An
AbilitySet reaches a unit only through the MOBA game’s Rust spawn_hero (not yet
called by the shipped world); the health and damage abilities move live on
Gameplay & combat.
Status
- Shipped, all headless — status-effect durations, set/add/multiply modifiers, DoT/HoT ticks,
stacking, and cleanse (on any entity); ability cooldowns, mana cost and regen, per-level scaling, and
channel state (on entities that carry an
AbilitySet). - Game-side — attaching an
AbilitySetis done in-engine by the MOBA example game’sspawn_hero; there is no generic HTTP route for it. - Known issue — a DoT (like direct damage) resolves on two consecutive ticks, so a manual apply removes roughly twice the per-second amount; see the combat double-drain note.
Ability & effect endpoints
Every ability and status-effect endpoint, with request and response schemas.