A downloadable asset pack

Download NowName your own price
FREE PLUGIN FEATURED

WAIT FOR GODOT

Godot-Style Timers + Async Trigger Engine for RPG Maker MZ


Unlimited independent named timers. Start, stop, pause, resume, loop, randomize — just like Godot Engine's Timer nodes. Plus Async Triggers that run actions automatically when conditions are met. Fully saved, fully compatible, 100% free.

Timer System

Create Unlimited named timers
Start / Stop / Pause / Resume Full state control
Loop Auto-restart on timeout
Randomize Random duration on every cycle
HUD Display Show timers on screen (M:SS, H:MM:SS, frames, S.S, S.SS, seconds, tenths)
Persistent Survives ClearAll — perfect for system timers

Async Trigger Engine

Timers watch conditions every frame and run actions automatically — no event needed!

Conditions State • Seconds Left • Elapsed • Loops • Timeouts • Variable • Switch
Operators == • != • < • <= • > • >=
Actions Common Event • Switch • Variable • Self Switch • Event Control • Timer Chain
Once Only Fire once, or re-arm every time the condition turns false → true

Event / NPC Control

SetEventEnabled Show / hide events
TeleportEvent Move events anywhere on the map
TurnEvent Rotate events (2,4,6,8)
MoveEvent Walk routes: U/D/L/R (e.g. "DDRU")
SetSelfSwitch Control self switches on any map
AutoSwitch Keep switches synced with timer state

Wait Commands

WaitForTimer WaitForSwitch WaitForVariable

Block the event until a timer expires, a switch turns ON/OFF, or a variable reaches a value.

Plugin Commands

Create Start Stop Pause Resume Restart Delete SetTime Randomize BindEvent Wait ToVariable ToSwitch ShowDisplay HideDisplay HideAllDisplays SetPauseMode AddTrigger ClearTriggers AutoSwitch ClearAutoSwitch SetEventEnabled TeleportEvent TurnEvent MoveEvent SetSelfSwitch WaitForSwitch WaitForVariable

Script Calls

$gameTimersMZ.create("boss", 60, false, true, 12) $gameTimersMZ.start("boss") $gameTimersMZ.stop("boss") $gameTimersMZ.pause("boss") $gameTimersMZ.resume("boss") $gameTimersMZ.restart("boss") $gameTimersMZ.delete("boss") $gameTimersMZ.remaining("boss") $gameTimersMZ.remainingFrames("boss") $gameTimersMZ.duration("boss") $gameTimersMZ.elapsed("boss") $gameTimersMZ.loopCount("boss") $gameTimersMZ.timeoutCount("boss") $gameTimersMZ.isRunning("boss") $gameTimersMZ.isPaused("boss") $gameTimersMZ.isStopped("boss") $gameTimersMZ.isExpired("boss") $gameTimersMZ.exists("boss") $gameTimersMZ.names() $gameTimersMZ.count() $gameTimersMZ.setDisplay("boss", {x:100, y:50, format:"M:SS", color:"#ff0000"}) $gameTimersMZ.showDisplay("boss", -1, 0, "M:SS") $gameTimersMZ.hideDisplay("boss") $gameTimersMZ.setEventEnabled(5, false) $gameTimersMZ.teleportEvent(5, 10, 15) $gameTimersMZ.turnEvent(5, 6) $gameTimersMZ.moveEvent(5, "DDRU") $gameTimersMZ.setSelfSwitch(-1, 5, "A", true)

10 PUZZLE IDEAS

1. Timed Levers

9 levers in sequence. Press the wrong one or run out of time → restart. Timer resets after each correct lever.

2. Moving Platforms

AutoSwitch syncs platform position with timer. Platform moves while timer runs. Perfect for platformers.

3. Boss Enrage

60-second timer on boss start. On timeout, common event changes boss AI, speed, attacks. Action RPG essential.

4. Patrolling Guards

3 timers with random durations. Each trigger moves a guard via MoveEvent. Never predictable patrols.

5. Time-Sensitive Dialogue

NPC: "You have 10 seconds!" Timer expires → AutoSwitch changes NPC page to "You waited too long!"

6. Escape Sequence

30-second timer. AutoSwitch changes lighting every 5s. Triggers at 10s, 5s, 0s for countdown intensity.

7. Random Event Spawner

Looping timer with Randomize (10-30s). On timeout, TeleportEvent moves enemy to random position.

8. Speedrun Timer

Player completes 3 tasks. Timer runs. ToVariable stores remaining time. Conditional Branch rewards speed.

9. Chain Reactions

Timer A triggers Timer B after 5s. Timer B triggers Timer C after 3s. Perfect for dramatic cutscenes.

10. Save The Village

5-minute timer. Each rescued NPC adds +30s. Timer triggers common event at 0. Multiple endings based on time!

Plugin Parameters

Pause In Menu (default: true) Pause With Message (default: false) Pause In Battle (default: false) Default Format (M:SS, H:MM:SS, frames, S.S, S.SS, seconds, tenths) Default X (-1 = center) Default Y Default Color (#ffffff) Outline Color (#000000) Font Size (28) Debug Mode (false)

Compatibility

JDK_JumpSystem JDK_SwimSystem JDK_PushSystem JDK_DashSystem QMovement AltimitMovement All MZ standard plugins

Quick Setup

  1. Place WaitForGodot.js in js/plugins/
  2. Enable it in Plugin Manager
  3. Add Plugin Commands to any event: WaitForGodot → Create
  4. Timer starts instantly with Auto Start ON
  5. Use AddTrigger for automatic actions, Wait for blocking sequences

Notes

  • Timers are frame-based (60 fps = 1 second) — never drift
  • Fully saved with the game — Continue and Load work perfectly
  • No dependencies — RPG Maker MZ only
  • MV is not supported — MZ only
  • 100% FREE — Royalty-free for commercial and non-commercial projects

Made by Rpx & Just Dev — in collaboration with GDSchool

Download

Download NowName your own price

Click download now to get access to the following files:

WaitForGodot.js 88 kB