> ## 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.

# Tài liệu tham khảo biến

> Mọi biến placeholder trong Vetox, được nhóm theo tính năng — và lý do tại sao một số dùng dấu ngoặc vuông và những cái khác dùng dấu ngoặc nhọn.

Biến là các placeholder được thay thế bằng giá trị thực khi một tin nhắn được gửi.

## Hai cú pháp khác nhau

<Warning>
  **Vetox sử dụng hai cú pháp, và chúng không thể hoán đổi cho nhau.**

  | Cú pháp    | Được sử dụng bởi                    |
  | ---------- | ----------------------------------- |
  | `[Square]` | Tin nhắn Welcomer, tạm biệt và chào |
  | `{curly}`  | Mọi thứ khác                        |

  Một `{User}` trong tin nhắn chào được in nguyên văn. Một `[user]` trong tin nhắn ticket được in nguyên văn.
</Warning>

## Quy tắc chung

<Warning>
  **Một biến không xác định trở thành văn bản rỗng, không phải là lỗi** — và trong embed, **một trường có tiêu đề hoặc giá trị kết thúc là rỗng sẽ bị bỏ hoàn toàn khỏi tin nhắn.**

  Đây là nguyên nhân phổ biến nhất của "trường embed của tôi cứ biến mất". Hầu như luôn luôn là một biến sai chính tả hoặc một biến không tồn tại cho tính năng đó.
</Warning>

## Welcomer, tạm biệt và chào

| Biến           | Giá trị                                            |
| -------------- | -------------------------------------------------- |
| `[User]`       | Thành viên                                         |
| `[ServerName]` | Tên máy chủ của bạn                                |
| `[UsersCount]` | Số lượng thành viên mới                            |
| `[Inviter]`    | Ai đã mời họ — chỉ trong welcome                   |
| `[Code]`       | Mã mời được sử dụng — chỉ trong welcome            |
| `[CountUrl]`   | Một URL hình ảnh số thành viên — chỉ trong welcome |

<Warning>
  **`[Server]` không phải là biến.** Nó xuất hiện trong tin nhắn chào mặc định và in nguyên văn. Thay thế nó bằng `[ServerName]`.
</Warning>

<Note>
  `[Inviter]` và `[Code]` cần **Manage Server** để Vetox có thể đọc lời mời.
</Note>

## Ticket

Bộ phong phú nhất trong Vetox. Có thể sử dụng trong các embed ticket, định dạng tên kênh và tin nhắn giờ hỗ trợ.

<AccordionGroup>
  <Accordion title="Thành viên" icon="user">
    `{user}` `{mention}` `{username}` `{userid}` `{user.mention}` `{user.name}` `{user.username}` `{user.tag}` `{user.id}`
  </Accordion>

  <Accordion title="Ticket" 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="Kênh, panel và tùy chọn" icon="hashtag">
    `{channel}` `{channel.mention}` `{channel.name}` `{channel.id}` `{panel}` `{panel.name}` `{panel-name}` `{option}` `{option.label}`
  </Accordion>

  <Accordion title="Máy chủ" icon="server">
    `{server}` `{server.name}` `{server.id}` `{server.members}` `{server.icon}` `{server.banner}` `{guild}` `{members}`
  </Accordion>

  <Accordion title="Nhân viên và hành động" 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="Câu trả lời biểu mẫu" icon="clipboard-list">
    `{form.1}`, `{form.2}` … — **đánh số từ 1**, theo thứ tự các câu hỏi của bạn xuất hiện.

    `{form.Label}` cũng hoạt động, sử dụng nhãn riêng của câu hỏi.
  </Accordion>

  <Accordion title="Thời gian và thống kê" icon="clock">
    `{date}` `{time}` `{timestamp}` `{time.created}` `{time.opened}` `{time.claimed}` `{time.closed}` — mỗi cái cũng chấp nhận `.age`.

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

  <Accordion title="Giờ hỗ trợ" icon="business-time">
    `{supportHours.status}` `{supportHours.nextOpen}` `{supportHours.nextOpenTime}` `{supportHours.nextOpenRelative}` `{supportHours.closesAt}` `{supportHours.closesAtTime}`
  </Accordion>
</AccordionGroup>

### Modifier

Các biến ticket chấp nhận modifier với `{variable?modifier=value}`: `upper`, `lower`, `capitalize`, `truncate`, `slice`, `padleft`, `padright`, `replace`, `fallback`, `date`, `timestamp`, `math`, `ordinal`, `join`, `if`.

<Tip>
  `{user.name?upper}` hô to tên. `{ticket.closeReason?fallback=No reason given}` tránh việc một trường rỗng bị bỏ — đây là cách sửa gọn nhất cho các trường embed biến mất.
</Tip>

## Đếm

`{count}` `{user}` `{record}` — cộng với `{start}` và `{savesLeft}` trong các tin nhắn đặt lại và lưu.

<Warning>
  `{server}` được cung cấp nhưng **luôn hiển thị rỗng**. Nhập tên máy chủ của bạn trực tiếp.
</Warning>

## Starboard

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

## Self-Roles

`[Role]` — tên vai trò, trong các thông báo DM.

## Mẫu Giveaway

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

## Thông báo

Mỗi nền tảng có bộ riêng của nó. Sử dụng biến của một nền tảng trên nền tảng khác sẽ trả về rỗng.

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

    Chỉ khi live: `{stream.title}` `{stream.game}` `{stream.viewers}` `{stream.thumbnail}`
  </Accordion>

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

    Chỉ khi live: `{stream.title}` `{stream.category}` `{stream.viewers}` `{stream.thumbnail}`

    Lưu ý `{stream.category}`, không phải `{stream.game}` của Twitch.
  </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="Podcast" icon="podcast">
    Hoạt động: `{episode.title}` `{episode.url}` `{episode.description}` `{podcast.name}`

    <Warning>
      `{episode.duration}`, `{podcast.author}` và `{podcast.artwork}` được cung cấp nhưng **không bao giờ tạo ra giá trị**. Bất kỳ trường nào được xây dựng chỉ từ chúng sẽ bị bỏ.
    </Warning>
  </Accordion>
</AccordionGroup>

## Các biến không hoạt động

<Warning>
  Đã xác nhận không hoạt động. Tránh những cái này:

  | Biến                                        | Nơi                                    | Hành vi                                                                           |
  | ------------------------------------------- | -------------------------------------- | --------------------------------------------------------------------------------- |
  | `[Server]`                                  | Welcomer                               | Không phải là biến — in nguyên văn                                                |
  | `{server}`                                  | Cột mốc đếm                            | Luôn rỗng                                                                         |
  | `{episode.duration}`                        | Podcast                                | Luôn rỗng                                                                         |
  | `{podcast.author}`                          | Podcast                                | Luôn rỗng                                                                         |
  | `{podcast.artwork}`                         | Podcast                                | Thường rỗng                                                                       |
  | `{username}`, `{server.name}`, `{nickname}` | **Hành động luồng công việc ứng dụng** | Luôn rỗng — chúng hoạt động trong tin nhắn DM nhưng không trong các mẫu hành động |
  | `{stream.*}`                                | Thông báo Twitch/Kick **offline**      | Rỗng; chỉ khi live                                                                |
</Warning>

<Card title="Troubleshooting" icon="wrench" horizontal href="/vi/help/troubleshooting">
  Khi một tin nhắn hoàn toàn không đến.
</Card>
