Creating Custom FMS-Synced Stream Overlays in OBS

Hello! I’ve been working on a custom OBS overlay for Charged Up as a side project, and I was wondering if I could somehow get raw match data (scores, alliance names, match timer, link count/bonus link count, team numbers, etc) and sync that to my overlay. This would 100% require a wired connection into the FMS, and would essentially be a custom implementation of the Audience Display system.

Here’s a look at the overlay, designed in Adobe Illustrator:

And in OBS, I’ve gotten the text instances laid out:

Here are some resources I’ve found while I’ve been researching for this project:

Cheesy Arena - FRC 254’s custom FMS complete with a custom HTML and GO-based audience display. I definitely do not have the technical know-how to understand how that audience display generation system works, but that’s essentially what I’m trying to make.

FRC Audience Display OBS Integration - An OBS Websocket plugin that’s linked to OBS. Unfortunately for my case, this seems to be more of an automatic scene switcher than a program designed to allow custom overlays like mine. In fact, the docs seem to explicitly mention that you should use the FMS-generated overlay: " It must, at minimum, show the score bar generated by FMS without any modification from how it is provided by FIRST ."

OBS URL/API Source Plugin - An OBS plugin designed to display data from any URL or API as a JSON parser. Could be useful, but exposing the FMS data in a readable format is not something I know how to do.

If anyone has an idea for how I could get the data from the FMS and sync it into OBS, I would greatly appreciate the help. I’ll consider making this open-source for future use as well, seems like something cool to have. (If a custom overlay is legal by FIRST’s standards, that is.)

7 Likes

The quick answer is “not with the official FMS”, at least not at official events. Official events use the overlays provided by the FMS audience display program.

If you’re just wanting to experiment, the audience display program uses SignalR and a REST API to communicate with the FMS, but beyond that you’ll have to figure out yourself how the data is communicated.

2 Likes

You can download and run FMS offseason and inspect the network traffic.

2 Likes

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.