How to Add a Follower & Sub Goal Bar to OBS (and Get Chat to Fill It)
The setup takes five minutes. Getting chat to fill it is the fun part.
- OBS Studio
- Streamlabs
- StreamElements
TL;DR
- Create the goal in StreamElements or Streamlabs and copy the widget URL.
- Add it to OBS as a Browser source where eyes already go.
- Set goals you can hit this stream, about 10–20% above where you are now.
A goal bar is a tiny progress bar with an outsized effect. It gives lurkers a reason to follow right now instead of “later”, turns every new sub into a shared moment, and gives you something to celebrate on a slow night.
The setup takes five minutes in StreamElements or Streamlabs. Getting chat to actually fill the bar is the fun part, and it’s where most streamers leave easy wins on the table. We’ll do both.
Why Goal Bars Work
Goal bars borrow a few well-studied quirks of human motivation:
- The goal-gradient effect. People speed up as a finish line gets closer. A classic coffee-card study (Kivetz, Urminsky and Zheng, 2006) found customers bought coffee more often the nearer they got to a free one. “4 more to level up” makes chat move faster than “46 of 50”.
- Progress that’s already started. In a car-wash loyalty study (Nunes and Drèze, 2006), cards that came with 2 of 10 stamps already filled were completed far more often than 8-stamp cards that started empty, roughly 34% versus 19%. A bar that starts partly full feels finishable.
- Public commitment. Once a goal is on screen, you and your regulars both want to see it through. It becomes a team project instead of a number in your dashboard.
- A reason to act now. Following is easy to put off. Helping fill a bar while you’re live, and seeing your name pop when it moves, isn’t.
The takeaway: a goal should be close enough to feel winnable, visible enough to keep the finish line in mind, and celebrated when it lands. Everything in this guide serves one of those three.
Pick the Right Goal Type
| Goal type | Twitch | YouTube | Kick | Great for |
|---|---|---|---|---|
| Followers | Follows | Subscribers | Follows | New and growing channels |
| Subs and members | Subs (Affiliate or Partner) | Channel memberships | Subs | Monetized channels, sub trains |
| Bits and tips | Bits plus tips | Super Chat, Super Stickers plus tips | Tips | Events, subathons, charity streams |
| Custom counter | Any | Any | Any | Deaths, wins, challenges |
Pick one main goal per stream. Starting out? Followers. Monetized? Subs or members usually beat tips, because they’re cheaper to join in on and they renew. Save bits and tip goals for events where viewers know what the money unlocks.
Custom counters (deaths in a soulslike, wins in a battle royale) aren’t revenue goals, but they’re brilliant for engagement. Chat loves tracking your suffering.
Set It Up in StreamElements
- Sign in at streamelements.com and open your overlays (Streaming tools → My overlays). Edit an existing overlay or create a new one at 1920 × 1080.
- Click + to add a widget, open Goals and choose the goal you want: follower, subscriber, tip or cheer (bits).
- In the widget’s settings, set the title, the target amount and where the count starts. Then pick a style, font and colours.
- Click Save, then copy the overlay URL with the link icon.
Set It Up in Streamlabs
- Sign in at streamlabs.com, open All Widgets and pick the goal you want: Follower Goal, Sub Goal, Bit Goal, Tip Goal and so on.
- Fill in Title, Goal Amount, Starting Amount and End After (the date the goal closes), then click Start Goal.
- Style it in the settings: layout, bar colour, font and text colour.
- Copy the widget URL. Using Streamlabs Desktop? Skip the URL and add it straight from the app: Sources → + → Widgets, then pick the matching goal.
Add It to OBS
-
In the Sources dock, click +, choose Browser, name it “Goal” and click OK.
-
Paste your goal URL into the URL field.
-
Set the size to match the widget. A StreamElements overlay is usually the full canvas (1920 × 1080). Standalone goal widgets have a native size: the Nebula XP Goal Bar is 800 × 80.
-
Check the Custom CSS box contains the transparent line:
body { background-color: rgba(0,0,0,0); margin: 0; overflow: hidden; } -
Untick “Shutdown source when not visible”. With it on, OBS reloads the widget every time the scene comes back, which can replay animations or show a stale count. Off means the count stays live all stream.
-
Place it where eyes already go. Right under your webcam or next to chat works well. Keep it away from your game’s HUD (minimap, health, ammo) and the bottom centre, where captions and subtitles live.
-
Fire a test event from your dashboard (StreamElements calls it Emulate) and watch the bar move.
Get Chat to Fill It
A goal bar on its own is a progress bar. A goal bar you talk about is a game chat plays with you.
Set Targets You Can Hit This Stream
Aim about 10–20% above where you are now. At 120 followers, that’s a goal of roughly 135–145. If that’s more than you usually gain in one stream, switch to a session goal (“+10 follows tonight”) so the bar can actually finish. A goal that’s still at 30% when you end the stream teaches chat that the bar doesn’t matter.
Announce Milestones
Call out 25%, 50% and 75%, and especially “two more!”. The goal-gradient effect only kicks in when people know how close the finish line is. Thank people by name when they move the bar.
Celebrate With a Sticker Moment
When the bar fills, make it a moment chat wants to clip: an alert, a level-up animation, an on-screen sticker or an emote wall. The bigger the celebration, the more chat wants to trigger the next one.
Raise the Goal Live
Hit it early? Raise it on stream: “Okay chat, new goal: 160.” A second finish line right after a win is a hype moment in itself, and you’ll often see the next few follows land within minutes.
Add a !goal Command
Give chat a way to check the goal (and a reason to care) without you repeating yourself. In Nightbot it’s one line in chat:
!commands add !goal Every follow fills the XP bar. At 50 we level up and chat picks the next game!
In StreamElements, add it under Chat bot → Chat commands → Custom commands. In Streamlabs, use Cloudbot → Commands → Custom. Tell chat what hitting the goal unlocks, and update the reward each stream.
Troubleshooting
Goal Isn’t Updating
- Check that the dashboard is connected to the right account and platform. A StreamElements account linked to YouTube won’t count Twitch follows.
- Make sure the goal type matches the event: a follower goal ignores subs.
- Open the source’s properties and click Refresh cache of current page, and confirm Shutdown source when not visible is unticked.
Count Resets After Every Stream
The goal probably ended or is counting per session. In Streamlabs, check the End After date and push it further out. In other widgets, look for a reset setting: the Nebula XP Goal Bar lets you choose daily, weekly or all-time.
The Bar Looks Squished
The source has been stretched to a different shape. Right-click it, choose Transform → Reset Transform, then set the width and height in the source’s properties to the widget’s native size. To trim empty space, crop with Alt+drag instead of squeezing the box.
That’s it: a goal on screen, a target chat can hit, and a celebration when they do. Pair it with on-screen chat so viewers see their messages land as the bar fills.
Frequently Asked Questions
Can I show multiple goals?
Yes! Add one Browser source per goal and stack them, or use a widget that rotates between goals. Two is plenty, though: more than that and none of them feel urgent.
Does it work on Kick and YouTube?
Yes, as long as your goal widget supports the platform. YouTube counts subscribers and members, and Kick counts followers and subs. Check the product page for the exact list.
Can affiliates run sub goals?
Yes! Sub goals work for Twitch Affiliates and Partners alike. If subs aren't switched on for your channel yet, start with a follower goal.
How big should my goal be?
Small enough to hit this stream: about 10–20% above where you are now. If that's more than you usually gain in one stream, use a session goal instead.



