✨ TextEffect Integration
EventForge can optionally integrate with the separate TextEffect plugin to display animated shader-powered text in supported EventForge displays.
This page covers the external TextEffect plugin integration.
For EventForge's built-in no-resource-pack text effects, see the normal Text Effects page.
TextEffect integration is optional. EventForge works normally without TextEffect installed.
What TextEffect adds
When TextEffect is installed and enabled, EventForge can render TextEffect tags in supported display areas.
Examples:
<neb>Mining Rush</neb>
<g>has started!</g>
<love>Good luck!</love>
<storm>Wave {wave}</storm>
This is useful for premium event names, titles, bossbars, queue countdowns, wave announcements, and important event messages.
Default behaviour
TextEffect integration is disabled by default in EventForge v1.0.3.
This keeps new installs backwards compatible and prevents shader glyphs from appearing on servers that do not use the TextEffect resource pack.
Default config:
integrations:
texteffect:
enabled: false
mode: "DISABLED"
To use TextEffect from EventForge, install TextEffect separately, make sure players receive the required resource pack, then enable the integration.
Enable TextEffect integration
Edit config.yml:
integrations:
texteffect:
enabled: true
mode: "ALWAYS"
Then run:
/eventforge reload confirm
EventForge refreshes the TextEffect hook during reload, so a full restart is not normally required after changing this section.
Integration modes
EventForge supports three TextEffect modes.
ALWAYS
SERVER_STATUS
DISABLED
ALWAYS
integrations:
texteffect:
enabled: true
mode: "ALWAYS"
Use TextEffect whenever the TextEffect plugin is installed and enabled.
This is best when your server already requires the TextEffect resource pack or you know players will have it loaded.
If a player does not have the pack loaded, they may see shader glyphs instead of the final animated text.
SERVER_STATUS
integrations:
texteffect:
enabled: true
mode: "SERVER_STATUS"
Only use TextEffect after Bukkit reports the player's server resource pack status as SUCCESSFULLY_LOADED.
This is safer for public servers where players may decline the server resource pack.
Important limitation:
SERVER_STATUS only tracks packs sent through the server resource pack prompt.
It cannot reliably detect manually installed local client resource packs.
DISABLED
integrations:
texteffect:
enabled: false
mode: "DISABLED"
Never use TextEffect from EventForge.
EventForge falls back to normal legacy formatting and safely strips TextEffect-only tags when needed.
Supported EventForge displays
EventForge v1.0.3 supports TextEffect tags in these areas:
GUI item names and lore
Event broadcast/chat messages
Start/end/result messages
Titles and subtitles
Actionbars
Main event bossbars
Mob invasion / wave bossbars
Manual queue bossbars
Manual queue countdown titles
Manual queue GO titles
Not supported in v1.0.3
The following areas are intentionally not animated with TextEffect in v1.0.3:
Sidebar text
Dialogue text/title display
ProtocolLib packet sidebars
These were skipped to keep EventForge stable across Spigot, Paper, and Purpur 1.21 - 1.21.11.
Minecraft scoreboard sidebars are string/legacy-limited through the Bukkit API. Animated sidebar support would require packet rendering or ProtocolLib, so it is not included in this release.
Resource pack behaviour
TextEffect requires the TextEffect resource pack to be loaded client-side.
If mode: "ALWAYS" is used and a player does not have the pack loaded, they may see shader glyphs.
To avoid this, server owners can:
make the TextEffect resource pack required
use mode: "SERVER_STATUS"
use mode: "DISABLED"
Plain variables inside TextEffect tags
Use plain variables inside TextEffect tags when possible.
Good:
<neb>{var:event_plain_name}</neb>
Avoid wrapping colour-coded display names if {event_display} contains colour codes:
<neb>{event_display}</neb>
EventForge strips legacy & formatting inside TextEffect tags as a safety measure, but plain variables are cleaner and easier to maintain.
Bundled v1.0.3 templates include:
variables:
event_plain_name: "Mining Rush"
Use this when you want a clean name inside TextEffect tags.
GUI item names and lore
GUI item names and lore support TextEffect tags.
Example:
name: "<neb>Active Events</neb>"
lore:
- "<g>View currently running events.</g>"
- "&7Click to open."
TextEffect is only used for GUI items when the name or lore contains TextEffect tags.
Normal colour codes still work:
name: "&b&lActive Events"
lore:
- "&7View currently running events."
This prevents normal GUI text from showing raw & codes when TextEffect is installed.
Messages and broadcasts
Event start, end, result, schedule, and wave announcement messages can use TextEffect tags.
Example:
messages:
start:
- "<neb>{var:event_plain_name}</neb> <g>has started!</g>"
- "<love>Mine blocks to earn points.</love>"
Existing EventForge colour codes still work normally when TextEffect is not used.
Titles and actionbars
Titles and actionbars support TextEffect tags in supported paths.
Examples:
announcements:
start:
enabled: true
title: "<neb>{var:event_plain_name}</neb>"
subtitle: "<g>Good luck!</g>"
triggers:
player-score:
actions:
- type: ACTIONBAR
message: "<love>+{score_change} points</love> &8| &7Total: &f{new_score}"
Actionbar fallback handling was improved in v1.0.3. If TextEffect is unavailable, EventForge uses Spigot's native actionbar channel instead of sending fallback text as normal chat.
Main event bossbars
Main event bossbars support TextEffect tags through Adventure bossbars.
Example:
bossbar:
enabled: true
text: "<neb>{var:event_plain_name}</neb> <g>|</g> <love>{time_left}</love>"
Bossbar rendering is per-player, allowing EventForge to use TextEffect for players who should receive it and fallback text for others.
Mob invasion wave bossbars
Mob invasion wave bossbars support TextEffect tags.
Example:
wave-bossbar:
enabled: true
text-countdown: "<storm>Wave {wave}</storm> <g>starts in</g> <love>{time}</love>"
text-active: "<neb>Wave {wave}</neb> <g>|</g> <love>{remaining_mobs} mobs left</love>"
Supported wave displays include:
wave countdown bossbar
active wave bossbar
wave countdown titles
wave announcement messages
Manual queue displays
Manual queue displays support TextEffect tags in safe display areas.
Queue bossbar example:
participation:
queue-bossbar:
enabled: true
title: "<neb>Preparing for {event_display}</neb> &8| &f{time_left} &8| &7Joined: &f{players}&8/&f{max_players}"
Queue countdown example:
participation:
queue-countdown:
enabled: true
title: "<g>{seconds}</g>"
subtitle: "<neb>{event_display}</neb> &7starts soon..."
go-title: "<love>GO!</love>"
go-subtitle: "<neb>{event_display}</neb> &7has begun!"
Queue bossbars and queue countdown titles are disabled by default. Enable them when you want a more premium pre-event lobby flow.
Reload behaviour
When /eventforge reload confirm is used, EventForge refreshes the TextEffect hook after reloading config files.
This means changes to the TextEffect integration section can apply without a full restart.
The same reload path is used by:
/eventforge reload confirm
admin GUI reload confirmation
API reload calls
Validation
/eventforge validate checks the configured TextEffect mode.
Valid modes:
ALWAYS
SERVER_STATUS
DISABLED
Invalid values safely fall back and produce a validation warning.
Summary
TextEffect integration gives EventForge optional animated shader-powered displays while keeping normal EventForge formatting fully supported.
Use it for premium event names, bossbars, queue countdowns, titles, actionbars, and important event messages.
Leave it disabled if your server does not use the TextEffect resource pack.