COWMODSКаталог модов

LuckTAB

LuckPerms-powered tablist, chat & scoreboard with animated gradients.

3 тыс.4обновлён 24 окт. 2026 г.
ЭкономикаОбщениеТехнологии

Описание

Discord Release Downloads Servers License

Built with Java 21 Available for Paper Available for Purpur Available for Folia Available for Spigot Available for Bukkit

Chat with us on Discord Available on Codeberg

bStats

LuckTAB

Tab list, name tags, sidebar and chat format, all driven by the LuckPerms group a player is in. One config.yml decides what a rank looks like, and the plugin applies that prefix everywhere at once: above the head, in the tab list, in front of the chat message and in the sidebar.

Colors can be legacy codes, hex, or animated gradients that move on their own. Header, footer and sidebar can differ per world and per permission, players can switch their sidebar off, and lines that have nothing to say disappear on their own. Bedrock players joining through Geyser get a sidebar that stays calm instead of flickering.

Full documentation is in the wiki.

Requirements

  • Paper or Spigot on Minecraft 1.21+
  • Java 21
  • LuckPerms (required)
  • PlaceholderAPI (optional)
  • ProtocolLib (optional, only for the static info rows in the tab list)
  • EssentialsX, CMI or Purpur (optional, for the AFK tag)
  • Geyser or Floodgate (optional, for Bedrock players)

On Paper the sidebar renders through components, so hex and gradients work in every line. On Spigot the sidebar falls back to legacy colors; everything else is the same.

Bedrock and Geyser

Bedrock players are recognized through the Floodgate or Geyser API, nothing has to be set up. Geyser rebuilds the whole Bedrock sidebar on every change it receives and starts throttling above 20 scoreboard packets per second, so LuckTAB only sends what actually changed, and Bedrock players get their own, slower update rate:

bedrock:
  enabled: true
  update-interval: 20
  animations: false
  fake-entries: false

With animations: false gradients and %anim_...% stay on their first frame for them. Bedrock cannot show a tab list header and footer, so those are not sent at all. A sidebar or header/footer design with platform: bedrock is only used for Bedrock players, which leaves room for shorter lines on the narrower Bedrock sidebar.

Commands

CommandDescriptionPermission
/lucktab reloadReload config.yml and rebuild every displaylucktab.reload
/lucktab toggle, /sidebar, /sbShow or hide your own sidebar, remembered across rejoinslucktab.toggle
/lucktab setprefix <group> <prefix>Change a rank prefix in game and reloadlucktab.edit
/lucktab setsuffix <group> <suffix>Change a rank suffix in game and reloadlucktab.edit
/lucktab benchmarkWhat the updates cost, in microseconds per sectionlucktab.benchmark
/lucktab migrate to-luckpermsWrite the configured prefixes into LuckPerms groupslucktab.migrate
/lucktab migrate from-luckpermsRead the prefixes of all LuckPerms groups back into the configlucktab.migrate

All permissions default to op, except lucktab.toggle, which everyone has.

setprefix and setsuffix save config.yml through Bukkit, which drops the comments in it. The alias of the toggle command is configurable and is registered at startup, so changing it needs a restart rather than a reload.

Configuration

When a new version adds options, they are written into your existing config.yml on the next start, with their comments. Your values stay as they are, and the previous file is kept as config.yml.bak.

Ranks are one line each, in the order they should appear in the tab list. Top is highest:

prefixes:
  - "owner;<gradient:#FF0000:#FF7700>[Owner] </gradient>;;&#FF7700"
  - "admin;&#FF5555[Admin] &7;;&#FF5555"
  - "vip;&6[VIP] &7;;&6"
  - "default;&7[Player] &7;;&7"

The format is luckperms_group;prefix;suffix;namecolor. A player who is in none of the listed groups gets the last entry.

prefix-source decides where prefixes come from. With lucktab they are read from the config above, with luckperms the prefix and suffix come from the group meta in LuckPerms and only the sort order and name color stay with the config. The two migrate commands move the data between both sides, so switching does not mean typing everything again.

header-footer and scoreboard each hold a designs section. A section named after a world is used in that world, everything else falls back to default. A design can also pick itself by permission, which is what a staff board next to a player board needs, or by platform: bedrock / platform: java:

