TabListDeluxe (Originally ChatTab) [Abandoned] 1.8

Change player's name color, format in the tab list even beyond character limit

  1. connection_lost
    TabListDeluxe v1.6


    This plugin can let you change player name color, prefix and suffix in the TAB list, even beyond original 16-character limit. You may also specify dead player's special format.

    This plugin uses Vault to read your chat formatting and Protocollib for packets.

    It is just a little trick I discovered with Protocollib. Upon 1.8, clients receive player tab packets in JSON format, and there is no longer a length check of the player name. Changing the players' name in that JSON part will change their appearance in the player list. See this:
    Code (Text):

    public void onPacketSending(PacketEvent event) {
            if (event.getPacketType() == PacketType.Play.Server.PLAYER_INFO) {
                PacketContainer packet = event.getPacket();
                PlayerInfoAction act = packet.getPlayerInfoAction().read(0);
                if (act == PlayerInfoAction.UPDATE_DISPLAY_NAME || act == PlayerInfoAction.ADD_PLAYER) {
                    List<PlayerInfoData> infoList = (List<PlayerInfoData>) packet.getPlayerInfoDataLists().read(0);
                    List<PlayerInfoData> newList = new ArrayList<PlayerInfoData>();
                    PlayerInfoData pid = (PlayerInfoData) infoList.get(0);
                    if (pid.getDisplayName() == null) return;
                    Player p = Bukkit.getPlayerExact(pid.getProfile().getName());
                    String pname = p.getDisplayName(); // This is the player name string example
                    pid.getDisplayName().setJson("{\"text\":\"" + pname + "\"}"); // This is how to set the player name in packet
                    for (int i = 0; i < infoList.size(); i++) {
                        pid = (PlayerInfoData) infoList.get(i);
                        newList.add(new PlayerInfoData(pid.getProfile(), pid.getPing(), pid.getGameMode(), pid.getDisplayName()));
                    packet.getPlayerInfoDataLists().write(0, newList);

    • Change your Tab List header and footer.
    • Header and footer in tab list has several placeholders, such as player name, time, day, and ping etc.
    • Change the player names in Tab List. You may use Vault's prefix+suffix or bring your own. See configuration for more details.
    • Dead player may appear as a special format. See image above.

    Requirements & How to make it work:
    You need those two plugins as dependency:
    Vault and Protocollib
    This plugin reads your prefix/suffix from vault, which should usually become your player's chat prefix/suffix already.
    For instance, if a player "abc" already has a prefix of [ADMIN] on your server, this plugin will simply reads this. See configuration part for more information.
    Protocollib is for packet handling.

    Code (Text):
    # *pre* prefix
    # *suf* suffix
    # *name* plain player name
    # *dname* player's display name (such as essential's /nick name)
    # Defines name to display
    # There is no length limit of names!
    # But seriously don't overdo it.
    # Strip means to ignore all color from any sources, except this config itself.
    # Remember to use & as a color char

    normal: '  *pre**name**suf*  '
    normal-strip: false
    dead: '  [DEAD] &7*pre**name**suf* '
    dead-strip: true
    The above code reflects the first image of this post. Notice player "connection_lost" is alive while "YangNiuLoveMe" is dead. Because I used PermissionEX, which hooked into Vault for player prefix and suffix managing, player "connection_lost" has a prefix of [O], which is shown in the tab list too.
    Pro Tip: Add an extra space in the beginning of player's list name will make it look much better.


    • /chattab reload: reload current configuration
    • chattab.admin: access to /chattab reload
    I am not so creative. Why not leave a suggestion below? :)

    • This plugin was made months ago, originally released as "ChatTab" as a premium resource. Since ideas are not protected in here, I took it down myself.
    • This plugin used to be a private plugin for myself.
    • This plugin is 100% original.
    • My English is bad, don't get mad at me. :p
    More Screenshots:

    Use Permission:
    When I have more free time I will make it open source on GitHub.
    You are not allowed to redistribute it without my permission. Contact me using PM.

Recent Reviews

  1. PiskotPiskotovic
    Version: 1.8
    Good plugin, but skins are not visible when using this plugin. And yes, I am using SkinRestorer and they were working before.
    1. connection_lost
      Author's Response
      This plugin is not supported anymore (in the current version). Also offline server support is not guaranteed across Spigot forums.
  2. Fuxe
    Version: 1.8
    Very good, but, I think that you need to add PlaceholderAPI Support, and do for, don't show the PREFIX, just changing the name color.
  3. RobinTrevize
    Version: 1.8
    Does what it says on the tin and does it well!
    Players are enjoying seeing others come up as "dead" in the TAB list :P
    Thanks dev, keep up the good work!
  4. Techmo9j
    Version: 1.8
    I think it is great , but one think that would be awesome if you fixed soon would be to make per-group settings. For example, my pex prefix is [Owner] but I wanted it to show up as just Owner in tab.


    owner: &cOWNER @[email protected]
    builder: &eBuilder &[email protected]@

  5. SenPr
    Version: 1.8
    Best Tab plugin! Absolutely great!
    Solved the problem with a plugin that I have.
    Keep on the good work :)
  6. LapizSeller
    Version: 1.8
    really love this plugin! solved my problem! thank author
  7. S_Ryan
    Version: 1.8
    By far the best Tab formatting plugin. Very easy to use. Easy to configure. Looks amazing in-game. Thank you.
  8. Bobobaal
    Version: 1.8
    Cool plugin, but is it possible to let us decide for what groups it let format the TAB or we can make different sort of formats and hook our own permission to it?
  9. Diandi
    Version: 1.8
    Plugin works fine and is amazing! But can you help me with this random error that happened?

    9:38:41 PM CONSOLE: ERROR]: [ChatTab] Unhandled exception occured in onPacketSending(PacketEvent) for ChatTab
    9:38:41 PM CONSOLE: 0, Size: 0
    9:38:41 PM CONSOLE: Method) ~[?:1.8.0_66]
    9:38:41 PM CONSOLE: ERROR]: Parameters:
    9:38:41 PM CONSOLE: a=ADD_PLAYER
    9:38:41 PM CONSOLE: b=[]
    1. connection_lost
      Author's Response
      This might be a weird racing condition. I already have a (not perfect but works perfectly) fix and will put it up soon.
  10. LeoSorio
    Version: 1.8
    The best tablist plugin, seriously .. the best!

    PSDT: Please add variables! it would be perfect, great job man!