OBS Lua - Comprehensive Stopwatch & Countdown Timer (2025)

Item​

PROPERTIES DESIGN​

Version​

Mode Available​

1​

  1. Timer Mode
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Count Up”,
        2. “Count Down”.
      2. Use dynamic options: No,
      3. Default value: “Count Up”,
      4. On Change: “Hide or display relevant properties”.

0.2
2.0 (Expanded)​

Always

2​

  1. Layout
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Basic”,
        2. “Advanced”,
      2. Use dynamic options: No,
      3. Default value: “Basic”,
      4. On Change: “Hide or display properties”.

2.0​

Always

3​

  1. Timer Settings
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Hidden”,
        2. “Expanded”,
      2. Use dynamic options: No,
      3. Default value: “Hidden”,
      4. On Change: “Hide or display properties”.

4.2​

Always

4​

  1. Timer Source
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Select”,
      2. Use dynamic options: Yes,
        1. List All available Names for Text Sources,
      3. Default value: “Select”,
      4. On Change: “”.

0.2​

Always

5​

  1. Count Down Type
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Hours, Minutes, Seconds”,
        2. “Specific Date & Time”,
      2. Use dynamic options: No
      3. Default value: “Hours, Minutes, Seconds”,
      4. On Change: “Hide or display relevant properties”.

2.9​

Count Down

6​

  1. Day Text Format
    1. Type: Text input,
    2. Default value: “# Day”,
    3. On Change: “Updates Timer Display”.

2.9.1​

Count Down

7​

  1. Days Text Format
    1. Type: Text input,
    2. Default value: “ Days”,
    3. On Change: “Updates Timer Display”.

2.9.1​

Count Down

8​

  1. Month
    1. Type: Dropdown list,
      1. Available Static Options:
        1. "Select",
        2. " January",
        3. "February",
        4. "March"
        5. "April",
        6. "May",
        7. "June",
        8. "July",
        9. "August",
        10. "September",
        11. "October",
        12. "November",
        13. "December",
      2. Use dynamic options: No,
      3. Default value: “Select”,
      4. On Change: “Updates Timer Display”.

2.9​

Count Down

9​

  1. Year
    1. Type: Integer input,
    2. Default value: “2023”,
    3. On Change: “Updates Timer Display”.

2.9.1​

Count Down

10​

  1. Day
    1. Type: Integer input,
    2. Default value: “1”,
    3. On Change: “Updates Timer Display”.

2.9.1​

Count Down

11​

  1. Hours
    1. Type: Integer input,
    2. Default value: “0”,
    3. On Change: “Updates Timer Display”.

2.0​

Count Down

12​

  1. Minutes
    1. Type: Integer input,
    2. Default value: “0”,
    3. On Change: “Updates Timer Display”.

2.0​

Count Down

13​

  1. Seconds
    1. Type: Integer input,
    2. Default value: “0”,
    3. On Change: “Updates Timer Display”.

2.0​

Count Down

14​

  1. Timer Format
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Display full format,
        2. “No leading zeros”,
        3. “No leading zeros, no split seconds”,
        4. “No split seconds”,
        5. “Custom”,
      2. Use dynamic options: No,
      3. Default value: “Display full format”,
      4. Conditional: If “Custom” is selected “Time Format” will be shown,
      5. On Change: “Hide or display relevant properties”.

3.0 (Expanded)
3.3 (Expanded)
4.8 (Expanded)

Always

15​

  1. Time Format
    1. Type: Text Input,
    2. Default value: “$T$D:$H:$M:$S,$F”,
    3. On Change: “Adjust timer display”.
    4. Support Instructions: Yes ( "{param}" )

4.8
5.6​

(Expanded)

Always

16​

  1. Toggle Milliseconds
    1. Type: Text Input,
    2. Default value: “”,
    3. On Change: “”.

3.9​

Count Down

17​

  1. Display
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Show expired time stamp”,
        2. “Remove expired time stamp”,
      2. Use dynamic options: No,
      3. Default value: “Show expired time stamp”,
      4. On Change: “”.

3.9​

Count Down
deprecated 5.0​

