Skip to main content
Skill mechanics provide reusable gameplay systems like projectiles, healing, slashing, and status effects.

Advanced Slash

Advanced slash mechanic with visual effects and customizable hitboxes.

Advanced_Slash

arc
number
default:"180"
Arc angle in degrees (0-360)
duration
number
default:"0"
Animation duration in ticks
radius
number
default:"3"
Slash radius
width
number
default:"1"
Slash width/thickness
basewidth
number
default:"0.1"
Starting width at base
points
integer
default:"32"
Total points for calculation
vfx_points
integer
Points for visual effects (defaults to points)
hitbox_points
integer
Points for hitbox detection (defaults to points)
yaw
number
default:"0"
Yaw rotation offset
pitch
number
default:"0"
Pitch rotation offset
roll
number
default:"0"
Roll rotation offset
twoside
boolean
default:"true"
Randomize roll for double-sided slash
instant
boolean
default:"false"
Instant hitbox or animated
show_vfx
boolean
default:"true"
Display visual effects
hitboxsize
number
default:"0.2"
Hitbox detection radius
onHit
metaskill
default:"[]"
Skill executed on entity hit
vfx
metaskill
default:"advanced_slash-default_vfx"
Custom VFX skill

Example

fiery_slash:
  Skills:
  - skill:Advanced_Slash{
      origin=@SelfEyeLocation{yo=-0.25};
      arc=120;
      duration=8;
      twoside=false;
      roll=0;
      instant=true;
      vfx_points=24;
      hitbox_points=12;
      radius=5;
      width=1;
      onHit=[
        - vskill{s=damage-ability;immune=20}
        - e:p{p=flame;a=12}
      ]
    } @forward{f=12;uel=true;yo=-0.25}

Heal Mechanic

Over-time healing with interrupt system.

heal

heal
number
default:"5"
Total healing amount over duration
duration
number
default:"1"
Healing duration in seconds
interval
integer
default:"1"
Ticks between heal applications
max_damage
number
default:"2"
Maximum damage before interrupt

Mechanics

  • Heals over time using onDamaged aura
  • Shows boss bar with heal rate
  • Displays green particles each tick
  • Interrupts if accumulated damage exceeds max_damage
  • Ignores suffocation, starvation, fire_tick, hot_floor, poison, wither

Example

regen_potion:
  Skills:
  - skill:heal{heal=20;duration=5;interval=2;max_damage=5} @self

Projectile Systems

projectile_spread

Fires projectiles in a spread pattern.
points
integer
default:"3"
Number of projectiles
arc
number
Spread arc (defaults to points * 8)
duration
number
default:"0"
Animation duration
radius
number
default:"6"
Spread radius
yaw
number
default:"0"
Yaw offset
pitch
number
default:"0"
Pitch offset
roll
number
default:"0"
Roll offset
twoside
boolean
default:"true"
Randomize roll
id
metaskill
required
Projectile skill to execute at each point

projectile_barrage

Fires projectiles in alternating left-right pattern.
points
integer
default:"3"
Number of projectiles
spread
number
Spread distance (defaults to points * 2)
accuracy
number
default:"1"
Accuracy (1.0 = perfect, less than 1.0 = deviation)
radius
number
default:"1"
Barrage radius
id
metaskill
required
Projectile skill to execute

Pierce System

Controls projectile piercing. pierce-init
pierce
integer
default:"1"
Number of entities to pierce through
pierce-hit Call this on projectile hit to track pierce count.
my_projectile:
  Skills:
  - skill{s=pierce-init;pierce=3} @self
  - projectile{
      onHit=[
        - skill{s=pierce-hit}
        - damage{a=10}
      ]
    }

Stun Mechanic

Stuns entities with visual feedback.

Stun

duration
number
required
Stun duration in seconds
level
integer
default:"3"
Slowness level during stun

Effects

  • Applies orbital particles (stars)
  • Shows boss bar with countdown
  • Applies slowness potion
  • Prevents actions during stun
  • Action bar message on attempt to act

Example

stun_attack:
  Skills:
  - skill:Stun{duration=5;level=5} @target
  - sound{s=block.anvil.land;p=1.6;v=0.4}

Suspend Mechanic

Suspends entities in air (from suspend-mechanic-skills.yml).

Suspend

Freezes entity movement temporarily.

Timer Mechanic

Timer display system (from timer-mechanic-skills.yml).

Timer

Creates countdown/countup timer displays.

Vector System

Vector manipulation utilities (from vector-skills.yml).

get_direction_vector

Calculates direction vector between two points.
origin
location
required
Starting location
vec
string
required
Variable name to store result
Sets variables:
  • <vec>_vec: Direction vector
  • <vec>: Normalized direction

Particle Effects

particle_shockwave-vfx

Creates expanding particle shockwave.
origin
location
required
Center point
points
integer
default:"32"
Number of points in ring
radius
number
default:"5"
Shockwave radius
length
number
default:"1"
Height of effect
particle
string
default:"cloud"
Particle type
debug
boolean
default:"false"
Show debug particles

particle_spiral-vfx

Creates spiral particle effect.
origin
location
required
Starting point
points
integer
default:"32"
Number of points in spiral
radius
number
default:"2"
Spiral radius
height
number
default:"5"
Spiral height
rotations
number
default:"2"
Number of full rotations
particle
string
default:"flame"
Particle type

Mortar Mechanic

Arcing projectile system (from mortar-mechanic.yml).

mortar

Fires projectile in arc.
velocity
number
default:"20"
Launch velocity
angle
number
default:"45"
Launch angle in degrees
gravity
number
default:"-0.08"
Gravity value
onHit
metaskill
default:"[]"
Skill on projectile hit
onTick
metaskill
default:"[]"
Skill each projectile tick
onEnd
metaskill
default:"[]"
Skill on projectile end

Insertion Sort

Sorting algorithm implementation for lists (from insertion_sort-demo.yml).

modifier-insertion_sort

Sorts a list by numeric values.
list
list
required
List to sort (format: “key:value”)
order
string
default:"asc"
Sort order: “asc” or “desc”
Returns: execution_order variable with sorted list.

Build docs developers (and LLMs) love