Skip to content

Release - Read to use beta version

Choose a tag to compare

@barkermn01 barkermn01 released this 14 May 22:44
· 87 commits to main since this release
22990b4

A major update bringing a modular architecture, canvas-based chat, webcam support, and a cleaner config system.

Highlights

🧩 Module Discovery System β€” Modules now live in their own directories with info.json manifests. Drop a folder into www/modules/ to add custom modules.

πŸ’¬ Canvas-Based Chat β€” Chat completely rewritten to render directly to canvas. Supports linear gradients (multiple layers), text-shadow, drop-shadow, borders, fit-content width, and right-alignment.

πŸ“· Webcam Module β€” New module for live camera feeds. Supports device selection, mirror, circle/rounded masks. Works with virtual cameras like XSplit VCam.

🎬 Scene System Overhaul β€” Draw order now follows config order. Multi-instance support for images and videos. Custom IDs preserved on save.

What's New

Modules

  • New webcam module with device picker and mask options
  • Modules restructured into www/modules/{name}/ directories
  • modules.json manifest maps module names to their info files
  • info.json defines metadata, settings schema, and entrypoint
  • allowMultiple flag controls whether duplicates are allowed per scene

Editor

  • Dynamic palette built from module discovery (no hardcoded items)
  • Scene duplication (⧉ button)
  • Scene rename via double-click
  • Live chat preview with πŸ’¬ test message and πŸ—‘ clear buttons
  • Image modules now render in Play All mode
  • WebSocket Admin tool (πŸ“‘) for sending raw messages to overlay
  • Layer names simplified to icon + ID
  • Custom module IDs saved correctly to config

Chat

  • Full canvas rewrite β€” no DOM elements
  • Multiple stacked linear-gradient backgrounds
  • text-shadow and drop-shadow (filter) support
  • font-size, border-width, fit-content width, right-alignment
  • localStorage message persistence
  • Removed: split/separated chat mode, chat.css

Config

  • All _type / _item_type metadata moved to module info.json schema fields
  • Config is now pure data β€” no metadata keys
  • Build uses config.example.js as release config (no personal data leaks)
  • Build reads version from package.json (no more hardcoded override)

Installer

  • Preserves www/media/ and www/config.js during updates/reinstalls
  • PATH manipulation retained for CLI access

Fixes

  • Removed debug logging from audio visualiser and media panel
  • Fixed scene tab double-click rename (click/dblclick conflict)
  • Fixed draw order (scene config order = z-order)
  • OBS URL always includes ?allowaudio=true
  • Electron camera permissions auto-granted
  • --disable-features=MediaFoundationVideoCapture for shared virtual camera access

Upgrade Notes

  • If upgrading from v1.2.x, your existing config.js will work β€” the system falls back to _type in config if no schema is found in info.json
  • The www/modules/ directory structure has changed β€” old flat .js files are now in subdirectories
  • chat.css has been removed (chat is fully canvas-based now)