18​

  1. Spit Source
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Select”,
      2. “Use dynamic options: Yes”,
        1. List All available Names for Text Sources,
      3. Default value:” Select”,
      4. Conditional: If valid a Text Source is selected then “Split Type” will be shown,
      5. On Change: “Hide or display relevant properties”.

1.0​

Count Up

19​

  1. Split Type
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Interval”,
        2. “Mark”,
        3. “Mark Interval”,
        4. “Interval Mark”,
      2. Default value: “Select”,
      3. On Change: “”.

1.0​

Count Up

20​

  1. Marker Settings
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Hidden”,
        2. “Expanded”,
      2. Use dynamic options: No,
      3. Default value “Hidden”,
      4. On Change: “Hide or display relevant properties”.

4.2​

Always

21​

  1. Marker A Time
    1. Type: Editable list,
    2. On Change: “”.

2.0​

Always

22​

  1. Marker B Time
    1. Type: Editable list,
    2. On Change: “”.

2.0​

Always

23​

  1. Reset Marker A Text
    1. Type: Integer input,
    2. Default value: “3”,
    3. On Change: “”.

5.0​

Always

24​

  1. Reset Marker B Text
    1. Type: Integer input,
    2. Default value: “3”,
    3. On Change: “”.

5.0​

Always

25​

  1. Marker A Audio
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “None”,
        2. “Allow multiple selections”,
      2. Use dynamic options: Yes,
        1. List All available Names for Media Sources,
      3. Default value “None”,
      4. Conditional: "If 'Allow multiple selections' selected then 'Show/Hide Marker A Audio List' will be shown",
      5. On Change: “Show/Hide relevant properties”.

2.0​

Always

26​

  1. Marker A Audio List
    1. Type: Editable list,
    2. Use: Define Names for Media Sources,
    3. On Change: “”.

5.0​

Always

27​

  1. Marker B Audio
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “None”,
        2. “Allow multiple selections”,
      2. Use dynamic options: Yes,
        1. List All available Names for Media Sources,
      3. Default value “None”,
      4. Conditional: "If 'Allow multiple selections' selected then 'Show/Hide Marker B Audio List' will be shown",
      5. On Change: “Show/Hide relevant properties”.

2.0​

Always

28​

  1. Marker B Audio List
    1. Type: Editable list,
    2. Use: Define Names for Media Sources,
    3. On Change: “”.

5.0​

Always

29​

  1. Timer Expired Audio
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “None”,
      2. Use dynamic options: Yes,
      3. List All available Names for Media Sources,
      4. Default value “None”,
      5. On Change: “”.

4.2​

Count Down

30​

  1. Media Playback Limit
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Enabled”,
        2. “Disabled”,
      2. Use dynamic options: No,
      3. Default value “Disabled”,
      4. On Change: “Show/Hide relevant properties and enable disable relevant features”.

2.0​

Always

31​

  1. Marker A Duration
    1. Type: Integer Slider,
    2. Default value: “5”,
    3. Conditional: Setting to 0 = disabled,
    4. On Change: “”.

2.0​

Always

32​

  1. Marker B Duration
    1. Type: Integer Slider,
    2. Default value: “5”,
    3. Conditional: Setting to 0 = disabled,
    4. On Change: “”.

2.0​

Always

33​

  1. End Audio Duration
    1. Type: Integer Slider,
    2. Default value: “5”,
    3. Conditional: Setting to 0 = disabled,
    4. On Change: “”.

4.2​

Count Down

34​

  1. Normal Colour
    1. Type: Colour Select,
    2. Default value: “#ffffff”,
    3. On Change: “”.

2.0​

Always

35​

  1. Marker A Colour
    1. Type: Colour Select,
    2. Default value: “#edf340”,
    3. On Change: “”.

2.0​

Always

36​

  1. Marker B Colour
    1. Type: Colour Select,
    2. Default value: “#5a0505”,
    3. On Change: “”.

2.0​

Always

37​

  1. Marker Notes
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Enabled”,
        2. “Disabled”,
      2. Use dynamic options: No,
      3. Default value “Disabled”,
      4. On Change: “Hide or display relevant properties”.

3.2​

Always

