Skip to content

Text Tags ​

Tags inside a line change how it types out: pauses, speed, colors, sounds, effects and portrait changes. They work in every line, including translated ones.

json
"lines": "Fire?{pause:15} {speed:0.5}Very well.{speed:1} {shake}Respect it.{/shake}"

All tags ​

TagEffect
{player}The player's name
{pause:20}Wait 20 ticks (1 second) before typing on
{speed:0.5}Type at half speed from here. {speed:2} is twice as fast, {speed:1} is normal again
{emotion:sad}Switch the portrait to sad at this point
{sound:minecraft:block.bell.use}Play a sound at this point
{sound:minecraft:block.bell.use:1.5}Play a sound with a pitch
{color:gold} … {/color}Color the text between. A color name or a hex code like {color:#ff8800}
{shake} … {/shake}Trembling letters
{wave} … {/wave}Wavy letters
{{A plain {
\nStart a new row

Details ​

Pauses and speed. {pause} and {speed} change timing only. Typing also pauses briefly on its own after . ! ? and , ; : when more text follows. Players can change those pauses in their settings.

Reset the speed

A {speed:x} tag stays in effect until another speed tag changes it, even into the next box. Close every slow or fast part with {speed:1}.

Emotions. {emotion:x} switches the portrait when the typing reaches it, and the new face stays for the rest of the node. A node's "emotion" field sets the face it starts with.

Sounds. Any sound event works: the game's, a mod's or one from your resource pack. Sound ids have a colon in them, so a pitch is a third part: {sound:minecraft:entity.generic.eat:1.2}.

Colors. Color names are Minecraft's: black, dark_blue, dark_green, dark_aqua, dark_red, dark_purple, gold, gray, dark_gray, blue, green, aqua, red, light_purple, yellow, white. Colors can be nested.

Skipping. When the player skips ahead with X or Shift, pauses are skipped and sounds that haven't played yet stay silent. Emotion changes still apply, so the face is always right.

Typos. A tag the mod doesn't know is shown as written, such as {shkae}, so mistakes are easy to spot in game.

Line breaks ​

Lines wrap on their own, so you rarely need \n. Use it when you want a row to end at an exact spot:

json
"lines": "A riddle for you:\nWhat has roots nobody sees?"

Each entry in lines is already its own box, so to start a fresh box, start a new entry instead.

All Rights Reserved.