Astral Realms Documentation Help

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:

display-params: - display-type: particle type: flame count: 5 - display-type: item_display item: black_concrete glow: true

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

none

No visual output (used when only effects are needed, no rendering)

particle

Bukkit particle system — colored dust, flames, smoke, trails, and hundreds of named particle types

particle_ring

Concentric rings of particles arranged in a circle; useful for telegraphs and AoE visuals

particle_helix

Double-helix pattern of particles rotating around the travel axis

item_display

Static or rotated item model (uses Bukkit ItemDisplay packet entity)

advanced_item_display

Keyframed item animation with transform actions (scale, rotate, translate over time)

arrow

Tipped or plain arrow entity with optional piercing visual level

evoker_fang

Evoker fangs entity with optional bite animation

wither_skull

Wither skull entity with optional "charged" (blue) state

small_fireball

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.

display-params: - display-type: none

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

type

String

none

Bukkit Particle enum name (e.g., flame, dust, soul, trial_spawner_detection); case-insensitive, matched via Particle.valueOf(). If omitted or blank, the display silently spawns nothing.

count

Integer

0

Number of particles spawned per tick

offset

Vector

none

XYZ spread of particle spawn (each particle randomly offsets within this box)

color

Color

none

RGB color for colorable particles (dust, dust_transition, redstone, spell); see Color

to-color

Color

none

End color for dust_transition particles and trail particles

extra

Double

0.0

Particle speed / extra parameter (meaning varies by particle type)

location-offset

Vector

none

Fixed XYZ offset from the projectile/impact center; not randomized

random-offset

Vector

none

Additional random offset applied on top of location-offset

apply-offset-in-direction

Boolean

false

When true, apply location-offset relative to projectile travel direction instead of absolute world space

material

Material

none

Block/item material for particles requiring it (e.g., block_crack, item_crack require a Material)

trail-duration

Integer

0

Duration in ticks for trail particles (Particle.Trail) — how long the trail line persists

trail-location-target-offset

Vector

none

XYZ offset for trail end point; used with trail-duration to create line trails

Example: colored dust particles

display-params: - display-type: particle type: dust count: 2 offset: x: 0.2 y: 0.2 z: 0.2 color: r: 250 g: 35 b: 13 extra: 0.0

Example: layered particle display (mage laser)

The laser projectile layers multiple particle types to create a rich flame effect:

display-params: - display-type: particle type: ash count: 4 location-offset: y: -0.5 offset: x: 0.1 y: 0.1 z: 0.1 extra: 0.0 - display-type: particle type: dust count: 2 color: r: 250 g: 35 b: 13 - display-type: particle type: small_flame count: 1 extra: 0.01

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

element-amount

Integer

0

Number of particles per ring (points distributed evenly around the circle)

max-radius

Double

0.0

Outer radius of the largest ring (in blocks)

rings

Integer

0

Number of concentric rings to render. Leaving this unset renders no rings at all.

(inherited)

All particle params: type, count, color, offset, etc.

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

display-params: - display-type: particle_ring element-amount: 50 max-radius: 6.0 rings: 1 type: dust count: 1 color: r: 255 g: 0 b: 0 extra: 0.0

Example: warden explosion display (stacked rings and column)

Multiple displays layered to show both vertical column and concentric rings:

display-params: - display-type: particle type: soul_fire_flame count: 30 location-offset: y: -2 offset: x: 0.03 y: 0.45 z: 0.03 extra: 0.1 - display-type: particle_ring element-amount: 50 max-radius: 1.0 rings: 1 type: squid_ink count: 1 color: r: 0 g: 0 b: 0 location-offset: y: -2 extra: 0.01

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

helix-radius

Double

0.0

Radius of the helix spiral (distance from the travel axis to each strand)

(inherited)

All particle params: type, count, color, offset, etc.

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

item

ItemStack

required

Block or item to display. Accepts either a bare material name (e.g., black_concrete) or a full AstralCore item definition (material, item-model, etc.)

glow

Boolean

false

When true, adds glowing effect (white outline, or team color if applicable)

color

Color

none

Tint color (RGB) applied to the item model (appears as a glow layer)

scale

Vector

{x: 1, y: 1, z: 1}

XYZ scale multiplier for the item size

offset

Vector

none

XYZ position offset relative to the projectile

rotation

Vector

none

XYZ rotation in degrees; applied each tick

