HELPER Discord Bot
К списку Wiki
MODERATION CORE // AUTO GUARD // STAFF CASES

HELPER MODERATION ЗАЩИТА СЕРВЕРА AUTO FILTERS / STAFF COMMANDS / RAID SAFE / CASE HISTORY

Moderation Core держит Discord-сервер чистым: проверяет сообщения на запрещённые слова, ссылки, спам, CAPS, массовые упоминания и правила конкретных каналов. Staff получает команды warn / mute / kick / ban / clear / slowmode / lock, а владелец настраивает всё через сайт.

12slash-команд
10ssite sync loop
8ssettings cache
DBcases history
Auto Guardслова / ссылки / spam / caps
Channel Rulesonly images / block files / block text
Staff Toolswarn, mute, ban, clear, lock
Raid Safeboost-aware quarantine
Logscase history в moderation.db

Что делает Moderation Core

Модуль работает в двух направлениях: автоматическая защита сообщений и ручные staff-команды. Он слушает сообщения, применяет правила, удаляет нарушения, выдаёт наказание, пишет case в базу и отправляет красивый staff-log в выбранный канал.

01

Правила

Владелец настраивает слова, ссылки, спам, CAPS, упоминания и правила каналов.

02

Проверка

Каждое сообщение проходит фильтры, если автор не bot, не owner, не admin и не в исключениях.

03

Действие

delete, warn, mute, kick или ban выбираются по настройкам конкретного фильтра.

04

Case

Нарушение сохраняется в moderation.db и уходит в staff-log.

Больше информации картинками

Показываем полный путь: нарушение в чате, автоматическое удаление, staff-log, ручной mute, status-проверка, test-log, антирейд и disabled-state.

01 / violationСообщение нарушителя
💬
#общий-чатПользователь отправил сообщение

Запрещённая ссылка

“Заходите на discord.gg/bad-link”

URL_RE → link_violation()
02 / auto actionАвтомодерация
🛡️
auto guardAction applied

delete_warn

Бот удаляет сообщение, создаёт case, пишет лог и пробует отправить DM пользователю.

delete
warn
mute
03 / staff logCase в лог-канале
📜
#mod-logsMODERATION CASE

🛡️ CASE #42 • DELETE_WARN

Причина: Запрещённая ссылка: di********gg

Пользователь@Member
МодераторHELPER
Канал#общий-чат
Contentзамаскированный фрагмент
04 / manual staffРучной /mute
🔨
staff command/mute

✅ Мут выдан

Модератор выдал timeout на 10 минут. Действие записано как case и ушло в лог.

/mute @user 10m Спам
05 / status/mod_status

🛡️ MODERATION STATUS

Показывает режим, log_channel, alert_channel и последний статус доставки логов.

РежимSTRICT / SHADOW
Log#staff-logs
Last logok / error
06 / raidАнтирейд

🚨 RAID ALERT

Если за окно времени заходит много новых аккаунтов, бот считает risk score и может выдать quarantine-роль.

boost-safe grace check

Команды Discord

Доступ получают администраторы, пользователи с Manage Messages, заданные moderator_role_ids или роли с Kick/Ban Members, если staff-роли не выбраны.

diagnostic/mod_status
/mod_status

Проверяет режим модуля, log/alert-каналы и последний статус доставки логов.

diagnostic/mod_test_log
/mod_test_log

Отправляет тестовый embed в staff-log и записывает last_log_status для сайта.

case/warn
/warn member:@User reason:Нарушение правил

Создаёт активное предупреждение, увеличивает счётчик warn и пишет case.

history/warnings
/warnings member:@User

Показывает последние предупреждения пользователя на сервере.

timeout/mute
/mute member:@User duration:10m reason:Спам

Выдаёт Discord timeout, сохраняет duration_seconds и expires_at.

timeout/unmute
/unmute member:@User reason:Проверено

Снимает timeout и создаёт case unmute.

remove/kick
/kick member:@User reason:Нарушение

Кикает пользователя и пишет staff-log.

remove/ban
/ban member:@User reason:Грубое нарушение

Банит пользователя через Discord guild.ban.

channel/clear
/clear amount:50 reason:Очистка чата

Удаляет до 100 сообщений и логирует количество удалённых.

channel/slowmode
/slowmode seconds:10 reason:Флуд

Ставит slowmode текущему каналу, максимум до 21600 секунд.

channel/lock
/lock reason:Рейд / флуд

Закрывает отправку сообщений для @everyone в текущем канале.

