Skip to content

Plus Progress

Plus Progress is a transparent OBS browser source that shows a broadcaster’s publicly shared Twitch Plus Program goal. It runs entirely in the browser with no Streamer.bot, backend, OAuth, or account credentials, and it keeps the last valid monthly value on screen during temporary Twitch outages. A settings page builds the configured URL in three compositions.

Platforms: OBS browser source, Web
Product page: desertice.tech/products/plus-progress

Who it’s for: Twitch broadcasters in the Plus Program who want to display their goal on stream

  • Three compositions chosen by browser source aspect ratio: 800x140 horizontal, 300x300 square, 300x600 portrait
  • Text-only mode (&style=text) that shows just the current value and goal
  • Branding parameters for accent, background, and text colors, font family, surface, and progress style
  • Refreshes Plus Program status every 10 minutes with UTC month selection
  • Keeps the last valid value and its update time on screen during Twitch outages
  • Simplifies automatically at small sizes to preserve readable text
  • No Streamer.bot, backend, OAuth, or account credentials required
  • Customizable further with OBS browser-source CSS
  • A broadcaster whose Plus Program goal is publicly shared on Twitch (the Plus widget must be enabled)
  • OBS Studio or any browser source that supports a transparent page
  • No Streamer.bot, backend, OAuth, or account credentials
  1. Open the overlay settings page at https://desertice.github.io/plus-progress/settings/
  2. Enter the Twitch channel and choose the layout and colors
  3. Select Copy URL
  4. Add a Browser source in OBS and paste the URL
  5. Set the Browser Source resolution: 800x140 for horizontal, 300x300 for square, or 300x600 for portrait
  1. Leave OBS Custom CSS empty for the default design, or use the documented OBS CSS guide to theme individual elements
  2. Add &style=text for a transparent source showing only the current value and goal
  3. Tune branding with URL parameters: accent, background, text (six-digit hex), font (system, rounded, serif, mono), surface (dark, light, transparent), and progress (gradient, solid, minimal)
  4. Build URLs by hand with ?channel= and append further parameters with &
  • The overlay resolves the channel to an ID on load and refreshes every 10 minutes
  • “Updated” shows “just now” for the first minute, then counts minutes from the last successful fetch
  • Visual progress stops at 100% even when points exceed the target; text-only mode shows values as written (e.g. 115 / 100)
  • Select Refresh to retry immediately after an outage; automatic refresh continues regardless

Add ?channel= to the URL, or use &channel= if the URL already has a query string.

Use the channel’s Twitch login, not a display name with spaces or a full Twitch URL.

The broadcaster may not be in the Plus Program, may have disabled the Plus widget, or may still need to enable and publicly share the goal on Twitch.

Twitch could not be reached or returned an error, so the overlay kept the last valid value; the update time shows when it was fetched. Select Refresh to retry now.

Refresh the browser source cache, or add or increment a harmless cache-busting parameter such as &v=2.

Twitch’s undocumented, unsupported Plus Program GraphQL API. Twitch may change it without notice, so the overlay can break if Twitch changes the endpoint or response fields.

Does it need my Twitch login or any credentials?

Section titled “Does it need my Twitch login or any credentials?”

No. It only sends the configured public channel login to Twitch’s GraphQL endpoint and needs no OAuth token.