Resource icon

Free 0xCrossServerChat f5d64a0

This resource is free
One shared chat across your whole cluster - plus Discord relay and a built-in chat filter. / Единый чат на весь кластер - плюс ретрансляция в Discord и встроенный фильтр чата.





Cross-server chat for an ARK cluster: players on every map talk in one global chat, with optional Discord mirroring and word/link moderation - all config-driven, no client mod.

0xCrossServerChat ties the chat of every server in your cluster together through one shared database. A message typed on The Island shows up on Ragnarok, Aberration and the rest, tagged with the server it came from. Tribe chat can be carried too (only that tribe sees it elsewhere). It can mirror chat to a Discord channel in a format you control, greet joining players with the recent backlog, and clean bad words and links out of every channel.

Features

  • Cluster chat - global (and optionally tribe) chat shared between all servers.
  • Server tag - each message shows where it came from; auto-uses the server's name, or set your own.
  • Join history - show a (re)joining player the last N global messages so they don't miss context.
  • Discord relay - mirror chat to a webhook with a fully customizable line format (colors via ANSI).
  • Word filter - regex/word blacklist; censor (replace with ****) or block the whole message.
  • Link filter - block links by default, with an allow-list for the ones you trust.
  • No client mod - server-side only; the only shared dependency is one database.

  • Every server writes chat to one shared database table; the others poll it (~1s) and display new lines. That table is the only link between servers - no central relay process needed.
  • Each line is tagged with its source server and the sender's name (and tribe). Tribe chat is delivered only to members of the same tribe on the other servers.
  • Moderation runs on every channel (global / tribe / local) before anything is shown or relayed. In censor mode the message is edited in place, so local chat is cleaned too - not just the relayed copy.
  • Discord: each server posts its own messages once, so every line appears in the channel exactly once - just use the same webhook on all servers.
  • On startup a server skips the existing backlog, so restarting it never floods chat with old messages.

FieldMeaning
DatabaseThe shared cluster DB - every server points at the SAME one
Relay.ServerTagSource label; empty = use the server's own name (unique even on the same map)
Relay.RelayGlobal / RelayTribeWhich channels are shared across servers
Relay.HistoryOnJoinShow a joining player the last N global messages (0 = off)
Discord.Enabled / WebhookUrlMirror chat to a Discord channel
Discord.FormatLine template ({time} {server} {channel} {sender} {message} + color tokens)
Filter.Modecensor = replace matches with Mask; block = drop the message
Filter.BlockLinks / AllowedLinksBlock URLs by default, except the ones you allow
Filter.BlockedWordsWords/phrases to catch (plain text or regex)

JSON:
{
  "Database": {
    "Enabled": true,
    "Host": "127.0.0.1", "Port": 3306,
    "User": "ark", "Password": "", "Schema": "ark"
  },

  "Relay": {
    "Enabled": true,
    "ServerTag": "",          // empty = use the server's name
    "RelayGlobal": true,
    "RelayTribe": true,
    "HistoryOnJoin": 20
  },

  "Discord": {
    "Enabled": false,
    "WebhookUrl": "",
    "OnlyGlobal": true,
    "Ansi": true,
    "Format": "{yellow}[{time}]{reset} {magenta}[{channel}]{reset} {white}{sender}: {message}{reset}"
  },

  "Filter": {
    "Enabled": true,
    "Mode": "censor",
    "Mask": "****",
    "BlockLinks": true,
    "AllowedLinks": [ "discord.gg/your-server" ],
    "BlockedWords": [ "\\bbadword+\\b" ]
  }
}

  1. Drop the 0xCrossServerChat folder into ShooterGame\Binaries\Win64\ArkApi\Plugins\ on every server in the cluster.
  2. Point all of them at the same database in config.json. The plugin creates its table automatically.
  3. (Optional) Set a Discord webhook and tune the filter, then restart the servers. Comments and trailing commas in the config are allowed.

Requirements: ARK: Survival Evolved dedicated servers with ARK Server API, Windows x64, and one MariaDB/MySQL database reachable by every server in the cluster.

Tip: leave ServerTag empty and each server labels itself by its session name automatically - so two servers on the same map still show up distinctly.


Кросс-серверный чат для кластера ARK: игроки на всех картах общаются в одном глобальном чате, с опциональной ретрансляцией в Discord и модерацией слов/ссылок - всё через конфиг, без клиентского мода.

