RPG Maker Systems • Mechanics • Game Development

RPG Maker Day & Night Cycle Step-by-Step Tutorial

Learn how to build a day and night cycle system in RPG Maker using variables, events, and screen tint overlays. 💛

All RPG Maker EnginesBeginner Tutorial~50 min
RPG Maker Day & Night Cycle system banner with compatibility badges for multiple RPG Maker versions.
Good news: This system works with any version of RPG Maker. If you use MZ or MV, open the demo file and follow along. Download here!

Let’s build this step by step!

We’re going to set up a fully functional time system that adds life and motion to your project ✨ You'll also learn how to create a real in-game clock and a clean time display to transition your world from dawn to dusk and beyond.
Seconds → Minutes → Hours → Days • Game Time Logic • Screen‑tint Transitions • Custom HUD

What events you’ll create

We will build exactly 3 events for this system (one-time setup):
1
Parallel event 'Game Time (Main)'
Handles Seconds → Minutes → Hours → Days rollover logic. This is the heart of your clock.
2
Parallel event 'Day/Night Tint'
Checks the current hour and applies the correct screen tint (Night, Sunrise, Day, Sunset, Evening).
3
Autorun event 'Pre-Set Time'
Sets the starting time (example: 12:00 PM) and applies the correct tint before gameplay begins. Then disables itself using a Self Switch.
Great tip: If you're just testing, you can place your events on a map first. Once everything works as intended, you can always move them into Common Events for multi-map projects.

Video walkthrough

Prefer a visual walkthrough? Here you go 💛

Before you start

1
If you have MZ/MV
Open the provided demo file for your engine. The key event commands are placed in the top-left corner of the demo map for learning (one Autorun + two Parallel events). You can move them to Common Events later for multi-map projects.
2
If you use a different engine
Create the events manually in your own project. A clean way is placing the setup events in the top-left corner of a map first, then moving them into Common Events once you’re happy.

Part 1. Create the Game Time (Seconds, Minutes, Hours)

Use Variables + Conditional Branches inside a Parallel event to keep time ticking.
How time will roll over
60 Seconds: +1 Minute, reset Seconds to 0
60 Minutes: +1 Hour, reset Minutes to 0
24 Hours: +1 Day, reset Hours to 0
(Optional) 12 Months: +1 Year
1
Create a Parallel event: “Game Time (Main)”
Make a new event and set Trigger to Parallel. This event will run continuously and update your variables.
2
Create variables
Go to Control Variables > Single Variable. There we'll create variables for: Seconds, Minutes, Hours, Days, and optionally Months, Years.
3
Tick seconds
In your Parallel event, do:
Control Variables → Seconds → Add Constant 1
Now Seconds will increase by one as the event runs.
4
Convert seconds into minutes
Add a Conditional Branch: If Seconds ≥ 60 then: Minutes += 1, and reset Seconds like this: Seconds = 0. Now Minutes will increase every 60 Seconds.
5
Repeat for hours and days
Do the same rollover logic: If Minutes ≥ 60 then Hours +1 and reset Minutes. Then If Hours ≥ 24 then Days +1, and reset Hours to zero.
Optional challenge: Add Months and Years too, if you want to have seasonal changes or long-term events in your game.

Snippet Guide

Code snippets to help you with Part 1 💛
RPG Maker variables tracking seconds, minutes, hours, and days RPG Maker event command configuring variable Seconds to increment by 1 each tick.
4 images

Part 2. Time Display (so we can see it working)

