Plugin TAB: konfiguracja tablicy, scoreboarda i BossBara (2026)
Kiedy serwer przekracza dwa tuziny równoczesnych graczy, vanilowa tablica zaczyna wyglądać kiepsko. Nazwy idą w losowej kolejności, prefiksy z LuckPerms widać tylko na czacie, scoreboarda na sidebarze nie ma, a BossBar leży nieużywany. TAB od NEZNAMY zamyka wszystkie te luki jednym pluginem i warto raz poświęcić chwilę na sensowną konfigurację.
Przejdziemy przez instalację, tryb proxy, główne pliki konfiguracyjne, sortowanie, anti-override i typowe problemy. Wszystkie snippety są przetestowane na Paper 1.21.4 i Velocity 3.4.
Czym jest TAB i dlaczego jest standardem
TAB od NEZNAMY (repo na github.com/NEZNAMY/TAB, wydania na hangar.papermc.io/NEZNAMY/TAB) to jeden plugin, który zastępuje od razu kilka starszych: edytor tablicy, custom scoreboard, plugin BossBara, name-tagi. Wcześniej dla tego samego efektu instalowało się trzy lub cztery pluginy od różnych autorów, które biły się o pakiety.
Kluczowe moduły w jednym jarze:
- tablica: header, footer, osobne linie na slot, custom ikony, sortowanie
- sidebar scoreboard: zestaw linii, przełączanie po świecie albo po permission
- BossBar: jeden lub kilka pasków na górze, progress przez placeholder
- name-tagi: prefiks i sufiks nad głową, kolor nicku, ukrywanie przy invisibility
- below-name: mały tekst pod nickiem, zwykle HP albo tag klanu
- yellow-number: liczba po prawej od nicku w tabie (HP, ping, score)
Wszystkim steruje się przez config.yml, groups.yml, animations.yml i kilka pomocniczych plików. Bez osobnych pluginów na każdy komponent.
Aktualna stabilna gałąź w 2026 to TAB 5.x. Wymagania minimalne: Java 17 i Paper 1.16.5 lub nowszy. 1.8.x nie jest oficjalnie wspierane od dawna, nie warto tego forsować.
Instalacja
Najnowszego jara bierzesz z Hangara: hangar.papermc.io/NEZNAMY/TAB. Plik wydania nazywa się TAB-5.x.x.jar, nie ma osobnych buildów Spigot/Paper, jar jest uniwersalny.
Dla pojedynczego serwera:
- Wrzucasz jara do
plugins/ - Restartujesz serwer (nie
/reload) - Sprawdzasz
/plugins, TAB powinien być zielony - Odpalasz
/tab cpu, żeby się upewnić, że plugin działa
Przy pierwszym starcie tworzy się katalog plugins/TAB/ z configami. Dalej wszystko dzieje się tam, jara nie ruszasz.
Dla proxy (Velocity albo BungeeCord) ten sam jar idzie do plugins/ proxy. Velocity 3.4+ jest wymagane, starsze wersje miały problemy z API tablicy.
Pierwszy start i lista plików
Po pierwszym starcie w plugins/TAB/ znajdziesz:
config.yml, plik główny. Włączasz i wyłączasz moduły, definiujesz header, footer, scoreboard, BossBaranimations.yml, definicje animacji (tęcze, pulsy, rotacje fraz)groups.yml, prefiksy i tabprefix per grupa LuckPerms albo per graczadvanced-config.yml, refresh interwały placeholderów, flagi debug, drobne ustawieniamessages.yml, teksty komend dla adminów (do tłumaczenia)premiumvanish.yml, integracja z PremiumVanish, jeśli jest zainstalowany
Domyślny config.yml już działa, ale rzadko jest tym, co naprawdę chcesz. Scoreboard jest domyślnie wyłączony, header pokazuje generyczne placeholdery. W kolejnym kroku dostosowujesz pod siebie.
Ważne: jeśli PlaceholderAPI jest zainstalowany (a niemal na pewno jest), TAB sam go wyłapie. Bez PAPI masz tylko wbudowane placeholdery TAB w stylu %online%, %maxplayers%, %player%, %world%.
Tryb proxy: TAB na Velocity czy na backendach
Jeśli prowadzisz sieć kilku backendów za Velocity albo BungeeCord, masz wybór: instalować TAB na każdym backendzie osobno, czy na proxy.
Krótka odpowiedź: na proxy. Powody:
- jednolita tablica przy przełączaniu serwerów, bez mrugania
- sortowanie działa po wszystkich graczach sieci, nie tylko jednego backendu
- header i footer konfigurujesz raz na proxy
- mniej zduplikowanych configów
Tryb proxy wymaga:
- TAB zainstalowany na proxy (
Velocity-plugins/alboBungeeCord/plugins/) - TAB zainstalowany też na każdym backendzie (działa tam jako klient backendu)
enable-redis-bungeeaktywne, jeśli używasz RedisBungee, w przeciwnym razie standardowe bungee-messaging- PlaceholderAPI na backendach, żeby placeholdery były obliczane na właściwym serwerze
W config.yml na proxy włączasz moduły jak zwykle. Na backendach wyłączasz moduły obsługiwane przez proxy (zazwyczaj tablist i scoreboard), a zostawiasz name-tagi i BossBar, jeśli zależą od świata.
Header i footer z PlaceholderAPI
Najbardziej widoczna część TAB to header (góra tablicy) i footer (dół). Minimalny przykład z config.yml:
header-footer:
enabled: true
disable-condition: "%world%=disabled_world"
header:
- "&a&l>> %server_name% <<"
- "&7Online: &f%online%&7/&f%maxplayers%"
- "&7TPS: &a%tps%"
footer:
- "&7play.example.net"
- "&8discord.gg/example"
Legacy kody kolorów przez & działają, hex &#RRGGBB działa, a gradienty przez <gradient:#hex1:#hex2>tekst</gradient> od 5.x, bo TAB parsuje MiniMessage.
Dla różnego headera per backend w sieci użyj per-server:
header-footer:
enabled: true
per-server:
survival:
header:
- "&a&lSurvival"
- "&7%online% online"
footer:
- "&8survival.example.net"
creative:
header:
- "&b&lCreative"
- "&7%online% online"
footer:
- "&8creative.example.net"
Nazwy kluczy (survival, creative) muszą zgadzać się z nazwami serwerów w configu Velocity.
Na pojedynczym backendzie bez proxy działa analogiczne per-world z nazwami światów.
Sortowanie: po LuckPerms, permission albo placeholderze
Przy ponad dziesięciu osobach na tablicy kolejność zaczyna mieć znaczenie. Domyślnie gracze pojawiają się w kolejności logowania. TAB potrafi sortować po kilku kryteriach, a kombinacje są miejscem, gdzie najczęściej ludzie się zacinają.
Przykład z config.yml:
scoreboard-teams:
enabled: true
sorting-types:
- "GROUPS:owner,admin,mod,vip,default"
- "PLACEHOLDER_A_TO_Z:%player%"
Logika: TAB najpierw patrzy na grupę LuckPerms. Owner nad admin, admin nad mod i tak dalej. W obrębie jednej grupy (dwóch graczy w default) działa drugie kryterium: alfabetycznie po nicku.
Dostępne typy sortowania:
GROUPS:lista_grup, kolejność z listy, brakujące grupy idą na koniecPERMISSIONS:lista_permissions, gracze z pierwszą permission nad tymi z drugąPLACEHOLDER_A_TO_Z:%placeholder%, alfabetycznie po placeholderzePLACEHOLDER_Z_TO_A:%placeholder%, alfabetycznie odwrotniePLACEHOLDER_LOW_TO_HIGH:%placeholder%, numerycznie rosnącoPLACEHOLDER_HIGH_TO_LOW:%placeholder%, numerycznie malejąco
Dla sieci z ekonomią sortowanie po saldzie jest wygodne:
sorting-types:
- "GROUPS:owner,admin,vip,default"
- "PLACEHOLDER_HIGH_TO_LOW:%vault_eco_balance%"
Uwaga: sortowanie idzie przez scoreboard teams, a Minecraft ogranicza nazwy teamów do 16 znaków. TAB sam zarządza generowaniem, ale jeśli inny plugin też dotyka teamów (plugin czatu z tagami klanu np.), pobiją się. Anti-override to rozwiązuje, niżej.
Prefiksy i tabprefix przez LuckPerms
Jeśli LuckPerms już stoi i grupy mają prefiksy ustawione przez /lp group <name> meta setprefix "...", TAB podchwyci je automatycznie. Często chcesz jednak jeden prefiks na tablicy (krótki) i inny na czacie (dłuższy). Do tego służy groups.yml:
groups:
owner:
tabprefix: "&4&l[OWNER] &c"
tagprefix: "&4[OWNER] &c"
tabsuffix: ""
admin:
tabprefix: "&c[ADMIN] &c"
tagprefix: "&c[A] &c"
mod:
tabprefix: "&e[MOD] &e"
tagprefix: "&e[M] &e"
vip:
tabprefix: "&6[VIP] &6"
tagprefix: "&6"
default:
tabprefix: "&7"
tagprefix: "&7"
tabprefix widać w tablicy, tagprefix wisi nad głową, tabsuffix i tagsuffix po prawej od nicku. TAB najpierw zagląda do groups.yml, jeśli grupy tam nie ma, używa danych z LuckPerms.
Żeby grupy były wykrywane prawidłowo, w config.yml musi być integracja:
use-luckperms-prefix-suffix: false
use-permissions-as-groups: false
Pierwsza opcja: przy true TAB bierze prefiks bezpośrednio z LuckPerms i ignoruje groups.yml. Wygodne dla prostych setupów. Jeśli chcesz inny format na tablicy i inny na czacie, ustaw false i konfiguruj przez groups.yml.
Anti-override
Klasyczny ból: instalujesz EssentialsXChat albo inny plugin z funkcjami tablicy, a one zaczynają nadpisywać nicki w tabie po TAB. Graczom znikają prefiksy albo kolejność miga.
config.yml ma sekcję anti-override:
anti-override:
tablist-names: true
scoreboard-teams: true
bossbar: true
Przy true TAB przechwytuje próby modyfikacji odpowiednich pakietów przez inne pluginy i utrzymuje swoje wartości. Domyślnie wszystko jest włączone i zwykle się tego nie rusza. Jeśli widzisz, że prefiksy znikają i wracają, sprawdź te trzy flagi.
Jeśli problem nie ustępuje, pomaga wyłączenie funkcji tablicy w EssentialsX (change-display-name: false w config.yml Essentials) oraz w ChatControl, Carbon i podobnych. Jedno źródło prawdy jest lepsze niż dwa walczące.
Per-world i per-server configi
Każdy moduł obsługuje overrides per-world (pojedynczy backend) albo per-server (proxy). Realny przykład dla scoreboarda:
scoreboard:
enabled: true
default-scoreboard: main
scoreboards:
main:
title: "&a&lSMP STATS"
lines:
- "&7Ping: &f%ping%ms"
- "&7Online: &f%online%"
- "&7Money: &6$%vault_eco_balance%"
- "&7Rank: %luckperms_primary_group_name%"
- "&7Kills: &c%statistic_player_kills%"
- "&7World: &a%world%"
- ""
- "&8play.example.net"
creative:
title: "&b&lCREATIVE"
lines:
- "&7Online: &f%online%"
- "&7World: &b%world%"
- ""
- "&8play.example.net"
display-condition: "%world%=creative"
Klucz display-condition obsługuje placeholdery i operatory =, !=, <, >, <=, >=. Jeden gracz może kwalifikować się do kilku scoreboardów, TAB pokaże pierwszy, którego warunek jest spełniony.
BossBar
BossBar nadaje się do globalnych powiadomień: liczba online, aktualny event, status serwera. Minimalny przykład:
bossbar:
enabled: true
toggle-command: "/bossbar"
default-bars:
- online
- event
bars:
online:
style: "PROGRESS"
color: "GREEN"
progress: "%math_0_(%online%/%maxplayers%)%"
text: "&a%online%&7/&a%maxplayers% players online"
event:
style: "NOTCHED_10"
color: "PURPLE"
progress: "100"
text: "&dDouble XP weekend!"
announcement-bar: true
Dla progresu sprawdza się obliczany placeholder przez PAPI Math expansion. Style: PROGRESS, NOTCHED_6, NOTCHED_10, NOTCHED_12, NOTCHED_20. Kolory: PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE.
Z announcement-bar: true pasek pokazuje się wszystkim natychmiast po włączeniu i jest zdejmowany po announcement-bar-time sekundach. Wygodne przy ostrzeżeniach o restarcie.
Animacje
Plik animations.yml zawiera zestaw wielokrotnego użytku. Przykład:
animations:
rainbow_text:
change-interval: 200
texts:
- "&cE&6X&eA&aM&bP&dL&5E"
- "&6E&eX&aA&bM&dP&5L&cE"
- "&eE&aX&bA&dM&5P&cL&6E"
pulse_online:
change-interval: 500
texts:
- "&aOnline: &f%online%"
- "&2Online: &7%online%"
Używasz w dowolnym innym configu przez %animation:nazwa%:
header:
- "%animation:rainbow_text%"
- "%animation:pulse_online%"
change-interval w milisekundach. Wartości poniżej 50 nie mają sensu, klient i tak nie wyrenderuje tak szybko.
Integracje: PremiumVanish, PlaceholderAPI, Vault
| Funkcja | PremiumVanish | PlaceholderAPI | Vault |
|---|---|---|---|
| Ukrywanie vanished z tablicy | Tak | Nie | Nie |
| Prefiksy z LuckPerms | Nie | Przez %luckperms_prefix% | Tak, bezpośrednio |
| Saldo gracza w scoreboardzie | Nie | Przez %vault_eco_balance% | Przez PAPI |
| Custom placeholdery | Nie | Tak, główne źródło | Nie |
| Grupa gracza do sortowania | Nie | Przez %vault_group% | Tak |
| Liczba online bez vanish | Tak | Nie | Nie |
| Kompatybilność z TAB | Natywna | Natywna | Przez PAPI Vault expansion |
Krótka reguła. PlaceholderAPI instalujesz prawie zawsze, bez niego scoreboard i header są puste. Vault potrzebny przy ekonomii. PremiumVanish tylko jeśli faktycznie używasz go jako pluginu vanish (nie wbudowane /v z Essentials).
Troubleshooting
Prefiksy się nie pokazują, choć są ustawione w LuckPerms. Sprawdź permission node tab.prefixes (albo jego brak na grupie). Domyślnie TAB pokazuje prefiksy wszystkim, ale jeśli w config.yml jest permission-required-for-prefixes: true, trzeba jawnie dać permission. Upewnij się też, że prefiks w LuckPerms jest ustawiony przez meta setprefix, a nie przez permission prefix.10.vip. TAB domyślnie czyta prefiksy z meta.
Placeholder pokazuje się dosłownie (%player_world% zamiast nazwy świata). Odpal /papi parse me %player_world%. Jeśli zwraca tekst bez zmian, expansion brakuje. Zainstaluj przez /papi ecloud download Player. Po tym /tab reload.
Sortowanie nie działa, gracze idą losowo. Dwie rzeczy do sprawdzenia. Pierwsza: scoreboard-teams.enabled: true w config.yml (w niektórych buildach domyślnie wyłączone). Druga: upewnij się, że żaden inny plugin nie dotyka scoreboard teams. EssentialsXChat i MyPet są najczęstszymi winowajcami.
Scoreboard miga albo się dubluje. Najpewniej masz drugi plugin scoreboarda (FeatherBoard, Fabled-Scoreboard). TAB i drugi plugin biją się o pakiety. Usuń drugi, zostaw tylko TAB.
Sekunda pustej tablicy przy przełączaniu serwerów na proxy. Oznacza, że TAB stoi tylko na backendach, nie na proxy. Wrzuć jara do plugins/ Velocity, zrestartuj proxy.
/tab reload nic nie zmienia po edycji configu. Sprawdź składnię YAML, jedna źle wstawiona spacja łamie parser. Odpal /tab debug i szukaj błędów w latest.log. Skopiowanie przykładu z GitHub-wiki jest często najszybszym rozwiązaniem.
FAQ
Czy mogę używać TAB razem z FeatherBoard?
Nie ma sensu. TAB pokrywa wszystko, co robi FeatherBoard, a trzymanie obu naraz to marnowanie zasobów i ciągłe konflikty o scoreboard. Wybierasz jeden.
Czy TAB mocno obciąża serwer?
Przy domyślnych ustawieniach prawie nie. W sieciach po 200 graczy zajmuje 0.5 do 1% ticka. Ciężkie placeholdery (custom PAPI uderzające do bazy co tick) mogą zaboleć, ale to wina expansion, nie TAB. Użyj refresh-intervals w advanced-config.yml, żeby wolne dane były liczone co kilka sekund, a nie co tick.
Czy TAB obsługuje Folii?
Tak od TAB 5.0. Starsze wersje nie są Folia-aware, zaktualizuj. Plugin korzysta poprawnie z regional schedulers.
Czy mogę wyłączyć TAB dla konkretnego gracza?
Tak, permission tab.staff daje tryb hidden, albo używasz disable-condition per moduł. Przykład: disable-condition: "%world%=spectator_world" wyłącza moduł na danym świecie.
Co jest lepsze do name-tagów: TAB czy EssentialsXChat?
TAB. EssentialsXChat ogarnia tylko prefiks na czacie. Tekst nad głową gracza renderują scoreboard teams, czyli dokładnie to, co robi TAB. Bez TAB albo odpowiednika nad głową masz tylko biały nick.
Czy TAB jest kompatybilny z Geyser/Floodgate?
Tak, z zastrzeżeniem. Klienci Bedrock nie renderują hex kolorów i gradientów w tablicy tak, jak Java. Używaj zwykłych kodów & dla kompatybilności, albo chowaj fancy formatting za warunkiem %player_client%=java.
Na tym kończy się podstawowa konfiguracja TAB. Dalej idą już szczegóły pod konkretne scenariusze: BossBar dla aren PvP, scoreboard powiązany z systemem questów, custom ikony w tabie przez tablist-formatting. Wszystko to jest na wiki na GitHubie i sens czytania ma dopiero, gdy podstawowy config już działa.
Chroń swój serwer przed atakami DDoS
Darmowa ochrona z konfiguracją w 5 minut. 1 TB ruchu w zestawie.
Wypróbuj za darmoPowiązane artykuły
Jak podłączyć serwer Minecraft do MineGuard: instrukcja krok po kroku
Szczegółowa instrukcja podłączenia twojego serwera Minecraft do ochrony MineGuard. Rejestracja, konfiguracja sieci, domena, proxy protocol, firewall. Cały proces zajmuje około 5 minut.
MythicMobs: poradnik o custom mobach i bossach Minecraft
Instalacja MythicMobs, format YAML, skille z triggerami, dropy i spawnery. Realne configi bossow i optymalizacja TPS z produkcji.
Kopie zapasowe serwera Minecraft: jak nie stracić danych przy ataku
Kompletny przewodnik po kopiach zapasowych serwera Minecraft: zasada 3-2-1, automatyzacja przez cron, inkrementalne kopie borgbackup, offsite w rclone, bezpieczne kopiowanie bez zatrzymywania serwera i szybkie odtworzenie po ataku.