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:
- jar in
plugins/ablegen - Server neu starten (kein
/reload) /pluginsausführen, TAB sollte grün sein/tab cpuausfü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 definierenanimations.yml, Animations-Definitionen (Regenbogen, Pulse, Phrasenwechsel)groups.yml, Prefix und Tabprefix pro LuckPerms-Gruppe oder pro Spieleradvanced-config.yml, Placeholder-Refresh-Intervalle, Debug-Flags, kleinere Schaltermessages.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:
- TAB auf dem Proxy installiert (
Velocity-plugins/oderBungeeCord/plugins/) - TAB zusätzlich auf jedem Backend (läuft dort als Backend-Client)
enable-redis-bungeeaktiv, falls RedisBungee genutzt wird, sonst Standard-Bungee-Messaging- 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 EndePERMISSIONS:liste, Spieler mit der ersten Permission über denen mit der zweitenPLACEHOLDER_A_TO_Z:%placeholder%, alphabetisch nach PlaceholderPLACEHOLDER_Z_TO_A:%placeholder%, alphabetisch absteigendPLACEHOLDER_LOW_TO_HIGH:%placeholder%, numerisch aufsteigendPLACEHOLDER_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
| Feature | PremiumVanish | PlaceholderAPI | Vault |
|---|---|---|---|
| Vanished Spieler aus Tab ausblenden | Ja | Nein | Nein |
| LuckPerms-Prefixe | Nein | Über %luckperms_prefix% | Ja, direkt |
| Spielerguthaben im Scoreboard | Nein | Über %vault_eco_balance% | Über PAPI |
| Custom-Placeholder | Nein | Ja, Hauptquelle | Nein |
| Spielergruppe für Sorting | Nein | Über %vault_group% | Ja |
| Online-Zahl ohne Vanish | Ja | Nein | Nein |
| TAB-Kompatibilität | Nativ | Nativ | Ü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 testenWeitere Artikel
server.properties: vollständige Referenz aller Optionen (Minecraft 2026)
Jede Zeile der server.properties in einer Referenz: was sie tut, Standardwert, was auf SMP, Minigames oder Hardcore setzen. Mit 1.21-Neuerungen: simulation-distance, log-ips, accept-transfers, enforce-secure-profile.
Warum Gaming-Server das Ziel Nr. 1 für DDoS-Angriffe sind
Die Gaming-Industrie erhaelt ueber 46% aller DDoS-Angriffe weltweit. Wir erklaeren, warum Gaming-Server angegriffen werden, wer dahintersteckt, was Angriffe kosten und warum Minecraft am meisten leidet.
UHC Server einrichten: Ultra Hardcore ohne Regen, kompletter Guide
Wie du einen Ultra Hardcore Server aufsetzt: naturalRegeneration Gamerule, Plugins, Scenarios, Border, Anticheat und World Pre-generation.