Plugin TAB: konfiguracja tablicy, scoreboarda i BossBara (2026)

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:

  1. Wrzucasz jara do plugins/
  2. Restartujesz serwer (nie /reload)
  3. Sprawdzasz /plugins, TAB powinien być zielony
  4. 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, BossBar
  • animations.yml, definicje animacji (tęcze, pulsy, rotacje fraz)
  • groups.yml, prefiksy i tabprefix per grupa LuckPerms albo per gracz
  • advanced-config.yml, refresh interwały placeholderów, flagi debug, drobne ustawienia
  • messages.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:

  1. TAB zainstalowany na proxy (Velocity-plugins/ albo BungeeCord/plugins/)
  2. TAB zainstalowany też na każdym backendzie (działa tam jako klient backendu)
  3. enable-redis-bungee aktywne, jeśli używasz RedisBungee, w przeciwnym razie standardowe bungee-messaging
  4. 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 koniec
  • PERMISSIONS:lista_permissions, gracze z pierwszą permission nad tymi z drugą
  • PLACEHOLDER_A_TO_Z:%placeholder%, alfabetycznie po placeholderze
  • PLACEHOLDER_Z_TO_A:%placeholder%, alfabetycznie odwrotnie
  • PLACEHOLDER_LOW_TO_HIGH:%placeholder%, numerycznie rosnąco
  • PLACEHOLDER_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

FunkcjaPremiumVanishPlaceholderAPIVault
Ukrywanie vanished z tablicyTakNieNie
Prefiksy z LuckPermsNiePrzez %luckperms_prefix%Tak, bezpośrednio
Saldo gracza w scoreboardzieNiePrzez %vault_eco_balance%Przez PAPI
Custom placeholderyNieTak, główne źródłoNie
Grupa gracza do sortowaniaNiePrzez %vault_group%Tak
Liczba online bez vanishTakNieNie
Kompatybilność z TABNatywnaNatywnaPrzez 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 darmo


Powiązane artykuły