The timer is extremely accurate and the value itself is not affected by lag. The timer will accumulate only one second of error after approximately 46 minutes.
Related Blocksblocks, both found in the Sensing category:
How it works
The timer works in the following ways:
- Continuously counts upwards by tenths of seconds
- Cannot be paused or stopped (that would imply pausing or stopping the flow of time itself)
- Shows seconds, not minutes or more — even when the current value is longer than sixty seconds
- Resets only when a project is opened inside Scratch or by execution of the Reset Timer block
- Continues even when its project stops running
A lot of Scratchers prefer to use a variable instead of the timer, because the timer does not stop when the stop button is pressed. This method, however, is just over 7% slower than the real timer. 
when gf clicked set [timer v] to (0) forever wait (1) secs change [timer v] by (1)
The accuracy can be improved slightly by reducing the wait by a few milliseconds, for example, to 0.99 seconds.
The timer is commonly used in projects that require a clock of some sort, such as racing projects. Other uses include: