Tablist System - ZeroG-Network/NeoEssentials GitHub Wiki
The NeoEssentials Tablist System provides a comprehensive, TAB-like interface with support for animated headers, footers, custom templates, and group-specific configurations.
- Ultra-Smooth Animations: 25ms update intervals for smooth visual effects
-
Multiple Simultaneous Animations: Use multiple
<anim:name>
placeholders in the same template - Three Independent Update Systems: Optimized for performance and responsiveness
- Group-Specific Templates: Different designs for different player groups
- Rich Placeholder Support: Dynamic data integration with custom placeholders
-
Hex Color Support: Full RGB color customization with
&#RRGGBB
format
- Template Switching (3000ms) - Slow cycling through different templates
- Placeholder Updates (250ms) - Dynamic data like player count, time, server stats
- Animation Frames (25ms) - Ultra-smooth animation frame updates
This separation ensures optimal performance while maintaining smooth visual effects.
You can use multiple animation placeholders simultaneously:
headers:
- "&6&l⦠&b&lNeoEssentials Server &6&lā¦"
- "<anim:welcome>"
- "&a%player%&e! <anim:server_name>"
- "&eOnline: <anim:player_count> &7| &eTime: <anim:clock>"
footers:
- "&eBalance: &a%balance% coins"
- "<anim:example> &7| <anim:rainbow>"
- "&eServer TPS: &a%tps% &7| <anim:pulse>"
-
<anim:name>
- Modern format (recommended) -
{animation:name}
- Legacy format (still supported)
Define animations in animations.yml
:
animations:
welcome:
interval: 15 # milliseconds between frames
frames:
- "&aW&7elcome"
- "&aWe&7lcome"
- "&aWel&7come"
- "&aWelc&7ome"
- "&aWelco&7me"
- "&aWelcom&7e"
- "&aWelcome"
rainbow:
interval: 30
frames:
- "&#FF0000R&#FF7F00a&#FFFF00i�FF00n�FFbB0082oⒸD3w"
- "&#FF7F00R&#FFFF00a�FF00i�FFnB0082bⒸD3o&#FF0000w"
- "&#FFFF00R�FF00a�FFiB0082nⒸD3b&#FF0000o&#FF7F00w"
settings:
update_interval: 3000 # Template switching
placeholder_update_interval: 250 # Dynamic data updates
enable_animations: true
enable_headers: true
enable_footers: true
enable_group_specific: true
# Animation intervals in ticks (1 tick = 50ms)
header_animation_interval: 1 # 50ms
footer_animation_interval: 1 # 50ms
templates:
headers:
- "&6&l⦠&b&lNeoEssentials Server &6&lā¦"
- "<anim:welcome>"
- "&a%player%&e! Welcome to the server!"
- "&eOnline players: &a%online%/%max%"
- "&eServer time: &a%time%"
footers:
- "&eBalance: &a%balance% coins"
- "&eWebsite: &awww.example.com"
- "<anim:example>"
- "&eServer TPS: &a%tps% &7| &eMemory: &a%memory_percent%"
groups:
admin:
headers:
- "&4&lā
&c&lAdmin Panel &4&lā
"
- "&cOnline players: &f%online%/%max%"
- "<anim:admin_welcome>"
footers:
- "&cAdmin Command Help: &f/neoessentials help"
- "&cServer uptime: &f%uptime%"
vip:
headers:
- "&6&lā &e&lVIP Perks Active &6&lā"
- "&eWelcome back, &6%player%&e!"
- "<anim:vip_status>"
footers:
- "&6VIP Balance: &e%balance% coins"
- "&6Use &e/vip help &6for perks"
bossbars:
global:
- "{color:red}{style:progress}{progress:1.0}Server TPS: %tps%"
- "{color:green}{style:notched_6}{progress:0.8}Welcome!"
groups:
admin:
- "{color:purple}{style:progress}{progress:1.0}Admin Mode"
The tablist system supports all NeoEssentials placeholders:
-
%player%
- Player name -
%online%
- Online player count -
%max%
- Maximum player slots -
%tps%
- Server TPS -
%time%
- Current time -
%balance%
- Player balance -
%memory_percent%
- Memory usage percentage - Custom placeholders via API
-
&a
- Green -
&c
- Red -
&e
- Yellow -
&f
- White -
&l
- Bold -
&o
- Italic
-
&#FF0000
- Pure red -
�FF00
- Pure green -
�FF
- Pure blue -
6C5EA
- Custom cyan
Combine hex colors for gradient effects:
- "&#FF0000H&#FF3300e&#FF6600l&#FF9900l&#FFCC00o &#FFFF00W&#CCFF00ocFF00rBFF00l!FF00d�FF00!"
-
/tablist reload
- Reload tablist configuration -
/tablist toggle
- Toggle tablist display -
/tablist debug
- Show debug information -
/tablist test <animation>
- Test specific animation
-
/tablist
- Show current tablist info -
/tablist animations
- List available animations
-
Use appropriate update intervals:
- Fast animations (10-50ms) for smooth effects
- Medium placeholders (200-500ms) for dynamic data
- Slow templates (2-5 seconds) for variety
-
Limit animation complexity:
- Keep frame counts reasonable (5-20 frames)
- Avoid too many simultaneous animations per player
-
Monitor server performance:
- Use
/tablist debug
to check update frequencies - Adjust intervals based on server capacity
- Use
Animation not showing:
- Check animation exists in
animations.yml
- Verify placeholder syntax:
<anim:name>
- Ensure animations are enabled in settings
Performance issues:
- Increase update intervals
- Reduce number of active animations
- Check server TPS with
/tps
Colors not working:
- Use proper hex format:
&#RRGGBB
- Ensure client supports colors
- Check for plugin conflicts
Enable debug logging in general.toml
:
debug_mode = true
tablist_debug = true
For developers wanting to extend the tablist system:
// Register custom placeholder
TablistPlaceholderManager.registerPlaceholder("custom", (player) -> "Custom Value");
// Add custom animation
TablistAnimationManager.addAnimation("myanimation", animationFrames, interval);
// Update player's tablist
TablistManager.updateTablist(player);
- Animation System - Detailed animation configuration
- Custom Placeholders - Creating custom placeholders
- Text Formatting - Advanced formatting options
- Performance Optimization - Server optimization tips
For more information, see the NeoEssentials Wiki or join our Discord for support.