Skip to content

Add RGB color system#1669

Open
alppp wants to merge 2 commits intoGTNewHorizons:masterfrom
alppp:angelica-colors
Open

Add RGB color system#1669
alppp wants to merge 2 commits intoGTNewHorizons:masterfrom
alppp:angelica-colors

Conversation

@alppp
Copy link
Copy Markdown

@alppp alppp commented Apr 13, 2026

adds full RGB color support using the §x§R§R§G§G§B§B wire format (1.16+ spigot standard).
degrades gracefully on unmodded clients.

features:

  • 16.7M RGB colors via §x or &#RRGGBB shorthand
  • gradients (§g/&g) with two color endpoints
  • rainbow (§y/&y) - static per-character hue cycle
  • wave (§w/&w) - animated sine offset, freezes in HUD cache
  • dinnerbone (§j/&j) - flipped characters
  • all legacy §0-f and §k-o still work
  • line wrapping preserves colors and effects across breaks
  • config toggles: enableRGBColors, enableTextEffects, enableAmpersandConversion
  • sign rendering support

Examples :

--- Basic RGB (&#RRGGBB syntax) ---
&#FF0000Red &#00FF00Green &#0000FFBlue

--- Legacy colors ---
&cRed &aGreen &bBlue &eYellow

--- Rainbow ---
&qRainbow text here&r normal

--- Wave ---
&zWavy text here&r normal

--- Dinnerbone ---
&vFlipped text&r normal

--- Gradient ---
&g&#FF0000&#0000FFSmooth red to blue gradient&r done

--- Wave survives color change ---
&z&#FF0000Red wave &aGreen wave still going&r stopped

--- Dinnerbone survives color change ---
&v&cFlipped red &aFlipped green &bFlipped blue&r normal

--- Reset clears everything ---
&z&q&vAll effects on&r All effects off

--- Gradient + bold ---
&g&#FF0000&#FFFF00&lBold gradient text&r done

--- Invalid edge cases (should render literally) ---
&#GGGGGGinvalid hex &#FFnot enough digits &# nothing

--- Normal formatting ---
Just a normal &c with &l bold &r reset

--- Long gradient wrap test ---
&g&#FF0000&#00FF00This is a really long gradient message that should wrap across multiple chat lines to verify the color interpolation continues smoothly after the line break point

image

related PRs (all required):

- full RGB via §x§R§R§G§G§B§B (1.16+ spigot standard)
- &#RRGGBB input syntax converted at render time
- gradients (§g), rainbow (§y), wave (§w), dinnerbone (§j)
- line wrapping preserves §x colors and effects across breaks
- config toggles for each feature group
- sign rendering support
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants