ChatChannels
Modby Sharkman96
**ChatChannels** is an advanced, server‑side chat channels system for **Minecraft 1.20.1 (Forge)**.
Type
Mod
CurseForge Downloads
2,816
CurseForge ID
1388005
Last Updated
Aug 15, 2026
Description
**ChatChannels** is an advanced, both‑side chat channels system for **Minecraft 1.20.1 (Forge)**. It adds configurable global/local/trade/staff channels, private messages, rate limiting, logging, and integration with popular permission systems.
---
## ✨ Features
- **Multiple chat channels out of the box** - `global` – server‑wide chat - `local` – proximity chat with configurable radius - `trade` – trading / market channel - `staff` – staff‑only channel (permission‑gated) - `pm` – private messages channel (used internally) - **Fully configurable channels** - Custom `id`, display `name`, `type`, `prefix`, color, radius and default channel - Per‑channel **permission node** (optional) – restrict who can see/use each channel - **Permission system integration** - **LuckPerms** support (via official API) - **FTB Ranks** support (`ranks.snbt` permissions) - Fallback to **vanilla op level 4** if no permission plugin is available - **Per‑player chat state** - Remember last used channel per player - Mute specific channels - Ignore specific players - **Rate limiting / anti‑spam** - Configurable messages‑per‑time window per player - **Logging** - All channel messages can be logged for moderation (server‑side) - **Server config options** - Local chat radius - Rate limit (messages / seconds) - Optional **“joined/left channel”** system messages
---
## 🔌 Installation / Sides
ChatChannels is a **server‑focused mod**, but it must be installed on **both the server and all connecting clients**.
- **Singleplayer / Open to LAN** - Install the mod on the client. The integrated server will automatically run with the same mod.
- **Dedicated servers** - Put the mod JAR into the `mods` folder on the **server**. - Also include the same JAR in the **client modpack** for all players who join the server.
The mod is built as a standard Forge mod with `side = BOTH`: it contains server‑side logic (channels, permissions, configs, logging) and client‑side code for handling network packets and displaying chat channels.
---
## 🧩 Requirements & Compatibility
- **Minecraft:** 1.20.1 - **Loader:** Forge 47.x (built and tested against **Forge 47.4.0**) - **Java:** 17
**Works on:**
- **Dedicated servers** – core logic runs server‑side - **Clients:** the mod is intended to be installed on both **server and client** for best experience (channel UI, packets, etc.)
**Optional integrations (not required, but supported):**
- **LuckPerms** – for permission checks like `chat.channels.global` - **FTB Ranks** – for permission nodes and rank‑based name formatting: - Permission nodes in `ranks.snbt` such as: - `chat.channels.global` - `chat.channels.local` - `chat.channels.trade` - `chat.channels.staff` - Rank name formats via `ftbranks.name_format` (used as privilege tags)
If neither LuckPerms nor FTB Ranks are present, the mod falls back to vanilla operator level checks (`hasPermissions(4)`).
---
## ⚙️ Configuration Overview
The mod generates its configs on first run. There are **three main config files**:
### 1. `config/chatchannels.json`
Defines all chat channels and global rate limiting.
**Fields per channel:**
- `id` – internal channel ID (e.g. `"global"`, `"local"`, `"trade"`, `"staff"`, `"pm"`) - `name` – display name shown in the UI (e.g. `"Global"`, `"Local"`) - `type` – how the channel behaves: - `GLOBAL`, `LOCAL`, `TRADE`, `STAFF`, `TEAM`, `PRIVATE`, `CUSTOM` - `prefix` – short prefix before messages, e.g. `"[G]"`, `"[Local]"`, `"[Trade]"` - `color` – hex color string, e.g. `"#FFFFFF"`, `"#FFD700"` - `radius` – for `LOCAL` channels: radius in blocks; `0` = global‑like broadcast - `default` – `true` if this should be the default channel for new players - `permission` – **permission node required** to use the channel - Example defaults: - `chat.channels.global` - `chat.channels.local` - `chat.channels.trade` - `chat.channels.staff` - If set to an empty string `""`, **no permission is required** for that channel.
**Rate limit section:**
```json "rate_limit": { "messages": 5, "per_seconds": 3 } ```
- `messages` – how many messages a player may send - `per_seconds` – time window in seconds If the limit is exceeded, the player receives a system message like "You are sending messages too fast."
---
### 2. `serverconfig/chatchannels-server.toml`
Server‑side gameplay settings:
- `localChat.radius` Default radius (in blocks) for the default `LOCAL` channel.
- `rateLimit.messages` Same as in `chatchannels.json`, but exposed as Forge server config.
- `rateLimit.seconds` Time window for rate limiting.
- `channels.showSwitchMessages` - `true` (default) – show server messages when a player joins or leaves a channel: - `Joined channel <id>` - `Left channel <id>` - `false` – do not send these system messages.
These messages are sent when the player uses the channel command / UI that triggers **JOIN/LEAVE** actions.
---
### 3. `config/chatchannels_privileges.json`
Controls **colors for privilege tags** (rank labels) shown before player names in chat.
- `defaultColor` – hex color for unknown/unspecified tags (e.g. `"#FFD700"`) - `tags` – map from **privilege tag string** to a hex color: - The tag is derived from: 1. LuckPerms prefix (if available), OR 2. `ftbranks.name_format` (if available), OR 3. `"OP"` for server operators
**Default example:**
```json { "defaultColor": "#FFD700", "tags": { "Игрок": "#AAAAAA", "VIP": "#55FFFF", "Модератор": "#55FF55", "Админ": "#FF5555", "OP": "#FF5555" } } ```
You can customize this file to match your server’s rank names and colors.
---
## 🔑 Permissions
By default, the following permission nodes are used:
- `chat.channels.global` – talk in the global channel - `chat.channels.local` – talk in the local channel - `chat.channels.trade` – talk in the trade channel - `chat.channels.staff` – access the staff channel (for moderators/admins)
These nodes can be controlled via:
- **LuckPerms** (assign them to users/groups), or - **FTB Ranks** (`ranks.snbt`), for example:
```snbt default: { ... chat.channels.global: true chat.channels.local: true chat.channels.trade: true }
vip: { ... chat.channels.global: true chat.channels.local: true chat.channels.trade: true } ```
If you want a channel to be available to everyone without permissions, simply set its `permission` field in `chatchannels.json` to an empty string `""`.
---
## 📝 Notes
- All config files are **generated automatically** on first server start. - Safe to customize and reload between server restarts. - The mod does **not** add commands for channel creation yet — custom channels are defined purely through `chatchannels.json`.
Recommended Gear
AffiliateHardware and extras that pair well with this mod.
As an Amazon Associate I earn from qualifying purchases.
Screenshots
Similar Mods
We Go Gym!
Minecraft mod that adds new gym exercise, equipment, and poses
HogCraft
The wonderful universe of Harry Potter, now in its own little square world.
Responsive Knockback
Remove that delay on knockback
Campsite
Adds a new Campsite structure to Plains, Taiga & Dark Forest
The GoatMan Dweller
Goatman With Creation Sounds
Cobblemon: Mega Showdown x Mega Stone recipes
Adds craftable Mega Stones to the "Cobblemon: Mega Showdown" mod