TAB-Plugin: Tab-Liste, Scoreboard und BossBar anpassen (2026)

TAB-Plugin: Tab-Liste, Scoreboard und BossBar anpassen (2026)

Sobald ein Server über zwei Dutzend gleichzeitige Spieler hat, fängt die vanilla Tab-Liste an, unangenehm zu wirken. Namen tauchen in zufälliger Reihenfolge auf, LuckPerms-Prefixe sieht man nur im Chat, ein Sidebar-Scoreboard fehlt komplett, und die BossBar nutzt niemand. TAB von NEZNAMY schliesst all diese Lücken mit einem einzigen Plugin, und es lohnt sich, das einmal sauber einzurichten.

Wir gehen Installation, Proxy-Modus, die zentralen Configs, Sorting, Anti-Override und die üblichen Probleme durch. Alle Snippets sind auf Paper 1.21.4 und Velocity 3.4 getestet.

Was TAB ist und warum es Standard wurde

TAB von NEZNAMY (Repo unter github.com/NEZNAMY/TAB, Releases auf hangar.papermc.io/NEZNAMY/TAB) ist ein einzelnes Plugin, das mehrere ältere Plugins ersetzt: TAB-Liste, Custom-Scoreboard, BossBar-Plugin, Name-Tags. Früher hat man dafür drei oder vier Plugins von verschiedenen Autoren installiert, die sich um Pakete gestritten haben.

Wichtige Module in einem jar:

  • Tab-Liste: Header, Footer, einzelne Zeilen pro Slot, Custom-Icons, Sorting
  • Sidebar-Scoreboard: Zeilen-Set, Umschalten nach Welt oder Permission
  • BossBar: ein oder mehrere Bars oben, Progress über Placeholder
  • Name-Tags: Prefix und Suffix über dem Kopf, Namensfarbe, Verstecken bei Invisibility
  • Below-Name: kleiner Text unter dem Namen, meistens HP oder Clan-Tag
  • Yellow-Number: Zahl rechts vom Namen im Tab (HP, Ping, Score)

Alles wird über config.yml, groups.yml, animations.yml und ein paar Hilfsdateien gesteuert. Keine Extra-Plugins pro Komponente.

Der aktuelle stabile Zweig 2026 ist TAB 5.x. Mindestanforderungen: Java 17 und Paper 1.16.5 oder neuer. 1.8.x wird offiziell schon lange nicht mehr unterstützt, da reinzuzwingen ist sinnlos.

Installation

Neueste jar von Hangar holen: hangar.papermc.io/NEZNAMY/TAB. Die Release-Datei heisst TAB-5.x.x.jar, es gibt keine separaten Spigot/Paper-Builds, das jar ist universell.

Für einen Einzelserver:

  1. jar in plugins/ ablegen
  2. Server neu starten (kein /reload)
  3. /plugins ausführen, TAB sollte grün sein
  4. /tab cpu ausführen, um zu prüfen, dass das Plugin läuft

Beim ersten Start entsteht der Ordner plugins/TAB/ mit den Configs. Ab da spielt sich alles dort ab, das jar muss man nicht anfassen.

Für einen Proxy (Velocity oder BungeeCord) kommt das gleiche jar in den plugins/ Ordner des Proxys. Velocity 3.4+ ist Pflicht, ältere Versionen hatten Probleme mit der Tablist-API.

Erster Start und Datei-Layout

Nach dem ersten Start liegen in plugins/TAB/:

  • config.yml, die Hauptdatei. Module ein- und ausschalten, Header, Footer, Scoreboard, BossBar definieren
  • animations.yml, Animations-Definitionen (Regenbogen, Pulse, Phrasenwechsel)
  • groups.yml, Prefix und Tabprefix pro LuckPerms-Gruppe oder pro Spieler
  • advanced-config.yml, Placeholder-Refresh-Intervalle, Debug-Flags, kleinere Schalter
  • messages.yml, Befehlstexte für Admins (übersetzbar)
  • premiumvanish.yml, Integration mit PremiumVanish, falls installiert

Die Default-config.yml läuft schon, aber das ist selten das, was man tatsächlich will. Das Scoreboard-Modul ist standardmässig aus, der Header zeigt nur generische Placeholder. Im nächsten Schritt passt man das an.