channel/unlock
/unlock reason:Решено

Возвращает отправку сообщений для @everyone в текущем канале.

Путь нарушения от сообщения до case

1Message

новый текст

2Exempt

исключения

3Filter

rule match

4Action

delete/mute

5Case

moderation.db

6Log

staff embed

A

Strict mode

Бот реально удаляет сообщение и применяет наказание.

B

Shadow mode

Бот только пишет log-case, но не удаляет сообщение и не наказывает.

C

Masked match

Совпадение в логах маскируется, чтобы не распространять запрещённый текст.

Автофильтры сообщений

bad wordsЗапрещённые слова
bad_words_enabledвключает фильтр слов.
banned_wordsсписок слов/фраз по строкам.
regex:поддержка регулярных выражений для продвинутых правил.
bad_words_actiondelete / delete_warn / warn / mute / kick / ban.
linksАнти-ссылки
anti_links_enabledвключает проверку URL и Discord invite.
link_block_channel_idsесли пусто — фильтр работает во всех каналах.
link_whitelist_domainsдомены, которые разрешены.
link_allowed_role_idsроли, которым ссылки разрешены.
spamАнтиспам
anti_spam_enabledотслеживает частоту сообщений.
max_messagesлимит сообщений в окне.
spam_window_secondsокно проверки, по умолчанию 5 секунд.
same message4 одинаковых сообщения подряд считаются спамом.
caps mentionsCAPS и упоминания
anti_caps_enabledотдельный переключатель CAPS.
caps_percentпроцент больших букв, по умолчанию 75.
caps_min_lengthминимальная длина текста для проверки.
max_mentionsлимит user/role mentions в одном сообщении.
channel rulesПравила каналов
allow_only_imagesтолько картинки без текста, ссылок и файлов.
block_linksзапрет ссылок в конкретном канале.
block_imagesзапрет изображений.
block_files / block_textзапрет файлов или текста.
exceptionsИсключения
ignored_channel_idsканалы, где автофильтры не работают.
ignored_role_idsроли, которые не проверяются.
administratorадмины автоматически exempt.
owner / botвладелец сервера и боты игнорируются.

Путь модератора

01

Проверяет статус

/mod_status показывает, куда уходят логи и какой режим активен.

02

Наказывает

/warn, /mute, /kick или /ban применяют действие и создают case.

03

Чистит канал

/clear, /slowmode, /lock, /unlock управляют текущим каналом.

04

Смотрит историю

/warnings показывает последние предупреждения пользователя.

Права staff

Staff-доступ проходят администраторы, Manage Messages, moderator_role_ids, а если роли не настроены — пользователи с Kick Members или Ban Members.

Антирейд и boost-safe режим

Антирейд смотрит волну входов за заданное окно, возраст аккаунта, статус server boost и другие факторы. В boost-safe режиме бот не карает сразу: он ждёт grace-период, чтобы Discord успел обновить premium_since.

1Join

участник

2Window

30 sec

3Risk

score

4Grace

boost-safe

5Role

quarantine

6Log

raid_alert

settingsПараметры антирейда
raid_protection_enabledвключает on_member_join защиту.
raid_join_limitсколько входов считается волной.
raid_window_secondsокно входов, по умолчанию 30 секунд.
raid_boost_grace_secondsзадержка проверки server booster.
quarantine_role_idроль карантина для подозрительных входов.
risk scoreФакторы риска
join waveмного входов за окно = +2.
new accountаккаунт младше raid_new_account_days = +2.
not boosterне найден server boost = +1.
no avatarподозрительный профиль = +1.

Настройка на сайте

Сайт хранит настройки в data/moderation_settings.json. После сохранения ставится deploy_requested, а cog каждые 10 секунд сбрасывает кэш и записывает deploy-status.

main settingsГлавные поля
enabledвключение внутренней логики модуля на сервере.
moderation_modestrict или shadow.
log_channel_idосновной канал staff-логов.
alert_channel_idрезервный/alert канал логов.
moderator_role_idsstaff-роли, которым разрешены команды.
custom_title / bannerвизуал страницы/панели статуса на сайте.
json previewmoderation_settings.json
data/moderation_settings.json
{ "123456789": { "enabled": true, "moderation_mode": "strict", "log_channel_id": "111", "moderator_role_ids": ["222"], "bad_words_enabled": true, "anti_links_enabled": true, "anti_spam_enabled": true, "raid_protection_enabled": false, "deploy_requested": true } }
site syncsite_sync_loop

10 секунд