0xCrossServerChat связывает чат всех серверов кластера через одну общую базу данных. Сообщение, написанное на The Island, появляется на Ragnarok, Aberration и остальных - с пометкой, с какого сервера оно пришло. Трайб-чат тоже можно передавать (на других серверах его видит только тот же трайб). Плагин умеет дублировать чат в Discord-канал в нужном вам формате, показывать зашедшему игроку недавнюю историю и вычищать мат и ссылки из всех каналов.

Возможности

  • Чат кластера - глобальный (и при желании трайб) чат общий для всех серверов.
  • Метка сервера - у каждого сообщения видно, откуда оно; по умолчанию берётся имя сервера, можно задать своё.
  • История при заходе - показывает (пере)зашедшему игроку последние N сообщений, чтобы не терять контекст.
  • Ретрансляция в Discord - дублирование чата в вебхук с полностью настраиваемым форматом строки (цвета через ANSI).
  • Фильтр слов - чёрный список (слова/regex); цензура (замена на ****) или блок всего сообщения.
  • Фильтр ссылок - блок ссылок по умолчанию и белый список для доверенных.
  • Без клиентского мода - только сервер; единственная общая зависимость - одна база данных.

  • Каждый сервер пишет чат в одну общую таблицу БД; остальные опрашивают её (~1с) и показывают новые строки. Эта таблица - единственная связь между серверами, отдельный релей-процесс не нужен.
  • Каждая строка помечается сервером-источником и именем отправителя (и трайбом). Трайб-чат доставляется только участникам того же трайба на других серверах.
  • Модерация работает на всех каналах (глобал / трайб / локал) до показа и ретрансляции. В режиме цензуры сообщение правится на месте, поэтому локальный чат тоже зачищается - не только пересылаемая копия.
  • Discord: каждый сервер постит свои сообщения один раз, поэтому каждая строка попадает в канал ровно однажды - просто используйте один и тот же вебхук на всех серверах.
  • При старте сервер пропускает накопленный бэклог, поэтому перезапуск никогда не заливает чат старыми сообщениями.

ПолеЗначение
DatabaseОбщая БД кластера - все серверы указывают на ОДНУ
Relay.ServerTagМетка источника; пусто = имя сервера (уникально даже на одной карте)
Relay.RelayGlobal / RelayTribeКакие каналы общие для всех серверов
Relay.HistoryOnJoinПоказать зашедшему последние N сообщений (0 = выкл)
Discord.Enabled / WebhookUrlДублирование чата в Discord-канал
Discord.FormatШаблон строки ({time} {server} {channel} {sender} {message} + цвет-токены)
Filter.Modecensor = замена на Mask; block = не пропускать сообщение
Filter.BlockLinks / AllowedLinksБлок ссылок по умолчанию, кроме разрешённых
Filter.BlockedWordsСлова/фразы для отлова (обычный текст или regex)

JSON:
{
  "Database": {
    "Enabled": true,
    "Host": "127.0.0.1", "Port": 3306,
    "User": "ark", "Password": "", "Schema": "ark"
  },

  "Relay": {
    "Enabled": true,
    "ServerTag": "",          // пусто = имя сервера
    "RelayGlobal": true,
    "RelayTribe": true,
    "HistoryOnJoin": 20
  },

  "Discord": {
    "Enabled": false,
    "WebhookUrl": "",
    "OnlyGlobal": true,
    "Ansi": true,
    "Format": "{yellow}[{time}]{reset} {magenta}[{channel}]{reset} {white}{sender}: {message}{reset}"
  },

  "Filter": {
    "Enabled": true,
    "Mode": "censor",
    "Mask": "****",
    "BlockLinks": true,
    "AllowedLinks": [ "discord.gg/your-server" ],
    "BlockedWords": [ "\\bbadword+\\b" ]
  }
}

  1. Положите папку 0xCrossServerChat в ShooterGame\Binaries\Win64\ArkApi\Plugins\ на каждом сервере кластера.
  2. Укажите всем им одну и ту же базу данных в config.json. Таблицу плагин создаёт сам.
  3. (Опционально) Задайте Discord-вебхук и настройте фильтр, затем перезапустите серверы. В конфиге допускаются комментарии и висячие запятые.

Требования: выделенные серверы ARK: Survival Evolved с ARK Server API, Windows x64, и одна база MariaDB/MySQL, доступная каждому серверу кластера.

Подсказка: оставьте ServerTag пустым - каждый сервер сам подпишется именем своей сессии, так что два сервера на одной карте всё равно различимы.
Author
0x7ffedead0086
Downloads
7
Views
17
First release
Last update

Ratings

0.00 star(s) 0 ratings

More resources from 0x7ffedead0086

Back
Top