Vfinity2.0 α
Reference

Template variables

Every variable you can put in a step's text, what it holds and which triggers fill it

Write a variable in curly braces, like {name}, and Vfinity fills it in when the step runs: "Thanks {name} for the {gift}!" becomes "Thanks Mika for the Rose!".

A spoken line with the viewer's name filled in, read in their own voice.

Variables for every trigger

VariableHoldsFilled by
{name}The viewer's display name, or their @handle when they have noneAny trigger that names a viewer
{nickname}The viewer's display nameAny trigger that names a viewer
{uniqueId}The viewer's @handle, without the @Any trigger that names a viewer
{points}The viewer's points balance, after any points costAny trigger that names a viewer
{trigger}The API trigger's name, or else the trigger's type, such as gift or chatEvery trigger
{gift}The gift's nameGift
{count}The combo's count for a gift, or the number of likesGift, Like
{diamonds}What one gift is worthGift
{totalDiamonds}What the whole combo is worth: diamonds × countGift
{likes}The likes in this one eventLike
{totalLikes}The room's running like totalLike, Room like milestone
{comment}The chat message, or the message that came with a gift or a rewardChat message, First chat this stream, Gift, Twitch channel points
{args}Everything after the command, as one piece of textChat message
{arg1} to {arg9}The first to ninth word after the command, or a regular expression's capturesChat message

A viewer's points balance is per platform, so the same name on TikTok LIVE and Twitch has two balances.

Variables from one trigger

VariableHoldsTrigger
{months}Months subscribed, or months a YouTube memberSubscription
{rewardName}, {rewardCost}The reward's title, and what it cost in channel pointsTwitch channel points
{rewardId}, {redemptionId}Twitch's ID for the reward, and for this one redemptionTwitch channel points
{viewers}Viewers who came along on the raid, or viewers in the roomRaid, Viewer count milestone
{followers}Your follower countFollower count milestone
{coins}The coins the sender put in the treasure boxTreasure box
{emoteUrl}The address of the first emote's pictureSubscriber emote
{questionText}The questionLIVE question
{phase}, {level}, {total}The hype train's phase, level and totalHype train
{value}, {target}, {cycle}Where the goal stands, its target, and which round a repeating goal is onOverlay goal reached
{result}The option the wheel landed onWheel result
{winner}, {tickets}, {entrants}The winner's name, their tickets, and how many enteredGiveaway winner
{team}, {score}, {otherScore}The winning team, its score, and the other team'sTug of war win
{level}, {levelName}The level reached, as a number and by nameHype level reached

Giveaway winner also names the winner as the viewer, so {name} works there too. On a Gift, {comment} holds the message sent with a Twitch cheer, a Kicks gift or a YouTube Super Chat, or the text a viewer typed for a reward.

API trigger fields

An API trigger turns each top-level field of the data it was sent into a variable, if the field holds text, a number, or true or false. Up to 50 fields count, and nested objects are left out. Sent {"name":"raid_alert","data":{"user":"Mika"}}, a step can say {user}.

Battle, TikTok LIVE goal, LIVE question and Super Fan expose TikTok's own top-level fields the same way, such as {outcome} on a battle, or {description} and {progress} on a LIVE goal.

Where you can use them

Step or placeFieldHow values go in
Speak a custom lineText to speakAs spoken text, after the TTS moderation filters
Control OBS, Write into a text sourceTextAs plain text
HTTP webhookURL / action IDPercent-encoded, in the path and query only
HTTP webhookJSON body / argumentsInside the JSON's text values
Streamer.bot actionJSON body / argumentsInside the JSON's text values
App commandValue or Value (JSON)Inside text values

A webhook always goes to the host you typed: a variable can change the path and the query, never the server. In JSON, only text values are filled, so a viewer's message can never add a field or break the structure.

How values are filled

  • A variable with nothing behind it, like {gift} on a follow, becomes empty.
  • A name Vfinity does not know, like {banana}, stays exactly as written.
  • In spoken and plain text, line breaks become spaces and control characters are removed. One value is cut at 500 characters.
  • Filling happens once. A viewer whose name is literally {name} is shown as {name}, never filled a second time.
  • Names are case-sensitive: {Name} is not {name}.

Alert text

Alert cards have their own placeholders for Custom message, filled from the alert rather than from an event.

PlaceholderHolds
{name}The sender, drawn in the accent color
{gift}, {count}The gift and its count
{diamonds}, {totalDiamonds}One gift's value, and the whole combo's
{likes}, {totalLikes}The like milestone crossed, and the room's total
{months}Months subscribed, on a subscription alert
{viewers}Viewers who came along, on a raid alert

A placeholder with nothing behind it on an alert shows as 0 or empty. Text to speech reads the same text the card shows.

The alert card and its spoken line come from the same text.