> ## Documentation Index
> Fetch the complete documentation index at: https://docs.vetox.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Справочник переменных

> Каждый плейсхолдер Vetox, сгруппированный по функциям — и почему одни используют квадратные скобки, а другие фигурные.

Переменные — это плейсхолдеры, заменяемые реальными значениями при отправке сообщения.

## Два разных синтаксиса

<Warning>
  **Vetox использует два синтаксиса, и они не взаимозаменяемы.**

  | Синтаксис  | Используется                               |
  | ---------- | ------------------------------------------ |
  | `[Square]` | Welcomer, сообщения прощания и приветствия |
  | `{curly}`  | Везде остальное                            |

  `{User}` в приветствии выводится буквально. `[user]` в сообщении тикета выводится буквально.
</Warning>

## Универсальное правило

<Warning>
  **Неизвестная переменная превращается в пустой текст, а не в ошибку** — и в embeds **поле, чей заголовок или значение оказывается пустым, полностью удаляется из сообщения.**

  Это самая частая причина «моё поле embed постоянно исчезает». Почти всегда — неправильно написанная переменная или та, что не существует для этой функции.
</Warning>

## Welcomer, goodbye и greet

| Переменная     | Значение                                                 |
| -------------- | -------------------------------------------------------- |
| `[User]`       | Участник                                                 |
| `[ServerName]` | Название вашего сервера                                  |
| `[UsersCount]` | Новое число участников                                   |
| `[Inviter]`    | Кто пригласил — только для welcome                       |
| `[Code]`       | Использованный код-приглашение — только для welcome      |
| `[CountUrl]`   | URL изображения счётчика участников — только для welcome |

<Warning>
  **`[Server]` не является переменной.** Она присутствует в дефолтном приветствии и выводится буквально. Замените на `[ServerName]`.
</Warning>

<Note>
  `[Inviter]` и `[Code]` требуют **Manage Server**, чтобы Vetox мог читать приглашения.
</Note>

## Тикеты

Самый богатый набор в Vetox. Используется в embeds тикетов, форматах имён каналов и сообщениях о часах поддержки.

<AccordionGroup>
  <Accordion title="Участник" icon="user">
    `{user}` `{mention}` `{username}` `{userid}` `{user.mention}` `{user.name}` `{user.username}` `{user.tag}` `{user.id}`
  </Accordion>

  <Accordion title="Тикет" icon="ticket">
    `{ticket}` `{number}` `{num}` `{ticket.number}` `{ticket-number}` `{#number}` `{ticket.channel}` `{ticket.channelName}` `{ticket.priority}` `{ticket.closeReason}` `{ticket.openedAt}` `{ticket.createdAt}` `{ticket.closedAt}` `{ticket.users}`
  </Accordion>

  <Accordion title="Канал, панель и опция" icon="hashtag">
    `{channel}` `{channel.mention}` `{channel.name}` `{channel.id}` `{panel}` `{panel.name}` `{panel-name}` `{option}` `{option.label}`
  </Accordion>

  <Accordion title="Сервер" icon="server">
    `{server}` `{server.name}` `{server.id}` `{server.members}` `{server.icon}` `{server.banner}` `{guild}` `{members}`
  </Accordion>

  <Accordion title="Персонал и действия" icon="user-shield">
    `{staff}` `{staff.mention}` `{staff.name}` `{claim.user}` `{claim.name}` `{close.user}` `{close.name}` `{close.reason}` `{escalate.reason}` `{escalate.panel}` `{reason}`
  </Accordion>

  <Accordion title="Ответы формы" icon="clipboard-list">
    `{form.1}`, `{form.2}` … — **нумерация с 1**, в порядке следования вопросов.

    `{form.Label}` также работает, используя саму подпись вопроса.
  </Accordion>

  <Accordion title="Время и статистика" icon="clock">
    `{date}` `{time}` `{timestamp}` `{time.created}` `{time.opened}` `{time.claimed}` `{time.closed}` — каждая также принимает `.age`.

    `{statistics.tickets.open}` `{statistics.tickets.created}` `{statistics.tickets.closed}` `{statistics.tickets.claimed}` `{statistics.tickets.averageRating}`
  </Accordion>

  <Accordion title="Часы поддержки" icon="business-time">
    `{supportHours.status}` `{supportHours.nextOpen}` `{supportHours.nextOpenTime}` `{supportHours.nextOpenRelative}` `{supportHours.closesAt}` `{supportHours.closesAtTime}`
  </Accordion>
</AccordionGroup>

### Модификаторы

Переменные тикетов принимают модификаторы через `{variable?modifier=value}`: `upper`, `lower`, `capitalize`, `truncate`, `slice`, `padleft`, `padright`, `replace`, `fallback`, `date`, `timestamp`, `math`, `ordinal`, `join`, `if`.

<Tip>
  `{user.name?upper}` кричит имя. `{ticket.closeReason?fallback=No reason given}` не даёт пустому полю быть отброшенным — это самое чистое решение исчезающих полей embed.
</Tip>

## Counting

`{count}` `{user}` `{record}` — плюс `{start}` и `{savesLeft}` в сообщениях сброса и сохранения.

<Warning>
  `{server}` предлагается, но **всегда пустая**. Пишите имя сервера напрямую.
</Warning>

## Starboard

`{author}` `{stars}` `{channel}` `{link}` `{content}` `{emoji}`

## Self-Roles

`[Role]` — имя роли, в личных уведомлениях.

## Шаблоны розыгрышей

`{prize}` `{winners}` `{host}` `{endsAt}` `{id}` `{description}` `{requiredRole}` `{minAccountAge}` `{entryCount}`

## Уведомления

У каждой платформы свой набор. Использование переменной одной платформы в другой разворачивается в пустоту.

<AccordionGroup>
  <Accordion title="Twitch" icon="twitch">
    `{streamer.name}` `{streamer.url}` `{streamer.avatar}`

    Только вживую: `{stream.title}` `{stream.game}` `{stream.viewers}` `{stream.thumbnail}`
  </Accordion>

  <Accordion title="Kick" icon="tower-broadcast">
    `{streamer.name}` `{streamer.url}` `{streamer.avatar}`

    Только вживую: `{stream.title}` `{stream.category}` `{stream.viewers}` `{stream.thumbnail}`

    Обратите внимание: `{stream.category}`, а не Twitch-овская `{stream.game}`.
  </Accordion>

  <Accordion title="YouTube" icon="youtube">
    `{channel.name}` `{channel.avatar}` `{video.title}` `{video.url}` `{video.thumbnail}` `{video.type}`
  </Accordion>

  <Accordion title="Reddit" icon="reddit">
    `{post.title}` `{post.url}` `{post.author}` `{post.content}` `{post.flair}` `{post.thumbnail}` `{subreddit.name}` `{subreddit.url}` `{subreddit.icon}`
  </Accordion>

  <Accordion title="Bluesky" icon="cloud">
    `{post.text}` `{post.url}` `{post.image}` `{post.likes}` `{author.name}` `{author.handle}` `{author.avatar}`
  </Accordion>

  <Accordion title="Steam" icon="steam">
    `{news.title}` `{news.url}` `{news.content}` `{news.category}` `{news.author}` `{game.name}` `{game.image}`
  </Accordion>

  <Accordion title="RSS" icon="rss">
    `{item.title}` `{item.url}` `{item.description}` `{item.author}` `{feed.name}` `{feed.url}`
  </Accordion>

  <Accordion title="Подкасты" icon="podcast">
    Работают: `{episode.title}` `{episode.url}` `{episode.description}` `{podcast.name}`

    <Warning>
      `{episode.duration}`, `{podcast.author}` и `{podcast.artwork}` предлагаются, но **никогда не выдают значения**. Любое поле, построенное только на них, отбрасывается.
    </Warning>
  </Accordion>
</AccordionGroup>

## Переменные, которые не работают

<Warning>
  Подтверждённо нерабочие. Избегайте их:

  | Переменная                                  | Где                                    | Поведение                                                           |
  | ------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------- |
  | `[Server]`                                  | Welcomer                               | Не переменная — выводится буквально                                 |
  | `{server}`                                  | Вехи Counting                          | Всегда пустая                                                       |
  | `{episode.duration}`                        | Подкасты                               | Всегда пустая                                                       |
  | `{podcast.author}`                          | Подкасты                               | Всегда пустая                                                       |
  | `{podcast.artwork}`                         | Подкасты                               | Обычно пустая                                                       |
  | `{username}`, `{server.name}`, `{nickname}` | **Действия воркфлоу заявок**           | Всегда пустые — работают в DM-сообщениях, но не в шаблонах действий |
  | `{stream.*}`                                | \*\*Оффлайн-\*\*объявления Twitch/Kick | Пустые; только для вживую                                           |
</Warning>

<Card title="Устранение неполадок" icon="wrench" horizontal href="/ru/help/troubleshooting">
  Когда сообщение вообще не приходит.
</Card>
