Active abilities
Keybind abilities. Use active_ability for new powers; the specialised types after it predate it and do one fixed thing each.
Fields every power accepts (name, hidden, power_condition, …) are on Power basics. See also: Keybinds, Cooldowns & HUD, Costs & upkeep.
Types on this page: active_ability · command_pack · active_teleport · active_dash · active_recall · personal_dimension · active_swap · active_fireball · active_phase · active_bolt · active_place_block · ground_slam · tidal_wave · shadow_orb.
neoorigins:active_ability
Generic cooldown-gated active (keybind) ability. Part of the 2.0 consolidation: collapses active_teleport, active_dash, active_launch, active_recall, active_swap, active_fireball, active_bolt, active_phase, active_place_block, healing_mist, repulse, active_aoe_effect, and others into one type whose effect is described by an entity_action tree.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
cooldown_ticks | int | no | 60 | Cooldown after each use. Ignored when cooldown_resource is set. |
cooldown_resource | string | no | "" | Id of a neoorigins:variable (or neoorigins:resource) counter whose live value, in ticks, is read at activation time and used as the cooldown length, overriding cooldown_ticks. Empty = fixed cooldown. Edit the counter with change_resource/set_resource to make a power’s cooldown scale with game state (stacks consumed, upgrades bought, etc.). A missing counter falls back to its declared start; negative values clamp to 0 (instant reuse). |
hunger_cost | int | no | 0 | Food points removed per use (1 shank = 2 points). Silently aborts if player has less food (cooldown not consumed). |
resource_cost | string | no | "" | Id of a neoorigins:resource power to debit per use. Empty = no resource cost. |
resource_cost_amount | int | no | 0 | Amount drained from resource_cost per use. Silently aborts (cooldown not consumed) if the resource can’t cover it. If resource bars are globally disabled in config, the cost is charged as hunger instead. |
entity_action | EntityAction | no | noop | Action tree fired on use (typically neoorigins:and { actions: [...] }) |
condition | EntityCondition | no | always-true | DSL gate: skips firing (and the cooldown) if false |
fail_action | EntityAction | no | — | Run when an activation attempt is blocked by condition, e.g. a tellraw telling the player why. Not fired on cooldown or hunger/resource aborts; the blocked attempt never consumes the cooldown. |
cooldown_icon | string | no | "" | HUD cooldown icon (item id or .png texture path), see “Cooldown HUD fields” at the top of this page |
cooldown_countdown | bool | no | true | Draw remaining seconds on the icon (needs cooldown_icon) |
always_show_icon | bool | no | false | Keep the icon on the HUD even while idle (needs cooldown_icon; this is what keeps the icon visible under the default COOLDOWNS_AND_TOGGLES HUD mode, and has no additional effect under ALL_ACTIVE_ABILITIES) |
key | int, string, or object | no | — | Hotkey the ability binds to instead of a skill_1..skill_6 slot. A number N pins it to named-hotkey pool slot “Hotkey N” (1-64), and several powers sharing the same N all fire from that one key. A string is a keybind translation key used as-is ("examplepack.key.leap"), or a vanilla input key such as "key.jump", which binds straight to that game control. An object takes {"key": <number or string>, "continuous": true} to fire every tick the key is held. Omit for the next free skill slot. See Named keybinds. |
Each active_ability power maintains an independent cooldown. Multiple active abilities on the same origin do not share a cooldown counter: triggering one ability does not block another.
Named hotkey slots: with no
keyfield,neoorigins:active_abilitytakes one of the six hardcodedkey.neoorigins.skill_1..skill_6controls. Declare akeyand it binds to that instead and is kept out of the skill-slot roster, so the six stay free for the abilities that need them. This works on the native type directly: you do not have to fall back to an Apoli-styleorigins:active_selfto get a labelled hotkey. See Named keybinds.
Actions and conditions are compiled once at power-load time via ActionParser / ConditionParser; runtime only dispatches through the compiled closures.
Hunger gating is handled at the AbstractActivePower base class level: when hunger_cost > 0, the base checks and debits food before calling execute. Any power that extends AbstractActivePower and wires hungerCost() through its Codec inherits the behavior automatically.
Example: launch the player upward
{
"type": "neoorigins:active_ability",
"cooldown_ticks": 80,
"entity_action": {
"type": "neoorigins:add_velocity",
"y": 2.0
},
"name": "Leap",
"description": "Launches the player upward."
}
Example: cooldown driven by a counter. Declare a hidden neoorigins:variable counter elsewhere in the origin (say myorigin:dash_cooldown, start: 100), then point the ability at it. Other powers can shorten or lengthen the reuse delay by writing to that counter, e.g. a passive that runs set_resource myorigin:dash_cooldown 40 while sprinting, or a change_resource that adds 20 ticks per consecutive use:
{
"type": "neoorigins:active_ability",
"cooldown_resource": "myorigin:dash_cooldown",
"entity_action": {
"type": "neoorigins:add_velocity",
"x": 3.0
},
"name": "Adaptive Dash",
"description": "Dash whose cooldown follows the dash_cooldown counter."
}
The counter’s value is read live on every activation, so the same key can be tuned at runtime by any action. Because counters share the resource keyspace and are declared at power-load time, the cooldown reads correctly even on the very first use (it falls back to the counter’s start).
Legacy active types (active_teleport, active_dash, etc.) remain registered during the deprecation window. The migrateLegacyPowers gradle task can rewrite pack JSON to this type; LegacyPowerTypeAliases covers unmigrated JSON once per-type field remappers are landed.
neoorigins:command_pack
Active power that commands every tamed mob (via tame_mob) to attack the entity the player is looking at.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
range | double | no | 32.0 | Max raycast distance to the target |
cooldown_ticks | int | no | 40 | Cooldown after each use |
Example:
{
"type": "neoorigins:command_pack",
"range": 32.0,
"cooldown_ticks": 40,
"name": "Sic 'Em",
"description": "Orders your pack to attack your target."
}
neoorigins:active_teleport
Active ability that teleports the player to the block they are looking at, up to a maximum distance. Plays enderman teleport sound and portal particles at departure and arrival.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
range | float | no | 32.0 | Maximum teleport range in blocks |
cooldown_ticks | int | no | 60 | Cooldown in ticks after each use |
mode | string | no | "target" | "target" teleports to the looked-at spot; "random" makes up to 16 tries at a spot within ±range horizontally and ±range/8 vertically, accepting the first with two free blocks for the player. It does not check for a floor, so it can land the player in the air. |
hunger_cost | int | no | 0 | Food points removed per use |
resource_cost | string | no | "" | Id of a neoorigins:resource power debited per teleport. Empty = no resource cost. When resource bars are globally disabled the amount is charged as hunger instead. |
resource_cost_amount | int | no | 0 | Amount drained from resource_cost per teleport. A player who can’t pay the whole cost does not teleport and consumes no cooldown. |
Example:
{
"type": "neoorigins:active_teleport",
"range": 32.0,
"cooldown_ticks": 60,
"resource_cost": "mypack:mana",
"resource_cost_amount": 20,
"name": "Blink",
"description": "Teleports to where you're looking."
}
neoorigins:active_dash
Active ability that launches the player in their look direction. With the optional damage fields it also sweeps a capsule along the dash path, hitting every entity it passes through: a charging shoulder-barge or blade dash.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
power | float | no | 1.5 | Launch velocity |
cooldown_ticks | int | no | 40 | Cooldown in ticks |
allow_vertical | bool | no | false | Whether to include vertical component from look direction |
damage | float | no | 0 | Flat damage dealt to entities along the dash path. The damage sweep runs when either this or weapon_damage_scale is above 0 |
set_velocity | bool | no | false | When true the dash replaces the player’s velocity outright; when false it is added to whatever they already had |
damage_radius | float | no | 2.0 | Radius of the capsule swept along the dash path |
weapon_damage_scale | float | no | 0 | Adds this fraction of the player’s attack-damage attribute (the base 1 plus the held weapon and any other bonuses) on top of damage (e.g. 1.0 = the whole attribute value) |
condition | condition | no | always true | EntityCondition gating the dash. While it fails the keypress does nothing and no cooldown is spent |
Example:
{
"type": "neoorigins:active_dash",
"power": 1.5,
"cooldown_ticks": 40,
"allow_vertical": true,
"damage": 4.0,
"damage_radius": 2.0,
"weapon_damage_scale": 1.0,
"name": "Pounce",
"description": "Dashes in the direction you're looking, savaging anything in the way."
}
neoorigins:active_recall
Active ability that teleports the player to their bed or respawn point. Falls back to world spawn if none is set.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
cooldown_ticks | int | no | 600 | Cooldown in ticks |
Example:
{
"type": "neoorigins:active_recall",
"cooldown_ticks": 600,
"name": "Home Recall",
"description": "Teleports to your respawn point."
}
neoorigins:personal_dimension
<Experimental> New in 2.2.32: its fields and behaviour may still change in a later release.
Active ability that moves the player in and out of their own box in the neoorigins:personal_space dimension. Pressing the key outside the dimension saves the exact spot the player is standing in (dimension, position and facing) and sends them to the centre of their box floor. Pressing it again inside the dimension sends them back to that spot. Only entering starts the cooldown and charges the cost; leaving is always free.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
size | int | no | 12 | Usable interior of the box: size × size wide and size tall (1 to 64) |
cooldown_ticks | int | no | 1200 | Cooldown in ticks after entering (1 minute); leaving has none |
xp_levels_cost | int | no | 0 | Experience levels taken on each entry; 0 is free |
Example:
{
"type": "neoorigins:personal_dimension",
"size": 16,
"cooldown_ticks": 1200,
"xp_levels_cost": 3,
"cooldown_icon": "minecraft:ender_chest",
"name": "Pocket Room",
"description": "Step into a room of your own, and back out to where you stood."
}
The box. Each player has one box, shared by every personal_dimension power they hold. It is built the first time they enter: a bedrock floor, with barrier walls and a barrier ceiling, all outside the usable space, so the outside of the box is size + 2 blocks across. Boxes stand 1024 blocks apart, so no two players’ boxes meet. Whatever the player leaves inside stays there between visits. If size is raised later, the box grows on the next entry and keeps its contents; if it is lowered, the box keeps its larger size and nothing is removed. Every entry also puts back any floor, wall or ceiling block that is missing, in case another mod removed one. Bedrock and barriers cannot be broken in survival, pushed by pistons or destroyed by explosions.
Leaving. The key sends the player back to the saved spot without checking that it is safe. Leaving any other way, by dying, a portal, /tp or another mod’s teleport, forgets the saved spot. A player in the dimension with no saved spot, for example one brought in by another mod, is sent to their respawn point by the key, or to world spawn if that respawn point is inside the dimension. Logging out inside keeps the player and the saved spot; they log back in inside. Losing the power while inside, through an origin change, an Orb of Origin or a revoke, sends the player back to the saved spot (or their respawn point) straight away.
Cost. A player without enough levels for xp_levels_cost stays where they are and no cooldown starts. Players in creative pay nothing.
Other players. Nothing in the power brings anyone else in, but other mods’ teleports can. Anyone in the dimension is an ordinary player there. The key does nothing for a player without the power, and for one with it, it acts on their own saved spot.
The dimension. neoorigins:personal_space is an empty void with no terrain and no weather, lit by fixed midday sky light. Death inside follows the usual rules: the player respawns at their spawn point and their items drop in the box. No spawn point can be set inside: beds and respawn anchors do nothing there (no sleeping and no explosions), and /spawnpoint pointing into the dimension has no effect. The world spawns no mobs there on its own: natural, chunk-generation, structure, patrol, reinforcement and event spawns (raids, wandering traders, sieges) are all refused. Mobs a player brings about still appear: spawners and trial spawners, spawn eggs, breeding, buckets, dispensers, commands, conversions and summons. No built-in origin or class uses this power.
neoorigins:active_swap
Active ability that swaps positions with the entity the player is looking at: the nearest living entity on the look ray (hitboxes padded by 0.3). There is no line-of-sight check, so it targets through walls.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
range | float | no | 20.0 | Maximum range to target an entity |
cooldown_ticks | int | no | 80 | Cooldown in ticks |
Example:
{
"type": "neoorigins:active_swap",
"range": 20.0,
"cooldown_ticks": 80,
"name": "Swap",
"description": "Swap positions with your target."
}
neoorigins:active_fireball
Active ability that shoots a spread of 3 to 4 small (blaze-style) fireballs in the player’s look direction. Each one sets what it hits on fire; they do not explode.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
speed | float | no | 1.5 | Projectile speed multiplier |
cooldown_ticks | int | no | 100 | Cooldown in ticks |
Example:
{
"type": "neoorigins:active_fireball",
"speed": 1.5,
"cooldown_ticks": 80,
"name": "Ember Shot",
"description": "Spits a spray of fireballs in your look direction."
}
neoorigins:active_phase
Active ability that phases the player through a solid wall in their look direction. Scans forward in 0.5-block steps from half eye height for a passable block with clear space above and a solid floor below, where the player’s whole hitbox would stand inside the world border, and teleports to the centre of that block. If none is found within max_depth nothing happens and no cooldown is spent. An optional hunger or resource cost is deducted per use.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
max_depth | int | no | 16 | Maximum solid-block scan depth in blocks |
cooldown_ticks | int | no | 40 | Cooldown in ticks |
hunger_cost | int | no | 0 | Food points removed per use (2 = 1 shank) |
resource_cost | string | no | "" | Id of a neoorigins:resource power debited per use. Empty = no resource cost. Charged as hunger when resource bars are globally disabled. |
resource_cost_amount | int | no | 0 | Amount drained from resource_cost per use. A player who can’t pay the whole cost does nothing and consumes no cooldown. |
Example:
{
"type": "neoorigins:active_phase",
"max_depth": 10,
"cooldown_ticks": 80,
"hunger_cost": 3,
"name": "Phase Step",
"description": "Pass through walls at the cost of hunger."
}
neoorigins:active_bolt
Active ability that shoots a wind charge in the player’s look direction. On impact it makes the vanilla wind burst, knocking back nearby entities.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
speed | float | no | 1.2 | Projectile speed multiplier |
cooldown_ticks | int | no | 80 | Cooldown in ticks |
Example:
{
"type": "neoorigins:active_bolt",
"speed": 1.2,
"cooldown_ticks": 80,
"name": "Gale Bolt",
"description": "Fires a wind charge that blasts nearby creatures back."
}
neoorigins:active_place_block
Active ability that places a specific block at the surface the player is looking at, up to a maximum range.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
block_id | Identifier | no | minecraft:glowstone | Block to place |
max_distance | float | no | 5.0 | Maximum targeting range in blocks |
cooldown_ticks | int | no | 100 | Cooldown in ticks |
hunger_cost | int | no | 0 | Food points removed per use |
resource_cost | string | no | "" | Id of a neoorigins:resource power debited per use. Empty = no resource cost. Charged as hunger when resource bars are globally disabled. |
resource_cost_amount | int | no | 0 | Amount drained from resource_cost per use. A player who can’t pay the whole cost does nothing and consumes no cooldown. |
Example:
{
"type": "neoorigins:active_place_block",
"block_id": "minecraft:glowstone",
"max_distance": 5.0,
"cooldown_ticks": 100,
"name": "Stone Touch",
"description": "Places a glowstone block where you're looking."
}
neoorigins:ground_slam
Active AoE slam: damages and knocks back every living entity in a box of radius around the player, including allies and pets. If nothing is in range, no cooldown is spent.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
damage | float | no | 6.0 | Damage dealt to each entity |
knockback_strength | float | no | 1.5 | Radial knockback strength |
radius | double | no | 6.0 | Effect radius in blocks |
cooldown_ticks | int | no | 120 | Cooldown after each use |
resource_cost | string | no | "" | Id of a neoorigins:resource power debited per use. Empty = no resource cost. Charged as hunger when resource bars are globally disabled. |
resource_cost_amount | int | no | 0 | Amount drained from resource_cost per use. A player who can’t pay the whole cost does nothing and consumes no cooldown. |
Example:
{
"type": "neoorigins:ground_slam",
"damage": 6.0,
"radius": 6.0,
"cooldown_ticks": 120,
"name": "Tectonic Slam",
"description": "Crushes nearby enemies with a shockwave."
}
neoorigins:tidal_wave
Cone-shaped water blast in the player’s look direction. Knocks back and damages entities caught in the wave.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
damage | float | no | 4.0 | Damage per hit |
knockback_strength | float | no | 2.0 | Forward knockback strength |
range | double | no | 8.0 | Maximum wave distance |
cone_angle | double | no | 60.0 | Total cone angle in degrees (30° to each side of look axis) |
cooldown_ticks | int | no | 100 | Cooldown after each use |
hunger_cost | int | no | 0 | Food points removed per use |
resource_cost | string | no | "" | Id of a neoorigins:resource power debited per use. Empty = no resource cost. Charged as hunger when resource bars are globally disabled. |
resource_cost_amount | int | no | 0 | Amount drained from resource_cost per use. A player who can’t pay the whole cost does nothing and consumes no cooldown. |
Example:
{
"type": "neoorigins:tidal_wave",
"damage": 4.0,
"range": 8.0,
"cone_angle": 60.0,
"cooldown_ticks": 100,
"name": "Tidal Wave",
"description": "Blasts enemies with a cone of water."
}
neoorigins:shadow_orb
Active ability that places a persistent shadow orb at the player’s position. Each orb applies Darkness and Blindness to nearby entities at a set interval, skipping the caster and their team allies. Orbs only pulse while their owner is in the same dimension, and placing an orb in a new dimension clears the old ones. The player can maintain up to max_orbs orbs at once; placing a new one when at the cap removes the oldest. Orbs are cleared when the origin is revoked.
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
max_orbs | int | no | 4 | Maximum number of simultaneous orbs |
radius | float | no | 28.0 | Effect radius per orb in blocks |
cooldown_ticks | int | no | 100 | Cooldown between placements |
tick_interval | int | no | 20 | Ticks between pulses per orb |
hunger_cost | int | no | 0 | Food points removed per placement |
resource_cost | string | no | "" | Id of a neoorigins:resource power debited per use. Empty = no resource cost. Charged as hunger when resource bars are globally disabled. |
resource_cost_amount | int | no | 0 | Amount drained from resource_cost per use. A player who can’t pay the whole cost does nothing and consumes no cooldown. |
Example:
{
"type": "neoorigins:shadow_orb",
"max_orbs": 4,
"radius": 28.0,
"cooldown_ticks": 100,
"tick_interval": 20,
"name": "Shadow Anchor",
"description": "Places orbs that shroud the area in darkness."
}