Розыгрыши: от первого участника до победителя¶
Розыгрыш собирает зрителей Twitch-чата, сохраняет заявки между эфирами и показывает выбор победителя в OBS. Можно проводить несколько розыгрышей одновременно. Набор работает без открытого кабинета и OBS.
Иллюстрации ниже сняты в тестовом кабинете с демонстрационными участниками. Названия и числа приведены для примера.
1. Создайте розыгрыш¶
Откройте Интерактивные игры → Розыгрыши и выберите заготовку:
| Заготовка | Когда удобна | Начальные настройки |
|---|---|---|
| Быстрый | один приз во время эфира | вход командой, 60 секунд на подтверждение победы |
| На несколько стримов | сбор в течение дней или недель | накопление билетов, без таймера подтверждения |
| Для сообщества | участие постоянных зрителей | вход по активности, без таймера подтверждения |
Введите название приза и описание. Выберите способ участия, условия, число призовых мест и шансы. При необходимости задайте дату автоматического закрытия. Нажмите Сохранить черновик, затем Открыть набор в пульте. Сохранение настроек само по себе не запускает сбор.
В пульте отдельно видны заявки, допущенные участники и билеты в пуле. Заявка может быть сохранена, пока её условия ещё проверяются.
2. Выберите способ участия¶
| Способ | Что делает зритель |
|---|---|
| Команда | пишет точную команду с аргументами, например !розыгрыш или !розыгрыш второй |
| Ключевое слово | пишет отдельное слово, например «приз»; регистр не важен, «призовой» не подходит |
| Активность | достигает выбранных порогов сообщений или присутствия |
| Все в чате | подключается к Twitch-чату во время эфира; отдельная команда не нужна |
| Награда за баллы Twitch | покупает выбранную награду канала; количество билетов задаёт организатор |
Для параллельных розыгрышей задавайте разные команды или аргументы. Один Twitch-аккаунт создаёт одну заявку: смена ника и повтор команды её не дублируют. Владелец канала и исключённые боты не участвуют.
Команда и слово работают и между эфирами. Время присутствия и билеты за стримовую активность учитываются во время эфира.
Сообщения, присутствие и их сочетание¶
Для способа Активность выберите Источник активности:
- Обычные сообщения — например, три сообщения за 15 минут. Команды не считаются.
- Время присутствия в чате — например, пять минут за последние 15 минут.
- Сообщения И присутствие — зритель должен выполнить оба порога в заданном окне.
- Сообщения ИЛИ присутствие — достаточно любого порога.
В примере заявку получит зритель, который написал три обычных сообщения и накопил пять минут присутствия в чате за последние 15 минут. После допуска заявку не нужно получать заново на следующем стриме.
Присутствие — приблизительный учёт подключения к чату. Twitch не предоставляет индивидуальное время просмотра видео. Список Chatters обновляется раз в 90 секунд во время эфира. Время начисляется между соседними проверками, в которых пользователь был найден; пропуски проверок, пауза, смена эфира и простой сервера не добавляют время. Порог минут должен помещаться в окно активности. Права для этой функции включаются в Права Twitch для активных функций → Только нужное сейчас.
3. Настройте условия¶
Все включённые условия должны выполняться одновременно:
- бесплатный фоллоу своего Twitch-канала, при необходимости с минимальным сроком;
- действующая платная подписка, включая Prime и подарочную;
- вступление в подключённый Telegram-канал или группу;
- фоллоу или платная подписка партнёрских Twitch-каналов.
Telegram-сообщество должно быть подключено владельцем; проверяющий бот должен быть его администратором. Партнёр в своём кабинете находит ваш зарегистрированный Twitch-канал и выдаёт доступ именно ему, затем выдаёт соответствующие права Twitch. Общего доступа всем каналам нет. Одного подключения PulseCasterBot недостаточно.
Как зрителю связать Telegram и Twitch¶
Связь подтверждается один раз и используется также другими функциями PulseCaster.
- Откройте личные сообщения с Telegram-ботом PulseCaster и отправьте
/twitch. - Скопируйте выданную ботом строку
!code <код>. - Отправьте её со своего Twitch-аккаунта в чат канала с PulseCasterBot. Бот попросит подтвердить привязку: повторите ту же команду в течение двух минут. Сам код действует 10 минут и после подтверждения используется один раз.
- Снова отправьте
/twitchв Telegram: бот покажет связанный Twitch-аккаунт. - Вступите в сообщество, указанное организатором, и выполните команду участия в розыгрыше. Если заявка уже была создана, нажмите Проверить условия снова на странице участника.
Не передавайте код другому человеку: его Twitch-аккаунт мог бы связаться с вашим Telegram. В группах бот предлагает перейти в личные сообщения и не выдаёт код. Если аккаунты уже связаны через кабинет или City, заново подтверждать их не нужно.
Подключить Telegram-сообщество¶
В блоке условий откройте Как подключить Telegram-сообщество → Подключить Telegram-сообщество. Форма уже содержит логин вашего Twitch-канала.
- Добавьте выбранного бота PulseCaster в канал или группу и назначьте администратором.
- Перешлите сообщение из сообщества боту в личные сообщения; скопируйте возвращённые Chat ID и тип чата.
- Создайте подключение с этим Chat ID и тем же ботом. После возвращения сообщество появится в списке условий под своим названием из Telegram; если Telegram не ответил, вместо названия будет Chat ID.
- Если нужны только проверки членства, выключите публикации в настройках подписки.
Для чужого сообщества сначала получите согласие его администратора: он должен добавить бота и выдать административные права. Публичное имя сообщества не заменяет подключения. Привязка Twitch ↔ Telegram каждого зрителя выполняется отдельно через /twitch.
Доступ конкретному Twitch-партнёру¶
В блоке Партнёрские проверки начните вводить логин канала. Поиск выполняется на сервере; список выдаётся страницами по 25 каналов, поэтому можно найти и тысячный канал. Выбор канала сразу выдаёт ему доступ к проверкам вашего канала. Отозвать доступ снимает разрешение только с выбранного получателя. Управлять этим может владелец канала.
Чтобы добавить условие другого Twitch-канала к своему розыгрышу, его владелец должен выдать доступ вашему каналу. Поиск в поле условия показывает только разрешённых партнёров; отсутствие прав фоллоу или подписки отмечается в результатах. После обновления прав партнёром найдите канал снова.
4. Покажите зрителям, как проверить участие¶
В Twitch-чате доступны:
| Команда | Ответ бота |
|---|---|
!участие |
собственный статус во всех активных розыгрышах и последнем завершённом; номера для адресной проверки |
!участие 12 |
статус в розыгрыше № 12 |
!giveaway-status 12 |
тот же запрос с английским именем команды |
Бот показывает допуск, число билетов и вес в пуле. Если порог активности не достигнут, он показывает прогресс, например «сообщения ⅓ и присутствие 2.0/5 мин.». Если условия не выполнены или проверка временно недоступна, заявка сохраняется, но до допуска не участвует в выборе.
После выбора победитель видит запрос !забрать с оставшимся сроком, подтверждённую победу или отметку о выдаче приза. Истечение срока и отклонение результата также видны; исключённый победитель имеет нулевой вес для следующих выборов текущего цикла. До окончания анимации команда не раскрывает выбранного кандидата.
!участие и !розыгрыш-управление можно выключить на вкладке «Команды чата» этой страницы или в общих настройках
(вкладка «Интерактив», группа «Розыгрыши»); там же выключаются отдельные алиасы, например !giveaway-status.
!участие не отвечает и тогда, когда выключен главный переключатель команд для зрителей. !забрать выключить нельзя:
без неё победитель не подтвердит приз.
Проверка статуса не создаёт заявку и не добавляет билеты. Повторные ответы ограничены: один ответ участнику на розыгрыш за 30 секунд. Без номера показываются до двух розыгрышей; для остальных укажите номер. Номер находится рядом с названием розыгрыша в пульте.
На странице /giveaways/{случайный ключ} зритель видит только свою заявку после входа через Twitch или связанный Telegram. Ссылку на эту страницу можно сообщить зрителям. Ссылку страницы участника получите во вкладке OBS → Страница участника. В URL используется случайный ключ из 64 шестнадцатеричных символов; адреса с числовым номером не работают. Ссылку можно перевыпустить отдельно от OBS: прежний адрес перестанет открываться, заявки сохранятся. Страница возвращает только заявку вошедшего зрителя, скрыта от индексации и не передаёт адрес внешним сайтам через Referer. Nginx не пишет её адрес в access log.
Ключ защищает от перебора номеров, но опубликованную ссылку можно переслать. Для ограничения участия используйте условия фоллоу, подписки, Telegram и активности. Ссылки OBS предназначены только для ваших источников.
5. Управляйте участниками и шансами¶
Во вкладке Участники ищите зрителя по нику, имени или причине недопуска. Доступны Перепроверить и Исключить с указанием причины.
Режим Одна заявка — один шанс оставляет равные шансы. В режиме Накопление билетов базовый билет выдаётся один раз, затем можно включить:
- один билет за участие на каждом следующем стриме;
- билет за активный интервал с обычным сообщением (по умолчанию 15 минут);
- множитель для подписчика и VIP; применяется больший множитель, они не перемножаются.
Начальные лимиты — десять билетов за стрим и сто за цикл. Повторная команда или повторная доставка события не добавляет билеты. Интервальные билеты требуют сообщения даже при входе по присутствию.
Доля билетов показывается относительно текущего допущенного пула. Перед выбором условия кандидата проверяются заново, поэтому доля не обещает точную вероятность среди всех фактически подходящих зрителей.
После первой заявки правила участия, условия и билеты фиксируются. Для изменения создайте копию розыгрыша или сбросьте цикл. Оформление OBS можно менять отдельно.
Билеты за баллы канала¶
Опция выключена по умолчанию. Её наличие не означает разрешение Twitch на обмен баллов на шанс выиграть. До включения проверьте Channel Points Acceptable Use Policy и риски конкретного розыгрыша. Прогрессивная цена не отменяет эти требования. В настройках требуется явная отметка Я проверил правила Twitch и риски розыгрыша.
- В разделе Награды создайте отдельную награду через PulseCaster и оставьте очередь запросов включённой. Награды другого приложения не подходят для проверки и возврата через API.
- В розыгрыше включите Разрешить билеты за награду Twitch, подтвердите проверку правил и выберите награду.
- Задайте Билетов за покупку и Покупок на зрителя за цикл. Значение 1 разрешает однократный вход; больше — повторные покупки до лимита. Настройка цены, её прогрессивного роста и ограничений Twitch находится в разделе наград.
- Выберите автоматический возврат отклонённых покупок или ручной разбор в пульте.
Можно выбрать Награда за баллы Twitch основным способом входа либо разрешить покупки дополнительно к другому способу. При входе только по награде начисляется купленный пакет без бесплатного базового билета. Множители подписчика/VIP применяются к весу билетов по общим правилам.
Повторная доставка одной покупки не начисляет билеты снова. При превышении лимита покупок, закрытом наборе, недопуске или исключении из следующих выборов покупка отклоняется. Если пакет не помещается в лимит билетов за эфир или цикл, он отклоняется целиком. При включённом возврате запрос отменяется в Twitch и баллы возвращаются. При выключенном он остаётся на ручной разбор; кнопка Вернуть баллы отправляет запрос отмены. Ошибка API сохраняет покупку до восстановления. Выбор победителя, завершение и сброс ждут незавершённых проверок, подтверждений и возвратов.
Twitch позволяет вернуть через API только запросы в состоянии UNFULFILLED; уже выполненную награду отменить через API нельзя. Перед подтверждением покупки вручную в Twitch дождитесь обработки PulseCaster. Это ограничение описано в Update Redemption Status. Страница участника и !участие показывают состояние собственной покупки.
Одна награда привязывается к одному неархивному розыгрышу. В копии покупки выключены и подтверждение рисков сброшено: выберите другую награду или сначала архивируйте прежний розыгрыш. Перед архивированием остановите продажи этой награды в Twitch и дождитесь обработки очереди.
6. Подключите OBS¶
Откройте вкладку OBS. Для каждого источника скопируйте свою ссылку, в OBS добавьте Источник браузера / Browser Source и вставьте её в поле URL. Рекомендуемый размер — 1920 × 1080.
| Источник | Что показывает |
|---|---|
| Рулетка | приз, счётчик, анимацию, победителя и таймер подтверждения |
| Новые участники | компактные всплывающие карточки, счётчик и инструкцию входа |
Откройте Предпросмотр и тест и нажмите Тестовый показ. Тест не регистрирует участника и не выбирает настоящего победителя.
До 50 допущенных участников используется колесо с секторами по весам; выше — прокрутка карточек. Весь пул участвует независимо от количества карточек на экране. Массовые уведомления объединяются. В настройках доступны цвет, масштаб, положение, аватары, звук и длительность анимации; звук выключен по умолчанию. Тёмный фон на картинке используется только в предпросмотре; сам OBS-источник прозрачен.
Настройки источника «Новые участники»¶
Карточки новых участников, счётчик и инструкцию можно скрыть независимо. Настройте угол экрана, отступ в пикселях и длительность показа карточки от 1 до 60 секунд. Массовые вступления объединяются в одну карточку. Эти настройки доступны и после первой заявки.
Классический режим и исключение¶
В настройках Режим рулетки доступны два варианта:
- Классический — одна анимация показывает победителя.
- На исключение — анимации по очереди убирают участников, пока не остаётся победитель. Задайте длительность первых и последних раундов: по мере уменьшения пула вращение замедляется. Максимум раундов ограничивает общую продолжительность; большой пул исключается группами, финальные раунды — по одному.
В обоих режимах сервер сначала выбирает победителя с учётом веса билетов и повторно проверяет его условия. Затем сохраняет результат и последовательность анимаций. Дополнительные билеты увеличивают шанс победы и в режиме исключения. Исключение на экране относится к одному выбору; эти зрители могут участвовать в выборе следующего призового места. Подтверждённые победители исключаются согласно настройкам розыгрыша.
Сервер сохраняет победителя, а OBS воспроизводит результат. Переподключение или скрытие источника не делает новый выбор. Перевыпустить ссылки отключает старые источники — после этого замените URL в OBS. Не публикуйте OBS-ссылки.
7. Выберите победителей и завершите розыгрыш¶
Нажмите Выбрать победителя. Набор закроется, пул сохранится, выбранный кандидат пройдёт повторную проверку до анимации. Если условие не выполнено, кандидат исключается из текущего выбора с записью причины. Если API или права недоступны, выбор ждёт восстановления, сохраняя кандидата.
Призы разыгрываются по очереди. Подтверждённый победитель по умолчанию исключается из следующих выборов текущего цикла. При включённом подтверждении победитель пишет !забрать или !claim за указанный срок. После истечения срока место освобождается; организатор запускает следующий выбор вручную.
В пульте можно подтвердить или отклонить победу и отметить Приз выдан. Выдача остаётся ручной. Выданный приз нельзя отклонить.
Приостановить сохраняет заявки и прекращает набор; Открыть набор продолжает его. Закрыть набор оставляет возможность выбора. Завершить завершает розыгрыш, В архив убирает его из текущей работы. Сбросить набор требует подтверждения, создаёт новый цикл и сохраняет прежние заявки, результаты и историю. Закрытие кабинета, OBS или окончание эфира не сбрасывает открытый розыгрыш.
Для владельца и Twitch-модераторов также доступно !розыгрыш-управление <номер> open|pause|resume|close|draw|complete. Сброс выполняется в кабинете с подтверждением.
Если участие не появляется¶
Проверьте, что набор открыт и сообщение содержит выбранную команду или отдельное ключевое слово. При первом входе командой или словом бот отвечает, что заявка сохранена; повторы не добавляют билет и не повторяют подтверждение. Владелец канала и исключённые боты не вступают в собственный розыгрыш.
Команда !участие показывает статус, даже если условия не выполнены. Ошибка внешней проверки сохраняет заявку до восстановления. Ответы о статусе ограничены одним запросом на зрителя в 30 секунд; длинный список розыгрышей разбивается на несколько сообщений.
Сообщение Нет сигнала от сервиса розыгрышей означает, что администратору сервера нужно проверить giveaway-worker. Открытая админка и OBS не заменяют работу этого процесса. Во вкладке История отсутствие записей отображается как пустая история.