scoreboard:
  designs:
    staff:
      permission: lucktab.staff
      priority: 10
      title: "&c&lStaff"
      lines:
        - "&7TPS: &f%server_tps_1%"

Lines whose placeholders all come back empty, 0 or null are dropped instead of leaving a gap, so &7Clan: &f%clan_name% is simply not there for a player without a clan. Empty spacer lines always stay.

animations holds named frame lists, and %anim_<name>% prints the current frame anywhere a placeholder is allowed. A header and footer design can carry frames instead of one fixed block and rotate through them.

Colors

SyntaxExample
Legacy&a, &l, &r
Hex&#FF5555
Gradient<gradient:#FF0000:#FF7700>text</gradient>

Gradients animate: the color wave shifts a little every two ticks, so a prefix slowly cycles through its range.

Placeholders

PlaceholderMeaning
%player%Player name
%world%Current world
%server_online%Online player count
%server_max_players%Slot count
%player_ping%Ping as a plain number
%lucktab_ping_colored%Ping, green/yellow/red by the thresholds in ping-colors
%lucktab_rank% / %lucktab_prefix%The rank prefix
%lucktab_suffix%The rank suffix
%lucktab_color%The name color of the rank
%lucktab_rank_display%Prefix, color, group name and suffix in one
%lucktab_ping_icon%Ping symbol from the ping-icons section
%lucktab_tps%Server TPS with one decimal (Paper, - on Spigot)
%lucktab_tps_colored%TPS, green from 19, yellow from 15, red below
%lucktab_mspt%Average milliseconds per tick (Paper)
%lucktab_afk%The AFK tag, empty while the player is active
%lucktab_badges%Badges for every group the player is in
%lucktab_platform%Bedrock for Geyser/Floodgate players, otherwise Java
%anim_<name>%Current frame of an animation
%chatPrefix% / %chatSuffix% / %chatBadges% / %playerName% / %message%Chat format only

With PlaceholderAPI installed, its placeholders work in every LuckTAB text as well. LuckTAB registers its own expansion in return, so other plugins can read %lucktab_prefix%, %lucktab_rank_display%, %lucktab_badges% and the rest; append _plain for a version without colors. That is also how DiscordSRV picks up the ranks for its chat bridge: put the placeholder into the DiscordSRV message format.

Building

mvn clean package

The finished jar lands in target/LuckTAB-<version>.jar. bStats is shaded and relocated into de.empireblocks.luckTAB.metrics; paper-api, the LuckPerms API and PlaceholderAPI are provided and stay out of the jar.

License

GNU General Public License v3.0. See LICENSE.

Галерея

Chat-MessageScoreboardTablistName

Последние версии

Все версии →
beta

LuckTAB 2.8.1-BETA

2.8.1-BETA
24 окт. 2026 г.40Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Скачать
Что нового
### Fixed - With `prefix-source: luckperms` the name tag above the player still showed the prefix from the `prefixes` list. The name tag teams were built from that list only, so the LuckPerms prefix never reached them. They are now built from the prefixes LuckPerms returns for the players online. - With `prefix-source: luckperms`, players whose LuckPerms group is missing from the `prefixes` list got the prefix of the last entry in that list. They now get their LuckPerms prefix as well; the list only decides colour and order for them, and they sort below the listed groups. - Right after joining, before the rank was loaded, a player briefly showed the last entry of the `prefixes` list. Tested on Paper 26.3 with LuckPerms on MariaDB. Not tested on Folia or Spigot.
release

LuckTAB 2.8-RELEASE

