Mod

TablistMod

Quick rating

TablistMod

No reviews yet

Format your Tablist / Playerlist with full Sprites placeholders and animation support

Mod Loaders
Fabric
Minecraft
26.2

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Dev Environment
Client Unsupported
Server Required

About

Project Details

Type
Mod
License
All Rights Reserved
Latest Version
1.0.0
Authors

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description


TabListMod — Permission-Driven Animated Tablist with Sprites, Gradients, Inline Animations & Per-Dimension Layouts

Built as a companion to Chat Mod. Shares ChatMod's sprite atlas and sprites.yml directly — every sprite alias you define in ChatMod works in your tablist headers, footers, prefixes and suffixes without any duplication. All ChatMod colour, gradient and sprite syntax is fully supported in every format string.


What It Does

TabListMod gives server administrators complete control over how the tablist header, footer and player name rows look — based on each player's permissions. Admins see a different layout than VIPs, who see a different one than regular members. Each format can be animated, per-dimension, and contain live placeholders — all defined in simple YAML with no restarts needed.

On top of that, every player gets a formatted name row with their prefix, coloured display name and suffix built from a configurable format string. Prefixes and suffixes each have their own priority system, permission node and optional conditions.


Features

🎨 Per-Permission Tablist Formats

Define any number of tablist formats in tablist_formats.yml. The first format whose permission node a player holds is applied. A format with no permission node acts as the catch-all fallback that matches everyone.

formats:
  admin:
    priority: 100
    permission_node: 'TabListMod.admin'
    animated: true
    seconds: 2.0
    frames:
      1:
        header:
          - ''
          - '<#FF5555>⚡ Admin ⚡<#FF0000>'
          - '&7Players: &f%online_players%&7/&f%max_players%   &7Balance: &a%balance%'
          - ''
        footer:
          - ''
          - '&7%datetime%'
          - ''

  default:
    priority: 0
    animated: true
    seconds: 2.0
    frames:
      1:
        header:
          - ''
          - '%animation:running_man%'
          - '<#55FF55>✦ Welcome to the Server ✦'
          - '&7Players: &f%online_players%   &7Ping: &f%ping%ms'
          - '&7Balance: &a%balance%'
          - ''
        footer:
          - ''
          - '&7%date%   &f%time%'
          - ''