Wichtig: Wenn PlaceholderAPI installiert ist (was fast immer der Fall ist), zieht TAB es automatisch. Ohne PAPI hat man nur die eingebauten Placeholder von TAB wie %online%, %maxplayers%, %player%, %world%.

Proxy-Modus: TAB auf Velocity oder auf den Backends?

Wer ein Netzwerk aus mehreren Backends hinter Velocity oder BungeeCord betreibt, hat die Wahl: TAB auf jedem Backend separat oder auf dem Proxy.

Kurze Antwort: auf den Proxy. Gründe:

  • einheitliche Tab-Liste beim Wechsel zwischen Servern, kein Flackern
  • Sorting funktioniert über alle Spieler im Netzwerk, nicht pro Backend
  • Header und Footer einmal am Proxy konfigurieren
  • weniger doppelte Configs

Für den Proxy-Modus braucht man:

  1. TAB auf dem Proxy installiert (Velocity-plugins/ oder BungeeCord/plugins/)
  2. TAB zusätzlich auf jedem Backend (läuft dort als Backend-Client)
  3. enable-redis-bungee aktiv, falls RedisBungee genutzt wird, sonst Standard-Bungee-Messaging
  4. PlaceholderAPI auf den Backends, damit Placeholder am richtigen Server berechnet werden

In der config.yml am Proxy aktiviert man Module wie üblich. Auf den Backends schaltet man die Module aus, die der Proxy übernimmt (meistens Tablist und Scoreboard), und behält Name-Tags und BossBar, falls sie weltabhängig sind.

Header und Footer mit PlaceholderAPI

Der auffälligste Teil von TAB ist der Header (oben in der Tab-Liste) und der Footer (unten). Minimal-Beispiel aus 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-Farbcodes mit & funktionieren, hex &#RRGGBB ebenfalls, und Gradienten via <gradient:#hex1:#hex2>text</gradient> ab 5.x, weil TAB MiniMessage parst.

Für einen unterschiedlichen Header pro Backend nimmt man 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"

Die Schlüssel (survival, creative) müssen mit den Servernamen in der Velocity-Config übereinstimmen.

Auf einem Einzel-Backend ohne Proxy funktioniert dieselbe Idee als per-world mit Weltennamen.

Sorting: nach LuckPerms, Permission oder Placeholder

Sobald mehr als zehn Leute in der Tab-Liste sind, zählt die Reihenfolge. Standardmässig erscheinen Spieler in der Login-Reihenfolge. TAB kann nach mehreren Kriterien sortieren, und Kombinationen sind die Stelle, an der die meisten hängenbleiben.

Beispiel aus config.yml:

scoreboard-teams:
  enabled: true
  sorting-types:
    - "GROUPS:owner,admin,mod,vip,default"
    - "PLACEHOLDER_A_TO_Z:%player%"

Logik: TAB schaut zuerst auf die LuckPerms-Gruppe. Owner über Admin, Admin über Mod, und so weiter. Innerhalb einer Gruppe (zwei Spieler in default) greift das zweite Kriterium: alphabetisch nach Name.

Unterstützte Sortierungen:

  • GROUPS:liste, geordnet nach der Liste, fehlende Gruppen ans Ende
  • PERMISSIONS:liste, Spieler mit der ersten Permission über denen mit der zweiten
  • PLACEHOLDER_A_TO_Z:%placeholder%, alphabetisch nach Placeholder
  • PLACEHOLDER_Z_TO_A:%placeholder%, alphabetisch absteigend
  • PLACEHOLDER_LOW_TO_HIGH:%placeholder%, numerisch aufsteigend
  • PLACEHOLDER_HIGH_TO_LOW:%placeholder%, numerisch absteigend

Bei Netzwerken mit Economy ist Sorting nach Kontostand praktisch:

sorting-types:
  - "GROUPS:owner,admin,vip,default"
  - "PLACEHOLDER_HIGH_TO_LOW:%vault_eco_balance%"

Anmerkung: Sorting läuft über Scoreboard-Teams, und Minecraft begrenzt Team-Namen auf 16 Zeichen. TAB übernimmt die Generierung, aber wenn ein anderes Plugin auch an Teams arbeitet (Chat-Plugin mit Clan-Tags etc.), kollidieren die. Anti-Override hilft, siehe unten.

Prefixe und Tabprefix über LuckPerms