Цикл нормализует настройки, проверяет module_states, смотрит deploy_requested и сбрасывает runtime/cache текущего сервера.

record_deploy_success()
log reliabilityПроверка логов
last_log_statusok или error после отправки лога.
last_log_errorтекст ошибки прав/канала.
last_log_channel_idканал последней попытки.
last_log_test_atкогда запускали /mod_test_log.

История наказаний

databasemoderation.db
cases.idтехнический autoincrement ID.
case_idномер case внутри конкретного сервера.
guild_id / user_idсервер и нарушитель.
moderator_idstaff или bot id.
action / reasonтип действия и причина.
duration / expires_atсрок mute/timeout.
log embedStaff-log карточка

🛡️ MODERATION CASE #17

Цвет зависит от действия: ban/kick — красный, mute/slowmode/lock — amber, warn/delete_warn — purple.

Usermention + id
Moderatormention + id
Duration10 мин.
Channel#general

Важные правила безопасности

01

Роль бота выше

Иначе Discord не даст мутить, кикать, банить и выдавать quarantine-роль.

02

Начинай с warn

Не ставь ban на слова сразу: сначала delete_warn или mute, чтобы избежать ложных срабатываний.

03

Shadow для теста

Режим shadow позволяет проверить фильтры без реального удаления сообщений.

04

Закрытый log

Логи могут содержать фрагменты сообщений, поэтому канал должен быть staff-only.

Если модуль выключен

Когда moderation выключен через module_states.json, автофильтры перестают реагировать, а staff-команды показывают disabled embed.

disabled embedЧто видит staff
🔌
safe stateМодерация отключена

🔌 МОДУЛЬ МОДЕРАЦИИ ОТКЛЮЧЁН

Автофильтры, антиспам и staff-команды временно заблокированы. Включите модуль на сайте.

🔌 МОДЕРАЦИЯ ОБЕСТОЧЕНА
module aliasesКлючи состояния
moderationосновной ключ модуля.
automod / auto_modalias для авто-модерации.
mod / moderatorкороткие alias.
модерациярусский alias для старых настроек.

Карта технической логики

filesФайлы и данные
SETTINGS_FILE

data/moderation_settings.json — настройки сайта, фильтры, deploy и log status.

MODULES_FILE

data/module_states.json — включение/выключение moderation.

DB_FILE

data/moderation.db — история cases.

cog.py

on_message, on_member_join, slash-команды, site_sync_loop и log delivery.

settings.py / utils.py

нормализация настроек, JSON lock, parsing, channel rules, links, durations.

constantsГлавные константы
⚙️
SITE_SYNC10 секунд
🧠
CACHE_TTL8 секунд
🔁
DEPLOY5 попыток
🛡️
MANUAL9 actions
🤖
AUTO6 actions
📜
CASESSQLite
message pipelineon_message порядок
module_enabledмодуль должен быть включён.
is_exemptbot/owner/admin/ignored channel/ignored role пропускаются.
channel_rule_violationсначала правила конкретного канала.
find_bad_wordслова и regex.
link / mention / caps / spamпоследующие фильтры.
action logicapply_action
shadow_modeесли включён — только log-case.
safe_deleteаккуратно удаляет сообщение.
timeout/kick/banреальные Discord-действия.
db.add_caseсоздаёт case_id сервера.
send_moderation_logпроверяет канал и пишет статус на сайт.

Ошибки и решения

Почему бот не мутит или не банит?

Проверьте права бота и позицию роли HELPER. Роль бота должна быть выше роли нарушителя.

Почему логи не приходят?

Запустите /mod_test_log. Сайт покажет last_log_status и last_log_error: канал не выбран, нет Send Messages, Embed Links или View Channel.

Можно запретить ссылки только в одном канале?

Да. Укажите link_block_channel_ids. Если список пустой, анти-ссылки работают во всех каналах.

Можно разрешить ссылки staff?

Да. Добавьте роли в link_allowed_role_ids или в общие ignored_role_ids.

Как безопасно тестировать фильтры?

Включите moderation_mode = shadow. Бот будет писать cases без реального удаления и наказаний.

Почему антирейд не выдал роль сразу?

Если включён raid_boost_safe_mode, бот ждёт raid_boost_grace_seconds, чтобы не наказать настоящих server boosters.

// WIKI_NAVIGATION

Вернуться к списку Wiki

Ты дошёл до конца страницы Moderation Core. Можно вернуться в общий центр документации, открыть Dashboard или подняться наверх к началу этой страницы.