HELPER MODERATION ЗАЩИТА СЕРВЕРА AUTO FILTERS / STAFF COMMANDS / RAID SAFE / CASE HISTORY
Moderation Core держит Discord-сервер чистым: проверяет сообщения на запрещённые слова, ссылки, спам, CAPS, массовые упоминания и правила конкретных каналов. Staff получает команды warn / mute / kick / ban / clear / slowmode / lock, а владелец настраивает всё через сайт.
Что делает Moderation Core
Модуль работает в двух направлениях: автоматическая защита сообщений и ручные staff-команды. Он слушает сообщения, применяет правила, удаляет нарушения, выдаёт наказание, пишет case в базу и отправляет красивый staff-log в выбранный канал.
Правила
Владелец настраивает слова, ссылки, спам, CAPS, упоминания и правила каналов.
Проверка
Каждое сообщение проходит фильтры, если автор не bot, не owner, не admin и не в исключениях.
Действие
delete, warn, mute, kick или ban выбираются по настройкам конкретного фильтра.
Case
Нарушение сохраняется в moderation.db и уходит в staff-log.
Больше информации картинками
Показываем полный путь: нарушение в чате, автоматическое удаление, staff-log, ручной mute, status-проверка, test-log, антирейд и disabled-state.
Команды Discord
Доступ получают администраторы, пользователи с Manage Messages, заданные moderator_role_ids или роли с Kick/Ban Members, если staff-роли не выбраны.
/mod_statusПроверяет режим модуля, log/alert-каналы и последний статус доставки логов.
/mod_test_logОтправляет тестовый embed в staff-log и записывает last_log_status для сайта.
/warn member:@User reason:Нарушение правилСоздаёт активное предупреждение, увеличивает счётчик warn и пишет case.
/warnings member:@UserПоказывает последние предупреждения пользователя на сервере.
/mute member:@User duration:10m reason:СпамВыдаёт Discord timeout, сохраняет duration_seconds и expires_at.
/unmute member:@User reason:ПровереноСнимает timeout и создаёт case unmute.
/kick member:@User reason:НарушениеКикает пользователя и пишет staff-log.
/ban member:@User reason:Грубое нарушениеБанит пользователя через Discord guild.ban.
/clear amount:50 reason:Очистка чатаУдаляет до 100 сообщений и логирует количество удалённых.
/slowmode seconds:10 reason:ФлудСтавит slowmode текущему каналу, максимум до 21600 секунд.
/lock reason:Рейд / флудЗакрывает отправку сообщений для @everyone в текущем канале.
/unlock reason:РешеноВозвращает отправку сообщений для @everyone в текущем канале.
Путь нарушения от сообщения до case
новый текст
исключения
rule match
delete/mute
moderation.db
staff embed
Strict mode
Бот реально удаляет сообщение и применяет наказание.
Shadow mode
Бот только пишет log-case, но не удаляет сообщение и не наказывает.
Masked match
Совпадение в логах маскируется, чтобы не распространять запрещённый текст.
Автофильтры сообщений
bad_words_enabledвключает фильтр слов.banned_wordsсписок слов/фраз по строкам.regex:поддержка регулярных выражений для продвинутых правил.bad_words_actiondelete / delete_warn / warn / mute / kick / ban.anti_links_enabledвключает проверку URL и Discord invite.link_block_channel_idsесли пусто — фильтр работает во всех каналах.link_whitelist_domainsдомены, которые разрешены.link_allowed_role_idsроли, которым ссылки разрешены.anti_spam_enabledотслеживает частоту сообщений.max_messagesлимит сообщений в окне.spam_window_secondsокно проверки, по умолчанию 5 секунд.same message4 одинаковых сообщения подряд считаются спамом.anti_caps_enabledотдельный переключатель CAPS.caps_percentпроцент больших букв, по умолчанию 75.caps_min_lengthминимальная длина текста для проверки.max_mentionsлимит user/role mentions в одном сообщении.allow_only_imagesтолько картинки без текста, ссылок и файлов.block_linksзапрет ссылок в конкретном канале.block_imagesзапрет изображений.block_files / block_textзапрет файлов или текста.ignored_channel_idsканалы, где автофильтры не работают.ignored_role_idsроли, которые не проверяются.administratorадмины автоматически exempt.owner / botвладелец сервера и боты игнорируются.Путь модератора
Проверяет статус
/mod_status показывает, куда уходят логи и какой режим активен.
Наказывает
/warn, /mute, /kick или /ban применяют действие и создают case.
Чистит канал
/clear, /slowmode, /lock, /unlock управляют текущим каналом.
Смотрит историю
/warnings показывает последние предупреждения пользователя.
Права staff
Staff-доступ проходят администраторы, Manage Messages, moderator_role_ids, а если роли не настроены — пользователи с Kick Members или Ban Members.
Антирейд и boost-safe режим
Антирейд смотрит волну входов за заданное окно, возраст аккаунта, статус server boost и другие факторы. В boost-safe режиме бот не карает сразу: он ждёт grace-период, чтобы Discord успел обновить premium_since.
участник
30 sec
score
boost-safe
quarantine
raid_alert
raid_protection_enabledвключает on_member_join защиту.raid_join_limitсколько входов считается волной.raid_window_secondsокно входов, по умолчанию 30 секунд.raid_boost_grace_secondsзадержка проверки server booster.quarantine_role_idроль карантина для подозрительных входов.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.
enabledвключение внутренней логики модуля на сервере.moderation_modestrict или shadow.log_channel_idосновной канал staff-логов.alert_channel_idрезервный/alert канал логов.moderator_role_idsstaff-роли, которым разрешены команды.custom_title / bannerвизуал страницы/панели статуса на сайте.last_log_statusok или error после отправки лога.last_log_errorтекст ошибки прав/канала.last_log_channel_idканал последней попытки.last_log_test_atкогда запускали /mod_test_log.История наказаний
cases.idтехнический autoincrement ID.case_idномер case внутри конкретного сервера.guild_id / user_idсервер и нарушитель.moderator_idstaff или bot id.action / reasonтип действия и причина.duration / expires_atсрок mute/timeout.Важные правила безопасности
Роль бота выше
Иначе Discord не даст мутить, кикать, банить и выдавать quarantine-роль.
Начинай с warn
Не ставь ban на слова сразу: сначала delete_warn или mute, чтобы избежать ложных срабатываний.
Shadow для теста
Режим shadow позволяет проверить фильтры без реального удаления сообщений.
Закрытый log
Логи могут содержать фрагменты сообщений, поэтому канал должен быть staff-only.
Если модуль выключен
Когда moderation выключен через module_states.json, автофильтры перестают реагировать, а staff-команды показывают disabled embed.
moderationосновной ключ модуля.automod / auto_modalias для авто-модерации.mod / moderatorкороткие alias.модерациярусский alias для старых настроек.Карта технической логики
data/moderation_settings.json — настройки сайта, фильтры, deploy и log status.
data/module_states.json — включение/выключение moderation.
data/moderation.db — история cases.
on_message, on_member_join, slash-команды, site_sync_loop и log delivery.
нормализация настроек, JSON lock, parsing, channel rules, links, durations.
SITE_SYNC10 секундCACHE_TTL8 секундDEPLOY5 попытокMANUAL9 actionsAUTO6 actionsCASESSQLitemodule_enabledмодуль должен быть включён.is_exemptbot/owner/admin/ignored channel/ignored role пропускаются.channel_rule_violationсначала правила конкретного канала.find_bad_wordслова и regex.link / mention / caps / spamпоследующие фильтры.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.