An adorable interactive golden retriever puppy for your stream! 16 chat commands, 6 event reactions, 11 bubble themes, and 22 unique animations. For Twitch & YouTube.
Everything you need to set up and customize your Stream Pet widget
Controls the size of the puppy on screen.
Pet size (px)A larger pet is more visible but takes more screen space. For 1080p, 400–600px works great.
Controls how fast the puppy animations play.
Animation speedHigher values make the puppy more energetic. Lower values create a calmer, more relaxed feel.
Your viewers can control the puppy using chat commands. Each command triggers a unique animation. All command names are customizable in the settings — change !pet to !pat, !boop, or anything you like.
!dance, they must wait for the cooldown before using !dance again, but can immediately use !play.
| Command | Animation | Can Disable? |
|---|---|---|
!idle | Returns to idle state, resets sleep timer | Always on |
!pet | Pet the puppy lovingly | Yes |
!play | Play time! Fetch and fun | Yes |
!dance | Happy dance moves | Yes |
!sleep | Curl up for a nap (loops) | Yes |
!love | Show some love | Yes |
!angry | Grumpy puppy mode | Yes |
!drink | Drink some water | Yes |
!hungry | Time for treats | Yes |
!excited | Super excited zoomies | Yes |
!scared | Something spooked the pup | Yes |
!sleepy | Getting drowsy... | Yes |
!tired | Long day, needs rest | Yes |
!twerk | Wiggly tail dance | Yes |
!hello | Friendly greeting wave | Yes |
!thuglife | Cool puppy attitude | Yes |
!cry | Sad puppy tears | Yes |
Setting: Who can use commands
Permissions apply to all chat commands. Stream events (follow, sub, etc.) always trigger regardless of this setting.
Setting: Command cooldown (ms)
The cooldown is per user, per command. This means:
!dance → User A must wait 1 min to !dance again!play immediately!dance right awayThe !idle command bypasses cooldown and permissions entirely.
The puppy automatically reacts to stream events with a unique animation and a customizable speech bubble. Events have higher priority than chat commands — they jump to the front of the animation queue.
| Event | Animation | Default Bubble Text | Variables |
|---|---|---|---|
| Follow | Celebrates | {name} just followed! |
{name} |
| Subscribe | Sub reaction | {name} just subscribed! |
{name} |
| Donation | Thankful reaction | {name} donated {amount}! |
{name} {amount} |
| Raid | Excited welcome | {name} raided with {viewers}! |
{name} {viewers} |
| Cheer | Cheerful reaction | {name} cheered {amount} bits! |
{name} {amount} |
| Gift Sub | Gift celebration | {name} gifted {amount} subs! |
{name} {amount} |
Each event has its own enable/disable checkbox:
Show bubble on FollowShow bubble on SubShow bubble on DonationShow bubble on RaidShow bubble on Gift SubShow bubble on CheerDisabling hides the bubble but the animation still plays.
Each event has its own text template field. Use variables to include dynamic data:
{name} — viewer's username{amount} — donation/bits/gift count{viewers} — raid viewer countExample: Change donation text to Woof! Thanks {name} for ${amount}!
Setting: Bubble theme (dropdown)
Choose from 11 ready-made themes:
Default: Midnight Galaxy
Select "Custom" from the Bubble theme dropdown to unlock these settings:
Bubble text color — colorpicker (default: #333333)Bubble background color — colorpicker (default: #ffffff)Bubble border color — colorpicker (default: #e0e0e0)Bubble border radius (px) — 0 to 30 (default: 12)Bubble font family — any Google Font (default: Nunito)Bubble font size (px) — 10 to 48 (default: 24)Bubble padding (px) — 4 to 40 (default: 20)When using a preset theme, these settings are ignored — the theme provides all styling.
Fine-tune where the bubble appears relative to the pet:
Space above pet for bubble (px) — 0 to 200 (default: 170)Bubble horizontal offset (px) — -200 to 200 (default: 0)Bubble vertical offset (px) — -200 to 200 (default: 35)How long the bubble stays visible after appearing:
Bubble display duration (ms) — 1,000 to 15,000If a new event triggers while a bubble is already showing, the new text replaces it and the timer resets.
Preview bubble in the settings to see a test bubble without needing real events. Great for positioning and theme testing!
When there's no activity for a while, the puppy automatically curls up and falls asleep with a looping sleep animation. This makes the widget feel more alive and natural.
The sleep timer resets on:
When the puppy is asleep and any command or event fires, it wakes up automatically and plays the requested animation.
Enable auto-sleep after inactivity
Sleep timeout (ms)
If you disable auto-sleep, the puppy will stay in idle mode forever until a command or event plays.
Complete list of all configurable settings in the StreamElements editor:
| Setting | Type | Default | Range / Options |
|---|---|---|---|
| Pet Settings | |||
| Pet size (px) | Slider | 530 | 200 – 1000, step 10 |
| Animation speed | Slider | 1.6 | 0.5 – 3.0, step 0.1 |
| Permissions | |||
| Who can use commands | Dropdown | Everyone | Everyone / Subs / Mods / Streamer |
| Command cooldown (ms) | Number | 60000 | 1,000 – 300,000 |
| Sleep | |||
| Enable auto-sleep | Checkbox | On | — |
| Sleep timeout (ms) | Number | 180000 | 30,000 – 600,000 |
| Bubble – General | |||
| Enable alert bubble | Checkbox | On | — |
| Preview bubble | Checkbox | Off | Toggle to test |
| Bubble theme | Dropdown | Midnight Galaxy | 11 presets + Custom |
| Bubble display duration (ms) | Number | 4000 | 1,000 – 15,000 |
| Bubble – Position | |||
| Space above pet (px) | Slider | 170 | 0 – 200, step 5 |
| Horizontal offset (px) | Slider | 0 | -200 – 200, step 5 |
| Vertical offset (px) | Slider | 35 | -200 – 200, step 5 |
| Bubble – Custom Theme | |||
| Text color | Color | #333333 | Any color |
| Background color | Color | #ffffff | Any color |
| Border color | Color | #e0e0e0 | Any color |
| Border radius (px) | Number | 12 | 0 – 30 |
| Font family | Text | Nunito | Any Google Font |
| Font size (px) | Slider | 24 | 10 – 48, step 1 |
| Padding (px) | Slider | 20 | 4 – 40, step 1 |
| Bubble – Event Toggles | |||
| Show bubble on Follow | Checkbox | On | — |
| Show bubble on Sub | Checkbox | On | — |
| Show bubble on Donation | Checkbox | On | — |
| Show bubble on Raid | Checkbox | On | — |
| Show bubble on Gift Sub | Checkbox | On | — |
| Show bubble on Cheer | Checkbox | On | — |
| Bubble – Event Text Templates | |||
| Follow bubble text | Text | {name} just followed! | {name} |
| Sub bubble text | Text | {name} just subscribed! | {name} |
| Donation bubble text | Text | {name} donated {amount}! | {name} {amount} |
| Raid bubble text | Text | {name} raided with {viewers}! | {name} {viewers} |
| Gift sub bubble text | Text | {name} gifted {amount} subs! | {name} {amount} |
| Cheer bubble text | Text | {name} cheered {amount} bits! | {name} {amount} |
| Chat Commands (x16) | |||
| Each command has: | A text field (trigger word, e.g. !dance) + an enable checkbox. The !idle command is always enabled. | ||
Set it to match your stream canvas — typically 1920x1080. The pet will appear at the bottom center. You can resize and reposition the source in OBS as needed.
1) Make sure the command is enabled in settings. 2) Check permissions — if set to "Mods only", regular viewers can't use it. 3) Check cooldown — the user might still be on cooldown. 4) Make sure the overlay is active in StreamElements and the Browser Source is visible in OBS.
Type any chat command (like !pet) or trigger any stream event. The puppy wakes up automatically. You can also use !idle which always works regardless of permissions or cooldown.
Yes! Every command trigger word is customizable. In the settings, find the command you want to rename and type a new trigger. For example, change !pet to !pat or !boop. Commands must start with !.
Make sure you're using the correct template variables: {name} for the viewer name, {amount} for donation/bits/gift count, and {viewers} for raid viewer count. These are case-sensitive and must include the curly braces.
Toggle "Preview bubble" to ON in the settings. A test bubble will appear immediately so you can see how your chosen theme looks. Toggle it back OFF when you're done.
Yes! The widget works with both Twitch and YouTube through StreamElements. Chat commands and events are supported on both platforms.
Animations play in a queue. They are processed one at a time in order. Stream events (follow, sub, donation, etc.) have higher priority and jump to the front of the queue. After all queued animations finish, the puppy returns to idle.
If you have any questions, issues, or feature requests, feel free to reach out!