> ## 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 のすべてのプレースホルダー変数を機能別にまとめ、なぜ角括弧と波括弧が使い分けられるかも解説します。

変数はメッセージ送信時に実際の値へ置き換えられるプレースホルダーです。

## 2 種類の構文

<Warning>
  **Vetox は 2 種類の構文を使い、互換性はありません。**

  | 構文         | 使用箇所                  |
  | ---------- | --------------------- |
  | `[Square]` | ウェルカム、グッドバイ、グリートメッセージ |
  | `{curly}`  | それ以外すべて               |

  ウェルカムメッセージ内の `{User}` はそのままリテラルで表示されます。チケットメッセージ内の `[user]` もリテラルで表示されます。
</Warning>

## 共通のルール

<Warning>
  **未知の変数はエラーではなく空文字列になります** — さらに埋め込みでは、**タイトルまたは値が空になったフィールドはメッセージから丸ごと破棄されます。**

  「埋め込みフィールドが消え続ける」の最大の原因はこれです。ほぼ確実に変数のスペルミスか、その機能で存在しない変数です。
</Warning>

## ウェルカム、グッドバイ、グリート

| 変数             | 値                      |
| -------------- | ---------------------- |
| `[User]`       | メンバー                   |
| `[ServerName]` | サーバー名                  |
| `[UsersCount]` | 新しいメンバー数               |
| `[Inviter]`    | 招待者 — ウェルカムのみ          |
| `[Code]`       | 使われた招待コード — ウェルカムのみ    |
| `[CountUrl]`   | メンバー数画像の URL — ウェルカムのみ |

<Warning>
  **`[Server]` は変数ではありません。** 既定のウェルカムメッセージに含まれ、リテラルで表示されます。`[ServerName]` に置き換えてください。
</Warning>

<Note>
  `[Inviter]` と `[Code]` は招待を読むために **Manage Server** が必要です。
</Note>

## チケット

Vetox で最も豊富なセットです。チケット埋め込み、チャンネル名フォーマット、サポート時間メッセージで使えます。

<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}` は空フィールド破棄を回避できます — 消える埋め込みフィールドの最もきれいな解決策です。
</Tip>

## カウント

`{count}` `{user}` `{record}` — さらにリセットと保存メッセージでは `{start}` と `{savesLeft}`。

<Warning>
  `{server}` は用意されていますが **常に空になります**。サーバー名は直接入力してください。
</Warning>

## スターボード

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

## セルフロール

`[Role]` — DM 通知でロール名を表示。

## ギブアウェイテンプレート

`{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}`

    Twitch の `{stream.game}` ではなく `{stream.category}` である点に注意。
  </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]`                                | ウェルカム                         | 変数ではない — リテラル表示                      |
  | `{server}`                                | カウントのマイルストーン                  | 常に空                                  |
  | `{episode.duration}`                      | ポッドキャスト                       | 常に空                                  |
  | `{podcast.author}`                        | ポッドキャスト                       | 常に空                                  |
  | `{podcast.artwork}`                       | ポッドキャスト                       | 通常は空                                 |
  | `{username}`、`{server.name}`、`{nickname}` | **アプリケーションのワークフローアクション**      | 常に空 — DM メッセージでは動作するがアクションテンプレートでは不可 |
  | `{stream.*}`                              | Twitch/Kick の **オフライン** アナウンス | 空、ライブ時のみ                             |
</Warning>

<Card title="トラブルシューティング" icon="wrench" horizontal href="/ja/help/troubleshooting">
  メッセージがまったく届かないとき。
</Card>
