Installation
1. Pre-flight
Make sure these are running before installing AstralChat:
A Redis server reachable by every game server.
A RabbitMQ broker reachable by every game server.
A MariaDB or PostgreSQL database with credentials provisioned for AstralCore.
LuckPerms, LiteBans, AstralCore, and AstralSync installed on every node that should run AstralChat.
2. Drop the JAR
Copy AstralChat-<version>.jar into the plugins/ directory of each server that should participate in chat. AstralChat reads its enabled server list from config.yml; servers that are not in enabled-groups load the plugin but stay silent — see Configuration.
3. First start
On first start the plugin generates:
The database schema is applied automatically — see Database.
4. Configure
config.yml— setenabled-groups, define your channels, tweak the social-spy format. See Configuration and Channels.messages.yml— localise every player-facing string. See Messages.filters.yml— enable filters and set their thresholds. See Filters.groups.yml— list your LuckPerms groups underfree/paid/staffso the%chat_prefix%placeholder can pick the right prefix.tags.yml— define equippable chat tags. See Chat Tags.
Reload at runtime with /chat reload or /channel reload — no restart required.
Permissions
Command permissions
Node | Command |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
| Bypass per-channel cooldowns. |
Social spy
The social-spy permission nodes are configurable in config.yml (social-spy.permission and social-spy.bypass-permission). The shipped defaults are chat.socialspy and chat.socialspy.bypass.
Per-channel access
The permission field on a channel definition is the runtime permission node — there is no fixed prefix. The default config.yml uses chat.channel.<name> (e.g. chat.channel.staff), but you can pick any string.
Database schema
AstralChat ships with schema.sql that creates two tables on first start:
Per-player chat state (equipped tag, toggles, subscriptions, nickname) is stored as a PlayerChatData AstralSync snapshot, not in these tables.