Docs: Modules

Modules

A module is a kind of source you place on a scene, like a source type in OBS. Each one reads part of the marathon's live state (the run, the runners, the timer) and redraws when it changes. Its settings appear in the editor's Properties; its look can be rewritten in the Code tab.

Default styles read the layout tokens, so a new source already matches the layout's colors and fonts.

Basic

Text

Fixed text, such as a title or a label.

SettingWhat it does
Textwhat it shows
Alignleft, center or right

Can render as an OBS text source. For text that changes with the run, write a template instead.

Shape

A rectangle, ellipse or line, for panels, backgrounds and dividers.

SettingWhat it does
Kindrectangle, ellipse or line
Fillcolor of the shape
Border width, border coloroutline
Radiusrounded corners, rectangles only

Can render as an OBS color source when the fill is a plain #rrggbb color.

Media

Image

One image from the organization's library, or from a web address.

SettingWhat it does
Imagepick from the library; wins over the URL
URLan http or https image address
Fitcontain (whole image), cover (fills the box, crops the rest) or fill (stretches)

Slideshow

Several library images, one at a time with a transition, or all of them scrolling in a strip. Good for sponsor and partner logos. Every overlay shows the same image at the same moment.

SettingWhat it does
Imagesthe images, in order; add from the library, drag to reorder
Displayslideshow (one at a time) or marquee (scrolling strip)
Transitionfade, slide (four directions), zoom, implode, flip or cut
Intervalseconds per image
Durationlength of the transition, in milliseconds
Fitcontain, cover or fill
Gap, reversemarquee only: space between images, scroll to the right

Run

Run info

The current run: game, category, platform, estimate, host, commentators and the game cover. Show picks which of them appear. Values swap with an animation when the run changes.

Next runs

What comes after the current run, from the dashboard's upcoming list or the schedule.

SettingWhat it does
Displaylist (several at once) or ticker (one at a time, rotating)
Counthow many runs, 1 to 10
Intervalseconds per run, ticker only

Runner

Runner card

One runner: name, pronouns, avatar, stream channel, and their finish time and place once they finish.

SettingWhat it does
Runnerslot 1 to 4 on the dashboard
Showwhich fields appear

A card for runner 3 shows nothing in a solo run. Place one card per slot and the scene works for any number of runners.

Game and webcam feeds

Game feed and Webcam feed mark where a runner's capture goes.

SettingWhat it does
Runnerslot 1 to 4
Fitstretch (fills the box) or cover (keeps the 16:9 shape and crops the rest)
Show outlinea dashed outline while the feed is a transparent hole, handy while designing

What a feed shows is not a setting of the layout. The operator picks it on the live dashboard, per runner: their Twitch channel, a YouTube or Kick stream, a stream URL, a vdo.ninja capture, or a transparent hole over a capture you set up in OBS yourself. See Feeds. The layout only says where the feed goes and whose it is.

Timer

Timer

The run timer, controlled from the dashboard.

SettingWhat it does
Runner0 for the main timer; 1 to 4 show that runner's final time and place once they finish
Formatauto (M:SS, hours from one hour), always hours (H:MM:SS) or tenths

In a race, place one timer per runner: each runs with the main timer and freezes on that runner's time when they finish. The timer reads the server's clock, so every overlay shows the same time.

Countdown

Counts down to the time set on the dashboard, for "starting soon" screens and breaks.

SettingWhat it does
Labeltext above the countdown
Ended textshown when it reaches zero
Formatauto or always hours

Info

Ticker

Rotates the messages typed in the dashboard's ticker panel, one per line.

SettingWhat it does
Intervalseconds per message
Transitionfade, up, down, left, right, flip, explode or implode

Now playing

The artist and title from the dashboard's music panel. Hidden when nothing is set. Show label adds a "Now playing" label.

Donations

Donation total

The marathon's total, in its currency. With Count up the number counts from the old total to the new one when a donation comes in. Label adds text before it. Number language picks the thousands and decimal separators (English 1,234.50, Portuguese 1.234,50), or follows the marathon's language on Auto. Turn off Show cents to round to whole units.

Internal

Blocks placed in a scene are sources of their own internal type. They don't show in the module picker; you add them from the Blocks list, see Blocks.