Hi everyone,
Following the recent discussion in OBS Livestream Plugins, I wanted to share a few projects I’ve been working on to help with VEX Tournament Manager + OBS livestream setups, especially around automatic scene switching and more flexible ways to bring TM Audience Displays into your production.
Note: Both vex-tm-obs-sync and vextm-ndi-source currently run on Windows only.
1. vex-tm-obs-sync
https://github.com/Jerrylum/vex-tm-obs-sync
A bidirectional synchronizer between OBS scenes and VEX TM audience display modes.
-
Automatically switches OBS scenes when TM changes display mode (and the other way around)
-
Configurable mappings via a simple YAML file
-
Supports field-specific scenes (auto Intro / In-Match based on match state) plus other displays (Logo, Results, Rankings, Skills Rankings, etc.)
-
Runs as a standalone executable or from source
This is a free, open-source approach to automatic scene switching that does not require a DWAB API key.
2. vextm-ndi-source
https://github.com/Jerrylum/vextm-ndi-source
A standalone Windows app that launches the TM Audience Display and publishes it as an NDI video source (with audio).
What is NDI?
NDI (Network Device Interface) is a protocol that lets you send high-quality, low-latency video and audio over a standard local network (Ethernet) instead of running dedicated HDMI or SDI cables. Once a source is published, other (multi) computers or software on the same network (OBS, vMix, TriCaster, etc.) can discover and receive it automatically.
This means you can run Tournament Manager on one computer and publish the Audience Display as an NDI signal, while another computer receives that NDI feed in OBS (using an NDI plugin that adds NDI as a source).
Key differences from the official DWAB vextm-obs-source (https://gitlab.com/dwabtech/vextm-obs-source):
| Feature | Official vextm-obs-source | vextm-ndi-source |
|---|---|---|
| Integration | Direct OBS source plugin | NDI source (works with OBS, vMix, TriCaster, etc.) |
| Computers | Best when OBS and TM are on the same machine | Designed for split setups (TM on one PC, production on another) |
| Transparency | Native alpha support | True alpha or chroma-key green |
| Multi-display | Screen pinning | Multiple independent NDI sources (e.g. one for Intro+In-Match, one for Results, one for Rankings+Schedule+etc.) |
| Platform | Windows + Linux | Windows only |
| Dependencies | OBS plugin | NDI Runtime + DistroAV OBS plugin |
It’s especially useful when you want cleaner scene transitions (dedicated sources per display type reduce the chance of catching intermediate green frames) or when your production computer is not the same as the TM server.
Regarding the classic tm-switcher
The original tm-switcher project has been discontinued after May 2026. I have maintained a fork of it here:
https://github.com/jerrylum/tm-switcher
The old version of tm-switcher does not work anymore. This is because it requires the latest “license key” compiled into the app. The license expires every season. Users need to download the latest version of tm-switcher (with the updated license compiled into the app) in order to use it.
I have obtained a new “licnse key” from DWAB and plan to release an updated version of tm-switcher for the current season.
These tools are all unofficial and not endorsed by VEX Robotics, or DWAB. Use them at your own risk, and always test thoroughly before an event.
Feedback, bug reports, and feature suggestions are very welcome on the respective GitHub repos.
Happy streaming!