Displays
Displays define the visual representation of projectiles and impact effects — particles, entities, and sounds that render to players. Each skill can layer multiple displays simultaneously, allowing rich visual composition (e.g., particles + entity models + sound effects all at once).
Display architecture
Displays are configured in the display-params field of a skill's params section. This field accepts a list — each entry is an independent display with its own display-type and configuration:
Each display type (particle, item_display, wither_skull, etc.) defines what visual element appears and how it behaves. A single projectile or impact can have multiple displays layered on top of one another — they all render at the same position/time.
Display types
Type | Description |
|---|---|
| No visual output (used when only effects are needed, no rendering) |
| Bukkit particle system — colored dust, flames, smoke, trails, and hundreds of named particle types |
| Concentric rings of particles arranged in a circle; useful for telegraphs and AoE visuals |
| Double-helix pattern of particles rotating around the travel axis |
| Static or rotated item model (uses Bukkit |
| Keyframed item animation with transform actions (scale, rotate, translate over time) |
| Tipped or plain arrow entity with optional piercing visual level |
| Evoker fangs entity with optional bite animation |
| Wither skull entity with optional "charged" (blue) state |
| Small fireball (Ghast-style) entity with optional custom item texture |
none
Renders no visual output. Used when a skill only needs effects (damage, healing, status effects) with no particle or entity display.
No parameters.
particle
The most flexible display type — spawns Bukkit particles (named in the Particle enum, e.g., flame, smoke, soul, dust). Supports colored dust particles, trails, item particles, and block particles.
Parameters
Field | Type | Default | Description |
|---|---|---|---|
| String | none | Bukkit |
| Integer | 0 | Number of particles spawned per tick |
| Vector | none | XYZ spread of particle spawn (each particle randomly offsets within this box) |
| Color | none | RGB color for colorable particles (dust, dust_transition, redstone, spell); see Color |
| Color | none | End color for dust_transition particles and trail particles |
| Double | 0.0 | Particle speed / extra parameter (meaning varies by particle type) |
| Vector | none | Fixed XYZ offset from the projectile/impact center; not randomized |
| Vector | none | Additional random offset applied on top of |
| Boolean | false | When true, apply |
| Material | none | Block/item material for particles requiring it (e.g., |
| Integer | 0 | Duration in ticks for trail particles ( |
| Vector | none | XYZ offset for trail end point; used with |
Example: colored dust particles
Example: layered particle display (mage laser)
The laser projectile layers multiple particle types to create a rich flame effect:
particle_ring
Renders concentric rings of particles at the target location — useful for area telegraph visuals, impact rings, and spell telegraphs. Extends particle (inherits all particle params) and adds ring-specific configuration.
Parameters (extends particle)
Field | Type | Default | Description |
|---|---|---|---|
| Integer | 0 | Number of particles per ring (points distributed evenly around the circle) |
| Double | 0.0 | Outer radius of the largest ring (in blocks) |
| Integer | 0 | Number of concentric rings to render. Leaving this unset renders no rings at all. |
(inherited) | All |
The ring spacing is automatic: if max-radius: 6.0 and rings: 2, the first ring is at radius 3.0 and the second at 6.0 (evenly divided).
Example: red ring telegraph
Example: warden explosion display (stacked rings and column)
Multiple displays layered to show both vertical column and concentric rings:
particle_helix
Renders a double-helix pattern of particles spiraling around the projectile's travel axis — creates flowing, twisted trails. Extends particle and adds helix-specific rotation.
Parameters (extends particle)
Field | Type | Default | Description |
|---|---|---|---|
| Double | 0.0 | Radius of the helix spiral (distance from the travel axis to each strand) |
(inherited) | All |
The helix automatically rotates around the travel direction, creating a twisted spiral effect as the projectile moves.
item_display
Renders a static or rotated item model using Bukkit's ItemDisplay packet entity. Renders the given item as a 3D model, optionally scaled, colored, and rotated. The display spawns on the first tick and follows the projectile/impact.
Parameters
Field | Type | Default | Description |
|---|---|---|---|
| ItemStack | required | Block or item to display. Accepts either a bare material name (e.g., |
| Boolean | false | When true, adds glowing effect (white outline, or team color if applicable) |
| Color | none | Tint color (RGB) applied to the item model (appears as a glow layer) |
| Vector |
| XYZ scale multiplier for the item size |
| Vector | none | XYZ position offset relative to the projectile |
| Vector | none | XYZ rotation in degrees; applied each tick |
| Boolean | false | When true, apply |
| Boolean | false | When true, orient the item to face the projectile's travel direction on spawn |
| Long | 15000 | Milliseconds after which the item entity despawns (default: 15 seconds) |
Example: red glowing concrete projectile
advanced_item_display
Extends item_display with keyframed animation — apply a sequence of transform actions (scale, rotate, translate) scheduled over time. Useful for animated spell projectiles, morph effects, and visual combos.
Parameters (extends item_display)
Field | Type | Default | Description |
|---|---|---|---|
| List[Action] |
| List of scheduled actions. Each entry has a top-level |
(inherited) | All |
Action structure
Only action: transform is handled — any other action value (e.g. wait) is accepted but runs as a no-op, which is a useful way to push the display's despawn time out without applying another transform:
transform's params block accepts:
Field | Type | Default | Description |
|---|---|---|---|
| Integer | 0 | Client-side interpolation duration (ticks) for this transform step. |
| Double | 0.0 | Sequential rotations (degrees) applied around X, Y, Z, then a further Y-axis "W" rotation — not a single combined XYZ vector rotation. |
| Vector | (0, 0, 0) | Multiplies the display's current scale. |
| Vector | (0, 0, 0) | Translates the display along its own (rotated) local axes. |
Each transform is applied on top of the display's current transformation, so successive actions compose rather than replace.
arrow
Renders a Bukkit arrow entity following the projectile, oriented along its travel direction. Supports tipped-arrow tinting and visual piercing level.
Parameters
Field | Type | Default | Description |
|---|---|---|---|
| Color | none | Tipped-arrow tint color (RGB); null renders a plain arrow |
| Boolean | false | When true, adds glowing flag (white outline) |
| Boolean | false | When true, renders the arrow as stuck in a block (no wobble animation) |
| Integer | none | Visual piercing level (0–4) shown on the arrow's fletching |
| Vector | none | XYZ position offset from the projectile center |
| Boolean | false | When true, apply |
Orientation
The arrow is automatically oriented to face the projectile's travel direction using yaw/pitch (following Minecraft's arrow entity convention, not the player look-direction convention).
evoker_fang
Renders evoker fangs entity — the fangs summoned by evokers in vanilla Minecraft. Each spawn triggers an optional attack (bite) animation and scheduled removal.
Parameters
Field | Type | Default | Description |
|---|---|---|---|
| Boolean | false | When true, adds glowing flag (white outline) |
| Vector | none | XYZ position offset from the projectile/impact center |
| Boolean | false | When true, apply |
| Integer | 0 | Delay in ticks before the bite animation triggers |
| Integer | 20 | Delay in ticks before the fangs entity is removed |
Example: simple fangs telegraph
wither_skull
Renders a Wither skull entity following the projectile, oriented along its travel direction. Supports "charged" (blue) state for visual emphasis.
Parameters
Field | Type | Default | Description |
|---|---|---|---|
| Boolean | false | When true, renders the skull as "charged" (blue glow), like the Wither's dangerous skulls |
| Boolean | false | When true, adds glowing flag (white outline) |
| Vector | none | XYZ position offset from the projectile center |
| Boolean | false | When true, apply |
Example: charged wither skull + soul particles
small_fireball
Renders a small fireball entity (Ghast-style projectile) following the projectile, oriented along its travel direction. Optionally renders a custom item texture instead of the vanilla fire-charge.
Parameters
Field | Type | Default | Description |
|---|---|---|---|
| ItemStack | none | Custom item texture to render as the fireball; null uses the vanilla fire-charge texture |
| Boolean | false | When true, adds glowing flag (white outline) |
| Vector | none | XYZ position offset from the projectile center |
| Boolean | false | When true, apply |
Color
Colors are specified as RGB triplets (0–255 per channel). Some color fields also support optional randomness parameters:
Field | Type | Description |
|---|---|---|
| int (0–255) | Red channel |
| int (0–255) | Green channel |
| int (0–255) | Blue channel |
| Double | Optional — random variance added to the red channel each spawn (clamped to 0–255) |
| Double | Optional — random variance added to the green channel each spawn |
| Double | Optional — random variance added to the blue channel each spawn |
Vector
Positional/offset vectors are specified as XYZ triplets:
All vector fields are optional; omitting them defaults to zero.
Display execution
Displays are rendered every frame by the skill update engine:
Projectile/Laser — Displays fire once per
display-update-rate(milliseconds), at the current projectile positionImpact — Displays fire once, at the impact center, when the skill is triggered
Entity orientation — Entity displays (
arrow,wither_skull,evoker_fang,small_fireball) automatically orient to face the projectile's travel direction (or impact skill's caster direction for impacts)
Display update rate is tunable per skill via the display-update-rate param (see Cast Types).
Quick reference
Display Type | Common Use | Customizable | Animated |
|---|---|---|---|
| Colored effects, flames, trails | Yes | No |
| Telegraphs, area indicators | Yes | No |
| Spiraling trails, twisted beams | Yes | No |
| Item models, static objects | Yes | No |
| Keyframed animations | Yes | Yes |
| Arrow projectiles | Limited | No |
| Wither attacks | Limited | No |
| Fang attacks with bite | Limited | No |
| Fireball projectiles | Limited | No |