Ist LuckPerms bereits da und sind Prefixe per /lp group <name> meta setprefix "..." gesetzt, übernimmt TAB sie automatisch. Häufig will man aber einen Prefix in der Tab-Liste (kurz) und einen anderen im Chat (länger). Dafür gibt es 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 zeigt sich in der Tab-Liste, tagprefix schwebt über dem Kopf, tabsuffix und tagsuffix rechts vom Namen. TAB schaut zuerst in groups.yml, fällt zurück auf LuckPerms, falls die Gruppe fehlt.

Damit Gruppen korrekt erkannt werden, muss config.yml die Integration enthalten:

use-luckperms-prefix-suffix: false
use-permissions-as-groups: false

Erste Option: bei true zieht TAB den Prefix direkt aus LuckPerms und ignoriert groups.yml. Praktisch für simple Setups. Wer ein Format im Tab und ein anderes im Chat will, setzt false und nutzt groups.yml.

Anti-Override

Klassischer Frust: man installiert EssentialsXChat oder ein anderes Plugin mit Tablist-Features, und die schreiben die Tab-Namen nach TAB neu. Spieler sehen, wie Prefixe verschwinden oder die Reihenfolge flackert.

config.yml hat eine anti-override-Sektion:

anti-override:
  tablist-names: true
  scoreboard-teams: true
  bossbar: true

Mit true fängt TAB Versuche anderer Plugins ab, die entsprechenden Pakete zu modifizieren, und behält seine eigenen Werte. Standard ist alles aktiv, normalerweise muss man da nichts ändern. Sollten Prefixe trotzdem flackern, prüfe diese drei Flags.

Wenn das Problem bleibt, hilft es, Tablist-Funktionen in EssentialsX abzuschalten (change-display-name: false in der Essentials-config.yml) und in ChatControl, Carbon und Ähnlichem. Eine Wahrheitsquelle ist besser als zwei kämpfende.

Per-World und Per-Server Configs

Jedes Modul unterstützt Per-World (Einzel-Backend) oder Per-Server (Proxy) Overrides. Echtes Beispiel für das Scoreboard:

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"

Der Schlüssel display-condition unterstützt Placeholder und die Operatoren =, !=, <, >, <=, >=. Ein Spieler kann für mehrere Scoreboards in Frage kommen, TAB zeigt das erste passende.

BossBar

Die BossBar eignet sich gut für globale Hinweise: Online-Zahl, laufendes Event, Server-Status. Minimal-Beispiel:

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

Für Progress-Werte funktioniert ein berechneter Placeholder via PAPI Math expansion gut. Verfügbare Stile: PROGRESS, NOTCHED_6, NOTCHED_10, NOTCHED_12, NOTCHED_20. Farben: PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE.

Mit announcement-bar: true wird der Bar bei Aktivierung allen sofort angezeigt und nach announcement-bar-time Sekunden automatisch entfernt. Praktisch für Restart-Hinweise.

Animationen

Die animations.yml enthält wiederverwendbare Animationen. Beispiel:

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%"

Verwendung in jeder anderen Config über %animation:name%:

header:
  - "%animation:rainbow_text%"
  - "%animation:pulse_online%"

change-interval in Millisekunden. Werte unter 50 sind sinnlos, der Client zeichnet so schnell ohnehin nicht.

Integrationen: PremiumVanish, PlaceholderAPI, Vault

FeaturePremiumVanishPlaceholderAPIVault
Vanished Spieler aus Tab ausblendenJaNeinNein
LuckPerms-PrefixeNeinÜber %luckperms_prefix%Ja, direkt
Spielerguthaben im ScoreboardNeinÜber %vault_eco_balance%Über PAPI
Custom-PlaceholderNeinJa, HauptquelleNein
Spielergruppe für SortingNeinÜber %vault_group%Ja
Online-Zahl ohne VanishJaNeinNein
TAB-KompatibilitätNativNativÜber PAPI Vault expansion

Kurze Regel. PlaceholderAPI ist fast immer installiert, ohne wäre Scoreboard und Header leer. Vault braucht man bei Economy. PremiumVanish nur, wenn man es tatsächlich als Vanish-Plugin nutzt (nicht das eingebaute /v von Essentials).

Troubleshooting

