Twenty-seven text effects for Minecraft — ten that colour, seventeen that move. Works on item names, lore, tooltips, chat, books, signs, and FTB Quests text.
Minecraft 1.20.1 · Forge 47.4.x · Client-side
Put a control code in front of any text.
&p流光彩虹 Rainbow
&xsh shaken text
&{grad from=5BCEFA to=F5A9B8}gradient&{/}
No resource pack, no dependencies. Drop the jar in mods/ and the codes work.
Ten colour codes, one letter each. They recolour, outline and add glow; the letters stay put.
| Code | Effect |
|---|---|
&p |
Rainbow — colour streams across the text |
&g |
Glitch — intermittent fracturing |
&h |
Cyber — red/cyan aberration, pixel ghosting, dark backing |
&q |
Magical Neon — violet-to-cyan, bold, layered glow |
&y |
Holographic — liquid iridescence, metallic edge, white specular |
&s |
Energy Bar — translucent cyan bar sweeping through the glyphs |
&t |
Lava Plasma — flowing core, dark outline, flame halo |
&v |
Parchment — aged spellbook wash, brown drop shadow |
&u |
Red Speed Neon — heavy bloom, speed lines, motion ghosts |
&m |
Synthwave — cyan-to-magenta 3D extrusion, VHS scan glitch |
Seventeen animated effects, &x plus two letters. They move, rotate and reveal.
| Code | Effect | Code | Effect | |
|---|---|---|---|---|
&xsh |
Shake | &xra |
Rainbow cycle | |
&xwa |
Wave | &xgr |
Two-colour gradient | |
&xwi |
Wiggle | &xpu |
Pulse | |
&xsw |
Swing | &xfa |
Fade | |
&xbo |
Bounce | &xsd |
Deepened shadow | |
&xpe |
Pendulum | &xgl |
Glitch jitter | |
&xtu |
Turbulence | &xne |
Neon glow | |
&xsc |
Scroll | &xty |
Typewriter | |
&xsp |
Fixed hue per letter |
Two letters are matched before one, so &xsh is shake rather than &xs followed by an h. One-letter shortcuts exist for the common ones: &xs &xw &xr &xu &xf &xg &xb &xp &xt &xc &xd &xh &xl &xi &xe.
&{shake a=3 f=2}violent shake&{/}
&{grad from=ff0000 to=0000ff sp=8}red to blue&{/}
&{pulse base=0.2 f=3}strong pulse&{/}
&{typewriter f=5}fast typing&{/}
| Param | Meaning |
|---|---|
a |
Amplitude |
f |
Speed; characters per second for the typewriter |
w |
Phase offset between adjacent letters |
r |
Radius — pendulum orbit, neon glow size |
p |
Passes — neon, default 10 |
from to |
Gradient endpoints, six hex digits |
sp |
How many letters a gradient spans |
uni |
One-way rather than there-and-back |
base |
Floor brightness for pulse |
An unrecognised parameter name is ignored and the default used — a typo should not stop an item name from rendering.
&q&xsh arcane shake
&{shake; wave a=0.5}both&{/}
&xsh shaken&r plain again
\&xsh literal code
&{/} closes a long-form scope. &r (or §r) clears every effect and vanilla formatting.
Item names and lore, full tooltips, chat, books, signs — anything the game renders as a text component. With FTB Quests installed, quest titles, subtitles, descriptions and reward text too.
Detected at runtime, wired up only if present. None are required.
Mod id luminotype, package cn.blockforge.luminotype.
const DynamicTextApi = Java.loadClass('cn.blockforge.luminotype.api.DynamicTextApi')
const FtbQuestTextApi = Java.loadClass('cn.blockforge.luminotype.compat.FtbQuestTextApi')
FtbQuestTextApi.setTitle('5A1B2C3D4E5F6071', '&u&xsh Red Overload')
DynamicTextApi.refresh()
Pass quest ids as strings — they are full 64-bit values and JavaScript numbers lose precision on them. Edit quest data during server-side script loading; clients parse the codes when the data syncs.
FtbQuestTextApi is fully reflective: with FTB Quests absent every method returns false rather than throwing, so it can be called unguarded.
config/luminotype-client.toml, generated on first run.
| Key | Default | |
|---|---|---|
enabled |
true |
Master switch |
rainbowSpeed |
1.35 |
0.05–8.0 |
glitchFrequency |
16 |
1–60 |
refreshIntervalMs |
40 |
16–1000. Raise to spend less CPU |
maxTextLength |
512 |
Animated characters per run, 16–8192 |
compatibleScreens |
["*"] |
Which screens may animate |
Plus a switch per colour effect. compatibleScreens is a substring match against the lowercased screen class name, so ["inventory"] is enough. * matches everything; hud covers text drawn with no screen open.
Turning an effect off still hides its code — the text falls back to its plain colour rather than showing a literal &p.
Text with no control codes costs nothing: the parser scans once, finds no code, returns the original.
Of the animated effects, sixteen move or recolour a single glyph and cost about what a colour code does. &xne neon is the exception — it draws each glyph eleven times. Fine on a title, noticeable on a full page of lore.
Three levers: raise refreshIntervalMs, lower maxTextLength, narrow compatibleScreens.
&m is vanilla's strikethrough code. This mod claims it for Synthwave. Use §m for strikethrough. No other vanilla code conflicts.
&xsc scroll leaves its container — it pushes the whole line left. That is the effect, not a bug, but do not put it on an item name.
&xty typewriter is keyed by the string. The same text drawn in two places shares one reveal; different text keeps separate progress. Progress is forgotten a second after it stops being drawn, so a tooltip retypes on each hover.
Client-side rendering. The animation happens during font rendering, so a server does not need the mod — but control codes live in server-side data such as item NBT and quest files, and a player without the mod sees the literal code. For a modpack, require it on all clients.
&#RRGGBB custom colours are not supported. Writing one renders it literally. For an arbitrary two-colour gradient use &{grad from=… to=…}, which does work.