Skip to content

Custom Animations

You can create new animations by adding JSON files to config/masuholograms/animations/. The filename (without .json) becomes the animation name used in hologram lines.

Creating a Custom Animation

Step 1: Create a JSON File

Create a new file in config/masuholograms/animations/. For example, my_animation.json:

{
  "type": "colors",
  "speed": 10,
  "pause": 0,
  "colors": ["&c", "&4"]
}

Step 2: Reload

/mh reload

Step 3: Use It

/mh line set myHolo 1 1 {#ANIM:my_animation}Pulsing Red Text{/#ANIM}

The animation name is the filename without the .json extension.

Animation Types Reference

typewriter

Characters reveal one at a time.

{
  "type": "typewriter",
  "speed": 3,
  "pause": 20
}
Field Type Default Description
speed int 3 Ticks between each character reveal
pause int 20 Ticks to hold after full reveal

wave

Color array sweeps across text left to right.

{
  "type": "wave",
  "speed": 2,
  "pause": 40,
  "colors": ["&e", "&6", "&c", "&4", "&c", "&6"],
  "defaultColor": "&f"
}
Field Type Default Description
speed int 2 Ticks between wave movement
pause int 40 Ticks after wave completes
colors string[] ["&e","&6","&c","&4","&c","&6"] Wave color gradient
defaultColor string "&f" Color for characters not in the wave

burn

Gradient sweep with persistent trail color.

{
  "type": "burn",
  "speed": 2,
  "pause": 40,
  "gradientColors": ["&e", "&6", "&c", "&4"],
  "trailColor": "&4",
  "defaultColor": "&f"
}
Field Type Default Description
speed int 2 Ticks between burn movement
pause int 40 Ticks after burn completes
gradientColors string[] ["&e","&6","&c","&4"] Burn front colors
trailColor string "&4" Color left after burn passes
defaultColor string "&f" Color of unburned text

scroll

Text rotates horizontally.

{
  "type": "scroll",
  "speed": 3,
  "pause": 0
}
Field Type Default Description
speed int 3 Ticks between each shift
pause int 0 Ticks before restarting cycle

colors

Entire text cycles through a color array.

{
  "type": "colors",
  "speed": 4,
  "pause": 0,
  "colors": ["&c", "&6", "&e", "&a", "&b", "&9", "&d"]
}
Field Type Default Description
speed int 4 Ticks between color changes
pause int 0 Ticks before restarting cycle
colors string[] rainbow Color sequence

frames

Explicit text frames — the most flexible type.

{
  "type": "frames",
  "speed": 20,
  "pause": 0,
  "frames": [
    "&aFrame one text",
    "&bFrame two text",
    "&cFrame three text"
  ]
}
Field Type Default Description
speed int 5 Ticks between frame changes
pause int 0 Ticks before restarting
frames string[] Required List of frame text

With frames, the original text between animation tags is completely replaced by each frame's text. Each frame can have its own colors and content.

Example Custom Animations

Slow Pulse (2 colors)

File: pulse_red.json

{
  "type": "colors",
  "speed": 10,
  "pause": 0,
  "colors": ["&c", "&4"]
}

Usage: {#ANIM:pulse_red}ALERT{/#ANIM}

Ice Wave

File: ice_wave.json

{
  "type": "wave",
  "speed": 2,
  "pause": 30,
  "colors": ["&f", "&b", "&3", "&9", "&3", "&b"],
  "defaultColor": "&7"
}

Nether Burn

File: nether_burn.json

{
  "type": "burn",
  "speed": 1,
  "pause": 20,
  "gradientColors": ["&e", "&6", "&c", "&4", "&0"],
  "trailColor": "&8",
  "defaultColor": "&f"
}

Status Indicator

File: status_online.json

{
  "type": "frames",
  "speed": 20,
  "pause": 0,
  "frames": [
    "&a● &fOnline",
    "&2● &fOnline"
  ]
}

Usage: {#ANIM:status_online}ignored{/#ANIM}

Countdown

File: countdown.json

{
  "type": "frames",
  "speed": 20,
  "pause": 40,
  "frames": [
    "&c3",
    "&e2",
    "&a1",
    "&b&lGO!"
  ]
}

Emoji Spinner

File: spinner.json

{
  "type": "frames",
  "speed": 5,
  "pause": 0,
  "frames": [
    "&6|",
    "&6/",
    "&6-",
    "&6\\"
  ]
}

News Ticker

File: slow_scroll.json

{
  "type": "scroll",
  "speed": 2,
  "pause": 0
}

Usage: {#ANIM:slow_scroll}BREAKING NEWS: Server reset at midnight! {/#ANIM}

Color Codes in JSON

All color codes in JSON files use & notation (not §). The mod automatically converts & to § when loading the file.

Supported in JSON: - &0 through &f — legacy colors - &k, &l, &m, &n, &o — formatting - &r — reset

Warning

Hex colors (&#RRGGBB), gradients (<GRADIENT:...>), and rainbow (<RAINBOW>) are not supported inside animation JSON color arrays. Use only legacy & codes in animation configuration files.

Tips

  • Test with high speed first (speed: 1) to quickly see how the animation looks, then slow it down
  • Use pause to give viewers time to read completed animations
  • Frame-based animations are the most versatile — you can create any effect by listing explicit frames
  • File names are animation names — use descriptive names like fire_wave, team_pulse, alert_blink
  • Run /mh reload after editing any animation file