Описание
# Better TabList
A server-side Minecraft mod that fully customizes the in-game tab list with animated headers/footers, AFK detection, player sorting, and FTB Ranks integration.
Supports **NeoForge**, **Fabric** for Minecraft 1.21–1.21.11 and **Forge** 1.21-1.21.1.
> **Inspired by:** [Tab List on Modrinth](https://modrinth.com/mod/tab-list)
## Overview

Better TabList replaces the default tab list with a fully customizable version featuring live server data, animated frames, and per-player information.
## Features
- **Animated Header & Footer** — Define multiple frames that cycle automatically with configurable speed
- **AFK Detection** — Players go grey after a configurable timeout, with an `#AFK` placeholder
- **Player Sorting** — Sort the tab list alphabetically or by rank (via FTB Ranks)
- **FTB Ranks Integration** — Optional; uses rank permissions for custom display names and sorting
- **Hex Color Support** — Full `&#RRGGBB` hex colors alongside standard `&` color codes
- **Gradient Support** — Smooth color transitions with MiniMessage and TAB-style syntax
- **Efficient Updates** — Only sends packets when content actually changes
## Installation
1. Download the JAR for your mod loader (NeoForge, Fabric, or Forge).
2. Place it in your server's `mods/` folder.
3. Start the server — a `config/tablist.toml` file will be generated with defaults.
4. Edit the config and restart or do `/tablist reload` to apply changes.
## Configuration
All settings live in `config/tablist.toml`.
### Placeholders
| Placeholder | Description |
|----------------|----------------------------------------------------|
| `#N` | New line |
| `#SERVERNAME` | Server name (set in config) |
| `#TPS` | Ticks per second |
| `#CTPS` | TPS with automatic color (green/yellow/red) |
| `#MSPT` | Milliseconds per tick |
| `#PLAYERCOUNT` | Number of online players |
| `#MAXPLAYERS` | Maximum player slots |
| `#PLAYERNAME` | Viewing player's name |
| `#PING` | Player ping in ms |
| `#RANK` | Player rank (requires FTB Ranks) |
| `#AFK` | Shows "AFK" if the player is AFK, empty otherwise |
| `#WORLD` | Player's current dimension |
| `#MEMORY` | Memory usage (used / max) |
| `#UPTIME` | Server uptime |
| `#DATE` | Real date (yyyy-MM-dd) |
| `#TIME` | Real time (HH:mm) |
### Color Codes
- Standard: `&a` (green), `&c` (red), `&l` (bold), `&r` (reset), etc.
- Hex: `&#FF5555` for any RGB color
### Gradients
Gradients smoothly transition text between two or more colors. Two syntax styles are supported:
**MiniMessage-style** (supports 2 or more color stops):
```
Red to Blue
Red to Green to Blue
```
**TAB-style** (exactly 2 colors):
```
Red to Blue
```
Formatting codes go inside the gradient tags and are preserved across the text:
```
&lBold gold to red
&oItalic cyan to purple
```
### Display Name Format
The `display_name_format` option controls how player names appear in the tab list. Use `{name}` and `{rank}` as placeholders:
```
display_name_format = "{name} &7#AFK"
```
### Example Config
```toml
[appearance]
server_name = "My Server"
header = [
"#N &l#SERVERNAME #N&#AAAAAA&m &r#N",
"#N &l#SERVERNAME #N&#AAAAAA&m &r#N"
]
footer = [
"&fOnline: &e#PLAYERCOUNT&7/&e#MAXPLAYERS #N&7TPS: #CTPS &7| MSPT: 7FFFF#MSPT #N&7Memory: &#AA55FF#MEMORY &7| Uptime: &#FFAA00#UPTIME"
]
display_name_format = "{name} &7#AFK"
update_interval = 500
animation_interval = 4
[sorting]
sort_mode = "NONE"
[ftbranks]
enable_ftbranks_formatting = true
[afk]
afk_enabled = true
afk_timeout = 300
```