38​

  1. Marker A Note Source
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Select”,
      2. Use dynamic options: Yes,
        1. List All available Names for Text Sources,
        2. List All available Names for Group Sources, (all nested text sources will be used)
      3. Default value “Select”,
      4. On Change: “”.

3.2​

Always

39​

  1. Marker B Note Source
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Select”,
      2. Use dynamic options: Yes,
        1. List All available Names for Text Sources,
        2. List All available Names for Group Sources, (all nested text sources will be used)
      3. Default value “Select”,
      4. On Change: “”.

3.2​

Always

40​

  1. Marker A Note
    1. Type: Text Input,
    2. Default value: “”,
    3. On Change: “”.

3.2​

Always

41​

  1. Marker B Note
    1. Type: Text Input,
    2. Default value: “”,
    3. On Change: “”.

3.2​

Always

42
  1. Hide Marker A Note
    1. Type: Integer Slider,
    2. Default value: “3”,
    3. Conditional: Setting to 0 = disabled,
    4. On Change: “”.

5.0​

Always

43
  1. Hide Marker B Note
    1. Type: Integer Slider,
    2. Default value: “3”,
    3. Conditional: Setting to 0 = disabled,
    4. On Change: “”.

5.0​

Always

44​

  1. Auto Recording
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Disabled”,
        2. “Timer Start”,
        3. “Timer Expires”,
        4. “Timer Visible”,
        5. “Marker A Time”,
        6. “Marker B Time”,
      2. Use dynamic options: No,
      3. Default value “No”,
      4. On Change: “”.

2.0​

Always

45​

  1. Timer Prefix
    1. Type: Text Input,
    2. Default value: “”,
    3. On Change: “Update Timer prefix display”.
    4. Support Instructions: Yes ( "{param,param}" )

2.4​

Always

46​

  1. Timer Suffix
    1. Type: Text Input,
    2. Default value: “”,
    3. On Change: “Update Timer suffix display”.
    4. Support Instructions: Yes ( "{param,param}" )

3.0​

Always

47​

  1. Active Source
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Select”,
      2. Use dynamic options: Yes,
        1. List All available Names for Text Sources,
      3. Default value “Select”,
      4. On Change: “”.

2.8​

Count Down

48​

  1. Timer Expire Event
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Select”,
        2. “TIMER END TEXT”,
        3. “Source List”,
        4. “Scene List”,
        5. “Auto List”,
      2. Use dynamic options: No,
      3. Default value “Select”,
      4. Conditional: Expands features when timer expires, selected feature dependent,
      5. On Change: “Show/Hide relevant properties and enable disable relevant features”.

2.8
5.1 (Expanded)​

Count Down

49​

  1. Auto List
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Select”,
      2. Use dynamic options: Yes,
        1. List All available Names for Group Sources, (all nested text sources will be used)
      3. Default value “Select”,
      4. On Change: “”.

5.1​

Count Down

50​

  1. Timer Expired Text
    1. Type: Text Input,
    2. Default value: “”,
    3. On Change: “Update Timer suffix display”.

2.0​

Count Down

51​

  1. Cycle List
    1. Type: Editable list,
      1. Use: Define Names for Sources,
      2. Conditional: “Will only allow the appropriate types, will disregard others”
      3. On Change: “”.

2.8​

Count Down

52​

  1. Cycle Direction
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Ascending”,
        2. “Descending”,
      2. Use dynamic options: No,
      3. Default value “Ascending”,
      4. Conditional: ””,
      5. On Change: “”.

5.1 (Expanded)​

Count Down

53​

  1. Timer Manipulation
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “Hidden”,
        2. “Expanded”,
        3. “Disabled”,
      2. Use dynamic options: No,
      3. Default value “Disabled”,
      4. Conditional: Expands features,
      5. On Change: “Show/Hide relevant properties and enable disable relevant features”.

4.7​

Always