First, we verify the variables update. Then we make a dynamic display that updates in real-time.
1
Quick test (recommended)
Place a simple object event (like a sign) and show a message using Show Text command that displays your variables.
\V[1] Seconds | \V[2] Minutes | \V[3] Hours | \V[4] Days | \V[5] Months
Playtest! Click a few times on a signpost. If numbers change, your clock is ticking:
25 Seconds | 17 Minutes | 12 Hours | 1 Days | 0 Months
2
Make the display update dynamically
Use a Dynamic Text Picture plugin (MV users: DTextPicture.js / MZ: TextPicture.js). Turn it ON in Plugin Manager, then: add a Plugin Command that defines your text, and use Show Picture without selecting an image.
3
Use variables inside the text
Example: Hours is variable 3, Days is variable 4, then write \V[3] (or \V[003] to display it. You can also add color with \C[].
Important: Make sure to assign a unique number to each image. Each picture needs its own picture ID, or they’ll overwrite one another.

Snippet Guide

Click on the image below to see code snippets for Part 2 💛
RPG Maker day and night cycle showing in-game time display with hour, minute, and day counter.
3 images

Part 3. Smooth Day/Night Tint (based on Hours)

Now we make the world “feel alive” by tinting the screen depending on the Hour.
Suggested tint schedule
12AM to 5AM = Deep Night (0 → 5)
5AM to 8AM = Sunrise (5 → 8)
8AM to 6PM = Daytime (8 → 18)
6PM to 8PM = Sunset (18 → 20)
8PM to 12AM = Evening (20 → 24)

Steps (2)

1
Create a Parallel event: “Day/Night Tint”
Make a second Parallel event (or Common Event) that checks Hours and applies the correct tint.
2
Use conditional branches by hour range
Build five branches based on military time, where '0' is midnight and '18' is 6PM. Example: If Hours ≥ 20 then Evening tint, Else If Hours ≥ 18 then Sunset, Else If Hours ≥ 8 then Day, Else If Hours ≥ 5 then Sunrise, Else → Deep Night.
Pro Tip: Keep tint durations slightly longer (at least 30–60 frames) so transitions don’t feel harsh.

Part 4. Start the game at a specific time (like 12pm)

By default it starts at midnight. Let’s pre-set the clock and apply the right tint.
1
Create an Autorun event: “Pre-Set Time”
Set the event trigger to Autorun, set Hours/Minutes to what you want. For example, for noon (which is 12:00pm), set Hours to 12 and Minutes to 0.
Control Variables → Hours → Set 12
Control Variables → Minutes → Set 0
Apply a Daylight tint so you don’t start with night colors.
Tint Screen: (0,0,0,0), 120 frames
2
Turn it off with a Self Switch
Add a new page conditioned by Self Switch A, and turn Self Switch A ON at the end, so the Autorun doesn’t freeze the game.
Important: Make sure to deactivate the Autorun event, otherwise it’ll loop endlessly and freeze the game.

Snippet Guide

Click on the image below to see code snippets for Part 3 & 4 💛
RPG Maker day and night cycle showing screen tint overlays for different time periods.
4 images

Part 5. Optimization (make it run smooth)

Parallel events can be heavy if they check too often. Let’s reduce unnecessary work.
Performance checklist
✔ Trigger events only when needed
✔ Minimize frame checks
✔ Use Wait commands strategically
1
Use a Wait command (60 frames = 1 second)
Our system now constantly checks if the ‘Seconds’ variable has hit 60:
If:Seconds ≥ 60 <-- drains resources and can slow gameplay down!
Let’s fix that in two easy steps! First, change the check from 60 to 1 to prevent overloading the system:
Conditional Branch → Seconds → Set 1
Won’t this make the game count seconds way too fast? That's right! If we stop here, the game will think each second equals a full minute. So that’s where a Wait command comes in!
Wait: 60 frames
A simple Wait command at the end of your Parallel event prevents the engine from running checks 60 times per second. It keeps the system smooth without unnecessary processing.
Fun fact! If you skip the Wait command, time in your game will fly by at lightning speed! I found this exciting and used it in the Pro version to demonstrate the mechanics in action 😅
2
Same idea for the tint event
Your tint event is also Parallel, without a wait command, it can keep reapplying tint constantly (multiple times per second!). Add a Wait command at the very end of this event to limit checks and avoid draining resources.
Good to know In the Pro version of the system, I’ll show you how to create a Smart System that makes the screen tint to change only when the hour changes!

Snippet Guide

Click on the image below to see code snippets for Part 5 💛
RPG Maker event commands for parallel event #1 optimizations RPG Maker event commands for parallel event #2 optimizations
2 images

Free extras! Make events react to time

Did you know? You can make your game world respond in so many fun ways!

Steps

1
Make Events React to Time
Make house windows open/close, lanterns light at night, fireflies appear, or set shops open between set hours.
2
Global Time
Apply time cycles to the world map with ease! Plus, learn how to adjust game time speed (fast-forward effect included as a fun mini-game!)
3
AM/PM Format
Set a beautiful custom HUD with 12-hour time display.
4
Freeze the clock
Pause Time during dialogue, cutscenes, or emotional moments.
5
Boost Performance
Even more smart optimizations and pro tips to keep your game running smoothly.
Want the upgraded version? The Pro version adds global time, custom HUD, time-speed control, and smart optimizations. Expand for free! Simply join the Anya & Lolo Club to get a special link sent straight to your inbox 💌

Go Pro for Free! 🎁

Ready to level up your RPG experience? Click on the image below!
RPG Maker Day & Night Cycle Pro upgrade banner for free extras and advanced features
Want to hang out? Join the Discord or follow us on your favorite platform below 💛