Документация
Octera работает со слэш-командами (/command) и текстовыми командами с префиксом твоего сервера (по умолчанию .). Почти всё настраивается и в веб-панели.
.help <command> (например, .help ban, .help eco), чтобы узнать, что делает команда, и увидеть живые примеры — или .help <category> для целого раздела. <command> help тоже по-прежнему работает.Premium-серверы: страница Premium в панели (боковое меню → Настройки) показывает подписку сервера с одного взгляда — план, дату продления и кто платит, — а кнопки улучшения и управления находятся там же.
Префикс & помощь
.help timeout/prefix set: ?/disable economy music warnМодерация
/timeout @user 10m spammingall очищает канал (и блокирует его на время очистки, если он большой), число удаляет столько последних сообщений, а период (например 7d, 2mo) удаляет сообщения за этот промежуток. Укажи пользователя, чтобы удалить только его сообщения. Учти: Discord не разрешает ботам массово удалять сообщения старше 14 дней..purge 50 · .purge 2mo · .purge allБезопасность
/security let-in @friend/lockdown end снимает блокировку и всё восстанавливает./lockdown allОтслеживание «нагрева», фильтры рейдов & проверки на входе, верификация и капча настраиваются в панели управления.
Уровни
Экономика
.games по-прежнему работает как ярлык.).buy lucky coin 3Роли & участники
/role add roles:@VIP @Booster user:@someone duration:7dАвтоматизация
Automations (панель управления → Utilities → Automations) — это правила «когда происходит это, делай то»: выбери триггер (отправлено сообщение, добавлена реакция, зашёл участник, выдана или снята роль), при желании добавь условия (канал, роль, ключевые слова, возраст аккаунта), а затем выполни до 10 действий по порядку — отправить сообщение, эмбед или ЛС, выдать или снять роль, поставить реакцию, удалить сообщение или создать ветку. Начни с готовых шаблонов вроде Welcomer, Keyword auto-reply и Auto-thread — до 50 на сервер, бесплатно.
Auto Send (панель управления → Utilities → Auto Send) публикует повторяющееся сообщение с заданным интервалом или ежедневно в указанное время UTC — выбери дни недели, при желании добавь окно отправки, включи защиту от флуда (пропускает отправку, пока последнее сообщение бота остаётся самым свежим) или отправляй его как эмбед.
Дни рождения
MM-DD или YYYY-MM-DD. Укажи год, если хочешь, чтобы отмечали и возраст./birthday set 10-12 · /birthday set 1993-12-16Включи объявления в панели (Утилиты → Дни рождения): выбери канал, настрой сообщение и при желании выдавай роль именинника на этот день.
Достижения
Настрой их в панели (Достижения): включи функцию, чтобы получить готовый стартовый набор, а затем добавь свои — одиночные или многоуровневые цели от Бронзы → до Алмаза по сообщениям, реакциям, времени в голосовых, веткам, бустам, участию в розыгрышах, покупкам в магазине и дням рождения, у каждой — необязательные награды-роли и объявления об открытии.
Приглашения
/invites user member: @friendНастрой это в панели (Приглашения): игнорируй совсем свежие аккаунты как фейковые и автоматически выдавай роли-награды за достижение вех по приглашениям.
Розыгрыши
/giveaway create для пошагового мастера./giveaway start duration: 1d prize: Nitro winners: 2Редактор Розыгрышей в панели идёт дальше — планируй или повторяй розыгрыши, задавай требования к участию и бонусные билеты, выдавай роли победителям, настраивай эмбед и сохраняй пресеты.
Тикеты
Создавай панели тикетов в панели управления (модуль «Тикеты»). Участники открывают тикет кнопкой на панели; сотрудники берут его в работу и закрывают. При закрытии сохраняется и публикуется стенограмма со ссылкой Открыть стенограмму онлайн, чтобы прочитать её в браузере.
Утилиты
/voice rename name: Gaming · /voice lockВременные голосовые каналы (панель управления → Utilities → Voice) работают по принципу «зашёл — создался»: выбери один или несколько каналов-хабов, и участник, зашедший в такой канал, получит рядом собственный — который автоматически удалится, когда опустеет.
Только для оператора: /nuke channels, /nuke category и /restart — служебные команды, жёстко закреплённые в коде за оператором бота; персонал сервера запустить их не может.
Уведомления
Получай оповещения, когда креатор что-то публикует. В панели управления (Socials) добавь ленты для YouTube, Twitch, Kick, TikTok, Reddit (новые посты сабреддита), Podcast (новые выпуски из RSS-ленты шоу) или любой URL Custom RSS — Octera опубликует новые видео, посты, выпуски и старты трансляций в выбранный тобой канал вместе с твоим текстом.
Музыка
Включай музыку в голосовом канале с аккуратной очередью — и без ещё одного бота. (Premium.)
Найди трек по названию или вставь ссылку — SoundCloud, Bandcamp, подкаст, интернет-радио или прямую ссылку на аудио. Octera читает большинство аудиосайтов и показывает, откуда взялся трек.
YouTube недоступен. YouTube блокирует запросы на воспроизведение, приходящие от хостинг-провайдеров, а именно там работает любой Discord-бот — поэтому ссылки на YouTube отклоняются, а не проигрываются. Поиск по названию по-прежнему работает и играет из источников выше. Ссылки Spotify и Apple Music не может воспроизвести ни один бот, потому что их аудио зашифровано; отправь вместо этого название трека.
.queue и .pause по-прежнему работают.)Перевод
Участники, говорящие на разных языках, могут общаться в одном канале. Никому не нужно ничего менять: тот, кто хочет прочитать сообщение, ставит на него реакцию с флагом своего языка, и Octera публикует перевод прямо под ним.
/translate text text: where is the meeting to: Spanish/translate live from: Chinese to: EnglishРеакции-флаги. Поставь на любое сообщение реакцию с флагом, который Octera распознаёт, — и бот ответит переводом. Если один и тот же флаг поставят несколько человек, ответ всё равно будет один, а на любую другую реакцию бот не отреагирует.
Целые каналы. В панели управления можно выбрать канал и языки, на которых в нём говорят, — до пяти. Octera сама определяет, в какую сторону нужно перевести каждое сообщение, так что испаноговорящий и англоговорящий участники могут просто общаться. Сообщение, уже написанное на одном из указанных языков, никогда не дублируется на том же языке. Это подходит каналу, постоянно разделённому между языками; для эпизодических случаев реакции-флаги обойдутся куда дешевле.
Живой перевод. Для того, кто присоединяется к разговору на незнакомом ему языке. Он один раз запускает /translate live, и всё, что он пишет, дополнительно публикуется на другом языке — пока он не выполнит /translate off или не замолчит. Владелец сервера может отключить это в панели управления.
Перевод работает через внешний сервис перевода, поэтому владелец сервера один раз настраивает его на странице Перевод в панели. Пока сервис не подключён, страница прямо об этом сообщает и ничего не переводится. Повторные переводы одного и того же сообщения берутся из кеша и ничего не стоят, а для всего сервера можно задать месячный лимит символов.
Резервные копии
Снимай структуру сервера — роли, каналы, права и настройки — прямо из панели. Восстановление заново создаёт всё, чего не хватает, не удаляя то, что уже есть. Резервные копии никогда не включают сообщения и историю чата.
Руководство: переменные в сообщениях
Везде, где Octera пишет сообщение, можно вставить переменную — короткий заполнитель {name}, который сам подставит значение в момент отправки. Они работают в приветствиях и прощаниях, эмбедах, автоответах, тегах, авторассылке, панелях ролей за реакции, панелях тикетов и не только — названия везде одинаковые.
Welcome {user.mention} to **{server}** — you're member #{server.members}!
Пиши их через точку или через скобки — это одно и то же: {user.name} = {user(name)}.
Участник
| Переменная | Что подставляется |
|---|---|
| {user} | Отображаемое имя |
| {user.mention} | Настоящий @-пинг |
| {user.name} | Имя пользователя |
| {user.nick} | Ник на этом сервере (если ника нет — имя пользователя) |
| {user.id} | ID пользователя в Discord |
| {avatar} | Его аватар — вставь в слот изображения или миниатюры |
| {user.color} | Цвет его имени, например #a93bf0 |
| {user.top_role} | Название его высшей роли |
| {user.joinstamp} | Когда он присоединился — числом-меткой времени |
| {user.timestamp} | Когда был создан его аккаунт — числом-меткой времени |
{target} работает так же для первого, кого @упомянули в команде (если никого — для того, кто её запустил), — удобно в тегах: {target.mention}, {target.avatar}.
Сервер & канал
| Переменная | Что подставляется |
|---|---|
| {server} | Название сервера |
| {server.members} | Количество участников |
| {server.ordinal} | Количество участников как порядковое место — «42-е» |
| {server.icon} | Иконка сервера — годится для слота изображения или миниатюры |
| {server.id} | ID сервера |
| {server.description} | Описание сервера |
| {channel} | Название канала |
| {channel.mention} | Кликабельная ссылка на #канал |
Картинки из переменных
Слоты картинки, миниатюры, иконки автора и иконки футера принимают переменную вместо ссылки — поэтому приветственный эмбед может показать аватар самого новичка:
{avatar} в поле thumbnail приветственного эмбеда — и каждый новичок увидит в углу свою аватарку. {server.icon} работает так же.В каждый такой слот можно вставить и обычную ссылку https://, либо нажать Загрузить… и взять файл прямо с компьютера — Octera сохранит картинку и будет использовать постоянную ссылку, так что работать она будет всегда.
Полезно знать
- Несуществующая переменная не вызывает ошибку — подставляется ближайшее совпадение; если что-то выводится странно, сверь написание с таблицами выше.
- Переменные подставляются в момент отправки сообщения, поэтому предпросмотр в панели показывает сырой текст
{name}. - Теги и свои команды добавляют к ним логику — смотри создание команд-тегов.
Управление сервером: особенности Discord, о которых стоит знать
Некоторые вещи в Discord ведут себя так, будто что-то сломано, хотя это не так — рано или поздно на них попадается почти каждый владелец сервера. Ни одна из них не связана с Octera: всё решается в настройках самого Discord.
Имя пользователя отображается не тем цветом
Discord окрашивает имя по самой высокой роли, у которой есть цвет. Роль со значением Default (без цвета) должна пропускаться, поэтому бесцветная роль, которую ты держишь наверху — обычно чтобы отдельно выделяться в списке участников, — оставляет цвет роли ниже.
Иногда не помогает. Discord хранит старые данные о цвете роли даже после того, как роль считается бесцветной, и имя так и остаётся не того цвета.
Заставь Discord перечитать роль:
- Открой Настройки сервера → Роли, выбери проблемную роль и перейди во вкладку Отображение.
- Переключи на Сплошной, выбери любой заметный цвет и сохрани.
- Снова открой ту же роль, верни значение По умолчанию (без цвета) и сохрани ещё раз.
- Нажми Ctrl + R, чтобы перезагрузить Discord.
Теперь роль воспринимается как по-настоящему бесцветная: она остаётся наверху и продолжает показывать участников отдельно, а цвет имени берёт на себя следующая роль с цветом.
Рядом с твоим именем пропала корона владельца
Корона пропадает, когда у одной из твоих ролей одновременно включены обе эти настройки:
- право Администратора, и
- Показывать участников этой роли отдельно от остальных участников в сети.
Чтобы оставить свою роль выделенной и вернуть корону:
- Открой Настройки сервера → Роли и выбери свою личную роль, которая отображается отдельно.
- Отключи у этой роли Администратор — а Отображать участников роли отдельно оставь включённым.
- Нажми Ctrl + R, чтобы перезагрузить Discord.
Руководство: как собирать тег-команды
Теги — это твои собственные команды с префиксом, работающие на TagScript: крошечном языке шаблонов с переменными, логикой, математикой, случайностью и управляющими блоками (удалить триггер, отправить ответ в ЛС, поставить реакцию, ограничить по роли, приложить эмбед и не только). Все переменные сообщений работают и здесь.
Создать тег
Используй /tag (или панель → Утилиты → Теги). Задай имя и содержимое. Участники вызывают тег твоим префиксом, например .rules.
/tag name: hello content: Hey {user(mention)}, welcome to {server(name)}! 👋
Вызов .hello → Привет, @Ты, добро пожаловать в Octera! 👋
Переменные
В теге работает любая переменная сообщения — {user.mention}, {server}, {avatar} и остальные. Теги добавляют несколько своих:
| Переменная | Что даёт |
|---|---|
| {args} | Всё, что напечатано после команды. {args(1)} = первое слово, {args(2)} = второе… |
| {target(mention)} | Первое @упоминание в сообщении (если его нет — тот, кто запустил команду) — те же атрибуты, что и у {user} |
| {uses} | Сколько раз запускался тег |
| {unix} | Текущая unix-метка времени |
Логика, математика & случайность
| Блок | Что делает |
|---|---|
| {if(a==b):yes|no} | Условие. Операторы: == != > < >= <= |
| {any(a==b|c==d):yes|no} | any/or и all/and по нескольким условиям |
| {math:2*(3+4)} | Арифметика (+ - * / % ^) |
| {random:a~b~c} | Выбрать один вариант случайно (разделяй с помощью ~ или ,) |
| {range:1-100} | Случайное целое число в заданном диапазоне |
| {=(name):value} | Задать переменную; прочитать её позже через {name} |
| {lower} {upper} {replace(a,b):text} {length:text} | Помощники для текста |
Управляющие блоки (побочные эффекты)
| Блок | Эффект |
|---|---|
| {delete} | Удалить сообщение, вызвавшее тег |
| {dm} | Отправить ответ в ЛС тому, кто запустил команду |
| {react:✅,🎉} | Поставить реакцию на ответ · {reactu:✅} ставит реакцию на триггер |
| {redirect:#channel} | Отправить ответ в другой канал |
| {require(@Role)} / {blacklist(@Role)} | Только / никогда — разрешить этим ролям или каналам использовать тег |
| {embed(title):Hi}{embed(description):...} | Собрать насыщенный эмбед (заголовок, описание, цвет, изображение, миниатюра, футер, поле) |
| {silent} | Выполнить побочные действия тега, ничего не отправляя в чат |
Разобранные примеры
Ящик предложений — удаляет команду и публикует аккуратный эмбед в канале:
{delete}{redirect:#suggestions}{embed(title):💡 Suggestion from {user(name)}}{embed(description):{args}}{embed(color):#a855f7}
Подбрасывание монетки с реакциями:
{user(mention)} flips… **{random:Heads~Tails}**! {react:🪙}
Анонс только для персонала — доступ по роли, никаких ЛС, публикация в канал:
{require(@Staff):You can't use this.}{redirect:#announcements}📢 {args}
Персональное приветствие с упоминанием цели:
{=(msg):Welcome {target(mention)} — you're member #{server(member_count)}!}{if({args}==):Mention someone to welcome them.|{msg}}