54​

  1. Add Seconds
    1. Type: Group,
    2. Name: Add seconds to timer,
      1. Group Item Name: Set 1,
      2. Type: Integer Input,
      3. Default value: “5”,
      4. Step: “15”,
      5. On Change: “”,
      6. Hotkey Available: Yes, must be assigned.
    3. Group Item Name: Set 2,
      1. Type: Integer Input,
      2. Default value: “15”,
      3. Step: “15”,
      4. On Change: “”,
      5. Hotkey Available: Yes, must be assigned.
    4. Group Item Name: Set 3,
      1. Type: Integer Input,
      2. Default value: “30”,
      3. Step: “15”,
      4. On Change: “”,
      5. Hotkey Available: Yes, must be assigned.
    5. Group Item Name: Limit,
      1. Type: Integer Input,
      2. Default value: “0”,
      3. Step: “1”,
      4. Conditional: Setting 0 = infinite,
      5. On Change: “”,
    6. Group Item Name: Used,
      1. Type: Integer Input,
      2. Default value: “0”,
      3. Step: “1”,
      4. On Change: “”,
    7. Group Item Name: Limit Note,
      1. Type: Dropdown list,
        1. Available Static Options:
          1. “Select”,
        2. Use dynamic options: Yes,
          1. List All available Names for Text Sources,
      2. Default value: “Select”,
      3. On Change: “”,
    8. Group Item Name: Refresh,
    9. Type: Button,
    10. On Click: “Refresh Properties”.

4.5
4.7 (Expanded)​

Always

55​

  1. Subtract Seconds
    1. Type: Group,
    2. Name: Subtract seconds from timer,
    3. Group Item Name: Set 1,
      1. Type: Integer Input,
      2. Default value: “5”,
      3. Step: “15”,
      4. On Change: “”,
      5. Hotkey Available: Yes, must be assigned.
    4. Group Item Name: Set 2,
      1. Type: Integer Input,
      2. Default value: “15”,
      3. Step: “15”,
      4. On Change: “”,
      5. Hotkey Available: Yes, must be assigned.
    5. Group Item Name: Set 3,
      1. Type: Integer Input,
      2. Default value: “30”,
      3. Step: “15”,
      4. On Change: “”,
      5. Hotkey Available: Yes, must be assigned.
    6. Group Item Name: Limit,
      1. Type: Integer Input,
      2. Default value: “0”,
      3. Step: “1”,
      4. Conditional: Setting 0 = infinite,
      5. On Change: “”,
    7. Group Item Name: Used,
      1. Type: Integer Input,
      2. Default value: “0”,
      3. Step: “1”,
      4. On Change: “”,
    8. Group Item Name: Limit Note,
      1. Type: Dropdown list,
        1. Available Static Options:
          1. “Select”,
        2. Use dynamic options: Yes,
          1. List All available Names for Text Sources,
        3. Default value: “Select”,
        4. On Change: “”,
    9. Group Item Name: Refresh,
      1. Type: Button,
      2. On Click: “Refresh Properties”.

4.5
4.7 (Expanded)​

Always

56​

  1. Manually set timer
    1. Type: Group,
    2. Group Item Name: HH,
      1. Type: Integer input,
      2. Default value: “0”,
      3. On Change: “”,
    3. Group Item Name: MM,
      1. Type: Integer input,
      2. Default value: ”0”,
      3. On Change: “”,
    4. Group Item Name: SS,
      1. Type: Integer input,
      2. Default value: ”0”,
      3. On Change: “”,
    5. Group Item Name: FF,
      1. Type: Integer input,
      2. Default value: ”0”,
      3. On Change: “”,
    6. Group Item Name: Autoload,
      1. Type: checkbox,
      2. Default value: unchecked,
      3. On Change: “”,
    7. Group Item Name: Set,
      1. Type: Button,
      2. On Click: “Apply settings to Timer”.

3.5​

Count Up

57​

  1. Start Timer
    1. Type: Button,
    2. On Click: “Activate Timer”.
    3. Hotkey Available: Yes, must be assigned.
    4. Available via Opt-In (see Split Start Pause Button)

5.1​

Always
conditional

58​

  • Start / Pause Timer
    1. Type: Button,
    2. On Click: “Activate / Stop Timer ”.
    3. Hotkey Available: Yes, must be assigned.
    4. Can be dedicated Pause only via Opt-In (see Split Start Pause Button)

5.1 (Expanded)​

Always

59​

  1. Split Time
    1. Type: Button,
    2. On Click: “Split Timer”.
    3. Hotkey Available: Yes, must be assigned.

1.0​

Count Up