2.8-RELEASE
18 окт. 2026 г.452Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Скачать
Что нового
### Added - Geyser and Floodgate support. Bedrock players are detected through the Floodgate API, or the Geyser API when only Geyser is installed, and get their own treatment, set in the new `bedrock` section of the config: - `update-interval` (default 20 ticks): how often their sidebar and name tags are refreshed. - `animations` (default off): gradients and `%anim_...%` stay on their first frame for them. Every frame change made Geyser redraw the whole Bedrock sidebar. - `fake-entries` (default off): fake tab rows, which Geyser shows as extra players with a skin. - Header and footer are no longer sent to Bedrock players at all, Bedrock cannot show them. - `platform: bedrock` or `platform: java` in a sidebar or header/footer design, so Bedrock players can get a layout of their own. - `%lucktab_platform%` (`Bedrock` or `Java`), also as `%lucktab_bedrock%` (`true`/`false`) through PlaceholderAPI. - config.yml is now upgraded on start and on `/lucktab reload`: blocks and options a newer version added are written into the existing file with their comments, and the old file is kept as `config.yml.bak`. Nothing that is already there is changed. Your own ping steps and animations get no examples mixed in, and the ping behind the tab name and the `/sidebar` alias are not added to a file that never had them, because without them the plugin runs without either. The file carries a `config-version` marker for this. ### Fixed - LuckTAB sent far more packets than it needed to, which made Geyser lag. The sidebar title, the hidden numbers and the per-line number format went out on every update, ten times a second per player and line, even when nothing had changed; so did the header and footer, and the rank team prefixes on every board every two seconds. With the default config that was well over a hundred scoreboard packets per second per player. Geyser throttles at 20 and then rebuilds the Bedrock sidebar four times a second. Now each of them is only sent when it actually changed. - The update check took the first entry of the Modrinth list and only checked whether it was the same text as the running version. A server on a newer build was told to update to an older one, and every server on a release was offered the latest beta. It now picks the highest version number, and a release build only looks at releases. - Tab list names were compared against `getPlayerListName()`, which does not always return the same string that was set. When it differed, every player's name went out to everybody on every update. - An animated rank prefix went out ten times a second to all four of its teams on every board, even when nobody had that rank. Teams without members are skipped now and catch up as soon as someone joins them. - Fake tab rows were added again for every viewer every two seconds. They are added once now and only a changed text is sent afterwards. - Bedrock players saw raw line keys such as `lt_00000000_0` in the sidebar. Floodgate UUIDs all start with `00000000-0000-0000`, and the sidebar only used the first eight characters, so every Bedrock player shared the same line keys and line cache. The id now comes from the whole UUID.
release

2.7-RELEASE

2.7-RELEASE
12 окт. 2026 г.330Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2, 26.3bukkit, folia, paper, purpur, spigot
Скачать
Что нового
### Added - `%lucktab_tps%`, `%lucktab_tps_colored%` and `%lucktab_mspt%`, for a staff board or a footer without PlaceholderAPI. TPS is green from 19, yellow from 15 and red below. Both come from Paper; on Spigot they show `-` instead of breaking the line. Also available through the PlaceholderAPI expansion. ### Changed - The Folia support from 2.6-BETA is now part of a stable release, so servers on the default `release` update channel get it as well.
beta

2.6-BETA

2.6-BETA
23 сент. 2026 г.281Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, folia, paper, purpur, spigot
Скачать
Что нового
### Added - Folia support, with a reduced feature set. Folia does not allow a scoreboard per player, and the sidebar, name tags, tab sorting and below-name are all built on one. On Folia LuckTAB therefore runs tab list names, header and footer, ping icons and the chat format, and switches the rest off. The console says so at startup, and `/lucktab toggle` tells the player instead of failing. Paper, Purpur and Spigot keep the full feature set, nothing changes there. ### Changed - All scheduling goes through one adapter that uses the global, entity and async schedulers on Folia and the Bukkit scheduler everywhere else. On Folia every player is updated on the thread that owns them. - bStats is not started on Folia, because it schedules through the Bukkit scheduler.
release

2.5-RELEASE

