You can customize the text displayed on your alerts by creating a JSON file and hosting it on Pastebin (or similar service). This allows you to personalize the header and description text for each alert type.
https://pastebin.com/raw/XXXXXXXX)You can assign specific themes to individual users. When these users trigger any alert (follow, sub, bits, etc.), their alerts will use their assigned theme instead of the default.
{
"userOverrides": {
"krookediles": "xboxachievement",
"rod_legion": "xboxachievement"
},
"ps5trophy": {
...
},
"xboxachievement": {
...
}
}
xboxachievement, ps5trophy, rpgquest, luxury, modern, esportsclassic, xbox, ps5, rpg, lux, mod, esportsCopy this template and customize it with your own text. You only need to include the events you want to customize - any missing events will use the default text.
{
"TwitchFollow": {
"header": "New Follower!",
"subtitle": "%username% just followed!"
},
"TwitchCheer": {
"header": "%bits% Bits!",
"subtitle": "%username% cheered %bits% bits!"
},
"TwitchSub": {
"header": "New Subscriber!",
"subtitle": "%username% subscribed with %tiertext%!"
},
"TwitchReSub": {
"header": "%months% Month Resub!",
"subtitle": "%username% resubscribed for %months% months!"
},
"TwitchGiftedSub": {
"header": "Gift Sub!",
"subtitle": "%username% gifted a sub to %recipient%!"
},
"TwitchRaid": {
"header": "Incoming Raid!",
"subtitle": "%username% is raiding with %viewers% viewers!"
},
"YouTubeSuperChat": {
"header": "Super Chat!",
"subtitle": "%username% sent %amount%!"
},
"YouTubeSuperSticker": {
"header": "Super Sticker!",
"subtitle": "%username% sent a sticker!"
},
"YouTubeGiftReceived": {
"header": "Gift Membership!",
"subtitle": "%gifter% gifted a membership!"
},
"YouTubeNewSponsor": {
"header": "New Sponsor!",
"subtitle": "%username% became a sponsor!"
},
"KickFollow": {
"header": "New Follower!",
"subtitle": "%username% followed on Kick!"
},
"KickSubscription": {
"header": "New Sub!",
"subtitle": "%username% subscribed on Kick!"
},
"KickResubscription": {
"header": "%months% Month Resub!",
"subtitle": "%username% resubbed for %months% months!"
},
"KickMassGiftSubscription": {
"header": "Gift Subs!",
"subtitle": "%username% gifted subscriptions!"
},
"KofiDonation": {
"header": "Ko-fi Donation!",
"subtitle": "%from% donated %amount% %currency%!"
},
"KofiSubscription": {
"header": "Ko-fi Member!",
"subtitle": "%from% subscribed on Ko-fi!"
},
"KofiResubscription": {
"header": "Ko-fi Resub!",
"subtitle": "%from% resubscribed with %tier%!"
},
"KofiGiftPurchase": {
"header": "Ko-fi Gift!",
"subtitle": "%from% purchased a gift!"
},
"KofiShopOrder": {
"header": "Shop Order!",
"subtitle": "%from% ordered from the shop!"
},
"FourthwallDonation": {
"header": "Fourthwall Donation!",
"subtitle": "%from% donated %amount% %currency%!"
},
"FourthwallSubscriptionPurchased": {
"header": "Fourthwall Sub!",
"subtitle": "%from% purchased a subscription!"
},
"FourthwallGiftPurchase": {
"header": "Fourthwall Gift!",
"subtitle": "%from% purchased a gift!"
},
"FourthwallOrderPlaced": {
"header": "Fourthwall Order!",
"subtitle": "%from% placed an order!"
},
"FourthwallThankYouSent": {
"header": "Thank You!",
"subtitle": "%from% sent a thank you!"
},
"PatreonPledgeCreated": {
"header": "New Patron!",
"subtitle": "%from% pledged %amount%!"
},
"StreamlabsDonation": {
"header": "Donation!",
"subtitle": "%from% donated %amount% %currency%!"
},
"StreamElementsTip": {
"header": "Tip!",
"subtitle": "%from% tipped %amount%!"
}
}
For the PS5 Trophy theme, you can customize the trophy color and image:
{
"TwitchFollow": {
"header": "New Follower!",
"subtitle": "%username% followed!",
"trophyColor": "bronze"
},
"TwitchSub": {
"header": "New Subscriber!",
"subtitle": "%username% subscribed!",
"trophyColor": "gold",
"customImage": "https://example.com/my-custom-image.png"
}
}
You can set trophy colors based on variable values using rules:
{
"TwitchCheer": {
"header": "%bits% Bits!",
"subtitle": "%username% cheered!",
"trophyColor": {
"variable": "bits",
"rules": [
{ "min": 10000, "color": "platinum" },
{ "min": 5000, "color": "gold" },
{ "min": 1000, "color": "silver" },
{ "default": "bronze" }
]
}
}
}
{
"TwitchSub": {
"header": "New Sub!",
"subtitle": "%username% subscribed with %tiertext%!",
"trophyColor": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "color": "platinum" },
{ "equals": "Tier 2", "color": "gold" },
{ "equals": "Tier 1", "color": "silver" },
{ "equals": "Prime", "color": "bronze" },
{ "default": "bronze" }
]
}
}
}
{
"TwitchRaid": {
"header": "Incoming Raid!",
"subtitle": "%username% raided with %viewers% viewers!",
"trophyColor": {
"variable": "viewers",
"rules": [
{ "min": 1000, "color": "platinum" },
{ "min": 100, "color": "gold" },
{ "min": 25, "color": "silver" },
{ "default": "bronze" }
]
}
}
}
You can also make the header and subtitle change based on values:
{
"TwitchCheer": {
"header": {
"variable": "bits",
"rules": [
{ "min": 10000, "text": "MASSIVE BIT BOMB!" },
{ "min": 1000, "text": "Huge Cheer!" },
{ "min": 100, "text": "Nice Cheer!" },
{ "default": "Thanks for the bits!" }
]
},
"subtitle": {
"variable": "bits",
"rules": [
{ "min": 10000, "text": "%username% dropped %bits% bits! INSANE!" },
{ "min": 1000, "text": "%username% cheered %bits% bits!" },
{ "default": "%username% cheered %bits% bits!" }
]
},
"trophyColor": {
"variable": "bits",
"rules": [
{ "min": 10000, "color": "platinum" },
{ "min": 1000, "color": "gold" },
{ "min": 100, "color": "silver" },
{ "default": "bronze" }
]
}
}
}
{
"TwitchSub": {
"header": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "LEGENDARY SUB!" },
{ "equals": "Tier 2", "text": "Epic Subscriber!" },
{ "equals": "Tier 1", "text": "New Subscriber!" },
{ "equals": "Prime", "text": "Prime Gaming!" },
{ "default": "New Subscriber!" }
]
},
"subtitle": "%username% subscribed with %tiertext%!",
"trophyColor": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "color": "platinum" },
{ "equals": "Tier 2", "color": "gold" },
{ "equals": "Tier 1", "color": "silver" },
{ "equals": "Prime", "color": "bronze" },
{ "default": "bronze" }
]
}
}
}
| Rule | Description | Example (color) | Example (text) |
|---|---|---|---|
"min": number |
Value must be >= this number | { "min": 1000, "color": "gold" } |
{ "min": 1000, "text": "Huge!" } |
"equals": value |
Value must equal exactly | { "equals": "Prime", "color": "bronze" } |
{ "equals": "Prime", "text": "Prime Sub!" } |
"default" |
Fallback if no other rules match | { "default": "bronze" } |
{ "default": "Thanks!" } |
min rules, put the highest values first!
| Color | Sound |
|---|---|
bronze |
Default trophy sound |
silver |
Default trophy sound |
gold |
Default trophy sound |
platinum |
Platinum trophy sound |
customImage to override the default platform icon with your own image URL. Images are automatically proxied through DuckDuckGo to bypass CORS.
For the Xbox Achievement theme, you can customize the gamerscore, isRare, and themeColor:
{
"TwitchFollow": {
"header": "%username% Followed!",
"gamerscore": "25",
"themeColor": "blue"
},
"TwitchSub": {
"header": "%username% Subscribed!",
"gamerscore": "100",
"isRare": true,
"themeColor": "purple"
}
}
You can set theme colors based on variable values using rules (same format as PS5 trophy colors):
{
"TwitchCheer": {
"header": "%bits% Bits!",
"gamerscore": "50",
"themeColor": {
"variable": "bits",
"rules": [
{ "min": 10000, "color": "purple" },
{ "min": 5000, "color": "pink" },
{ "min": 1000, "color": "blue" },
{ "default": "green" }
]
}
}
}
{
"TwitchSub": {
"header": "New Sub!",
"gamerscore": "100",
"themeColor": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "color": "purple" },
{ "equals": "Tier 2", "color": "blue" },
{ "equals": "Tier 1", "color": "green" },
{ "equals": "Prime", "color": "yellow" },
{ "default": "green" }
]
}
}
}
| Color | Text Color | Description |
|---|---|---|
green |
White | Default Xbox green |
blue |
White | Xbox blue |
pink |
White | Vibrant pink |
yellow |
Black | Bright yellow |
orange |
White | Warm orange |
purple |
White | Rich purple |
brown |
White | Earthy brown |
black |
White | Dark black |
white |
Black | Clean white (icons inverted) |
red |
White | Vibrant red |
grey |
White | Neutral grey |
coral |
White | Warm coral/salmon |
lightblue |
White | Sky blue |
darkblue |
White | Deep navy blue |
"isRare": true will trigger the rare achievement animation and sound.
For the RPG Quest theme, you can customize the questRarity and title fields. This theme uses a fantasy RPG aesthetic with rarity-based colors.
{
"TwitchFollow": {
"header": "Quest Update",
"title": "%username%",
"subtitle": "Has joined the party!",
"questRarity": "common"
},
"TwitchSub": {
"header": "New Ally!",
"title": "%username%",
"subtitle": "Pledged allegiance!",
"questRarity": "rare"
}
}
You can set quest rarity based on variable values using rules:
{
"TwitchCheer": {
"header": "Treasure Received!",
"title": "%username%",
"subtitle": "Donated %bits% gold coins!",
"questRarity": {
"variable": "bits",
"rules": [
{ "min": 10000, "rarity": "legendary" },
{ "min": 1000, "rarity": "epic" },
{ "min": 100, "rarity": "rare" },
{ "min": 10, "rarity": "uncommon" },
{ "default": "common" }
]
}
}
}
{
"TwitchSub": {
"header": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "Legendary Ally!" },
{ "equals": "Tier 2", "text": "Epic Warrior!" },
{ "equals": "Tier 1", "text": "New Companion!" },
{ "equals": "Prime", "text": "Royal Decree!" },
{ "default": "New Ally!" }
]
},
"title": "%username%",
"subtitle": "Pledged allegiance with %tiertext%!",
"questRarity": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "rarity": "legendary" },
{ "equals": "Tier 2", "rarity": "epic" },
{ "equals": "Tier 1", "rarity": "rare" },
{ "equals": "Prime", "rarity": "uncommon" },
{ "default": "uncommon" }
]
}
}
}
{
"TwitchReSub": {
"header": {
"variable": "months",
"rules": [
{ "min": 48, "text": "Legendary Hero!" },
{ "min": 24, "text": "Epic Warrior!" },
{ "min": 12, "text": "Veteran Knight!" },
{ "min": 6, "text": "Trusted Ally!" },
{ "default": "Loyal Companion!" }
]
},
"title": "%username%",
"subtitle": "%months% moons of loyalty!",
"questRarity": {
"variable": "months",
"rules": [
{ "min": 48, "rarity": "legendary" },
{ "min": 24, "rarity": "epic" },
{ "min": 12, "rarity": "rare" },
{ "min": 6, "rarity": "uncommon" },
{ "default": "common" }
]
}
}
}
| Rarity | Color | Sound | Animation |
|---|---|---|---|
common |
Gold (#d4af37) | Default quest sound | Standard slide-in |
uncommon |
Green (#32cd32) | Default quest sound | Standard slide-in |
rare |
Blue (#4169e1) | Default quest sound | Standard slide-in |
epic |
Purple (#9932cc) | Default quest sound | Pulse glow effect |
legendary |
Orange (#ff8c00) | Legendary quest sound | Shimmer effect |
| Field | Description | Example |
|---|---|---|
header |
Top banner text (e.g., "Quest Update") | "header": "New Ally!" |
title |
Main large text (usually username) | "title": "%username%" |
subtitle |
Description text below title | "subtitle": "Has joined the party!" |
questRarity |
Rarity level (affects color & effects) | "questRarity": "legendary" |
The Luxury theme features an elegant, minimalist design with gold gradient accents. Perfect for a sophisticated, high-end streaming aesthetic.
{
"TwitchFollow": {
"header": "New Follower",
"title": "%username%",
"subtitle": "Has joined the community",
"luxuryTier": "gold"
},
"TwitchSub": {
"header": "New Subscriber",
"title": "%username%",
"subtitle": "Subscribed with elegance",
"luxuryTier": "platinum"
}
}
You can set luxury tiers based on variable values using rules:
{
"TwitchCheer": {
"header": "Bits Received",
"title": "%username%",
"subtitle": "Cheered %bits% bits",
"luxuryTier": {
"variable": "bits",
"rules": [
{ "min": 10000, "tier": "diamond" },
{ "min": 5000, "tier": "platinum" },
{ "min": 1000, "tier": "gold" },
{ "min": 100, "tier": "rosegold" },
{ "default": "gold" }
]
}
}
}
{
"TwitchSub": {
"header": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "Elite Membership" },
{ "equals": "Tier 2", "text": "Premium Membership" },
{ "equals": "Tier 1", "text": "New Subscriber" },
{ "equals": "Prime", "text": "Prime Member" },
{ "default": "New Subscriber" }
]
},
"title": "%username%",
"subtitle": "Subscribed with %tiertext%",
"luxuryTier": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "tier": "diamond" },
{ "equals": "Tier 2", "tier": "platinum" },
{ "equals": "Tier 1", "tier": "gold" },
{ "equals": "Prime", "tier": "rosegold" },
{ "default": "gold" }
]
}
}
}
{
"TwitchReSub": {
"header": {
"variable": "months",
"rules": [
{ "min": 48, "text": "Legendary Patron" },
{ "min": 24, "text": "Distinguished Member" },
{ "min": 12, "text": "Esteemed Supporter" },
{ "min": 6, "text": "Valued Member" },
{ "default": "Resubscription" }
]
},
"title": "%username%",
"subtitle": "%months% months of support",
"luxuryTier": {
"variable": "months",
"rules": [
{ "min": 48, "tier": "diamond" },
{ "min": 24, "tier": "platinum" },
{ "min": 12, "tier": "gold" },
{ "default": "rosegold" }
]
}
}
}
| Tier | Color Scheme |
|---|---|
gold |
Warm gold gradient (#bf953f → #fcf6ba) |
platinum |
Silver/white gradient (#c0c0c0 → #ffffff) |
diamond |
Cyan/blue sparkle (#4fc3f7 → #e1f5fe) |
rosegold |
Pink/rose gradient (#b76e79 → #f4d4d8) |
emerald |
Green gradient (#2e7d32 → #a5d6a7) |
ruby |
Red gradient (#c62828 → #ffcdd2) |
sapphire |
Deep blue gradient (#1565c0 → #bbdefb) |
amethyst |
Purple gradient (#7b1fa2 → #e1bee7) |
The Luxury theme uses a single sound for all alerts, selectable in the customizer:
default1 - Elegant Chime 1default2 - Elegant Chime 2default3 - Elegant Chime 3| Field | Description | Example |
|---|---|---|
header |
Small caps text at top | "header": "New Follower" |
title |
Large main text (usually username) | "title": "%username%" |
subtitle |
Small text below divider | "subtitle": "Has joined the community" |
luxuryTier |
Tier level (affects color scheme) | "luxuryTier": "diamond" |
The GTA V theme features the iconic "Mission Passed" style from Grand Theft Auto V. You can customize the header and subtitle text colors using headerColor and subtitleColor.
{
"TwitchFollow": {
"header": "FOLLOWER +",
"subtitle": "%username%",
"headerColor": "#c9a227",
"subtitleColor": "#ffffff"
},
"TwitchSub": {
"header": "SUBSCRIPTION +",
"subtitle": "%username% (%tiertext%)",
"headerColor": "#00ff00",
"subtitleColor": "#ffffff"
}
}
You can set header colors based on variable values using rules:
{
"TwitchCheer": {
"header": {
"variable": "bits",
"rules": [
{ "min": 10000, "text": "LEGENDARY HEIST!" },
{ "min": 5000, "text": "BIG SCORE!" },
{ "min": 1000, "text": "NICE HAUL!" },
{ "default": "CHEERS +" }
]
},
"subtitle": "%username% (%bits%)",
"headerColor": {
"variable": "bits",
"rules": [
{ "min": 10000, "color": "#ffd700" },
{ "min": 5000, "color": "#00ff00" },
{ "min": 1000, "color": "#4cc9f0" },
{ "default": "#c9a227" }
]
},
"subtitleColor": "#ffffff"
}
}
{
"TwitchSub": {
"header": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "VIP MEMBERSHIP!" },
{ "equals": "Tier 2", "text": "PREMIUM ACCESS!" },
{ "equals": "Tier 1", "text": "SUBSCRIPTION +" },
{ "equals": "Prime", "text": "PRIME TIME!" },
{ "default": "SUBSCRIPTION +" }
]
},
"subtitle": "%username% (%tiertext%)",
"headerColor": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "color": "#ffd700" },
{ "equals": "Tier 2", "color": "#00ff00" },
{ "equals": "Tier 1", "color": "#c9a227" },
{ "equals": "Prime", "color": "#9146ff" },
{ "default": "#c9a227" }
]
}
}
}
{
"TwitchReSub": {
"header": {
"variable": "months",
"rules": [
{ "min": 48, "text": "4 YEAR VETERAN!" },
{ "min": 24, "text": "2 YEAR LEGEND!" },
{ "min": 12, "text": "1 YEAR ANNIVERSARY!" },
{ "default": "RESPECT +" }
]
},
"subtitle": "%username% resubbed for %months% months!",
"headerColor": {
"variable": "months",
"rules": [
{ "min": 48, "color": "#ffd700" },
{ "min": 24, "color": "#00ff00" },
{ "min": 12, "color": "#4cc9f0" },
{ "default": "#c9a227" }
]
}
}
}
| Field | Description | Example |
|---|---|---|
header |
Large title text (e.g., "MISSION PASSED") | "header": "RESPECT +" |
subtitle |
Smaller text below the header | "subtitle": "%username%" |
headerColor |
Color of the header text (hex code) | "headerColor": "#c9a227" |
subtitleColor |
Color of the subtitle text (hex code) | "subtitleColor": "#ffffff" |
| Color | Hex Value | Description |
|---|---|---|
| GTA Gold (Default) | #c9a227 |
Classic GTA mission passed gold |
| Bright Gold | #ffd700 |
For legendary/high-value events |
| Green | #00ff00 |
Money/success color |
| Cyan | #4cc9f0 |
Cool accent color |
| Twitch Purple | #9146ff |
For Prime subs |
| White | #ffffff |
Default subtitle color |
The ESports Classic theme features an aggressive, competitive esports design with angled elements, bold colors, and a carbon fiber texture. Perfect for gaming streams with a competitive edge.
{
"TwitchFollow": {
"header": "NEW FOLLOWER",
"title": "%username%",
"value": "",
"esportsColor": "red"
},
"TwitchSub": {
"header": "SUBSCRIBER",
"title": "%username%",
"value": "TIER 1",
"esportsColor": "blue"
}
}
You can set accent colors based on variable values using rules:
{
"TwitchCheer": {
"header": "BITS RECEIVED",
"title": "%username%",
"value": "%bits% BITS",
"esportsColor": {
"variable": "bits",
"rules": [
{ "min": 10000, "color": "purple" },
{ "min": 5000, "color": "blue" },
{ "min": 1000, "color": "green" },
{ "min": 100, "color": "yellow" },
{ "default": "red" }
]
}
}
}
{
"TwitchSub": {
"header": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "TIER 3 SUB!" },
{ "equals": "Tier 2", "text": "TIER 2 SUB!" },
{ "equals": "Tier 1", "text": "NEW SUB!" },
{ "equals": "Prime", "text": "PRIME SUB!" },
{ "default": "SUBSCRIBER" }
]
},
"title": "%username%",
"value": "%tiertext%",
"esportsColor": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "color": "purple" },
{ "equals": "Tier 2", "color": "blue" },
{ "equals": "Tier 1", "color": "green" },
{ "equals": "Prime", "color": "cyan" },
{ "default": "red" }
]
}
}
}
{
"TwitchRaid": {
"header": {
"variable": "viewers",
"rules": [
{ "min": 500, "text": "MEGA RAID!" },
{ "min": 200, "text": "MASSIVE RAID!" },
{ "min": 50, "text": "RAID INCOMING!" },
{ "default": "RAIDERS!" }
]
},
"title": "%username%",
"value": "%viewers% RAIDERS",
"esportsColor": {
"variable": "viewers",
"rules": [
{ "min": 500, "color": "purple" },
{ "min": 200, "color": "blue" },
{ "min": 50, "color": "green" },
{ "default": "red" }
]
}
}
}
You can customize the background and accent colors using hex color codes:
{
"TwitchFollow": {
"header": "NEW FOLLOWER",
"title": "%username%",
"value": "",
"esportsColor": "red",
"esportsBgColor": "#111111",
"esportsAccentColor": "#ff4655"
}
}
| Color | Hex Value | Description |
|---|---|---|
red |
#ff4655 | Default esports red (Valorant-style) |
blue |
#00d4ff | Bright cyan blue |
green |
#00ff87 | Neon green |
yellow |
#ffd700 | Gold yellow |
orange |
#ff8c00 | Warm orange |
purple |
#9d4edd | Vibrant purple |
pink |
#ff69b4 | Hot pink |
cyan |
#00ffff | Bright cyan |
white |
#ffffff | Clean white |
| Field | Description | Example |
|---|---|---|
header |
Small header text with bolt icon | "header": "NEW FOLLOWER" |
title |
Large main text (usually username) | "title": "%username%" |
value |
Right-side value panel (bits, months, etc.) | "value": "%bits% BITS" |
esportsColor |
Accent color preset name | "esportsColor": "purple" |
esportsBgColor |
Custom background color (hex) | "esportsBgColor": "#1a1a2e" |
esportsAccentColor |
Custom accent color (hex) | "esportsAccentColor": "#00d4ff" |
The Modern theme features a clean, minimalist design with a rotating mesh gradient background, rounded corners, and smooth animations. Perfect for a contemporary, professional streaming aesthetic.
{
"TwitchFollow": {
"header": "New Follower",
"title": "%username%",
"subtitle": "",
"colorScheme": "default"
},
"TwitchSub": {
"header": "Subscriber",
"title": "%username%",
"subtitle": "Tier 1",
"colorScheme": "ocean"
}
}
You can set color schemes based on variable values using rules:
{
"TwitchCheer": {
"header": "Bits Received",
"title": "%username%",
"subtitle": "%bits% bits",
"colorScheme": {
"variable": "bits",
"rules": [
{ "min": 10000, "scheme": "sunset" },
{ "min": 5000, "scheme": "rose" },
{ "min": 1000, "scheme": "ocean" },
{ "default": "default" }
]
}
}
}
{
"TwitchSub": {
"header": "Subscriber",
"title": "%username%",
"subtitle": "%tiertext%",
"colorScheme": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "scheme": "sunset" },
{ "equals": "Tier 2", "scheme": "ocean" },
{ "equals": "Prime", "scheme": "forest" },
{ "default": "default" }
]
}
}
}
| Scheme | Colors | Description |
|---|---|---|
default |
Indigo/Pink/Cyan | Default vibrant gradient |
ocean |
Blue/Teal/Cyan | Cool ocean tones |
sunset |
Orange/Pink/Purple | Warm sunset colors |
forest |
Green/Emerald/Teal | Natural green tones |
midnight |
Purple/Blue/Indigo | Dark mode with purple accents |
rose |
Pink/Rose/Red | Romantic pink tones |
monochrome |
Gray tones | Neutral grayscale |
The Modern theme supports displaying user avatars instead of icons. Enable this in the Preset Options when selecting the Modern theme in the customizer.
When enabled, the icon area will display the user's profile picture (when available) instead of the default SVG icons.
| Field | Description | Example |
|---|---|---|
header |
Small uppercase text at top | "header": "New Follower" |
title |
Large main text (usually username) | "title": "%username%" |
subtitle |
Colored text below title | "subtitle": "Month 10" |
colorScheme |
Background gradient color scheme | "colorScheme": "ocean" |
Use these variables in your text - they will be replaced with actual values when the alert is shown.
| Variable | Description | Available In |
|---|---|---|
%username% |
The user's display name | All events |
%userid% |
The user's ID | All events |
| Variable | Description | Available In |
|---|---|---|
%bits% |
Number of bits cheered | TwitchCheer |
%tier% |
Subscription tier number (1, 2, or 3) | TwitchSub, TwitchReSub, TwitchGiftedSub |
%tiertext% |
Tier text (Tier 1, Tier 2, Tier 3, or Prime) | TwitchSub, TwitchReSub |
%isprime% |
"true" or "false" - whether sub is Prime | TwitchSub, TwitchReSub |
%months% |
Cumulative subscription months | TwitchReSub |
%recipient% |
Gift sub recipient's name | TwitchGiftedSub |
%viewers% |
Number of raid viewers | TwitchRaid |
%message% |
User's message | TwitchCheer, TwitchSub, TwitchReSub |
| Variable | Description | Available In |
|---|---|---|
%amount% |
Super Chat/Sticker amount | YouTubeSuperChat, YouTubeSuperSticker |
%gifter% |
Name of the person who gifted | YouTubeGiftReceived |
| Variable | Description | Available In |
|---|---|---|
%from% |
User's display name | All Kick events |
%login% |
User's login name | KickFollow, KickMassGiftSubscription |
%months% |
Subscription months | KickResubscription |
| Variable | Description | Available In |
|---|---|---|
%from% |
Supporter's name | All Ko-fi events |
%amount% |
Donation amount | KofiDonation |
%currency% |
Currency code (USD, EUR, etc.) | KofiDonation |
%tier% |
Subscription tier | KofiSubscription, KofiResubscription |
%items% |
Number of items ordered | KofiShopOrder |
%itemcount% |
Number of items (alias for %items%) | KofiShopOrder |
%message% |
User's message | KofiDonation, KofiSubscription, KofiResubscription, KofiShopOrder |
| Variable | Description | Available In |
|---|---|---|
%from% |
Donor's name | StreamlabsDonation |
%amount% |
Donation amount | StreamlabsDonation |
%currency% |
Currency code | StreamlabsDonation |
%message% |
Donation message | StreamlabsDonation |
| Variable | Description | Available In |
|---|---|---|
%from% |
Tipper's name | StreamElementsTip |
%amount% |
Tip amount | StreamElementsTip |
%currency% |
Currency code | StreamElementsTip |
%message% |
Tip message | StreamElementsTip |
| Variable | Description | Available In |
|---|---|---|
%from% |
Buyer's name | All Fourthwall events |
%amount% |
Donation amount | FourthwallDonation |
%currency% |
Currency code | FourthwallDonation |
%items% |
Number of items | FourthwallGiftPurchase, FourthwallOrderPlaced |
%itemcount% |
Number of items (alias) | FourthwallGiftPurchase, FourthwallOrderPlaced |
%message% |
Donation message | FourthwallDonation |
| Variable | Description | Available In |
|---|---|---|
%from% |
Patron's name | PatreonPledgeCreated |
%amount% |
Pledge amount | PatreonPledgeCreated |
%tier% |
Tier name | PatreonPledgeCreated |
You can set different text for each theme by nesting your customizations under the theme name:
{
"ps5trophy": {
"TwitchFollow": {
"header": "Trophy Unlocked!",
"subtitle": "%username% earned the Follow trophy!"
}
},
"xboxachievement": {
"TwitchFollow": {
"header": "%username% Followed!",
"gamerscore": "10"
}
},
"rpgquest": {
"TwitchFollow": {
"header": "Quest Update",
"title": "%username%",
"subtitle": "Has joined the party!",
"questRarity": "common"
}
},
"luxury": {
"TwitchFollow": {
"header": "New Follower",
"title": "%username%",
"subtitle": "Has joined the community",
"luxuryTier": "gold"
}
},
"esportsclassic": {
"TwitchFollow": {
"header": "NEW FOLLOWER",
"title": "%username%",
"value": "",
"esportsColor": "red"
}
},
"modern": {
"TwitchFollow": {
"header": "New Follower",
"title": "%username%",
"subtitle": "",
"colorScheme": "default"
}
}
}
ps5trophy - PS5 Trophy themexboxachievement - Xbox Achievement themerpgquest - RPG Quest themeluxury - Luxury themeesportsclassic - ESports Classic thememodern - Modern themeYou can combine multiple conditions using the conditions array. All conditions must be true for the rule to match (AND logic).
{
"TwitchReSub": {
"subtitle": {
"rules": [
{
"conditions": [
{ "variable": "months", "min": 12 },
{ "variable": "tiertext", "equals": "Tier 3" }
],
"text": "A year of Tier 3 support! You are incredible!"
},
{
"conditions": [
{ "variable": "months", "min": 12 },
{ "variable": "tiertext", "equals": "Tier 2" }
],
"text": "A year of Tier 2! Amazing dedication!"
},
{
"conditions": [
{ "variable": "months", "min": 6 },
{ "variable": "isprime", "equals": "true" }
],
"text": "6+ months of Prime support!"
},
{ "min": 12, "text": "One year anniversary!" },
{ "default": "Thanks for %months% months!" }
],
"variable": "months"
}
}
}
{
"TwitchCheer": {
"header": {
"rules": [
{
"conditions": [
{ "variable": "bits", "min": 1000 },
{ "variable": "bits", "max": 4999 }
],
"text": "Big Cheerer!"
},
{
"conditions": [
{ "variable": "bits", "min": 5000 }
],
"text": "MEGA CHEERER!"
},
{ "default": "Thanks for the bits!" }
]
}
}
}
| Condition | Description | Example |
|---|---|---|
min |
Value must be greater than or equal to | { "variable": "bits", "min": 1000 } |
max |
Value must be less than or equal to | { "variable": "months", "max": 11 } |
equals |
Value must exactly match (case-insensitive for strings) | { "variable": "tiertext", "equals": "Tier 3" } |
The Hacker theme features a terminal-style design with typing animations, ASCII art banners, and a retro CRT aesthetic. When an event triggers, a terminal window opens and a command is "typed" followed by ASCII art displaying the event type.
{
"TwitchFollow": {
"title": "%username%",
"subtitle": "has connected to the network",
"hackerColor": "green"
},
"TwitchSub": {
"title": "%username%",
"subtitle": "subscribed with %tiertext%",
"hackerColor": "cyan"
}
}
You can set terminal colors based on variable values using rules:
{
"TwitchCheer": {
"title": "%username%",
"subtitle": "transferred %bits% bits",
"hackerColor": {
"variable": "bits",
"rules": [
{ "min": 10000, "color": "red" },
{ "min": 5000, "color": "purple" },
{ "min": 1000, "color": "cyan" },
{ "min": 100, "color": "amber" },
{ "default": "green" }
]
}
}
}
{
"TwitchSub": {
"title": "%username%",
"subtitle": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "subscribed with TIER 3 access" },
{ "equals": "Tier 2", "text": "subscribed with TIER 2 access" },
{ "equals": "Tier 1", "text": "subscribed with TIER 1 access" },
{ "equals": "Prime", "text": "subscribed with PRIME access" },
{ "default": "subscribed to the network" }
]
},
"hackerColor": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "color": "purple" },
{ "equals": "Tier 2", "color": "cyan" },
{ "equals": "Tier 1", "color": "green" },
{ "equals": "Prime", "color": "amber" },
{ "default": "green" }
]
}
}
}
{
"TwitchReSub": {
"title": "%username%",
"subtitle": {
"variable": "months",
"rules": [
{ "min": 48, "text": "VETERAN STATUS: %months% months connected" },
{ "min": 24, "text": "ELITE STATUS: %months% months connected" },
{ "min": 12, "text": "TRUSTED STATUS: %months% months connected" },
{ "default": "resubscribed for %months% months" }
]
},
"hackerColor": {
"variable": "months",
"rules": [
{ "min": 48, "color": "red" },
{ "min": 24, "color": "purple" },
{ "min": 12, "color": "cyan" },
{ "default": "green" }
]
}
}
}
| Color | Description |
|---|---|
green |
Classic Matrix green (default) |
cyan |
Bright cyan/teal |
amber |
Retro amber terminal |
red |
Red alert style |
purple |
Vibrant purple |
blue |
Cool blue |
pink |
Hot pink |
white |
Clean white |
| Field | Description | Example |
|---|---|---|
title |
Username displayed in the terminal | "title": "%username%" |
subtitle |
Description text below username | "subtitle": "has connected to the network" |
hackerColor |
Terminal color scheme | "hackerColor": "cyan" |
The theme includes unique ASCII art banners for each event type:
The GTA V theme recreates the iconic "Mission Passed" screen from Grand Theft Auto V. Features the Pricedown font, golden text, and optional green screen flash effect.
{
"TwitchFollow": {
"header": "MISSION PASSED",
"subtitle": "%username% has followed!"
},
"TwitchSub": {
"header": "RESPECT +",
"subtitle": "%username% subscribed!"
}
}
You can change the header text based on variable values:
{
"TwitchCheer": {
"header": {
"variable": "bits",
"rules": [
{ "min": 10000, "text": "HEIST COMPLETE" },
{ "min": 1000, "text": "RESPECT +" },
{ "min": 100, "text": "MISSION PASSED" },
{ "default": "MISSION PASSED" }
]
},
"subtitle": "%username% cheered %bits% bits!"
}
}
{
"TwitchRaid": {
"header": {
"variable": "viewers",
"rules": [
{ "min": 500, "text": "HEIST COMPLETE" },
{ "min": 100, "text": "RESPECT +" },
{ "default": "MISSION PASSED" }
]
},
"subtitle": "%username% raided with %viewers% viewers!"
}
}
{
"TwitchSub": {
"header": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "HEIST COMPLETE" },
{ "equals": "Tier 2", "text": "RESPECT +" },
{ "equals": "Tier 1", "text": "MISSION PASSED" },
{ "equals": "Prime", "text": "MISSION PASSED" },
{ "default": "MISSION PASSED" }
]
},
"subtitle": "%username% subscribed with %tiertext%!"
}
}
| Field | Description | Example |
|---|---|---|
header |
Large golden text (Pricedown font) | "header": "MISSION PASSED" |
subtitle |
Smaller white text below header | "subtitle": "%username% has followed!" |
| Text | Suggested Use |
|---|---|
MISSION PASSED |
Default for most events (follows, basic subs) |
RESPECT + |
Higher value events (resubs, medium donations) |
HEIST COMPLETE |
Big events (large donations, raids, Tier 3 subs) |
WASTED |
Fun alternative for special occasions |
The Assassin's Creed Origins theme features an Egyptian-inspired quest completion style with animated XP counters. The alert displays a golden eagle background, "QUEST COMPLETED" header, username with decorative lines, and an XP value that animates from 0 to the target value.
{
"TwitchFollow": {
"header": "QUEST COMPLETED",
"title": "%username%",
"xp": 100
},
"TwitchSub": {
"header": "QUEST COMPLETED",
"title": "%username%",
"xp": 500
}
}
You can set headers and XP values based on variable values using rules:
{
"TwitchCheer": {
"header": {
"variable": "bits",
"rules": [
{ "min": 10000, "text": "LEGENDARY QUEST" },
{ "min": 5000, "text": "EPIC QUEST" },
{ "min": 1000, "text": "RARE QUEST" },
{ "default": "QUEST COMPLETED" }
]
},
"title": "%username%",
"xp": {
"variable": "bits",
"rules": [
{ "min": 10000, "text": 10000 },
{ "min": 5000, "text": 5000 },
{ "min": 1000, "text": 1000 },
{ "min": 100, "text": 500 },
{ "default": 100 }
]
}
}
}
{
"TwitchSub": {
"header": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "LEGENDARY QUEST" },
{ "equals": "Tier 2", "text": "EPIC QUEST" },
{ "equals": "Tier 1", "text": "QUEST COMPLETED" },
{ "equals": "Prime", "text": "QUEST COMPLETED" },
{ "default": "QUEST COMPLETED" }
]
},
"title": "%username%",
"xp": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": 1500 },
{ "equals": "Tier 2", "text": 1000 },
{ "equals": "Tier 1", "text": 500 },
{ "equals": "Prime", "text": 500 },
{ "default": 500 }
]
}
}
}
{
"TwitchReSub": {
"header": {
"variable": "months",
"rules": [
{ "min": 48, "text": "LEGENDARY QUEST" },
{ "min": 24, "text": "EPIC QUEST" },
{ "min": 12, "text": "RARE QUEST" },
{ "default": "QUEST COMPLETED" }
]
},
"title": "%username%",
"xp": {
"variable": "months",
"rules": [
{ "min": 48, "text": 4800 },
{ "min": 24, "text": 2400 },
{ "min": 12, "text": 1200 },
{ "min": 6, "text": 600 },
{ "default": 250 }
]
}
}
}
| Text | Suggested Use |
|---|---|
QUEST COMPLETED |
Default for most events (follows, basic subs) |
RARE QUEST |
Medium value events (resubs 6-12 months, 100+ bits) |
EPIC QUEST |
Higher value events (resubs 12-24 months, Tier 2 subs) |
LEGENDARY QUEST |
Big events (large donations, 48+ month resubs, Tier 3 subs) |
| Field | Description | Example |
|---|---|---|
header |
Golden text at top (e.g., "QUEST COMPLETED") | "header": "LEGENDARY QUEST" |
title |
Username displayed with decorative lines | "title": "%username%" |
xp |
XP value that animates from 0 | "xp": 500 |
The iOS Notification theme mimics the notification pop-up style from iOS devices. It features a clean, rounded design with the user's name at the top, message below, and "now" timestamp on the right.
Choose between two iOS styles in the customizer:
| Style | Description |
|---|---|
ios26 |
Transparent glass effect with animated shiny border - the modern iOS 26 look |
ios18 |
Classic frosted glass effect - the traditional iOS notification style |
{
"TwitchFollow": {
"title": "%username%",
"subtitle": "Started following you"
},
"TwitchSub": {
"title": "%username%",
"subtitle": "Subscribed with %tiertext%"
}
}
You can set different text based on variable values using rules:
{
"TwitchCheer": {
"title": "%username%",
"subtitle": {
"variable": "bits",
"rules": [
{ "min": 10000, "text": "Dropped a massive %bits% bits! 🎉" },
{ "min": 1000, "text": "Cheered %bits% bits!" },
{ "min": 100, "text": "Sent %bits% bits" },
{ "default": "Cheered %bits% bits" }
]
}
}
}
{
"TwitchSub": {
"title": "%username%",
"subtitle": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "Subscribed at the highest tier! 🌟" },
{ "equals": "Tier 2", "text": "Subscribed with Tier 2" },
{ "equals": "Tier 1", "text": "Just subscribed!" },
{ "equals": "Prime", "text": "Used their Prime sub" },
{ "default": "Subscribed!" }
]
}
}
}
{
"TwitchReSub": {
"title": "%username%",
"subtitle": {
"variable": "months",
"rules": [
{ "min": 48, "text": "4 years of support! 🏆" },
{ "min": 24, "text": "2 years strong! 🎊" },
{ "min": 12, "text": "1 year anniversary! 🎂" },
{ "min": 6, "text": "6 months of loyalty!" },
{ "default": "Resubscribed for %months% months" }
]
}
}
}
| Field | Description | Example |
|---|---|---|
title |
Bold text at top (usually username) | "title": "%username%" |
subtitle |
Message text below the title | "subtitle": "Started following you" |
sound |
Custom sound for this event (sound name or full URL) | "sound": "critical" |
You can use these built-in sound names in the sound field:
| Sound Name | Description |
|---|---|
default | Default iOS notification sound (default for iOS 26) |
classic | Classic iOS notification sound (default for iOS Classic) |
airdrop | AirDrop received sound |
charging | Device charging sound |
critical | Critical alert sound |
ding | Ding notification sound |
facetime-call | FaceTime incoming call |
facetime-invite | FaceTime invite sound |
homepod | HomePod notification sound |
new-email | New email notification |
photo-memory | Photo memory sound |
startup | Device startup sound |
You can set different sounds for different events:
{
"TwitchFollow": {
"title": "%username%",
"subtitle": "Started following you",
"sound": "default"
},
"TwitchCheer": {
"title": "%username%",
"subtitle": "Cheered %bits% bits!",
"sound": "critical"
},
"TwitchSub": {
"title": "%username%",
"subtitle": "Subscribed!",
"sound": "facetime-invite"
}
}
You can also use conditional rules for sounds based on event values:
{
"TwitchCheer": {
"title": "%username%",
"subtitle": "Cheered %bits% bits!",
"sound": {
"variable": "bits",
"rules": [
{ "min": 1000, "sound": "critical" },
{ "min": 100, "sound": "facetime-invite" },
{ "default": "default" }
]
}
}
}
The iOS Notification theme supports TwitchFirstWord events, which trigger when a user sends their first message in chat per stream session (Not to be confused with First Chat Message which is for the first message in the channel). You can customize the subtitle based on specific usernames:
{
"TwitchFirstWord": {
"title": "%username%",
"subtitle": {
"variable": "username",
"rules": [
{ "equals": "krookediles", "text": "Has come to snap!" },
{ "equals": "playingcatchup", "text": "Has catched up to the stream!" },
{ "equals": "nightbot", "text": "The bot has awakened!" },
{ "default": "Has entered the stream!" }
]
},
"sound": "ding"
}
}
This allows you to create personalized welcome messages for specific viewers. The username variable is matched case-insensitively.
| Variable | Description |
|---|---|
%username% | The username of the person who sent their first message |
%message% | The actual message they sent |
"sound": "https://example.com/my-sound.mp3"
The Animus theme is inspired by the Abstergo / Animus interface from the Assassin's Creed franchise. It features 10 visual designs and 10 independent logo animations, all selectable in the Customizer. You can override the three text fields — header, title, and subtitle — using your JSON file.
"animus".
{
"animus": {
"TwitchFollow": {
"header": "NEW INITIATE",
"title": "%username%",
"subtitle": "Has joined the Brotherhood"
},
"TwitchSub": {
"header": "BROTHERHOOD BOND",
"title": "%username%",
"subtitle": "Has sworn the Creed"
},
"TwitchRaid": {
"header": "RAID INCOMING",
"title": "%username%",
"subtitle": "%viewers% assassins have entered the Animus"
}
}
}
{
"animus": {
"TwitchSub": {
"header": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "MASTER ASSASSIN" },
{ "equals": "Tier 2", "text": "HIDDEN BLADE" },
{ "equals": "Tier 1", "text": "BROTHERHOOD BOND" },
{ "equals": "Prime", "text": "PRIME INITIATE" },
{ "default": "NEW MEMBER" }
]
},
"title": "%username%",
"subtitle": {
"variable": "tiertext",
"rules": [
{ "equals": "Tier 3", "text": "Sworn to the Creed at Tier 3" },
{ "equals": "Tier 2", "text": "Joined the Brotherhood at Tier 2" },
{ "equals": "Prime", "text": "Prime — Nothing is true" },
{ "default": "Has joined the Brotherhood" }
]
}
}
}
}
{
"animus": {
"TwitchCheer": {
"header": {
"variable": "bits",
"rules": [
{ "min": 10000, "text": "LEGENDARY TRIBUTE" },
{ "min": 5000, "text": "GRAND TRIBUTE" },
{ "min": 1000, "text": "TRIBUTE RECEIVED" },
{ "default": "MEMORY FRAGMENT" }
]
},
"title": "%username%",
"subtitle": "Offered %bits% bits to the Brotherhood"
}
}
}
{
"animus": {
"TwitchRaid": {
"header": {
"variable": "viewers",
"rules": [
{ "min": 500, "text": "EAGLE'S ARMY" },
{ "min": 100, "text": "RAID INCOMING" },
{ "min": 25, "text": "BROTHERHOOD RAID" },
{ "default": "RAIDERS" }
]
},
"title": "%username%",
"subtitle": "%viewers% assassins have entered the Animus"
}
}
}
| Field | Description | Example |
|---|---|---|
header |
Small caps label at the top (event type label) | "header": "NEW INITIATE" |
title |
Large main text, usually the username | "title": "%username%" |
subtitle |
Smaller description text below the title | "subtitle": "Has joined the Brotherhood" |
header text in ALL CAPS (e.g. "MEMORY FRAGMENT", "SYNC COMPLETE"). The visual design and logo animation are set separately in the Customizer and cannot be overridden per-event via JSON.
/raw/ to the URL)%Username% works the same as %username%)