60​

  1. Hide/Show Milliseconds
    1. Type: Button,
    2. On Click: “Toggle visibility for timer split seconds”.
    3. Hotkey Available: Yes, must be assigned.

3.9​

Count Down

61​

  1. Count Down/Count Up Direction Change
    1. Type: Button,
    2. On Click: “Toggle timer direction (positive/negative)”.
    3. Hotkey Available: Yes, must be assigned.

4.4​

Count Up

62​

  1. Reset Timer
    1. Type: Button.
    2. On Click: “Reset Timer to initial position”.
    3. Hotkey Available: Yes, must be assigned.

0.2​

Always

63​

  1. Set timer manually.
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “Display UI to adjust timer manually”.

3.2​

Count Up

64​

  1. Start Timer on Source Visible
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “Display Checkbox option to reset timer”.

2.0​

Always

65​

  1. Reset Timer on Source Visible
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “”.

2.0​

Always

66​

  1. Start Timer on Scene Active
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “Display Checkbox option to reset timer”.

3.8​

Always

67​

  1. Reset Timer on Scene Active
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “”.

4.6​

Always

68​

  1. Active Source Force Visibility
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “”.

3.9​

Count Down

69​

  1. Disable Script
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “Prevent Core Functions to execute”.

0.2​

Always

70​

  1. Enable Timer Direction
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “”.

4.4​

Count Up

71​

  1. Prevent Negative Time Value
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “”.

4.4​

Count Up

72​

  1. Backup Mode
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “Display Backup Mechanisms”.

3.3​

Always

73​

  1. Enable debug logging.
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “”.

5.0​

Always

74​

  1. Split Start Pause Button.
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “”.

5.1​

Always

75​

  1. Backup Folder
    1. Type: Checkbox,
    2. Default value: unchecked,
    3. On Click: “Reveal additional backup properties”.

3.3​

Always

76​

  1. Load Settings
    1. Type: Dropdown list,
      1. Available Static Options:
        1. “No Files Selected” OR “Auto Import [ select file ]” (Conditional),
      2. Use dynamic options: Yes,
        1. List Names of all available files that are valid in directory,
      3. Conditional: If valid files are available in select directory path,
      4. On Select: “(when valid filename is selected) Import and apply all property settings from the selected file”,
      5. Default value: “No Files Selected”.

3.3​

Always

77​

  1. Export Settings
    1. Mode Displayed: Always,
    2. Type: Button,
    3. On Click: “Export current property settings to ‘json’ file”.

3.3​

Always

78​

  1. Disable Features
    1. Type: Group,
    2. Name: Split Seconds Toggle,
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    3. Name: Timer Time Split/Lap,
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”
    4. Name: Marker Settings,
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    5. Name: Text Color [Normal],
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    6. Name: Text Color [Marker A],
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    7. Name: Text Color [Marker B],
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    8. Name: Recording,
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    9. Name: Timer Text Prefix,
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    10. Name: Timer Text Suffix,
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    11. Name: Timer Manipulation,
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
    12. Name: Debugging,
      1. Group Item
      2. Type: Checkbox,
      3. Default value: checked,
      4. On Click: “”.
      5. Name: Backup,
        1. Group Item
        2. Type: Checkbox,
        3. Default value: checked,
        4. On Click: “”.

5.1​

Always

OBS Lua - Comprehensive Stopwatch & Countdown Timer (2025)

References

Top Articles
Latest Posts
Recommended Articles
Article information

Author: Pres. Lawanda Wiegand

Last Updated:

Views: 5939

Rating: 4 / 5 (51 voted)

Reviews: 82% of readers found this page helpful

Author information

Name: Pres. Lawanda Wiegand

Birthday: 1993-01-10

Address: Suite 391 6963 Ullrich Shore, Bellefort, WI 01350-7893

Phone: +6806610432415

Job: Dynamic Manufacturing Assistant

Hobby: amateur radio, Taekwondo, Wood carving, Parkour, Skateboarding, Running, Rafting

Introduction: My name is Pres. Lawanda Wiegand, I am a inquisitive, helpful, glamorous, cheerful, open, clever, innocent person who loves writing and wants to share my knowledge and understanding with you.