CrossMod следит за чатом на Twitch и Kick одновременно: фильтрует сообщения, отвечает на команды, собирает историю наказаний и показывает чат на экране в OBS. Эта страница по порядку объясняет, что делает каждая часть панели и с чего начать.
Всё, что описано ниже, происходит в панели, после входа. Панель на польском языке и одинаково работает на компьютере и на телефоне.
Эту страницу вы откроете в любой момент из меню панели, пункт Pomoc. Ссылка "Panel" в самом низу ведёт обратно.
Если не знаете, где что искать, нажмите Szukaj w panelu в самом верху меню (на клавиатуре: Ctrl и K) и введите слово, например "bany", "overlay" или "powitanie". Панель подскажет страницу, на которой это находится.
Искать нужную главу здесь тоже не обязательно. Под заголовком каждой страницы панели стоит ссылка Pomoc do tej strony - она открывает окно с тем же текстом, что ниже, но сразу в главе о той странице, на которой вы сейчас, не выходя из панели.
Панель CrossMod пока только на польском языке, поэтому названия страниц ниже даны в оригинале - ровно так, как вы увидите их на экране.
Вход действует неделю. Если панель начинает отказываться сохранять, чаще всего достаточно обновить страницу и войти ещё раз.
Страница Włącz bota собирает всё, что делается один раз, в самом начале. Сюда вы возвращаетесь всегда, когда панель говорит, что соединение с Twitch или Kick истекло.
Адреса оверлеев содержат ваш приватный ключ. Не показывайте эту страницу на стриме с открытыми адресами и никому их не отправляйте.
Страница Frazy automod - сердце CrossMod. Вы вводите слово или кусок текста, выбираете, где его искать и каким должно быть наказание. Бот проверяет каждое сообщение на Twitch и Kick и реагирует сам.
У таймаута должна быть длительность. Таймаут на ноль секунд каждая платформа понимает по-своему: Twitch такую команду отклоняет и не делает ничего, а Kick команду без длительности считает постоянным баном. Новые фразы получают длительность автоматически, но старая запись с нулём может ещё лежать в списке - панель тогда помечает её "Timeout bez czasu" и показывает над списком красную полосу. Отметьте такую фразу и нажмите "Timeout" в панели выделения, и она получит 10 минут на обеих платформах.
Scam и scam для бота одно и то же.кот не накажет того, кто написал "котлета".discord.gg сработает в любой ссылке.Прежде чем добавлять фразу с обычным словом, проверьте её в поле "Sprawdź, co zrobi bot" и поставьте автором "Moderator lub VIP". Сразу увидите, не прилетело бы наказание и вашей команде.
Не уверены, как сработает ваша фраза? Вверху страницы есть поле "Sprawdź, co zrobi bot". Вы вставляете в него сообщение из чата, выбираете, кто его написал, и сразу видите, поймает ли его какая-нибудь фраза, какая именно и какое наказание за ней пойдёт. Всё считается в вашем браузере: ничего не уходит в чат и никто не получает наказания.
Поле выше проверяет одно сообщение, которое вы сами наберёте, - а именно ту фразу, которую завтра напишет постоянная зрительница, по памяти никто не наберёт. Поэтому под тестером есть вторая карточка: "Próba na prawdziwym czacie". Вы вводите в неё только фразу, а CrossMod пропускает через неё последние сохранённые сообщения вашего чата и говорит, сколько из них она поймала бы, от скольких человек и как эти сообщения выглядели. Это самый простой способ до добавления увидеть, не ударит ли фраза с обычным словом по постоянным зрителям.
У каждой фразы из вашего списка стоит та же кнопка с подписью "próba" - одним нажатием вы проверите ею фразу, добавленную когда-то давно, к которой чат успел измениться. Проба ничего не отправляет и никого не наказывает; она только считает совпадения по сохранённым сообщениям. Запись чата живёт 7 дней, поэтому дальше назад проверять нечего, а на оживлённом канале проба охватит последние несколько часов - ответ всегда говорит, с какого момента взяты проверенные сообщения.
Под формой стоит список глобальных фильтров, общих для всех каналов в CrossMod. Они ловят типичные мошенничества и спам со ссылками. У каждого из двух списков, вашего и глобального, свой переключатель, поэтому можно оставить только глобальный или только свой.
kurwa с удалением сообщения, дописанная позже kurwa jebana с баном никогда не забанит. Наведите курсор на подпись - и увидите, какая фраза и какое наказание побеждает.На странице Komendy вы создаёте то, что бот должен делать по слову из чата, и то, что он должен сам повторять во время стрима.
!discord.В текстовом ответе бот подменяет шесть вставок. Они записываются со знаком доллара и в фигурных скобках:
${sender} - ник того, кто написал команду.${nick} - первое слово после команды, например @кто-то. ${1} означает ровно то же самое.${args} - всё, что кто-то дописал после команды.${target} - первое слово после команды, а когда его никто не указал - случайный зритель из последних получаса.${randomviewer} - случайный зритель из последних получаса, независимо от того, что кто-то написал после команды.Пример команды !spank: с текстом ${sender} шлёпает ${target}! после ввода !spank @кто-то уйдёт "Ты шлёпаешь @кто-то!", а после простого !spank бот разыграет кого-нибудь из чата.
Три вещи, о которых легко забыть. Во-первых, вставка с опечаткой или без знака доллара ({nick}) не будет подменена ничем - уйдёт в чат буквально, вместе со скобками; запись без доллара используют только приветствие после рейда и описания видео за баллы. Во-вторых, вставки работают только тогда, когда кто-то вводит команду в чате: при автоотправке каждые N минут и в периодических сообщениях нет ни пишущего человека, ни аргумента, поэтому в чат уходит сам текст со скобками. В-третьих, когда ${target} или ${randomviewer} некого разыграть (полчаса никто не писал), бот отправит не ваш текст, а готовую фразу о том, что желающих на шлепок нет. Панель пишет о каждом из этих случаев на карточке команды.
Это короткие объявления, которые отправляются сами во время стрима, например напоминание о Discord. Вы задаёте текст, платформу и интервал, не короче пяти минут. У каждой команды и каждого сообщения есть кнопка "Testuj", которая отправляет их сразу в чат, чтобы проверить текст без ожидания. В тесте команды вместо вставок подставляется ваш ник - периодическое сообщение уходит ровно таким, какое оно есть, потому что вставки там всё равно не работают.
"Testuj" отправляет текст и тогда, когда переключатель у записи выключен, - чтобы можно было посмотреть само сообщение. Панель тогда дописывает рядом с результатом, что сам бот этого не сделает, пока вы не включите переключатель. То же самое она скажет, если команду нельзя вызвать по другой причине, например если её название не начинается с "!". Команды, после которых бот ничего не пишет в чат (горячая клавиша VTube Studio, розыгрыш), нечего отправлять тестом, и панель тогда отсылает к вводу их в чате при запущенной накладке. То же касается команд, которые отвечают о самом спрашивающем, то есть !followage и !points.
Под карточкой каждого периодического сообщения и каждой команды с автоотправкой стоит подпись Harmonogram: во сколько запись ушла в последний раз и через сколько минут уйдёт снова. Над всем списком есть одна фраза о том, какие трансляции панель видит сейчас как идущие, потому что бот отправляет эти сообщения только во время эфира. Поэтому, если запись "не работает", с экрана видно, ждёт ли она просто начала стрима, не прошёл ли ещё интервал или с ней что-то не так - в последнем случае у карточки стоит отдельное пояснение.
Эта фраза, однако, говорит лишь то, что записано у бота, а запись способна разойтись с действительностью. Twitch CrossMod переспрашивает сам каждые несколько минут, а о трансляции на Kick узнаёт из одного уведомления, отправленного в момент старта. Если оно пропадёт, бот весь стрим считает Kick офлайном и не отправит в этот чат ни одного периодического сообщения. Поэтому над списком стоит кнопка "Sprawdź, czy bot widzi transmisję": она спрашивает напрямую обе платформы и показывает у каждой фразу о том, как обстоят дела на самом деле. Когда бот говорит иное, чем платформа, рядом появляется кнопка "Napraw to", и одно нажатие возвращает всё на место. Проверка ничего не угадывает: если платформа не ответит, панель скажет это прямо и ничего не изменит.
Внизу страницы Komendy есть карточка Kopia zapasowa. "Pobierz kopię" сохраняет на диск один файл со всеми командами и периодическими сообщениями, вместе с их текстом, правами и интервалами. Её стоит сделать, прежде чем браться за большую уборку или переносить настройки на второй канал.
"Wgraj kopię" работает так же, как у фраз автомода: только добавляет недостающие записи и никогда ничего не удаляет и не перезаписывает. Команда с названием, которое у вас уже есть, и сообщение с тем же текстом пропускаются, поэтому загрузка одного и того же файла дважды не наплодит в списке дубликатов. После загрузки панель пишет, сколько записей добавилось, сколько пропущено и почему.
Страница Overlay даёт адрес, который вставляется в OBS. На выбор два вида: Game - прозрачный чат поверх картинки игры, и Chat - полный вид чата с обеих платформ.
Всё, что вы поменяете ползунками справа в панели, сохраняется само и сразу видно в предпросмотре по центру. Кнопка "Przywróć domyślne" возвращает вид к заводским настройкам, а "Pobierz kopię" и "Wgraj kopię" позволяют сохранить выверенный вид на диск или перенести его на второй оверлей.
Поле "Nick" решает, какого цвета будут имена зрителей, и работает в обоих видах, Game и Chat. "Kolor użytkownika" оставляет цвет, который зритель выбрал себе на Twitch или Kick. "Kolor platformy" красит все ники с Twitch в фиолетовый, а с Kick - в зелёный, поэтому с одного взгляда видно, с какой стороны пришло сообщение. "Własny kolor" даёт всем никам один выбранный вами цвет. Изменение охватывает и те сообщения, которые уже висят на экране, поэтому обновлять источник в OBS не нужно.
В полосе вверху страницы Overlay есть надпись "OBS: ile źródeł". Она говорит, сколько ваших оверлеев сейчас действительно подключено, то есть принимает ли OBS с той стороны на самом деле. Пусто значит, что ни один источник не отзывается - чаще всего OBS выключен или адрес в источнике устарел. Сама открытая панель в этот счёт не идёт.
Тот же адрес чата можно добавить в OBS как собственный док ("Custom Browser Dock") и держать чат рядом с предпросмотром сцены. Чтобы из него можно было модерировать, его нужно один раз связать:
Рядом есть ещё адрес списка "Aktywni", то есть тех, кто пишет в чате прямо сейчас. Это тоже док, а не источник сцены. Вы нажимаете на ник, когда кого-то поприветствовали, и он становится зачёркнутым; кнопкой "Ukryj OK" вы прячете зачёркнутых совсем. Тот, кто получил бан или таймаут, уходит из списка сам. По умолчанию список держит последние пятнадцать минут - другой диапазон вы зададите, дописав к адресу &min= и число минут, от 1 до 1440. Когда окно теряет связь с сервером, оно пишет об этом сверху, вместо того чтобы молча пустеть.
Все адреса сразу, вместе с теми, что нужны реже, собраны на странице Włącz bota, в карточке "Adresy overlayów do OBS".
Страница Video Overlays привязывает короткие видео к наградам за баллы канала. Видео срабатывает, когда название выкупленной награды содержит один из кусочков, вписанных в поле "Nazwy nagród": регистр значения не имеет, а кусочков может быть несколько, через запятую. Проверка не останавливается на первом совпадении, поэтому одна награда способна запустить несколько видео сразу; панель предупреждает об этом на карточке.
В доке наград в OBS у каждой награды есть кнопка "Test". После нажатия подсказка внизу говорит, что на самом деле ушло на сцену, а если ничего не сработало - по какой причине, вместе с числом секунд, оставшихся до конца интервала.
На странице Overlay, в карточке "Overlay kolejki", вы привяжете награду за баллы канала к горячей клавише в VTube Studio. Горячая клавиша срабатывает, когда название выкупленной награды содержит вписанный здесь заголовок, и одинаково работает и на Twitch, и на Kick. К связке можно добавить короткий звук, который прозвучит вместе с анимацией.
В адресе оверлея находится приватный ключ вашего аккаунта. Кто его знает, тот видит ваш чат вживую, поэтому не показывайте этот адрес на стриме и не отправляйте готовые сцены OBS посторонним.
Страница Alerty настраивает картинки, которые выскакивают на стриме, когда кто-то на вас подписывается, оформляет подписку, делает рейд или отправляет биты либо Kicksy. Один этот источник в OBS обслуживает все события с Twitch и с Kick сразу.
Работают показ, внешний вид, анимации, настройки каждого события по отдельности, собственные звуки, а также числа при рейде, подарке и продлении подписки - об этом ниже.
{nick} - это человек, которого касается событие, а {tekst} - готовая фраза от платформы.Вставка {ile} подставляет число из алерта: зрителей при рейде, подписок при подарке, битов при Bits и Kicksy при Kicksy. При продлении подписки эту роль играет {miesiace}, то есть какой это месяц подряд. У тех же событий работает порог "alert dopiero od": впишите, например, 5 при рейде, и рейд с четырьмя зрителями вообще не покажется. У подписки на канал и первой платной подписки числа нет - там панель этих настроек не предлагает, потому что сравнивать было бы не с чем.
У каждого события есть кнопка "Na żywo". Она отправляет настоящее тестовое событие, поэтому оно покажется не только в предпросмотре, но и в OBS. Предпросмотр на странице локальный и без звука.
Алерты не накладываются друг на друга: когда несколько событий приходят сразу, они выстраиваются в очередь и показываются по одному. Поэтому время на экране и пауза между алертами решают не только судьбу одного алерта, но и то, как быстро разойдётся вся очередь.
Источник алертов в OBS держит постоянное соединение с CrossMod. Если оно оборвётся - на мгновение пропал интернет, сервер перезагрузился, - алерты из времени перерыва не пропадают: вернувшись, источник переспрашивает, что пропустил, и проигрывает это с опозданием. Это касается перерывов до минуты и не более пяти алертов подряд.
После более долгого перерыва, а также после каждого перезапуска источника в OBS старые события пропускаются - иначе на экран возвращались бы подписки и фолловы многочасовой давности. Все события за весь стрим вы всегда найдёте в истории чата в панели.
Mod Log - это общая история наказаний с обеих платформ: баны, таймауты, удалённые сообщения, реакции автомода и снятые баны. В ней видно, кого касалось действие, кто его выполнил и в котором часу.
Рамка с неудавшимися наказаниями - это память панели, а не запись в истории, поэтому она не входит в файл с историей и её нельзя сузить значками. Чаще всего все попытки одного вечера отскакивают от одного и того же, например от истёкшего соединения с платформой; тогда достаточно одного исправления на странице "Włącz bota".
Mod Log отвечает на вопрос "что случилось", а Statystyki - на вопрос "стало ли в этом месяце спокойнее". Это та же история наказаний, только посчитанная и показанная на графиках. Период выбирается вверху страницы: 7, 30 или 90 дней.
Сутки считаются по варшавскому времени, вместе с переходом на летнее и зимнее время, поэтому наказание, выданное в два часа ночи, попадает в нужный день. Когда за период не было ни одного наказания, страница говорит это прямо, вместо того чтобы показывать пустые графики.
Страница Szybka moderacja служит одному человеку и одному решению, без открытия Twitch и Kick. Вы вводите ник, без собачки, отмечаете платформы и нажимаете "Timeout", "Ban na stałe" или "Zdejmij bana".
Списка "Kto ma teraz karę" для Kick нет и сделать его нельзя: Kick принимает модераторские команды, но не выдаёт перечня действующих наказаний. Состояние отдельного человека на Kick вы проверите по нику в карточке "Kim jest ten widz" - с оговоркой, что оно взято из записей CrossMod, а не с Kick.
На Kick CrossMod узнаёт зрителя по следу, который тот оставил в вашем чате: Kick не умеет искать обычных зрителей по одному нику, он находит только каналы. Содержимое чата мы храним 7 дней, а наказанный обычно перестаёт писать, поэтому при очень старом наказании панели может быть уже нечем указать на этого человека. Она скажет об этом прямо, и такое наказание вы снимете тогда на странице своего канала на Kick.
На эту страницу вы попадёте и одним нажатием из других мест панели: кнопкой "Ukarz" рядом с ником в Statystyki. Ник тогда уже вписан, остаётся только выбрать наказание.
В Ustawienia собрано то, что не относится ни к одной из остальных страниц:
{raider} и {link}; ссылка собирается отдельно для каждой платформы, поэтому на Twitch выходит twitch.tv/ник, а на Kick kick.com/ник. Кнопка рядом отправит тестовое сообщение с пометкой TEST - ровно в том виде, в каком его напишет бот.Связанных аккаунтов и выхода из аккаунта здесь больше нет. И то и другое переехало на страницу Włącz bota, чтобы всё, что делается на старте, было в одном месте.
Светлую и тёмную тему вы переключаете в боковом меню, внизу. Выбор запоминается в браузере.
Первый ответ уже есть в Dashboard: третья плитка говорит, за сколькими фразами бот действительно следит в каждом сообщении - вашими и общими CrossMod вместе, но только теми, у которых переключатель поднят. Когда оба переключателя опущены или включённые списки пусты, плитка подсвечивается оранжевым и говорит это прямо, вместо того чтобы показывать число без значения.
Шире это разрешит карточка "Stan automodu" в Ustawienia: она прямо говорит, сделает ли автомод хоть что-нибудь. Если она говорит, что работает, а бот всё равно молчит на конкретном сообщении, вставьте его в поле "Sprawdź, co zrobi bot" на странице Frazy automod - увидите, подходит ли оно вообще к какой-нибудь фразе.
Кроме того, проверьте по порядку: включён ли переключатель у вашего списка фраз, есть ли в списке фразы длиннее двух знаков и не висит ли в Dashboard красная полоса об истёкшем соединении. Если всё в порядке, а бот по-прежнему молчит, зайдите на страницу Włącz bota и нажмите там "Włącz bota" - каналу нужен разовый запуск, и эту кнопку можно нажать ещё раз в любой момент. Если и это не поможет, напишите Grithn.
Бывает, что всё заявлено правильно, и всё равно ни одно сообщение с Twitch не доходит: бот не наказывает, не отвечает на команды, а окно чата в OBS показывает только Kick. Twitch отправляет сообщения из чата отдельным путём, не так, как остальные события, и этот путь способен быть приостановлен - чаще всего тогда, когда сервер CrossMod был ненадолго недоступен.
Зайдите на страницу Włącz bota и посмотрите на карточку "Stan bota". Когда дело именно в этом, у пункта "Czytanie wiadomości z czatu" стоит крестик и фраза о том, что Twitch приостановил отправку. Достаточно нажать ниже "Włącz bota" - это настраивает этот путь заново. Дайте минуту и проверьте состояние ещё раз.
Отправка каждые несколько минут работает только тогда, когда стрим в эфире. Вне стрима бот намеренно молчит. Кнопка "Testuj" у команды отправит её сразу и скажет, дошло ли сообщение на самом деле.
Если стрим идёт, а всё равно ничего не уходит, особенно на Kick, нажмите над списком периодических сообщений "Sprawdź, czy bot widzi transmisję". Бывает, что уведомление о начале трансляции на Kick до CrossMod не дошло и бот считает вас офлайн - тогда кнопка "Napraw to" ставит всё на место одним нажатием, не дожидаясь конца стрима.
Загляните также в подпись Harmonogram под карточкой записи на странице Komendy. Она говорит, во сколько запись ушла в последний раз и через сколько минут уйдёт снова, а если она ждёт начала трансляции или идёт на платформу, которая сейчас не в эфире, напишет прямо и это.
Когда бот отправил запись сам, а чат её не принял, карточка говорит это прямо: вместо "Ostatnio poszła" стоит "Ostatnia próba", а под ней оранжевая подпись с причиной - например, повторённый текст или AutoMod. Подпись исчезает сама, когда следующая автоматическая отправка удастся. Панель помнит это с последнего перезапуска, поэтому сразу после выката новой версии карточкам ещё нечего сказать.
Twitch и Kick способны принять сообщение от бота и всё равно не показать его в чате. Так бывает, когда его задержал AutoMod, когда чат настроен только для подписавшихся или только для платных подписчиков, когда включён медленный режим или режим "только эмоуты", а также тогда, когда бот отправил ровно такой же текст мгновением раньше - ни один чат не принимает два одинаковых сообщения подряд.
CrossMod больше не считает такое сообщение отправленным. Кнопка "Testuj" у команды и тестовые кнопки в Ustawienia прямо напишут, что сообщение не появилось в чате, и назовут причину вместе с тем, что с ней делать. В окне чата в OBS та же причина показывается в подсказке внизу окна, а текст возвращается в поле, если он не вошёл ни в один из чатов.
Чаще всего адрес был скопирован не до конца или взят ещё до смены ключа. Скопируйте его ещё раз со страницы Overlay и вставьте в источник в OBS. Помогает также кнопка "Обновить кеш текущей страницы" в настройках источника браузера.
Надпись "OBS: ile źródeł" вверху страницы Overlay решает, на какой стороне искать проблему. Если она говорит, что ничего не подключено при включённом OBS, виноват адрес в источнике. Если она считает ваш источник, а на сцене всё равно пусто, проверьте размер и видимость источника в OBS.
Обычно это истёкший вход. Обновите страницу и войдите заново. Если сообщение говорит о базе данных, подождите немного и попробуйте ещё раз, ваши настройки не пропали.
Код действует десять минут, а окно чата в OBS само показывает новый, когда старый теряет силу, - обновлять его не нужно. Если вместо цифр вы видите сообщение об адресе оверлея, скопируйте адрес ещё раз со страницы Overlay: после смены ключей старый адрес связывание уже не разрешает.
Если панель написала "Sparowano", а окно в OBS всё ещё просит код, подождите несколько секунд - оно разблокируется само. Когда она пишет об отсутствии ключа записи, откройте страницу Overlay и создайте адреса заново.
Что именно CrossMod сохраняет и как долго, описывает политика конфиденциальности. Правила пользования - в правилах. Список изменений в панели, выпуск за выпуском, - в истории изменений.
Чего-то здесь не хватает или что-то работает иначе, чем описано? Напишите на Twitch @Grithn, документация дописывается по ходу дела.
Описана панель версии Beta v.0495.