Message Effects
Message effects are whole-message transforms applied via [bracket] tags on immersive HUD messages. Each entry below lists the canonical tag name, its parameters with defaults and ranges, and an example.
breathe
Section titled “breathe”Scales the message up and down in a sine wave, producing a slow breathing pulse.
Syntax
[breathe amp=0.05 freq=0.5]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| amplitude | amp | float | 0.05 | Scale oscillation amplitude (0-0.5) |
| frequency | freq | float | 0.5 | Breathing rate in Hz (0-20) |
Example
[breathe amp=0.08 freq=0.4]You have been poisoned
Source: BreatheMessageEffect.java
Message
Translates the message along two independent sine paths to produce a floating, wandering motion.
Syntax
[drift ax=3 ay=2 freq=0.4]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| amplitudeX | ax | float | 3.0 | Horizontal drift amplitude in px (0-100) |
| amplitudeY | ay | float | 2.0 | Vertical drift amplitude in px (0-100) |
| frequency | freq | float | 0.4 | Drift rate in Hz (0-20) |
Example
[drift ax=5 ay=3 freq=0.3]A gentle breeze passes through...
Notes
The Y axis uses a 1.37x frequency multiplier relative to X, so the paths never lock into a simple loop.
Source: DriftMessageEffect.java
Message
Causes each character to detach and fall downward with gravity, with an optional trailing streak and color override.
Syntax
[drip freq=0.5 len=8 fade=true]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| frequency | freq | float | 0.5 | Drip stagger frequency (0.05-20) |
| length | len | float | 8.0 | Trail length in px (0-32) |
| fade | - | bool | true | Fade trail alpha as it falls |
| color | col | color hex | null | Optional override color for drips |
| sound | snd | string | null | Sound preset or resource id |
| volume | vol | float | 0.5 | Sound volume (0-2) |
| pitch | - | float | 1.0 | Sound pitch (0.5-2) |
Example
[drip freq=0.8 len=12 col=880000]Blood drips from the walls
Notes
drip operates per-character. Each glyph falls independently with a staggered start time determined by its index. The trail is rendered as a small cluster of sibling copies above the falling character.
Source: DripMessageEffect.java
Message
Oscillates the message horizontally and vertically together along a shared sine wave.
Syntax
[float dx=0 dy=4 freq=0.3]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| offsetX | dx | float | 0.0 | Horizontal float magnitude in px (-100 to 100) |
| offsetY | dy | float | 4.0 | Vertical float magnitude in px (-100 to 100) |
| frequency | freq | float | 0.3 | Float oscillation rate in Hz (0-20) |
Example
[float dy=6 freq=0.25]Hovering text
Notes
Both dx and dy are driven by the same sine phase, so the message moves diagonally if both are nonzero.
Source: FloatMessageEffect.java
Message
Pulses the message scale between a minimum and maximum value.
Syntax
[grow min=0.8 max=1.2 freq=1.0 pivot=center]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| min | - | float | 0.8 | Minimum scale (0.01-10) |
| max | - | float | 1.2 | Maximum scale (0.01-10) |
| frequency | freq | float | 1.0 | Pulse rate in Hz (0-20) |
| pivot | - | enum | center | Scale pivot: top, center, bottom |
Example
[grow min=0.9 max=1.15 freq=0.6 pivot=bottom]Level up!
Source: GrowShrinkMessageEffect.java
matrix
Section titled “matrix”Reveals or dismisses the message with a Matrix-style digital rain cascade, with optional side rain columns.
Syntax
[matrix mode=in dur=1.5 delay=0.1 density=14 spread=1.5]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| mode | - | enum | in | in, out, or both |
| duration | dur | float | 1.5 | Resolve duration per character in seconds (0.05-30) |
| delay | - | float | 0.1 | Per-character stagger delay in seconds (0-1) |
| density | - | int | 14 | Side rain streams per character (0-30) |
| spread | - | float | 1.5 | Side rain horizontal spread multiplier (0-3) |
| color | col | color hex | null | Override matrix color; defaults to each character’s own color |
| sound | snd | string | null | Sound preset or resource id |
| volume | vol | float | 0.5 | Sound volume (0-2) |
| pitch | - | float | 1.0 | Sound pitch (0.5-2) |
Example
[matrix mode=both dur=1.2 density=10]ACCESS GRANTED
Notes
mode=out and mode=both require a finite-duration message. On an indefinite message the effect logs a warning and falls back to in behavior.
Source: MatrixMessageEffect.java
Message
Rotates the message back and forth around a pivot point in a sine wave.
Syntax
[rock ang=5 freq=1.0 pivot=center]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| angle | ang | float | 5.0 | Max rotation in degrees (0-90) |
| frequency | freq | float | 1.0 | Rocks per second (0-20) |
| pivot | - | enum | center | Rotation pivot: top, center, bottom |
Example
[rock ang=10 freq=1.5 pivot=bottom]Watch out!
Source: RockMessageEffect.java
shatter
Section titled “shatter”Explodes each character into flying fragments after a configurable delay.
Syntax
[shatter delay=auto spread=16 dur=0.8 pieces=5]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| delay | - | string | auto | Seconds before shattering, or auto to trigger near message end |
| spread | - | float | 16.0 | Fragment spread in px (0-128) |
| duration | dur | float | 0.8 | Shatter animation length in seconds (0.05-10) |
| pieces | - | int | 5 | Fragments per character (2-8) |
| sound | snd | string | null | Sound preset or resource id |
| volume | vol | float | 0.5 | Sound volume (0-2) |
| pitch | - | float | 1.0 | Sound pitch (0.5-2) |
Example
[shatter delay=2 spread=24 pieces=6]The crystal shatters
Notes
delay=auto sets the trigger time to totalDuration - 0.5s and requires a finite-duration message. On an indefinite message with delay=auto the effect is disabled and a warning is logged. Pass an explicit number (e.g. delay=3) to use shatter on any message.
Source: ShatterMessageEffect.java
Message
Drops the message from above with a damped bounce on landing.
Syntax
[slam height=20 bounces=2 damping=0.5 dur=0.6]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| height | - | float | 20.0 | Drop height in px (0-500) |
| bounces | - | float | 2.0 | Number of bounces (0.5-10) |
| damping | - | float | 0.5 | Bounce energy loss per bounce (0-0.999) |
| duration | dur | float | 0.6 | Total animation length in seconds (0.05-30) |
| sound | snd | string | null | Sound preset or resource id |
| volume | vol | float | 0.5 | Sound volume (0-2) |
| pitch | - | float | 1.0 | Sound pitch (0.5-2) |
Example
[slam height=40 bounces=3 dur=0.8]CRITICAL HIT
Notes
The sound fires at the first bounce peak, not at the moment of initial impact. After dur seconds the animation completes and the message renders at its resting position for the remainder of its display time.
Source: SlamMessageEffect.java
Message
Slides the message in from off-screen or out to off-screen over a short duration.
Syntax
[slide mode=in from=left dur=0.4 easing=ease_out_cubic]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| mode | - | enum | in | in or out |
| from | dir | enum | left (for in), right (for out) | Entry/exit direction: left, right, top, bottom |
| duration | dur | float | 0.4 | Slide length in seconds (0.05-30) |
| easing | - | enum | ease_out_cubic (for in), ease_in_cubic (for out) | Easing curve: linear, ease_in_cubic, ease_out_cubic, ease_in_out_cubic |
Example
[slide mode=in from=top dur=0.5]New objective: Survive
Notes
mode=out requires a finite-duration message to determine when to start the exit. On an indefinite message the effect logs a warning and does nothing.
Source: SlideMessageEffect.java
Message
Plays a sound at a configurable time offset after the message appears.
Syntax
[sound snd=minecraft:entity.experience_orb.pickup vol=1.0 pitch=1.0 at=0]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| sound | snd | string | null | Sound preset name or namespaced resource id |
| volume | vol | float | 1.0 | Sound volume (0-2) |
| pitch | - | float | 1.0 | Sound pitch (0.5-2) |
| at | - | float | 0.0 | Trigger time offset in seconds after message appears (0-600) |
Example
[sound snd=minecraft:block.anvil.land vol=0.8 at=0.1]SLAMNotes
The sound fires once per message instance. If sound is null the effect does nothing. at=0 fires on the first render frame.
Source: SoundMessageEffect.java
Message
Continuously rotates the message around a pivot point.
Syntax
[spin freq=1.0 pivot=center]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| frequency | freq | float | 1.0 | Rotations per second (0-20) |
| pivot | - | enum | center | Rotation pivot: top, center, bottom |
Example
[spin freq=0.5 pivot=top]Spinning banner
Source: SpinMessageEffect.java
vibrate
Section titled “vibrate”Rapidly jitters the message position using a deterministic noise function, simulating screen shake.
Syntax
[vibrate amp=1.0 freq=15]Parameters
| Name | Alias | Type | Default | Description |
|---|---|---|---|---|
| amplitude | amp | float | 1.0 | Vibration magnitude in px (0-50) |
| frequency | freq | float | 15.0 | Vibration rate (0-200) |
Example
[vibrate amp=2 freq=20]EARTHQUAKE
Notes
Unlike drift or float, the displacement is pseudo-random rather than sinusoidal, so it reads as noise rather than oscillation.
Source: VibrateMessageEffect.java