2.5-RELEASE
17 сент. 2026 г.457Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
### Added - A scoreboard players can switch off. `/lucktab toggle` and a configurable alias - `/sidebar` and `/sb` by default - hide and show the sidebar, and the choice is written to `toggles.yml` so it survives a rejoin. Turn the whole thing off with `scoreboard.toggle-enabled: false`. - Conditional scoreboard lines. A line whose placeholders all come back empty, `0` or `null` disappears instead of leaving a gap, so `&7Clan: &f%clan_name%` is simply not there for a player without a clan. Spacer lines without a placeholder always stay. Switch it off with `scoreboard.hide-empty-lines: false`. - Designs by permission, not only by world. Every design under `scoreboard.designs` and `header-footer.designs` takes `permission`, `worlds` and `priority`, which is what a staff board with TPS and RAM next to a normal player board needs. Designs named after a world keep working as before. - Hiding the red numbers on the right of the sidebar, and replacing them with text of your own through the `numbers` list. Needs Paper 1.20.4 or newer. - Animations. `animations` holds named frame lists with their own interval, and `%anim_<name>%` puts the current frame anywhere a placeholder is allowed: the sidebar title, a line, the header, the chat format. - Rotating header and footer. A design can carry `frames` instead of one fixed block, and the blocks change every `frame-interval` ticks, header and footer in step. - AFK support for EssentialsX, CMI and Purpur. An away player gets the `[AFK]` tag in the tab list and above their head, and their name is grayed out. All of it is configurable under `afk`, and none of the three plugins is required. - Ping icons. `ping-icons` maps a ping to a symbol, and `%lucktab_ping_icon%` prints it. `tab-list.name-suffix` puts free text behind the player name in the tab list. - Static info rows in the tab list, for a Discord or store line. They are not real players, so they need ProtocolLib; without it `tab-list.fake-entries` is ignored. - Name tag visibility rules. Name tags can be hidden in named worlds, while sneaking, and for everyone holding a permission. `nametags.visibility` and `nametags.collision` expose the two team options directly. - A second line under the player name, either the health bar or a numeric placeholder. Minecraft renders that slot as a number plus a title, which is what `below-name` reflects. - Hover cards and click actions on the player name in chat, and `@Name` mentions that highlight the name and play a sound for the player who was named. Hover and click are Paper only, mentions work everywhere. - Badges for the groups that did not win the prefix. `badges.groups` maps a group to a symbol, and `%lucktab_badges%` or `%chatBadges%` prints all of them. - `/lucktab setprefix <group> <prefix>` and `/lucktab setsuffix <group> <suffix>` change a rank in game and reload right away. Note that this rewrites `config.yml` through Bukkit, which drops the comments in it. - `/lucktab benchmark` reports what the updates cost, in microseconds, per section. - A PlaceholderAPI expansion. Other plugins can read `%lucktab_prefix%`, `%lucktab_rank_display%`, `%lucktab_badges%` and the rest, each also with a `_plain` variant without colors. This is how DiscordSRV picks up the ranks for its chat bridge: put the placeholder into the DiscordSRV message format. ### Changed - `lucktab.use` is granted to everyone now, so that `/lucktab toggle` is usable without op. Every subcommand still checks its own permission, and the new ones are `lucktab.toggle` (everyone), `lucktab.edit` and `lucktab.benchmark` (op). - Name tags and tab list sorting are re-checked every two seconds instead of only on join, because AFK state and name tag visibility change on their own.
release

2.4-RELEASE

2.4-RELEASE
3 сент. 2026 г.329Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
### Fixed - **LuckTAB did not start on Spigot.** The text renderer, the tab list and the sidebar were written against Adventure and Paper-only methods, and Spigot ships neither, so the plugin died during startup before its command executor was registered. The command stayed registered without an executor, which is why `/lucktab reload` and `/lucktab migrate` answered with nothing but the `/lucktab <reload|migrate>` usage line from `plugin.yml`, while the tab list, the name tags and the sidebar stayed empty. Rendering now runs on the Bukkit API with legacy color codes on every server, and the Adventure calls are isolated in a class that is only loaded on Paper. - A failed start left the plugin marked as enabled. Spigot keeps a plugin enabled when its startup throws, so the broken state was silent apart from one line in the log. Startup errors now disable the plugin and say why. - `/lucktab` required `lucktab.reload` for every subcommand, including the migration and the help output. It checks `lucktab.use` now, and `lucktab.reload` only where it actually reloads. ### Added - Tab completion for `/lucktab`, for the subcommands and for the migration directions. Paper servers were never affected by the startup bug and keep the component based scoreboard lines and the chat renderer.
release

2.3-RELEASE

2.3-RELEASE
18 авг. 2026 г.199Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
### Fixed - The player's own name inherited the rank prefix's color in the tab list and chat instead of showing its own configured color (or the default). The bundled default config no longer sets a name color for any rank.
release

LuckTAB 2.2-RELEASE