apply-offset-in-direction

Boolean

false

When true, apply offset relative to projectile travel direction

copy-rotation

Boolean

false

When true, orient the item to face the projectile's travel direction on spawn

despawn-delay

Long

15000

Milliseconds after which the item entity despawns (default: 15 seconds)

Example: red glowing concrete projectile

display-params: - display-type: item_display item: black_concrete glow: true color: r: 255 g: 0 b: 0 scale: x: 0.3 y: 0.3 z: 0.3

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

actions

List[Action]

[]

List of scheduled actions. Each entry has a top-level delay (milliseconds from spawn), an action type, and a nested params block specific to that action type. The item display despawns automatically once the last scheduled action's delay elapses.

(inherited)

All item_display params: item, glow, scale, offset, etc.

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:

actions: - delay: 0 action: transform params: tick-duration: 0 rotation-x: 180 rotation-y: 0 rotation-z: 90 rotation-w: 30 offset: x: -0.4 y: -0.4 z: 0.5 scale: x: 1 y: 1 z: 1 - delay: 350 action: wait params: {}

transform's params block accepts:

Field

Type

Default

Description

tick-duration

Integer

0

Client-side interpolation duration (ticks) for this transform step.

rotation-x/rotation-y/rotation-z/rotation-w

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.

scale

Vector

(0, 0, 0)

Multiplies the display's current scale.

offset

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

Color

none

Tipped-arrow tint color (RGB); null renders a plain arrow

glow

Boolean

false

When true, adds glowing flag (white outline)

in-ground

Boolean

false

When true, renders the arrow as stuck in a block (no wobble animation)

piercing-level

Integer

none

Visual piercing level (0–4) shown on the arrow's fletching

offset

Vector

none

XYZ position offset from the projectile center

apply-offset-in-direction

Boolean

false

When true, apply offset relative to travel direction

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

glow

Boolean

false

When true, adds glowing flag (white outline)

offset

Vector

none

XYZ position offset from the projectile/impact center

apply-offset-in-direction

Boolean

false

When true, apply offset relative to projectile travel direction

attack-delay

Integer

0

Delay in ticks before the bite animation triggers

remove-delay

Integer

20

Delay in ticks before the fangs entity is removed

Example: simple fangs telegraph

display-params: - display-type: evoker_fang glow: false attack-delay: 0 remove-delay: 20

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

charged

Boolean

false

When true, renders the skull as "charged" (blue glow), like the Wither's dangerous skulls

glow

Boolean

false

When true, adds glowing flag (white outline)

offset

Vector

none

XYZ position offset from the projectile center

apply-offset-in-direction

Boolean

false

When true, apply offset relative to travel direction

Example: charged wither skull + soul particles

display-params: - display-type: wither_skull charged: true - display-type: particle type: soul count: 1 extra: 0.02

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

item

ItemStack

none

Custom item texture to render as the fireball; null uses the vanilla fire-charge texture

glow

Boolean

false

When true, adds glowing flag (white outline)

offset

Vector

none

XYZ position offset from the projectile center

apply-offset-in-direction

Boolean

false

When true, apply offset relative to travel direction

Color

Colors are specified as RGB triplets (0–255 per channel). Some color fields also support optional randomness parameters:

Field

Type

Description

r

int (0–255)

Red channel

g

int (0–255)

Green channel

b

int (0–255)

Blue channel

randomness-r

Double

Optional — random variance added to the red channel each spawn (clamped to 0–255)

randomness-g

Double

Optional — random variance added to the green channel each spawn

randomness-b

Double

Optional — random variance added to the blue channel each spawn

color: r: 250 g: 35 b: 13 randomness-r: 10 randomness-g: 5 randomness-b: 5

Vector

Positional/offset vectors are specified as XYZ triplets:

offset: x: 0.1 y: 0.2 z: 0.1

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 position

  • Impact — 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

particle

Colored effects, flames, trails

Yes

No

particle_ring

Telegraphs, area indicators

Yes

No

particle_helix

Spiraling trails, twisted beams

Yes

No

item_display

Item models, static objects

Yes

No

advanced_item_display

Keyframed animations

Yes

Yes

arrow

Arrow projectiles

Limited

No

wither_skull

Wither attacks

Limited

No

evoker_fang

Fang attacks with bite

Limited

No

small_fireball

Fireball projectiles

Limited

No

Last modified: 25 July 2026