- Поддерживаемые игры
-
- CS: Source (OrangeBox)
- CS: Source (v34)
- CS: GO
- Team Fortress 2
- DOD: Source
- L4D 1 & 2
- Half-Life 2: Deathmatch
- Synergy
- Codename Cure
- Black Mesa
- CS 2
[ANY] REGEX Word Filter v2.7.1 — Продвинутый фильтр слов с поддержкой кириллицы
Описание
Мощный плагин для фильтрации нежелательных слов в чате с использованием регулярных выражений. В отличие от стандартных решений, корректно работает с русским языком и имеет продвинутую систему нормализации текста для обнаружения попыток обхода.
Основные возможности:
• Полная поддержка кириллицы — регистронезависимый поиск работает корректно для русских букв (а-я, А-Я, ё/Ё)
• Нормализация Latin → Cyrillic — автоматическое преобразование латинских букв в кириллицу
• Транслитерация — распознавание комбинаций sh→ш, ch→ч, zh→ж, ya→я, yu→ю и др.
• Цифры как буквы — 4→ч, 3→з, 0→о, 6→б и др.
• Защита от обхода разделителями — "п-р-и-в-е-т", "п.р.и.в.е.т", "п_р_и_в_е_т" будут отфильтрованы
• Удаление странного Unicode — греческие буквы, fullwidth символы и прочие двойники удаляются
• Очистка мусорных символов — эмодзи, юникод-арт, Lenny faces автоматически удаляются из сообщений
• Гибкая настройка действий — замена на ***, блокировка сообщения, предупреждение, выполнение команды
• Система лимитов — после N нарушений можно кикнуть/забанить/заглушить
• Система прощения — счётчик нарушений уменьшается со временем
• Whitelist — исключения для легальных слов (например, "рубли" не фильтруется)
• Иммунитет по флагам — администраторы могут быть освобождены от фильтра
• Отдельные конфиги для карт — regexrestrict_de_dust2.cfg
• API для других плагинов — интеграция с кастомными чатами (Discord relay и др.)
Очистка мусора (regexfilter_cleanjunk):
• Мусора <50% — символы удаляются, сообщение отправляется
• Мусора >50% — сообщение блокируется
• Нет букв после очистки — сообщение блокируется
Конфигурация
Файл: addons/sourcemod/configs/regexrestrict.cfg
Формат паттернов
• Простой текст: 'слово' 'CASELESS' — ищет "слово" без учёта регистра
• Regex: \b[0-9]{10}\b — стандартный regex (например, номера телефонов)
Флаги паттернов
• CASELESS — регистронезависимый поиск (рекомендуется для кириллицы)
• UTF8 — поддержка UTF-8 (добавляется автоматически для кириллицы)
• MULTILINE — многострочный режим
• DOTALL — точка соответствует переносу строки
• UNGREEDY — нежадный режим
Флаги можно комбинировать: 'паттерн' 'CASELESS|MULTILINE'
Важно: Не используйте [кириллица] в character class — это ломает CASELESS.
Вместо [ао] используйте (а|о)
API для разработчиков
Пример интеграции:
Важно!
• Файл конфигурации ОБЯЗАТЕЛЬНО должен быть в кодировке UTF-8 без BOM
• Для коротких паттернов (3 буквы) рекомендуется добавлять whitelist для легальных слов
• Плагин не загрузится, если конфиг-файл отсутствует
• Совместим с Discord-relay плагинами (Source-Chat-Relay и др.)
Changelog
v2.7.1
• Добавлена очистка мусорных символов (эмодзи, юникод-арт, Lenny faces)
• Добавлен ConVar regexfilter_cleanjunk
• Блокировка сообщений с >50% мусора
• Блокировка сообщений без букв после очистки
• API: REGEXFilter_ProcessMessage теперь возвращает -1 при блокировке
• Интеграция очистки в API для внешних плагинов
• Документация API на русском языке
• Комментарии в коде переведены на русский
v2.6
• Добавлена функция IsSeparator() для корректной замены текста с разделителями
• Исправлена замена слов типа "п-л-о-х-о-е-с-л-о-в-о" → "***"
• Агрессивная фильтрация — сохраняются только латиница, кириллица и цифры
• Все остальные символы (точки, дефисы, Unicode-мусор) удаляются
• Добавлена поддержка Unicode-двойников (греческие буквы, fullwidth символы)
• Расширен список символов-заменителей ($→с, !→и, 1→и)
• Удаление разделителей: точки, дефисы, подчёркивания, звёздочки и др.
• "Л.О.Х" и "с-л-о-в-о" теперь корректно фильтруются
• Добавлена транслитерация: sh→ш, ch→ч, zh→ж, ya→я, yu→ю, yo→ё и др.
• Поддержка цифр как букв: 4→ч, 3→з, 0→о, 6→б
• Добавлена нормализация Latin → Cyrillic
• Слова на латинице преобразуются в кириллицу для сопоставления
• Полностью переписан для SM 1.10+ (newdecls)
• Исправлена работа CASELESS с кириллицей
• Добавлена защита от обхода пробелами
• Добавлена система whitelist
• Добавлен API для внешних плагинов
• Добавлена команда sm_regexreload
• Добавлена поддержка late-load
• Исправлена совместимость с chat-relay плагинами
• Исправлены утечки памяти при перезагрузке
Благодарности
• Оригинальный автор: Twilight Suzuka
• Переработка v2.0: Lappland_Saluzzo
• Нормализация и антибайпас v2.1-2.7.1: Lappland_Saluzzo & Claude Opus 4.5 (Anthropic)
Примечание: Готовый конфиг с паттернами для русского языка прилагается к плагину в обсуждении.
Описание
Мощный плагин для фильтрации нежелательных слов в чате с использованием регулярных выражений. В отличие от стандартных решений, корректно работает с русским языком и имеет продвинутую систему нормализации текста для обнаружения попыток обхода.
Основные возможности:
• Полная поддержка кириллицы — регистронезависимый поиск работает корректно для русских букв (а-я, А-Я, ё/Ё)
• Нормализация Latin → Cyrillic — автоматическое преобразование латинских букв в кириллицу
• Транслитерация — распознавание комбинаций sh→ш, ch→ч, zh→ж, ya→я, yu→ю и др.
• Цифры как буквы — 4→ч, 3→з, 0→о, 6→б и др.
• Защита от обхода разделителями — "п-р-и-в-е-т", "п.р.и.в.е.т", "п_р_и_в_е_т" будут отфильтрованы
• Удаление странного Unicode — греческие буквы, fullwidth символы и прочие двойники удаляются
• Очистка мусорных символов — эмодзи, юникод-арт, Lenny faces автоматически удаляются из сообщений
• Гибкая настройка действий — замена на ***, блокировка сообщения, предупреждение, выполнение команды
• Система лимитов — после N нарушений можно кикнуть/забанить/заглушить
• Система прощения — счётчик нарушений уменьшается со временем
• Whitelist — исключения для легальных слов (например, "рубли" не фильтруется)
• Иммунитет по флагам — администраторы могут быть освобождены от фильтра
• Отдельные конфиги для карт — regexrestrict_de_dust2.cfg
• API для других плагинов — интеграция с кастомными чатами (Discord relay и др.)
Очистка мусора (regexfilter_cleanjunk):
• Мусора <50% — символы удаляются, сообщение отправляется
• Мусора >50% — сообщение блокируется
• Нет букв после очистки — сообщение блокируется
Конфигурация
Файл: addons/sourcemod/configs/regexrestrict.cfg
C-подобный:
"Censor"
{
// Whitelist — слова-исключения (проверяются ДО фильтров)
"whitelist" "'рубл' 'CASELESS'"
"whitelist" "'спидр' 'CASELESS'"
"whitelist" "'небо' 'CASELESS'"
"bad_words"
{
// Паттерны для поиска (поддерживает regex или простой текст в кавычках)
"chatpattern" "'плохоеслово' 'CASELESS'"
"chatpattern" "'оскорбление' 'CASELESS'"
"chatpattern" "\b[a-zA-Z0-9]+\.[a-z]{2,3}\b" // домены (реклама)
// Действия при срабатывании
"replace" "***" // замена на текст
"warn" "Соблюдайте правила чата!" // предупреждение игроку
// Опционально: выполнить команду
// "action" "sm_mute #%u 5" // %u=userid, %i=index, %n=name
// Опционально: полная блокировка сообщения
// "block" "1"
}
"spam_protection"
{
"chatpattern" "'спам' 'CASELESS'"
"warn" "Не спамьте!"
"replace" "[спам]"
// Система лимитов
"limit" "3" // после 3 нарушений — punish
"forgive" "60" // -1 нарушение каждые 60 секунд
"punish" "sm_kick #%u Спам в чате" // наказание при превышении лимита
// Иммунитет для админов
"immunity" "a" // флаг для иммунитета
}
}
Формат паттернов
• Простой текст: 'слово' 'CASELESS' — ищет "слово" без учёта регистра
• Regex: \b[0-9]{10}\b — стандартный regex (например, номера телефонов)
Флаги паттернов
• CASELESS — регистронезависимый поиск (рекомендуется для кириллицы)
• UTF8 — поддержка UTF-8 (добавляется автоматически для кириллицы)
• MULTILINE — многострочный режим
• DOTALL — точка соответствует переносу строки
• UNGREEDY — нежадный режим
Флаги можно комбинировать: 'паттерн' 'CASELESS|MULTILINE'
Важно: Не используйте [кириллица] в character class — это ломает CASELESS.
Вместо [ао] используйте (а|о)
API для разработчиков
C-подобный:
// Обработать сообщение через фильтр
// Возвращает: 1 = изменено, 0 = без изменений, -1 = заблокировано
native int REGEXFilter_ProcessMessage(int client, char[] text, int maxlen);
// Добавить паттерн в whitelist
native int REGEXFilter_AddWhitelist(const char[] pattern, int maxlen);
// Удалить паттерн из whitelist (не реализовано)
native int REGEXFilter_RemoveWhitelist(const char[] pattern, int maxlen);
Пример интеграции:
C-подобный:
#define REGEXFILTER_LIBRARY "regexfilter"
bool g_bRegexFilterAvailable = false;
native int REGEXFilter_ProcessMessage(int client, char[] text, int maxlen);
public void OnAllPluginsLoaded()
{
g_bRegexFilterAvailable = LibraryExists(REGEXFILTER_LIBRARY);
}
void ProcessChat(int client, char[] message, int maxlen)
{
if (g_bRegexFilterAvailable)
{
int result = REGEXFilter_ProcessMessage(client, message, maxlen);
if (result == -1 || strlen(message) == 0)
{
// Сообщение заблокировано
return;
}
}
// Используем отфильтрованное сообщение...
}
Важно!
• Файл конфигурации ОБЯЗАТЕЛЬНО должен быть в кодировке UTF-8 без BOM
• Для коротких паттернов (3 буквы) рекомендуется добавлять whitelist для легальных слов
• Плагин не загрузится, если конфиг-файл отсутствует
• Совместим с Discord-relay плагинами (Source-Chat-Relay и др.)
Changelog
v2.7.1
• Добавлена очистка мусорных символов (эмодзи, юникод-арт, Lenny faces)
• Добавлен ConVar regexfilter_cleanjunk
• Блокировка сообщений с >50% мусора
• Блокировка сообщений без букв после очистки
• API: REGEXFilter_ProcessMessage теперь возвращает -1 при блокировке
• Интеграция очистки в API для внешних плагинов
• Документация API на русском языке
• Комментарии в коде переведены на русский
v2.6
• Добавлена функция IsSeparator() для корректной замены текста с разделителями
• Исправлена замена слов типа "п-л-о-х-о-е-с-л-о-в-о" → "***"
• Агрессивная фильтрация — сохраняются только латиница, кириллица и цифры
• Все остальные символы (точки, дефисы, Unicode-мусор) удаляются
• Добавлена поддержка Unicode-двойников (греческие буквы, fullwidth символы)
• Расширен список символов-заменителей ($→с, !→и, 1→и)
• Удаление разделителей: точки, дефисы, подчёркивания, звёздочки и др.
• "Л.О.Х" и "с-л-о-в-о" теперь корректно фильтруются
• Добавлена транслитерация: sh→ш, ch→ч, zh→ж, ya→я, yu→ю, yo→ё и др.
• Поддержка цифр как букв: 4→ч, 3→з, 0→о, 6→б
• Добавлена нормализация Latin → Cyrillic
• Слова на латинице преобразуются в кириллицу для сопоставления
• Полностью переписан для SM 1.10+ (newdecls)
• Исправлена работа CASELESS с кириллицей
• Добавлена защита от обхода пробелами
• Добавлена система whitelist
• Добавлен API для внешних плагинов
• Добавлена команда sm_regexreload
• Добавлена поддержка late-load
• Исправлена совместимость с chat-relay плагинами
• Исправлены утечки памяти при перезагрузке
Благодарности
• Оригинальный автор: Twilight Suzuka
• Переработка v2.0: Lappland_Saluzzo
• Нормализация и антибайпас v2.1-2.7.1: Lappland_Saluzzo & Claude Opus 4.5 (Anthropic)
Примечание: Готовый конфиг с паттернами для русского языка прилагается к плагину в обсуждении.
- Требования
-
Требования:
• SourceMod 1.10+
• Regex Extension (встроен в SM)
- Переменные
-
Команда Флаг Описание sm_regextest <текст> ROOT Проверить текст на совпадение с паттернами sm_regexreload ROOT Перезагрузить конфигурацию без рестарта
- Команды
-
Переменная По умолчанию Описание regexfilter_enable 1 Включить/выключить фильтр regexfilter_cleanjunk 1 Очистка мусорных символов (эмодзи, юникод-арт)
- Установка
-
Установка:
1. Скопируйте sm_regexfilter.smx в addons/sourcemod/plugins/
2. Скопируйте regexrestrict.cfg в addons/sourcemod/configs/
3. Перезапустите сервер или введите sm plugins load sm_regexfilter