2.2-RELEASE
15 авг. 2026 г.160Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
## LuckTAB v2.2-RELEASE > Lightweight yet powerful tab list, chat format & scoreboard plugin — all configurable in a single config.yml. ### Fixed - Name tag prefixes above players' heads showed raw color codes (`&7[Player]`) instead of the actual colors - Players joining a running server were never sorted into rank teams on everyone else's scoreboard, so they appeared without a name tag prefix and unsorted in the tab list until the next reload - Tab list sorting broke as soon as more than ten ranks were configured — `lt_10_` sorted between `lt_1_` and `lt_2_`. Rank order is now zero padded - Two groups with long, similar names could be truncated into the same team name and end up sharing a single prefix - Rank teams stayed registered when the plugin was disabled and piled up on the main scoreboard across reloads ### Internal - Split the plugin into separate classes per feature area: ranks, text rendering, tab list, teams, sidebar, chat, migration and update check
release

LuckTAB 2.1-RELEASE

2.1-RELEASE
20 июн. 2026 г.466Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
## LuckTAB v2.1-RELEASE > Lightweight yet powerful tab list, chat format & scoreboard plugin — all configurable in a single config.yml. ### Changelog - Added `/lucktab migrate to-luckperms` — pushes all prefixes, suffixes and group weights from config into LuckPerms. Weight is calculated automatically: top rank = 200, each rank below -10 - Added `/lucktab migrate from-luckperms` — pulls all prefixes and suffixes from LuckPerms groups into config - Added `prefix-source: luckperms` config option — read prefix/suffix directly from LuckPerms player meta instead of config. Correctly resolves inheritance and priorities - Fixed `prefix-source: luckperms` reading from group cache instead of player meta — inheritance now works correctly - Fixed scoreboard line order breaking when line count changes - Fixed resource leak in update checker — connection now always closed in finally block - Fixed regex patterns recompiling on every call — now `static final` constants - Fixed team options (`NAME_TAG_VISIBILITY`, `COLLISION_RULE`) being set every tick — now only on team creation - Fixed migration overwriting other plugins' prefix/suffix nodes — only LuckTAB-managed nodes (matching priority) are removed ### New Commands | Command | Permission | Description | |---|---|---| | `/lucktab migrate to-luckperms` | `lucktab.migrate` | Push config prefixes to LuckPerms | | `/lucktab migrate from-luckperms` | `lucktab.migrate` | Pull LuckPerms prefixes to config | ### New Config Option ```yaml # lucktab → use prefixes from config (default) # luckperms → use prefixes directly from LuckPerms meta prefix-source: lucktab ``` ### Dependencies - [LuckPerms](https://luckperms.net) — required - [PlaceholderAPI](https://modrinth.com/plugin/placeholderapi) — optional ### Support Join our Discord: **dc.gg/paperstream** *Author: LucasTHCR*
release

LuckTAB 2.0-RELEASE

2.0-RELEASE
18 июн. 2026 г.36Minecraft: 1.21, 1.21.1, 1.21.2, 1.21.3, 1.21.4, 1.21.5, 1.21.6, 1.21.7, 1.21.8, 1.21.9, 1.21.10, 1.21.11, 26.1, 26.1.1, 26.1.2, 26.2bukkit, paper, purpur, spigot
Скачать
Что нового
## LuckTAB v2.0-RELEASE > Lightweight yet powerful tab list, chat format & scoreboard plugin — all configurable in a single config.yml. ### Changelog - Smooth animated gradients — no more jumping or rucking, fully fluid color transitions - Smart scoreboard update system — every line is rendered every tick but only written to the scoreboard if the content actually changed - Gradient lines (rank prefix, title) update every 2 ticks automatically - Static lines (ping, online count) only update when their value changes — zero unnecessary writes - Sine-based gradient interpolation — mathematically smooth, no hard color jumps at loop boundaries - Fixed scoreboard title and rank prefix lagging behind gradient animation - Fixed gradient lines being updated in slow task instead of fast task ### How it works The update system is fully automatic — no manual configuration needed. Every line is compared to its cached value each tick. If nothing changed, it is skipped. If it changed (e.g. gradient moved, ping updated), it is written. ### Dependencies - [LuckPerms](https://luckperms.net) — required - [PlaceholderAPI](https://modrinth.com/plugin/placeholderapi) — optional ### Support Join our Discord: **dc.gg/paperstream** *Author: LucasTHCR*