GameMaker (2.0 - 2.2.x)

GMS Timers


You must be logged in to obtain assets


GMS Timers: Better Alarms, Intervals and Cooldowns!


  • More readable alarms
  • Repeated alarms (intervals)
  • Global alarms (not tied to an instance)
  • Built-in cooldowns

Replace and extend Game Maker's built-in alarm system for greater readability, streamlined code and more possibilities!

Expands the basic 'alarm' concept to 'Timers', with three different possibilities:

  • Alarm: Just like GM's alarms, runs code after an interval)
  • Interval: Repeatedly runs code after an interval)
  • Cooldown: Restores a variable to true/false after an interval to indicate cooldown is over.

Usage Examples:

setAlarm(60, doThing)           
setInterval(60, doThingRepeatedly)
canDoThing = true

if (canDoThing) {
    setCooldown("canDoThing", 60, true) //Sets canDoThing to false, restores it to true in 60 frames

Includes scripts to pause and resume alarms, intervals and cooldowns! If you want to pause all your timers, just use pauseTimers(). Great for pausing/unpausing your game!


  • Restructured the way global/local Timers are handled
  • Fixed bugs
  • Added logging variables to TimerManager (verbose timer setting, verbose timer clearing)
  • Added more utility scripts (alarmExists, intervalExists, ...)
  • Changed callback parameter to raw script to string because of the way GM handles script indices for extensions
  • Fixed scope in backend scripts (they now all run in with(TimerManager))
  • Bug fix: If an alarm's callback re-set the alarm, it would be cleared anyway.
  • Bug fix: Callbacks deleting their own timer crashed the game.


End User Licence Agreement (EULA).

Age Rating: 4+


GMS2 - Version 1.1.1. Published March 25, 2020

Loading, please wait

Package contents

Loading, please wait

What is the issue?

Loading, please wait