Prefixe erscheinen nicht, obwohl in LuckPerms gesetzt. Permission-Node tab.prefixes prüfen (oder dessen Fehlen auf der Gruppe). Standardmässig zeigt TAB Prefixe für alle, aber wenn permission-required-for-prefixes: true in config.yml steht, muss die Permission explizit vergeben werden. Ausserdem prüfen, dass der Prefix in LuckPerms via meta setprefix steht und nicht als Permission prefix.10.vip. TAB liest standardmässig meta-Prefixe.

Ein Placeholder erscheint wörtlich (%player_world% statt Weltenname). /papi parse me %player_world% ausführen. Kommt der Text unverändert zurück, fehlt die Expansion. Mit /papi ecloud download Player installieren, danach /tab reload.

Sorting tut nichts, Spieler erscheinen zufällig. Zwei Punkte. Erstens: scoreboard-teams.enabled: true in config.yml (in manchen Builds standardmässig aus). Zweitens: prüfen, dass kein anderes Plugin Scoreboard-Teams anfasst. EssentialsXChat und MyPet sind die häufigsten Verdächtigen.

Scoreboard flackert oder dupliziert sich. Vermutlich noch ein zweites Scoreboard-Plugin installiert (FeatherBoard, Fabled-Scoreboard). TAB und das zweite Plugin streiten sich um die Pakete. Das andere entfernen, nur TAB behalten.

Eine Sekunde leere Tab-Liste beim Server-Wechsel. Bedeutet, dass TAB nur auf den Backends installiert ist, nicht am Proxy. jar in plugins/ von Velocity legen, Proxy neu starten.

/tab reload ändert nichts nach Config-Änderung. YAML-Syntax prüfen, ein einziges falsches Leerzeichen kann den Parser brechen. /tab debug ausführen und in latest.log nach Fehlern suchen. Beispiel aus dem GitHub-Wiki zu kopieren ist oft die schnellste Lösung.

FAQ

Kann ich TAB parallel zu FeatherBoard nutzen?

Kein Sinn. TAB deckt alles ab, was FeatherBoard bietet, beide gleichzeitig laufen zu lassen verschwendet Ressourcen und sorgt für ständige Scoreboard-Konflikte. Eines wählen.

Verbraucht TAB viel CPU?

Mit Default-Settings kaum. Auf Netzwerken mit 200 Spielern liegt es bei 0.5 bis 1% pro Tick. Schwere Placeholder (Custom-PAPI mit DB-Zugriff pro Tick) können einbrechen, das ist aber das Problem der Expansion, nicht von TAB. refresh-intervals in advanced-config.yml setzen, damit langsame Daten alle paar Sekunden statt jeden Tick neu berechnet werden.

Unterstützt TAB Folia?

Ja seit TAB 5.0. Ältere Versionen sind nicht Folia-fähig, dann updaten. Das Plugin nutzt regional schedulers korrekt.

Kann ich TAB für einen einzelnen Spieler abschalten?

Ja, die Permission tab.staff aktiviert einen Hidden-Modus, oder man nutzt disable-condition pro Modul. Beispiel: disable-condition: "%world%=spectator_world" deaktiviert das Modul auf dieser Welt.

Was ist besser für Name-Tags: TAB oder EssentialsXChat?

TAB. EssentialsXChat regelt nur den Chat-Prefix. Den Text über dem Kopf eines Spielers rendern Scoreboard-Teams, und genau das macht TAB. Ohne TAB oder ein Äquivalent steht über dem Kopf nur der weisse Name.

Ist TAB mit Geyser/Floodgate kompatibel?

Ja, mit Einschränkung. Bedrock-Clients rendern hex-Farben und Gradienten in der Tab-Liste nicht so wie Java-Clients. Standard-&-Codes nutzen für Kompatibilität, oder das fancy Formatting hinter eine Bedingung wie %player_client%=java legen.

Damit ist die Basis-Konfiguration von TAB durch. Danach kommen szenariospezifische Anpassungen: BossBars für PvP-Arenen, Scoreboards für Quest-Systeme, Custom-Icons im Tab über tablist-formatting. All das steht im GitHub-Wiki, und es zu lesen ergibt mehr Sinn, wenn die Basis-Config schon läuft.


Schützen Sie Ihren Server vor DDoS-Angriffen

Kostenloser Schutz mit 5-Minuten-Einrichtung. 1 TB Traffic inklusive.

Kostenlos testen


Weitere Artikel