Кристалл — многофункциональный бот для модерации, статистики и управления беседами. 5 рангов доступа, кастомные и переименование стандартных ролей, гибкое управление командами в VIP-чатах, рейтинг участников, сюжетные ивенты и проверка подписки на паблик. Подтверждение критичных команд защищает от случайных наказаний, а VIP-статус можно купить прямо в мини-приложении через ЮMoney.
🛡️ Подтверждение критичных команд! Теперь !ban,
!kick,
!warn,
!mute и другие
требуют подтверждения кнопкой — защита от случайных наказаний. Хотите быстрее? Отключается одной командой.
!ban, !kick, !warn, !mute, !vig, !addmod, !addadmin, !editowner и другие теперь требуют нажатия [✅ Подтвердить] в чате. Никаких случайных банов из-за опечатки.
Не хотите каждый раз подтверждать? !settings toggle confirm_actions — и все команды выполняются сразу. Настройка запоминается отдельно для каждой беседы.
Прямо в мини-приложении: выберите тариф, оплатите картой или кошельком ЮMoney. VIP активируется автоматически в течение минуты.
При нажатии на кнопку подтверждения появляется всплывающая плашка ВК снизу экрана — «✅ Действие выполняется…» — и исчезает через 10 секунд. Красиво и по-нативному.
7 дней · 49 ₽ · 30 дней · 99 ₽ · 90 дней · 399 ₽ · 365 дней · 1399 ₽. Чем больше срок — тем выгоднее.
Сюжетный ивент в 3 главы: Светильники Джека → Тысячелетний Тыквенный Король → Ритуал изгнания. Призы: VIP-статус, кристаллы, эксклюзивные роли.
Полная история развития бота. Фильтруйте по типу изменений или разверните полный список.
!ban, !kick, !warn, !mute, !vig, !addmod, !addsenmod, !addadmin, !addspec, !editowner, !demote теперь требуют подтверждения кнопкойconfirm_actions — вкл/выкл подтверждение отдельно для каждого чата. Дефолт: включено. Управление: !settings toggle confirm_actions (уровень 40+)!settings toggle confirm_actions»pending_actions удаляется сразу — второй клик ничего не сделаетpending_actions: token, action, peer_id, from_id, target_id, reason, extra (JSON), cmid, created_atpending_actions (>1 часа) при каждой инициализацииcmids из messages.getById — исправлена ошибка «One of (peer_id, cmids) is undefined»VK::call() — fallback-запросы больше не засоряют лог ожидаемыми ошибкамиmessages.getById → messages.getHistory count=1!help и перестаёт работать для всех!clear выключена в этой беседе. 👤 Отключил: [id123|Иван Иванов]» — сообщение автоудаляется через 10 секунд!togglecommand !clear off, !togglecommand !mute on, !togglecommand reset-all!help и !start невозможно выключить ни через бота, ни через miniappchat_commands в БД: chat_id, command, enabled, disabled_by, disabled_at (уникальный ключ (chat_id, command))ChatManager: isCommandEnabledInChat(), setCommandEnabledInChat(), getChatCommandInfo(), getAllChatCommandStatuses(), clearChatCommandStatuses()chat_commands — таблица создаётся автоматически при инициализации ChatManager🚫 3 выкл)get_commands_map (полная карта команд + статусы), get_chat_commands, toggle_chat_command, clear_chat_commands!help, и в разделах по категориям (callback-кнопки)chat_commands команда считается включённой — без нагрузки на БД для чатов без кастомизации!ping = !пинг, !kick = !кик, !ban = !бан, !mute = !мут и т.д.!settings set command_language ru или !settings set command_language en!settings set lang ru/enchat_settings.command_language (VARCHAR(8), по умолчанию ru) с авто-миграциейCommandHandler::setCommandLanguage() — явная запись с гарантией наличия колонки и проверкой результата через SELECTCommandHandler::translateCommandInText() — переводит русский алиас в каноническую EN-команду до всех проверок. Аргументы не трогаетcmd_ru в карте команд getCommandsMap() — русское отображаемое имя!help показывается текущий язык: 🇷🇺 Русский / 🇬🇧 English + его код для диагностики!settings basic, !settings list) язык отображается с флагом и текущим значением!help для Директораglobal не выводятся в getHelpTextForCategory()ensureCommandLanguageColumn() — гарантирует наличие колонки при инициализации CommandHandlergetCommandLanguage(): пишет chat_db_id, raw-значение и итоговый результатstandardRoleNamesCache в ChatManager — ускорение !help, !roles, !stats!renamerole [уровень] [имя] для VIP-чатов!help, !roles, !stats, !admins, !roleinfo, !addadmin и другими командами!help автоматически подхватывают переименование!help динамически обновляются!renamerole [уровень] reset — сброс одной роли!renamerole reset-all — сброс всех переименованийstandard_role_names в БД!help: переключение разделов прямо в сообщенииChatManagergoodbye!settings toggle goodbye — включить/выключить прощальное сообщение в чатеvip_goodbye для кастомного сообщения в VIP-беседахChatManager::sendFarewell() — отправляет прощание и в чат, и в ЛС удалённому пользователю{user}, {user_name}, {moderator}, {chat}, {action}, {reason}sendFarewell() после исключенияchat_settings: колонки goodbye и vip_goodbye (авто-миграция)chatlog_api.php — топ-12 бесед, маскированные ID, VIP-меткиtoggle, set, show, reset, basic, list, help1/0, вкл/выкл, on/off, ✅/❌group → group_ для удобства вводаchat_settings: гарантирует все 26 колонокChatManager::getRules() и setRules() работают с chat_settings.rules + fallback на chats.rulesCommandHandlerfastcgi_finish_request() — ответ VK отдаётся за ~10ms, тяжёлая логика работает после!bot_errors.log, быстрее чтение и анализ!setnick Генералnicks расширена колонками set_by и set_atNameDecliner — правила русских имён и фамилий (исключения: Лев, Пётр, Павел, Илья, Никита)getExpiredMutes() и getExpiredBans() в ChatManagercron.php с блокировкой через flockindex.php — авторазбан и автоснятие мута теперь тихие30, 30м, 2ч, 3д, 1нparseDuration() и pluralize()!help[id123|Имя Фамилия] везде — хелпер mention()!help)getUserName() в ChatManager с fallback через users.get2147483647, >= 2000000000, <= 0 больше не попадают в БД@id2147483647 из списков !nicklist, !admins, !roleinfoisValidVkUserId() — единая точка проверки$msg!helprefreshChatTitle()refreshChatTitle() + автообновление раз в 5 минутkick+readd)error 27getUserGlobalStats() в ChatManager/ убранСюжетные события, которые бот проводит в беседах. Нажмите на активный ивент, чтобы открыть полное описание сюжета, глав и команд. Отключённые ивенты показаны серым.
VIP-статус можно приобрести прямо в мини-приложении ВКонтакте с оплатой через ЮMoney (карта или кошелёк). Оплата защищена, VIP активируется автоматически.
Ответы на популярные вопросы о работе бота, ивентах, ролях и VIP-статусе. Если не нашли ответ — напишите в сообществе vk.com/cm_manager.
!start.
!ban ·
!kick ·
!warn ·
!mute ·
!vig
!addmod ·
!addsenmod ·
!addadmin ·
!addspec
!editowner ·
!demote
confirm_actions
управляется через команду !settings.
Настройка независима для каждой беседы — можно включить только там, где нужно.
!settings toggle confirm_actions — переключить вкл/выкл
!settings set confirm_actions 0 — выключить
!settings set confirm_actions 1 — включить обратно
!settings show confirm_actions — посмотреть текущее значение
!settings reset confirm_actions — сбросить (вернётся в положение «включено»)
!addmod — Младший модератор (10)
!addsenmod — Старший модератор (20)
!addadmin — Младший администратор (30)
!addspec — Старший администратор (40)
!giverole — выдать кастомную роль
!removerole.
Все действия доступны и через веб-панель VK Mini App. Владелец чата может передать свои права командой !editowner.
confirm_actions).
!renamerole 10 Страж.
!addrole Принц 25.
!help, !roles, !stats, !admins и других командах.
!togglecommand !clear off — выключить !clear
!togglecommand !mute on — включить обратно
!togglecommand reset-all — сбросить всё
!help и не работает у участников.
При попытке её использовать бот напишет «🚫 Команда выключена в этой беседе. 👤 Отключил: Иван Иванов».
Команды !help и !start защищены — их выключить нельзя.
!renamerole)
!addrole)
HW-2026-A1B2C3D4E5F6.
!vipstats HW-2026-A1B2C3D4E5F6
!vipstats не отображается в !help — она известна только победителю.
!сладость, атаки по боссу, разгадывание загадок или украсть у других игроков командой !украсть (ответом на сообщение).
!загадка и !ответ.
!атака.
!ивент выкл [ключ].
Например, для Хэллоуина: !ивент выкл halloween.
!ивент вкл halloween.
Список всех ивентов и их ключей: !ивент.
!help.
Отображаются только те команды, которые доступны вам по роли — так проще ориентироваться.
confirm_actions,
критичные команды ждут нажатия кнопки [✅ Подтвердить].
Добавьте бота прямо сейчас и получите полный контроль над модерацией, ролями, рейтингом и VIP-функциями. Подтверждение критичных команд защитит от случайных наказаний, а VIP можно купить прямо в мини-приложении через ЮMoney.