Members Only

OBS Plugin - SteamUP BBCode

CHF 0.00

A native OBS text source. Not a browser source. Not HTML.

Type BBCode tags. Get styled text rendered straight to your GPU. That's the entire workflow.

78 tags across 7 categories:

  • Formatting: bold, italic, underline, strikethrough, monospace, superscript, subscript. Nest them however you want.
  • Colours: 140+ named colours, hex codes, multi-stop gradients with direction control, opacity, background highlights.
  • Styling: outline, shadow, glow, letter spacing, alignment, boxes, blur, texture overlay, image masks.
  • Animations (15 types): wave, bounce, shake, pulse, tornado, rainbow, rotate, blink, flip, metallic, typewriter, hacker, glitch, slide, zoom. All per-character with staggered phase offset so they ripple across the text naturally.
  • Effects: typewriter, hacker scramble, glitch corruption, fade, slide, zoom, scroll, credits, matrix rain, fire, electric sparks.
  • Dynamic content: live countdowns, clocks with timezone support, date/time presets, animated counters. All update in real time.
  • Variables: update text on the fly via WebSocket from Streamer.Bot or anything that can send a JSON message.

500+ Google Fonts built in with auto-download. Pick one, it loads.

Full editor included. Syntax highlighting, live preview, tag browser with all 78 tags searchable by category, variable manager, style presets, colour picker. Hit Open Editor and everything is right there. Because typing BBCode in a tiny OBS properties box is a miserable experience and I wasn't going to ship that.

No browser source. No HTML. No external services. Just a native OBS source that renders text to a GPU texture.

Works with Streamer.Bot via WebSocket for live variable updates.

Full documentation


BBCode Source 0.0.2

Big one. Emotes got a proper overhaul, GPU effects are in, editor's been cleaned up, and a nasty scene collection crash is gone.

Emotes

Platform-specific emote tags now. `[twitchemote]`, `[7tv]`, `[bttv]`, `[ffz]`. The old generic `[emote]` tag is gone, use the proper ones.

GPU Effects

Glow, shadow, and outline in global tags now render on the GPU through an auto-managed OBS filter. Multi-pass separable blur, proper premultiplied alpha compositing. The source auto-pads itself so effects don't get clipped.

Per-segment CPU effects still work for inline `[glow]text[/glow]` style usage. Animated images skip CPU effects, the ghosting wasn't worth it.

Outline and shadow are out of the properties panel. Use global tags instead.

All three tags got an opacity parameter.

Editor

  • Filter tabs now use category colours with proper contrast
  • Split into two rows so they're not cramped
  • Tab highlighting actually clears when you click away
  • Sidebar buttons are a consistent 22px across every tab
  • Sidebar border artifact gone
  • Double-click to edit tags works in the global tags area now too
  • Global tags don't insert closing tags (never needed them)
  • Compact mode works in both the main and global editors
  • Optional tag params show as a checkbox with a greyed-out widget
  • Float range sliders (opacity 0.0 to 1.0) render as proper sliders

Auto-wrap

The source now auto-wraps segments inside text extents, so long emote spams don't bleed past the right edge. Splits on word boundaries where it can, both text and image segments.

Fixes

  • Scene collection crash - Background emote resolver threads were holding strong refs on the source. Switch collections mid-resolution and the thread would land its release on a half-destroyed filter chain. Reproducible crash, full stack trace in the dump. Moved both background threads to weak refs, they bail cleanly if the source is gone.
  • QSaveFile for the URL cache, dirty-flagged so a batch of 30 resolutions writes once not 30 times
  • Linux and macOS `-Werror` builds fixed (unused locals from the source overhaul)
  • Various thread safety and memory cleanup

Stats

81 tags across 8 categories. README updated with a full Emotes section covering providers, the resolution journey, caching, rate limits, and cache locations.