Compatibility
Minecraft: Java Edition
Platforms
Tags
Creators
Details
LuckTAB
Tab list, chat format and scoreboard in one plugin, set up from a single config.yml.
Ranks come from LuckPerms. You write your prefixes once and they show up in the tab list, above player heads and in chat, sorted by group weight.
What it does
- Tab list - rank prefixes and sort order pulled from LuckPerms, with per-world header and footer designs
- Chat format - your own format per rank
- Scoreboard sidebar - per-world title and lines, falls back to
defaultif a world has no design of its own - Nametags - prefix and suffix above player heads, via scoreboard teams
- Colours everywhere - legacy
&codes, hex&#RRGGBB, and animated gradients with<gradient:#FF0000:#FF7700>text</gradient> - Ping colours -
%lucktab_ping_colored%goes green, yellow or red at thresholds you set - Vanish support - vanished players disappear from the tab list. Works with Essentials, CMI, SuperVanish and PremiumVanish
- LuckPerms migration -
/lucktab migrate to-luckpermsandfrom-luckperms, so you can move your prefixes either way without retyping them - PlaceholderAPI - optional, works in header, footer, sidebar and chat
The scoreboard updates without flickering. It keeps score entries stable and only rewrites lines that actually changed, instead of tearing the whole sidebar down and rebuilding it every tick, which is what causes the flicker you see in a lot of sidebar plugins.
You can also pick where prefixes come from: prefix-source: lucktab uses the ones in the config, luckperms reads live meta instead.
Server software
| Paper | Spigot | Purpur | |
|---|---|---|---|
| Tab list, chat, nametag | yes | yes | yes |
| Hex & gradient colors | yes | yes | yes |
| Scoreboard anti-flicker | yes | yes | yes |
| Hex/gradient in scoreboard lines | yes | legacy only | yes |
Paper or Purpur if you want all of it. Spigot works, the sidebar just falls back to legacy colours.
Dependencies
- LuckPerms - required, luckperms.net
- PlaceholderAPI - optional, Modrinth
Colours
| Format | Example | Works in |
|---|---|---|
Legacy & codes |
&6[VIP] |
everywhere |
Hex &#RRGGBB |
&#FF5733[Admin] |
everywhere |
| Animated gradient | <gradient:#FF0000:#FF7700>text</gradient> |
everywhere |
| Bold gradient | <gradient:#FF0000:#FF7700>&l[Owner]&r </gradient> |
everywhere |
Built-in placeholders
These work without PlaceholderAPI:
| Placeholder | Description |
|---|---|
%player% |
Player name |
%world% |
Current world name |
%server_online% |
Online player count |
%server_max_players% |
Max player count |
%player_ping% |
Player ping in ms (plain number) |
%lucktab_ping_colored% |
Ping colored green/yellow/red automatically |
%lucktab_rank% |
Colored rank prefix |
%lucktab_prefix% |
Same as %lucktab_rank% |
%lucktab_suffix% |
Rank suffix |
%lucktab_color% |
Rank name color |
%lucktab_rank_display% |
Prefix + color + group name + suffix |
%chatPrefix% |
Rank prefix in chat format |
%chatSuffix% |
Rank suffix in chat format |
With PlaceholderAPI installed, anything else like %vault_eco_balance% works too.
Configuration
All of it lives in config.yml:
# ── Prefix Source ─────────────────────────────
# lucktab -> use prefixes from this config (default)
# luckperms -> use prefixes directly from LuckPerms meta
prefix-source: lucktab
# ── Ping Colors ───────────────────────────────
ping-colors:
good: 50 # 50ms or less -> green
medium: 100 # 100ms or less -> yellow
# over 100ms -> red
# ── Tab-List ──────────────────────────────────
tab-list:
show-only-same-world: false
# ── Chat Format ───────────────────────────────
useChatFormat: true
chatFormat: "%chatPrefix%%playerName% &8» &7%message%"
# ── Rank Prefixes ─────────────────────────────
# Format: "group;prefix;suffix;namecolor"
# Top = highest priority | suffix can be empty: "group;prefix;;color"
prefixes:
- "owner;<gradient:#FF0000:#FF7700>[Owner] </gradient>;;&#FF7700"
- "admin;&#FF5555[Admin] &7;;&#FF5555"
- "mod;ᖳFF[Mod] &7;;ᖳFF"
- "vip;&6[VIP] &7;;&6"
- "default;&7[Player] &7;;&7"
# ── Header & Footer ───────────────────────────
# Per-world: add a section with the exact world name as key
# Falls back to "default" if no world-specific design is found
header-footer:
enabled: true
designs:
default:
header:
- ""
- "<gradient:#FF5733:#FFC300> MyServer </gradient>"
- ""
footer:
- ""
- "&fOnline: &b%server_online%&7/&b%server_max_players% &7| &fPing: %lucktab_ping_colored%"
- ""
# ── Scoreboard Sidebar ────────────────────────
# Per-world: add a design with the exact world name under "designs"
scoreboard:
enabled: true
designs:
default:
title: "<gradient:#FF0000:#FF7700>MyServer</gradient>"
lines:
- ""
- "&7Rank: %lucktab_rank%"
- "&7Ping: %lucktab_ping_colored%"
- ""
- "&7World: &f%world%"
- ""
- "&7Online: &f%server_online%&8/&f%server_max_players%"
- ""
Commands
| Command | Permission | Default |
|---|---|---|
/lucktab reload |
lucktab.reload |
OP |
/lucktab migrate to-luckperms |
lucktab.migrate |
OP |
/lucktab migrate from-luckperms |
lucktab.migrate |
OP |
Migration calculates group weights for you, so the tab order stays the same after moving prefixes across.
Credits
Originally written by PattyXDHD, who built the foundation.
Maintained by LucasTHCR since then: scoreboard, hex and gradient colours, suffixes, vanish support, per-world configs, ping colours, the LuckPerms migration, anti-flicker, PlaceholderAPI, the reload command, and a pile of bug fixes.
Bugs and questions: dc.gg/paperstream


