Skip to content

mr-shade/goal-widget

Repository files navigation

Custom StreamElements Goal Widget

A highly customizable, animated Goal Widget for StreamElements with 4 distinct visual styles (Full Circle, Arch, Open Loop) and Neon/Solid appearance modes.

Features

  • 4 Layout Styles: Full Circle (Text or Image focus), Semi-Circle Arch, Open Loop C-Shape.
  • Neon & Gradient Support: Fully configurable colors with optional glow effects.
  • Goal Logic: Handles Subs, Follows, Tips, Cheers, or Custom events.
  • Chat Commands: Mods can !add, !subtract, !setgoal, !resetgoal.
  • Persistence: Remembers progress even if you refresh the browser source.

File Structure

  • widget.json: The settings schema (StreamElements uses this to build the editor UI).
  • widget.html: The HTML structure.
  • widget.css: The styling.
  • widget.js: The logic.

Installation Logic

  1. Go to StreamElements Dashboard -> Streaming Tools -> Overlays.
  2. Create a New Overlay (set resolution to 1080p).
  3. Click Add Widget -> Static / Custom -> Custom Widget.
  4. Click Open Editor on the new widget.
  5. You will see tabs for HTML, CSS, JS, Fields (JSON), and Data.
  6. Copy & Paste the contents of the files provided here into the respective tabs:
    • widget.html -> HTML tab
    • widget.css -> CSS tab
    • widget.js -> JS tab
    • widget.json -> FIELDS tab
  7. Click Done.

Configuration

Appearance

  • Widget Style: Choose between widget1 (Text Focus), widget2 (Image Focus), widget3 (Arch), widget4 (Open Loop).
  • Appearance Mode: Solid for flat colors, Gradient + Neon for the glow effect shown in screenshots.
  • Colors: Pick Primary, Secondary (for gradient), Track (background), and Glow colors.

Goal Settings

  • Goal Value: The target number (e.g., 100 subs).
  • Starting Progress: Initial value (e.g., 0).
  • Event Type: Choose what triggers progress (Subscriber, Follower, Tip, etc.).

Chat Commands

If enabled, Broadcasters and Moderators can use:

  • !add <number> : Add to current progress (e.g., !add 5).
  • !subtract <number> : Remove progress.
  • !setprogress <number> : Force set the current value.
  • !setgoal <number> : Force set the target value.
  • !resetgoal : Reset progress to 0.

Images

You can upload a custom image (e.g., the hedgehog or drink from the screenshots) in the Center Image setting.

  • Use Image Shape to mask it as a Circle, Square, or leave it distinct.

Troubleshooting

  • Font not loading? The widget uses Google Fonts. If they don't appear in the SE Editor, they usually work in OBS.
  • Glow cut off? Increase the widget box size in the StreamElements designer or reduce the Widget Size in settings.

Developer Note

The widget uses SE_API.store to save your progress automatically. If you need to wipe all data, use the Reset Saved Data button in the settings or type !resetgoal in chat.