ChatChannels

Quick rating

Community listing page, reviews here may not be monitored by the author.

ChatChannels

No reviews yet

**ChatChannels** is an advanced, server‑side chat channels system for **Minecraft 1.20.1 (Forge)**.

QoL & Tweaks
Mod Loaders
Forge
Minecraft

Community voices

Reviews

List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Show per page
10
25
50
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

About

Project Details

Type
Mod
Latest Version
ChatChannels-1.20.1-forgeV1.2.jar

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

CurseForge ID

Resources

External Links

Source Issues Wiki Discord

About

Description

# ChatChannels

**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`.

Screenshots

Gallery

  • ChatChannelsList
    ChatChannelsList

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

~2,000
Downloads
Last Updated
Created
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works