/roll /r
Сумма и приведённое выражение — чтобы видеть, что именно бот прочитал.
/roll 2d6+32d6 + 3 = 13@rollrobot
Кубики для настольных ролевых игр в любом чате — D&D, Pathfinder, World of Darkness, Shadowrun, Fate, Call of Cthulhu.
Открыть в TelegramОткрой @rollrobot, нажми «Запустить», отправь /roll 2d6+3. В ответ придёт разобранное выражение и сумма.
Играешь в компании — добавь бота в чат. Он отвечает на сообщение, которое его вызвало, поэтому бросать могут сразу несколько человек и каждый ответ остаётся при своём вопросе. Без права отправлять сообщения бот молчит.
Если добавить бота нельзя, есть инлайн-режим: напиши @rollrobot 2d6+3 и нажми на результат. Ни добавлять, ни выдавать права не нужно — бросок уйдёт твоим собственным сообщением.
Пять команд, одинаковых в личных чатах и группах. /roll и /full принимают нотацию; отправь любую из них без аргументов — бросится обычный d20.
/roll /rСумма и приведённое выражение — чтобы видеть, что именно бот прочитал.
/roll 2d6+32d6 + 3 = 13/full /fТот же бросок с разбором по кубикам. Отброшенные зачёркнуты, натуральный максимум или минимум помечен стрелкой; в пуле с подсчётом успехи жирным, провалы подчёркнуты.
/full 4d6kh34d6kh3 = 14
[6↑, 5, 3, /full 4d10>=6f14d10>=6f1 = 2 successes, 1 failure
[10↑, 7, 3, 1↓]/randomТолько d100 и ничего больше — когда нужно просто число из ста. То же самое, что /roll d100.
/roll d1001d100 = 73/ask /aОтвет «да или нет» для мелочей, ради которых не стоит бросать, — есть ли на двери ловушка, торгуется ли купец, будет ли ночью дождь. Всё после команды — вопрос, он цитируется над ответом.
/ask тоже работает: вопроса нет, только ответ — для того, что и так сказано вслух за столом.d2, то есть честная монетка и ничего больше./ask Открываем дверь?Открываем дверь?Yes ✅
/ask/helpСправка по нотации одним сообщением, со ссылками на песочницу и справочник. Эта страница вкратце, не выходя из Telegram. /start выводит то же самое.
Работает, но ещё не устоялось: всё в этом разделе может измениться или вовсе исчезнуть из бота в следующем обновлении. Пять команд выше — нет.
/pick /pВыбирает один вариант из твоего списка — случайная встреча, кто первым в дозор, какая дверь. Один кубик по списку; весов нет, пока не задашь их сам.
Прокрасться, Договориться. | и ; делают то же самое, а перенос строки старше обоих, поэтому вставленная таблица делится по строкам.| или ;, затем запятая, затем просто пробелы. Ставь |, если внутри варианта есть запятая, — Верёвка, 15 м | Факел делится на два, а не на три./pick Патруль гоблинов | Пустая комната | Сокровищница/pick Прокрасться, Договориться, Устроить засадуДля обычного броска ничего из этого не нужно. Это для тех, кто пользуется ботом каждую сессию и хочет печатать поменьше.
Название в двойных кавычках в конце броска цитируется над результатом, чтобы чат из одних голых чисел оставался читаемым. Работает одинаково в /roll, /full и /pick, а типографские кавычки, которые подставляет телефонная клавиатура, принимаются наравне с прямыми.
Кавычки обязательны. Парсер принимает так много, что слово без кавычек не отличить от нотации сколь-нибудь надёжно: 2d20kh1+7 Восприятие читается как нотация и падает, а 2d20kh1+7 "Восприятие" бросается и берёт название.
/roll 2d20kh1+7 "Восприятие"Восприятие
2d20kh1 + 7 = 26Два или три числа через пробел читаются как бросок: /roll 4 6 — это 4d6, а /roll 1 20 -3 — это 1d20-3. Третье число — модификатор, знак у него свой.
/roll 1 20 -31d20 - 3 = 11Одно число — это кубик: /roll 20 бросает d20.
/roll 201d20 = 12к и д сводятся к d до разбора, поэтому 2к6 бросает 2d6. Русская, украинская и белорусская запись работают одинаково, а латинскую k в kh и kl это не трогает.
/roll 2к62d6 = 8۲۰ бросает d20. Арабо-индийские и персидские цифры сводятся к ASCII до разбора; в названии в кавычках цифры остаются как есть.
/roll ۲۰1d20 = 17Напиши @rollrobot и нотацию в любом чате, включая группы, которые о боте и не слышали. Над клавиатурой откроется список; нажми на результат, и он уйдёт твоим собственным сообщением.
@rollrobot 2d20kh1+7 предлагает один бросок под двумя заголовками — «Бросок» и «Разбор». Выбор меняет вид, а не кубики: переброса не будет.
Если после имени ничего нет, будут три заготовки: «Бросок» и «Разбор» на d20, «Наугад» на d100.
Вопрос добавляет результат «Вопрос»: он идёт первым, когда бросать нечего, и последним, когда есть. Явный разделитель между двумя не-нотациями — Патруль гоблинов | Пустая комната — ставит первым «Выбор». Одни пробелы здесь не считаются, в отличие от /pick, иначе каждый недописанный вопрос предлагал бы выбор под своим ответом. Инлайн-выбор несёт список прямо в сообщении: над ним нет команды, на которую можно ответить.
Результаты личные и не кешируются, поэтому каждый запрос бросает заново.
То, что ты на самом деле печатаешь. Регистр не важен, пробелы не мешают, поэтому 2 D 20 KH 1 и 2d20kh1 — один и тот же бросок. Каждая группа ниже доведена до полезного предела; остальное лежит в справочнике, а песочница это запускает.
2d6 | Два шестигранных кубика. |
d20 | Количество по умолчанию — один. |
2d20+5 | Арифметика: + - * / и скобки. |
(1d6+2)*3 | Скобки группируют всё, что в них положить. |
(1d4)d6 | Вычисляемое количество: бросается 1d4, затем столько d6, сколько выпало. |
4d6kh3 | Оставить три наибольших — характеристика. |
2d20kh1 | Преимущество: больший из двух d20. |
2d20kl1 | Помеха: меньший. |
4d6dl1 | Отбросить наименьший; dh отбрасывает наибольший. |
{1d8!, 1d6!}kh1 | Отбор по группе — каждый вложенный бросок идёт как один кубик. |
d8! | Максимум на кубике добавляет ещё один. |
d8!! | Составной взрыв: добавка складывается в тот же кубик. |
d8!p | Проникающий: каждый добавочный кубик получает −1. |
5d10!=10 | Взрыв по порогу, а не по максимальной грани. |
2d6r<3 | Переброс значений меньше 3, сколько потребуется. |
2d6ro<3 | Переброс один раз, остаётся второй результат. |
4d6min2 | Поднять каждый кубик минимум до 2. |
4d6max5 | Ограничить каждый кубик пятёркой. |
12d6>=5 | Каждые 5 и 6 считаются успехом. |
7d10>=6f1 | Подсчёт успехов, единицы вычитаются как провалы. |
1d20+7 vs 15 | Проверка против сложности, ответ — степень успеха. |
4dF | Кубики Fate: каждый даёт −1, 0 или +1. |
d% | Процентный кубик — тот же, что 1d100. |
2d6+floor(1d4/2) | Функции: floor, ceil, round, abs, min, max, sqrt, pow. |
Бросок, за которым первым тянется каждый стол, — готовый к копированию.
Атака с преимуществом: два d20, оставить больший, прибавить бонус.
/full 2d20kh1+72d20kh1 + 7 = 26
[Проверка против КС. Превысил на десять — критический успех, не добрал десяти — критический провал; натуральная 20 или 1 сдвигает результат на одну ступень.
/full 1d20+12 vs 201d20 + 12 vs 20 = Critical Success (natural 18)
[18] + 12 vs 20Пул Storyteller: успех на 6 и выше, каждая единица снимает один успех.
/full 7d10>=6f17d10>=6f1 = 4 successes, 1 failure
[8, 6, 2, 10↑, 1↓, 4, 7]Попадания на 5 и 6 по всему пулу.
/full 12d6>=512d6>=5 = 5 successes
[5, 3, 6↑, 2, 4, 5, 1↓, 6↑, 3, 5, 2, 4]Кубик черты и дикий кубик, оба взрывающиеся; засчитывается больший.
/full {1d8!, 1d6!}kh1{1d8!, 1d6!}kh1 = 9
{Четыре кубика Fudge плюс уровень навыка.
/full 4dF+24dF + 2 = 3
[1, 0, -1, 1] + 2Процентный кубик: нужно выбросить не больше своего навыка.
/roll d%1d100 = 37Один бросок ограничен 100 кубиками и 100 итерациями взрывов или перебросов. Попросишь больше — бот так и скажет вместо броска: эти пределы и удерживают ответ внутри лимита Telegram в 4096 символов.
Разбор, который всё равно вылезает за 3500 символов, заменяется компактным ответом — большой пул отвечает суммой, а не молчанием.
/pick принимает не больше 100 вариантов. Список длиннее отклоняется, а не обрезается: оставить первую сотню — значит тихо сместить каждый выбор к началу списка, сохранив видимость работы.
Название в кавычках обрезается до 100 символов, вопрос к /ask — до 300.
Нет. Напиши @rollrobot и нотацию в любом чате и выбери результат — он уйдёт твоим сообщением, а бот никуда не вступит. Добавлять стоит, только если за столом бросают часто: команду печатать короче.
Он реагирует только на обращённое к нему: команды со слеша и инлайн-запросы, начинающиеся с @rollrobot. Обычная переписка игнорируется — для неё просто нет обработчика.
Нет. Ничего из отправленного не сохраняется: ни текст вопроса, ни варианты в списке выбора, ни название в кавычках, ни один результат. Записывается только форма броска — 2d6, 4d6kh3 и команда, из которой он пришёл, — а ID пользователя Telegram сводится к хешу с солью, чтобы считать повторные обращения, не опознавая аккаунт. Этот набор данных доступен только на запись; он нужен, чтобы видеть, какую нотацию стоит поддерживать, и обратно в переписку его не развернуть.
Каждый бросок берётся из генератора roll-parser заново, с новым зерном. Ничего не считается заранее, и ни один результат не переходит из броска в бросок.
Возьми название в кавычки в конце — оно появится над результатом: /roll 2d20kh1+7 "Восприятие". С /pick работает так же.
4d6d1 — ошибка?Голая d после пула неоднозначна: отбросить один кубик или бросить столько кубиков снова? Пиши 4d6dl1, чтобы отбросить наименьший, или (4d6)d1 для вложенных кубиков.
Бот повторит отправленное и подставит ^ под ту часть, которую не смог прочитать, — обычно правка видна прямо в ответе. Неудобные случаи быстрее разобрать в песочнице, ссылка на неё внизу страницы.
Меню команд, инлайн-заголовки и справка по нотации следуют языку интерфейса Telegram: английский, испанский, португальский, немецкий, русский, украинский, белорусский и персидский; всё остальное откатывается к английскому. Результаты — это нотация, они читаются одинаково везде. Yes и No намеренно остаются английскими: язык интерфейса плохо угадывает язык чата, в котором ты пишешь.