Dynamic Timer is a third-party OBS Studio filter plugin that turns a text source into a configurable timer.
The timer is controlled through the filter enabled state, so the eye icon acts as start and pause. Multiple filter instances can be added to the same text source to create timer presets that can be toggled when needed.
- Countdown timer.
- Countup timer.
- Countdown to a specific time of day.
- Countdown to a specific date and time.
- Streaming timer that follows the OBS streaming state.
- Recording timer that follows the OBS recording state.
- Multiple display presets, including
MM:SS,HH:MM:SS, days plus hours, total hours, total minutes, and total seconds. - Optional final text when a countdown reaches zero.
- Optional count-up after a countdown finishes.
- Optional scene switch when the timer finishes.
- Source-scoped hotkeys for start/stop and reset.
- Multi-instance workflow for timer presets on a single text source.
- OBS Studio 30.x, 31.x, or 32.x
- Windows x64
- A Text (GDI+) or Text (FreeType 2) source
Recommended installer:
- Download the
*-setup.exefile from the latest GitHub release. - Close OBS Studio.
- Run the installer and select your OBS Studio installation folder.
- Start OBS Studio again.
Portable or manual installation:
- Download the release ZIP instead of the setup EXE.
- Extract the ZIP into your OBS Studio installation folder, or copy the
included
obs-pluginsanddatafolders into it. - Start OBS Studio again.
Download the release archive and extract or copy its contents into your OBS Studio installation directory.
The final layout should include:
obs-plugins/64bit/dynamic-timer.dll
data/obs-plugins/dynamic-timer/locale/en-US.ini
data/obs-plugins/dynamic-timer/locale/de-DE.ini
The packaged release also includes INSTALL.bat, which can copy the plugin
files into a selected OBS directory.
Restart OBS after installation.
- Create a Text (GDI+) or Text (FreeType 2) source.
- Right-click the text source and open
Filters. - Add
Dynamic Timeras an effect filter. - Choose a mode and configure the mode-specific time settings.
- Choose a display format.
- Enable the filter with the eye icon to start the timer.
- Disable the filter to pause the timer.
The filter writes the formatted timer text directly into the text source.
Countdown: Counts down from a configured duration.Countup: Counts up from an optional start offset.Specific time of day: Counts down to a time today.Specific date and time: Counts down to an exact date and time.Streaming timer: Displays the current stream duration.Recording timer: Displays the current recording duration.
MM:SS, for example05:30HH:MM:SS, for example00:05:30H:MM:SS, for example0:05:30MM:SS.HH, for example05:30.42Days + Hours, for example1 T 03:14Hours only, for example2Minutes only, for example40Seconds total, for example330
Each filter instance exposes hotkeys in OBS settings:
Dynamic Timer: Start/Stop (toggle filter)Dynamic Timer: Reset
Because the hotkeys are tied to the filter instance, you can create multiple timer presets on the same text source and control them separately.
Example setup on one text source:
- Filter A: 5 minute countdown with final text
- Filter B: countup timer
- Filter C: stream timer
Enable one filter at a time to choose which timer preset currently controls the text source.
- Added
Hours onlyandMinutes onlydisplay formats.
- Reworked the property UI into clearer groups.
- Replaced a total-seconds input with separate hours, minutes, and seconds fields.
- Replaced the format string workflow with display presets.
- Added automatic migration for 1.0.0 settings.
- Initial native plugin release.
- Ported the core workflow from an advanced timer Lua script.
- Added six timer modes.
- Added filter-enabled start/pause behavior.
- Added source-scoped toggle and reset hotkeys.
Dynamic Timer is licensed under GPL-2.0-or-later.
Dynamic Timer is an unofficial third-party plugin and is not affiliated with or endorsed by the OBS Project.
AI-assisted tools were used during development and release preparation. The maintainer is responsible for reviewing, testing, and publishing the released plugin.