Skip to content

Companion Variable Reference ​

Full variable list for the Bitfocus Companion module described in the Companion module section of Chapter 5 — Control Methods.

Every variable here updates the moment the server reports a change — there's no polling delay.

Per-timer variables ​

Published for every timer currently known to the module, using the timer's API ID as the prefix: timer_{apiId}_*. For example, the timer with API ID 1 publishes timer_1_name, timer_1_time, timer_1_state, and so on.

VariableExample valueDescription
timer_{apiId}_nameSermonThe timer's display name.
timer_{apiId}_time12:34Current time, formatted M:SS / H:MM:SS. Clock-mode timers format as a wall-clock time instead; SMPTE-mode timers show the incoming timecode. Blank for a countdown-to-time timer sitting in standby (not running or overrunning).
timer_{apiId}_staterunningRaw runtime state: stopped, running, paused, or overrun.
timer_{apiId}_state_icon⏸A single-character icon showing what a play/pause button would do next: ⏸ while running, ▶ while paused or stopped, ↩ while overrunning.
timer_{apiId}_modemanualRaw timer mode (manual, countdown_to_time, countup_from_time, clock, external, message, smpte, etc.).
timer_{apiId}_duration45:00The timer's configured initial duration, formatted the same way as _time.
timer_{apiId}_is_displayedtrue"true"/"false" — whether the timer is currently on any Clock Window's display stack.
timer_{apiId}_smpte_timecode01:02:03:04Raw incoming SMPTE timecode. Blank for non-SMPTE timers.
timer_{apiId}_show_labeltrue"true"/"false" — whether this timer has its on-screen label enabled.
timer_{apiId}_labelGuitarThe resolved label text (timer name, or a custom label) when show_label is true. Blank when label display is off.
timer_{apiId}_warning_reachedfalse"true"/"false" — true only while the timer is active (running or overrunning) and past its warning threshold but not yet past critical. Direction-aware (count-up timers compare >=, count-down timers <=).
timer_{apiId}_critical_reachedfalseSame as above, for the critical threshold.
timer_{apiId}_is_overrunningfalse"true"/"false" — shorthand for state === "overrun".
timer_{apiId}_mutedfalse"true"/"false" — whether this timer's audio cues/TTS are currently muted.
timer_{apiId}_active_clip_nameSlide 4Name of the clip/slide/cue currently active on this timer's source (ProPresenter slide label, Resolume/PVP clip name, or QLab cue ID). Blank if the timer has no source or the source has nothing active.
timer_{apiId}_video_offset_seconds12Stored video-offset value (seconds) for the currently active clip, if one has been learned via the Learn Video Offset action. Blank if none.
timer_{apiId}_video_offset_labelSlide 4Label of that stored video-offset entry. Blank if none.

Per-region variables ​

Published for every NDI clock region, twice: once by 1-based position in the region list, and once by the region's own name, sanitized to [A-Za-z0-9_-] (spaces and other punctuation become _). A region named "Left Screen" in position 1 publishes both clock_1_name and clock_Left_Screen_name with the same value — use whichever addressing scheme is more stable for your setup (position survives a rename; the name-based variant survives reordering).

Variable (by position)Variable (by name)Example valueDescription
clock_{n}_nameclock_{SanitizedName}_nameLeft ScreenThe region's display name.
clock_{n}_displayed_timer_nameclock_{SanitizedName}_displayed_timer_nameSermonName of the timer currently on top of this region's display stack. Blank if nothing is displayed.
clock_{n}_displayed_timer_api_idclock_{SanitizedName}_displayed_timer_api_id1API ID of that timer. Blank if nothing is displayed.
clock_{n}_displayed_timer_modeclock_{SanitizedName}_displayed_timer_modemanualMode of that timer. Blank if nothing is displayed.
clock_{n}_displayed_timer_timeclock_{SanitizedName}_displayed_timer_time12:34Formatted current time of that timer (same formatting rules as the per-timer _time variable). Blank if nothing is displayed.
clock_{n}_displayed_timer_stateclock_{SanitizedName}_displayed_timer_staterunningRuntime state of that timer, or the literal string empty if nothing is currently displayed in this region.

Global variables ​

VariableExample valueDescription
connection_statusconnectedconnected or disconnected — whether the module's WebSocket connection to the ClockBridge server is currently up.
active_presetSunday MorningName of the currently active full Preset (Chapter 4). Blank if no Preset is currently loaded/active.
timer_count6Total number of timers the module currently knows about.