Gradient Chat v2.5
A plugin that adds customizable gradient chat colors for players who have donated to the server.
GradientChat
36 Chat Gradients. GPU Animation When You Want It. Static Colors When You Do Not.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
36 Gradients ◆ Shader Pack ◆ MySQL + YAML ◆ PlaceholderAPI ◆ Paper 1.21
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GradientChat with EnchantedMC Addon:
GradientChat without EnchantedMC Addon:
What GradientChat Solves
Most gradient plugins paint chat once per character and stop. Animation means the server re-sending packets every few ticks. That costs CPU, fights chat formatter plugins, and still looks choppy on busy networks.
GradientChat splits the job. Without a resource pack, every gradient uses the same ColorUtil path as the GUI preview: correct per-character hex, bold and italic support, PlaceholderAPI hooks for scoreboards and menus. With the shader pack (Nexo, Oraxen, ItemsAdder, or vanilla ZIP), selected gradients and inline tags animate on the client GPU using GameTime. No tick loop on the server for shader mode.
Players pick a style in a 54-slot GUI, unlock more through permissions or presents, or build their own hex gradients in-game. Chat formatters like LPC read %gradientchat_message% so the formatted line keeps the gradient the player actually typed.
36 Built-In Gradients
Every gradient is its own config block: colors, permission, GUI slot, head texture, glow. Add more by copying a template. Disable one without touching the rest.
· · · WARM · · ·
- Fire Red-orange core through gold. Default unlock candidate for new players.
- Sunset Amber, coral, and violet dusk tones across the message.
- Volcanic Deep magma red into char black edges.
- Phoenix Bright flame yellow with ember red falloff.
- Desert Sand gold into burnt sienna.
- Autumn Orange leaf through brown bark.
- Cherry Soft blossom pink into rose.
- Valentine Hot pink heart tones for seasonal events.
- Cotton Warm cream and blush, readable on dark chat.
- Ocean Deep navy into aqua surf.
- Ice Frost white through glacier blue.
- Winter Icy blue with silver highlights.
- Midnight Near-black purple with star pinpoints.
- Coral Reef teal into seafoam.
- Tropical Lagoon green and palm cyan.
- Spring Fresh leaf green with yellow highlights.
- Nature Forest green gradient, high readability.
- Meadow Soft grass tones for calm SMP chat.
- Neon Electric pink and cyan punch.
- Cyberpunk Magenta street glow into dark violet.
- Cybernetic Chrome blue with circuit green accents.
- Matrix Terminal green on black-green base.
- Lightning White flash into storm purple.
- Prism Full spectrum sweep in one message.
- Royal Gold trim on deep purple. VIP staple.
- Rainbow Six-band classic rainbow. Shader scroll when pack is active.
- Sunrise Peach horizon into morning blue.
- Galaxy Nebula purple with blue star clusters.
- Cosmic Deep space violet into black-blue.
- Shadow Charcoal fade, minimal distraction.
- Emerald Jewel green with dark jade edges.
- Blood Crimson drip into dried red.
- Crimson Dark red wine tones.
- Poison Toxic green with sickly yellow.
- Magic Arcane violet with sparkle pink.
- Pastel Low-saturation blend for subtle donors.
GPU Shader Mode
Ship the included resource pack or merge it into Nexo, Oraxen, or ItemsAdder. Fragment shaders hook rendertype_text and rendertype_text_see_through so chat, signs, and most Text Display entities can animate without server ticks.
On reload the plugin writes gradientchat_presets.glsl from your config colors. Copy that file into your merged pack so shader colors always match the GUI. Slide speed, character spacing, and preset IDs are all in config.yml.
Dual path encoding:
- R=251 selected chat gradient: preset ID in blue, character index in green, GPU scroll or ColorUtil static
- R=253 inline tags: rainbow, custom hex gradient, pulse, wave per message
shader_fallback_static: true ◆ ColorUtil when the client has no pack
shader_force_gpu_encoding: true ◆ always encode for Nexo-only pack delivery
shader_slide_seconds ◆ one full scroll cycle timing for every animated preset
Core Systems
◆ Gradient GUI
- 54-slot menu: 36 gradient heads, bold and italic toggles, info panel, reset, custom gradient entry
- Live lore preview with configurable sample text
- Unlock progress line: owned gradients vs total available
- Sounds and particles on open, select, and deny
◆ Custom Gradient Builder
- In-game color picker GUI, 2 to 4 hex stops per gradient
- Tiered limits via permissions: 1, 2, 3, 5, or unlimited slots
- Stored per player in MySQL or YAML under plugins/GradientChat/data/
◆ Present System
- Right-click present item unlocks a random gradient the player does not own yet
- Full item lore, sounds, and particle burst on open
- /gradientpresent for staff rewards and crate plugins
◆ Chat and Formatter Integration
- AsyncChatEvent at HIGHEST priority so LPC, Essentials, and similar formatters receive the already gradient-encoded message
- %gradientchat_message% caches the last outgoing line for format strings
- Private /msg and /tell support when enabled in config
- Optional block list for /broadcast and /say
◆ PlaceholderAPI
- %gradientchat_apply_[gradient]_[text]% static color on any string
- %gradientchat_animated_[gradient]_[text]% server-ticked animation for scoreboards and DeluxeMenus
- %gradientchat_player_[text]% uses the viewer active gradient and styles
- %gradientchat_current_gradient%, has_gradient, is_bold, is_italic, gradient_count%
◆ Data Storage
- MySQL via HikariCP: async load and save, flush on shutdown
- YAML flat-file when database.enabled is false
- Stores selected gradient, bold, italic, and custom gradient definitions
◆ Inline Effect Tags (permission per tag)
- text hue cycle on GPU, static spectrum fallback
- text two-color scroll
- text brightness oscillation
- text per-character phase wave
How GradientChat Compares
| Feature | GradientChat | Typical Gradient Plugin |
| Animation | Client GPU via shaders, zero server tick loop in shader mode | Server resends chat every few ticks |
| No resource pack | Full static gradients, same colors as GUI preview | Broken colors or solid trigger tint |
| Pack merge | Documented Nexo, Oraxen, ItemsAdder, vanilla paths | Standalone pack only, conflicts with custom item packs |
| Player creation | GUI builder with tiered limits and DB/YAML save | Staff-only config edits |
| Chat formatters | message placeholder + HIGHEST listener priority | Formatter strips hex or runs before gradient apply |
| Configuration | Per-gradient blocks, auto-generated shader presets on reload | Single list in one config file |
Who This Is For
- SMP and survival Donor gradients, present loot, and custom builder give long-term chat identity without a rank plugin rewrite.
- Hub and lobby networks Lightweight when shaders are off. Turn GPU mode on for showcase hubs with a merged Nexo pack.
- RPG and prison Gate each gradient behind its own permission. Use presents as quest rewards.
- Networks with LPC or DeluxeMenus Placeholders and cached message output are built for external formatters, not against them.
Technical Specs
| Server | Paper 1.21.0 to 1.21.10, Java 21 |
| Shader client | Minecraft 1.21.4+ for custom GLSL text shaders (pack_format 48) |
| Dependencies | None required. PlaceholderAPI optional. MySQL optional. |
| Storage | HikariCP MySQL or YAML per-player files |
| Messages | Fully editable messages.yml |
| Aliases | /gc, /gradient, /chatgradient |
◆ Commands
| Command | Description | Permission |
| /gradientchat | Opens the gradient selection GUI | gradientchat.use |
| /gradientchat reload | Reloads config, messages, gradients, and regenerates shader preset GLSL | gradientchat.reload |
| /gradientchat select | Sets active gradient without opening GUI | gradientchat.use + gradient permission |
| /gradientchat debug | Toggles verbose console logging | gradientchat.admin |
| /gradientgive | Grants gradient access directly | gradientchat.admin.give |
| /gradientpresent | Gives a random-unlock present item | gradientchat.admin.present |
◆ Key Permissions
| Permission | Description | Default |
| gradientchat.use | GUI and chat gradient application | true |
| gradientchat.gradient.* | All 36 built-in gradients | op |
| gradientchat.gradient.rainbow | Single gradient unlock (one node per gradient) | false |
| gradientchat.custom.create | Opens custom gradient builder | false |
| gradientchat.custom.unlimited | No cap on player-made gradients | op |
| gradientchat.effects.* | All inline tags: rainbow, gradient, pulse, wave | op |
| gradientchat.bypass.cooldown | Skips GUI gradient switch cooldown | op |
Get GradientChat
Your players already type in global chat.
Give them gradients that look the same in the menu, in chat, and on the scoreboard. Add the shader pack when you are ready for GPU motion without tick lag.
36 presets. Custom builder. Shader optional. One plugin.
Drop in, /gradientchat reload, merge the pack into Nexo if you want animation.
Questions? Open a support thread. Pack merge help is in the shipped resourcepack README.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Statistics
Views
Purchases
Downloads
File size
Published
Updated