Comprehensive Stopwatch & Countdown Timer

OBS Lua Comprehensive Stopwatch & Countdown Timer 5.8

Small fix and user experience improvements

* The action to end media ('caution') was fixed.
All things up and all things down in time.


1) Stopwatch
2) Countdown

Property Configuration:

1) Basic - Hides all advanced settings
2) Advanced - Show all available configurations


Properties defined in 'Advanced' settings will remain active even if the config is set to 'Basic'. The purpose here is to remove clutter settings.

Some options are hidden, and will only become available if they are relevant to the parent property.

The useris able to define a time tamp:

1) Full (Hours:Minutes:Seconds:Splitseconds)
2) Leading Zeros Removed (Cleaner look)
3) Leading Zeros Removed & Splitseconds removed (Cleaner look)

** Countdown Timer Only:

1) Count Down time defined by the user (Hours:Minutes:Seconds)

2) Auto Record at Defined Events:

2.1) "Timer Expires"
2.2) "Caution Time"
2.3) "Warning Time"
2.4 ) "Timer Visible"
2.5) "Timer Start"

3) Switch Scene to defined scene when "Timer Expires"

4) Render user defined "TIMER END TEXT" when "Timer Expires"

** Stopwatch Timer Only:

1) Split Time Stamps

1.1) Split times rendered in a secondary Text Source defined by the user.
1.2) Various format options available.

Note: Format options limited due to source type features.

** Global Features:

1) Text Effects (Caution Timstamp) defined by the user.
2) Play Media Source (Caution Timstamp) defined by the user.
3) Define max play time (Seconds) for Media sources which have looping enabled (In Media Source properties)
4) Trim Timestamp
5) Hotkeys:

5.1) Start/Pause
5.2) Split Time
5.3) Reset

6) Start on Source Visible

*** Bugs:

Any feedback will be great as there might be some issues.

** Contributors & Credits

Although I coded this Script from scratch, much of it was inspered by various other Scripts created by very talented people:

1) Tom Dymel
2) cg2121
3) Tormy
4) bfxdev






  • Stopwatch-basic.png
    88.4 KB · Views: 1,030
Fixed incorrect reference
Fixed incorrect list type
Add new function: Split Time

For the Split function a new Text Source must be assigned.


Please report any issues, as there are always something missed during testing.
Stability fix.

Fixed an issue causing OBS to crash on exit
Fixed an issue where text color changes were not assigned.
Optimized code and cleanup
Fixed a small issue where the audio file continue to play if interupted (paused during play)
Version 0.2

Add ability to define media to play at 'Caution' and 'Warning' state.
Media file will be reset after media ended, or if Media has looping enabled, user can define a time in Seconds to disable media