Every format string supports colour codes, flat hex (&#RRGGBB), gradients (<#RRGGBB>text<#RRGGBB>), sprite tokens ([#alias], [item], [player]), and all internal and PlaceholderAPI placeholders.


🎬 Frame-Based Animation with Fallback

Animated formats use a numbered frame map instead of a flat list. Frame 1 is the canonical frame — it must define both header and footer. Any later frame only needs to declare what actually changes. Lines omitted in frame 2, 3 or beyond automatically fall back to frame 1's value, so you never repeat static lines across frames.

frames:
  1:
    header:
      - ''
      - '<#55FF55>✦ Welcome ✦'
      - '&7Players: &f%online_players%'
      - ''
    footer:              # ← defined once, inherited by all other frames
      - ''
      - '&7%date%   &f%time%'
      - ''
  2:
    header:              # only the header changes — footer omitted → uses frame 1's
      - ''
      - '<#FFAA00>✦ Welcome ✦'
      - '&7Players: &f%online_players%'
      - ''

✨ Inline Animations %animation:name%

Define reusable text animations in tablist_animations.yml. Each animation has its own independent frame rate and cycles through a list of text values. Drop %animation:name% into any header, footer, prefix, suffix, or player name format string and it animates at its own speed — completely independent of the surrounding format's animation speed.

animations:
  running_man:
    seconds: 0.20
    frames:
      - '&f[#run]&7·····················'
      - '&f·[#walk]&7····················'
      # ...

Animations work in fully static formats too — if any line contains %animation:x%, the format is automatically sent every tick so no frames are skipped.


🌍 Per-Dimension Layouts

Every format can define dimension-specific overrides that activate when a player enters that world. Overrides can be static or independently animated with their own frame rate.

dimensions:
  'minecraft:the_nether':
    animated: false
    header:
      - ''
      - '&4&l[ Nether ] &b&lModerator'
      - '&cWorld: [#netherrack] &4The Nether'
      - ''
    footer:
      - ''
      - '&c%datetime%'
      - ''

🏷️ Prefixes, Suffixes & Player Name Format

Define prefix and suffix tiers in tablist_prefixes.yml. Each entry has its own priority, permission node, and optional conditions. The player's name row in the tablist is fully configurable via tablist_name_format in tablistmod.yml:

tablist_name_format: '%custom_rank%%displayname%'
Token Value
%custom_rank% Active prefix format string (colour codes included)
%displayname% Player's in-game display name
%player% Raw Minecraft username
%balance% EcoBal balance (requires EcoBal mod)
%ping% Current latency in ms

Sprites, hex colours and gradients all work in the name format too.


🖼️ Sprite Support via ChatMod

TabListMod bridges directly into ChatMod's AtlasSpriteHelper and SpritesManager. Every sprite alias you define in ChatMod's sprites.yml is available in TabListMod with the same token syntax — no separate sprite config needed.

[#grass_block]    → sprite alias from sprites.yml
[#netherrack]     → sprite alias
[item]            → item the player is holding
[item:1]          → item in hotbar slot 1
[player]          → player's skin head (16×16)
[player:Name]     → specific player's head

If ChatMod is not installed, sprite tokens resolve to empty — the rest of the tablist continues to work normally.


💰 EcoBal Economy Integration

If EcoBal is present, %balance% resolves to the player's formatted balance with a configurable currency symbol and decimal places. If EcoBal is absent, %balance% shows N/A. No configuration needed — detection is fully automatic.

ecobal:
  enabled: true
  decimal_places: 2
  currency_symbol: "$"

📋 Placeholders

Placeholder Value
%player% Raw Minecraft username
%displayname% In-game display name
%custom_rank% Active prefix (with colour codes)
%ping% Latency in ms
%online_players% Current player count
%max_players% Server player slot limit
%balance% EcoBal balance
%date% Current date (yyyy-MM-dd)
%time% Current time (HH:mm:ss)
%datetime% Full date, time and timezone
%dimension% Dimension display name
%dimension_id% Raw dimension key, e.g. minecraft:the_nether
%dimension_sprite% Sprite token for current dimension
%playtime% Total playtime, e.g. 3d 2h 15m
%animation:name% Current frame of a named inline animation

All Fabric PlaceholderAPI placeholders are also resolved automatically.


🎮 Per-Line Animation Mode

For fine-grained control, individual header lines can each have their own animation speed. A line with speed 0 stays completely static while the lines around it animate independently.

per_line_seconds:
  - 0      # line 1 — static forever
  - 1.25   # line 2 — cycles every 1.25 s
  - 1.0    # line 3 — cycles every 1.0 s
  - 0      # line 4 — static forever
header_lines:
  - frames: ['']
  - frames: ['<#FF5555>⚡ Admin ⚡', '<#FF0000>⚡ Admin ⚡']
  - frames: ['&7Players: &f%online_players%']
  - frames: ['']

👻 Spectator Handling

Configure how spectator players appear in the tablist.

Mode Behaviour
KEEP_POSITION Spectators stay in their normal sorted position
SINK_TO_BOTTOM Spectators sink below all survival players
HIDE_EFFECT Spectator gamemode packet cancelled; appear as normal players

🔧 Admin Commands

Command Description Permission
/tablist reload Hot-reload all TabListMod configs tablistmod.reload
/tablist debug [player] Show active format, prefix and suffix tablistmod.debug
/tablist list formats List all loaded formats tablistmod.list
/tablist list prefixes List all loaded prefixes tablistmod.list
/tablist player <name> refresh Force-refresh a player's tablist tablistmod.player.refresh

No server restart required for any config change — /tablist reload picks everything up instantly.


Configuration Files

All files live under config/tablistmod/. Use /tablist reload after any edit.

File Contains
tablistmod.yml Global settings, name format, timezone, spectator mode, EcoBal, dimension maps
tablist_formats.yml Per-permission header/footer format definitions
tablist_prefixes.yml Prefix and suffix definitions
tablist_animations.yml Reusable inline animation definitions

Dependencies

Mod Required?
Fabric API ✅ Required
LuckPerms ✅ Required for per-permission formats
ChatMod ⭐ Strongly recommended — enables sprites and shared atlas
EcoBal 🔶 Optional — enables %balance% placeholder
Placeholder API 🔶 Optional — enables PAPI placeholders

TabListMod has no hard compile-time dependency on ChatMod — it runs standalone and degrades gracefully (sprites resolve to empty) if ChatMod is not installed. The two mods are designed as a pair and work best together.


Modpack Policy

  • ✅ You may include TabListMod in any modpack.
  • ❌ The modpack must not be sold.

Screenshots

Gallery

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

<1,000
Downloads
Last Updated
CurseForge
Created
Last synced
When ModDex last fetched and imported data for this project from CurseForge or Modrinth. High-traffic and active projects are checked more often.
Next pipeline sync