This article is about the value. For more information on the block that reports this value, see Timer (block).
An image of the timer on the project display.

The Timer is a feature in Scratch that records how much time, in seconds, have passed since the last time the green flag was clicked or the timer was reset.

The timer is updated once per frame.[1]

Related Blocks

The two blocks related to the timer.

The timer is associated with two blocks, both found in the Sensing category:

Starting from Scratch 2.0, this block is also available:

How it works

The timer works in the following ways:

  • Continuously counts upwards by milliseconds
  • Cannot be paused or stopped (that would imply pausing or stopping the flow of time itself)
  • Shows seconds, not minutes or larger units, even when the current value is sixty seconds or longer
  • Resets only when the Green Flag is clicked or by execution of the Reset Timer block
  • Continues even when the project stops running

Alternatives

One workaround is to increment a "timer" variable by 1/30th every frame; since Scratch runs at 30 frames per second, this can approximate an increase of 1 per second.

when gf clicked
set [timer v] to [0]
forever
    wait (0) secs
    change [timer v] by ((1) / (30))

This is, however, less accurate than the timer, especially if the frame rate drops below 30 fps, and can be affected by other scripts.[2]

Another workaround involves the Days Since 2000 block, which is itself a highly precise timer.

when gf clicked
set [timestamp v] to (days since 2000)
forever
set [timer v] to ((86400) * ((days since 2000) - (timestamp)))

The drawback to both of these workarounds is that the actual timer continues to increase after the project has been stopped, while these scripts do not.

Example Uses

The timer is commonly used in projects that require a clock of some sort, such as racing projects. Other uses include:

References

Cookies help us deliver our services. By using our services, you agree to our use of cookies.