Template Variables
Dynamic placeholders for customizing messages, commands, and payloads
Overview
Template variables are placeholders that get replaced with actual vote data when messages are sent or rewards are executed. Use them to personalize notifications and create dynamic reward commands.
Variables use curly brace syntax: {variable_name}. For callback payloads, use double braces: {{variable_name}}.
Core Variables
These variables are available in all contexts (Discord, callbacks, rewards):
| Variable | Description | Example |
|---|---|---|
| {voter_name} | Player's username who voted | PlayerOne |
| {voter.username} | Alias for voter_name | PlayerOne |
| {provider_name} | Provider display name | Hytale-Servers.pro |
| {provider_key} | Provider identifier/slug | hytale-servers-pro |
| {vote_id} | Unique vote identifier | vt_abc123... |
| {received_at} | ISO 8601 timestamp | 2026-01-15T10:30:00Z |
| {timestamp} | Current timestamp | 2026-01-15T10:30:00Z |
Extended Variables
Additional variables for more detailed templates:
| Variable | Description |
|---|---|
| {vote.id} | Unique vote identifier |
| {vote.provider.name} | Provider display name (nested syntax) |
| {vote.provider.key} | Provider key (nested syntax) |
| {vote.received_at} | Vote timestamp (nested syntax) |
| {organization.name} | Your organization name |
| {organization.slug} | Your organization slug |
| {provider_server_url} | Provider server/vote URL (if configured) |
| {raw_payload} | Full original webhook payload (JSON string) |
Context-Specific Usage
Discord Messages
Use single braces in Discord message templates:
🎉 **{voter_name}** just voted on **{provider_name}**!
Vote ID: `{vote_id}`
Time: {received_at}Server Callbacks
Use double braces in callback payload templates:
{
"event": "vote",
"player": "{{voter_name}}",
"provider": "{{provider_key}}",
"vote_id": "{{vote_id}}",
"timestamp": "{{received_at}}"
}See Callback Variables API for the complete list of callback-specific variables.
Plugin Rewards
Use single braces in reward commands and messages:
# Message action
Thanks for voting on {provider_name}, {voter_name}!
# Command action
give {voter_name} diamond 5
# Broadcast action
🎉 {voter_name} just voted and received a reward!Text Formatting Tags
In addition to variables, text fields in plugin rewards support inline formatting tags for colors and styles:
| Tag | Description | Example |
|---|---|---|
| <#RRGGBB> | Set hex color | <#FF0000>Red text |
| <BOLD> | Enable bold text | <BOLD>Important |
| <ITALIC> | Enable italic text | <ITALIC>Emphasis |
| <MONO> | Enable monospace font | <MONO>Code style |
| <RESET> | Reset all formatting | <#FF0000>Red<RESET> Normal |
Example: Formatted Broadcast
<#FFD700><BOLD>{player}<RESET> <#FFFFFF>just voted on <#00BFFF>{service}<#FFFFFF>!Displays: PlayerName just voted on HytaleCharts!
Supported fields: Formatting tags work in message, title, and subtitle fields. Command fields only support variable replacement (no formatting tags).
Default Values
You can specify fallback values for variables that might be empty:
{variable|default_value}
# Example
{provider_server_url|https://example.com}If provider_server_url is not set, the default value will be used instead.
Plan-Specific Variables
Some variables are only available on higher plans:
Pro+ Variables
{voter_total_votes}- Player's total vote count{voter_rank}- Player's leaderboard position{organization_total_votes}- Your server's total votes
Pro+ Variables
{voter_streak}- Current voting streak (days){voter_best_streak}- Longest streak achieved{voter_percentile}- Voter's percentile ranking
Examples
Basic Discord Message
🗳️ **{voter_name}** voted on **{provider_name}**! Thanks for supporting the server.Rich Discord Message (Pro+)
🎉 **{voter_name}** just voted!
📊 **Stats:**
• Total Votes: {voter_total_votes}
• Rank: #{voter_rank}
• Provider: {provider_name}
Thank you for supporting our server!Reward Command
# Give items based on provider
give {voter_name} vote_token 1
# Or run a custom script
votereward {voter_name} {provider_key} {vote_id}