A downloadable tool

Get this tool and 1 more for $9.49 USD
View bundle
Buy Now
On Sale!
10% Off
$5.99 $5.39 USD or more

Give your NPCs believable daily lives with time-based movement, pathfinding, and flexible visibility handling - all with beginner-friendly setup. Dynamic NPC Routines lets you assign schedules to your NPCs using a simple comment block inside their event. Watch characters walk to destinations throughout the day, disappear when they “enter” buildings, and reappear seamlessly - all with zero plugin commands or scripting.


(GIF from upcoming game Ashfield Hollow, using MalibuDarby's Horror City tileset)

✨ What Makes It Stand Out?

Unlike other routine systems that demand common events, parallel processes, or code knowledge, this plugin was built for clarity and ease of use. If you know how to type,  you already know how to use this plugin. Whether you’re a new developer or managing a complex town, it keeps things clean and scalable.

⏰ Time-Based Scheduling

  • NPC movement is driven by a single in-game hour variable
  • Define as many schedule slots as you want - characters move like clockwork

🚶 Smart Movement & Pathfinding

  • Automatically walks to destinations using built-in pathfinding
  • Routine only proceeds after the NPC arrives at their target tile

🧭 Facing Control

  • Choose which direction NPCs should face after arriving
  • Optional 30-frame delay makes facing feel more natural

🏘️ Off-Map Transitions (Enter/Exit Logic)

  • Allow NPCs to leave the map after arriving - simulating them entering a building
  • Works for inns, taverns, houses, workplaces, or any indoor destination
  • NPCs reappear automatically when their next visible routine activates
This isn’t just for going “home.” You can simulate a work shift, a tavern visit, or an NPC dropping by a friend’s house - just by assigning a new location.

🎚️ Switch Support

  • Trigger a switch when NPC is off-map for any destination (switchId2)
  • Optional second switch when the NPC is specifically at their home location (switchId)
  • Integrates seamlessly with lighting, music, or event visibility systems

🗨️ Dialogue Awareness

  • NPCs pause movement while talking to the player
  • No awkward mid-conversation disappearing

⚡ Optimized for Performance

  • Updates are staggered across NPCs to prevent CPU spikes
  • Caches previous paths to avoid recalculating unnecessarily
  • Designed to run across fully populated towns and dense maps

📝 How It Works

All behavior is defined inside a single comment block using simple key-value pairs. You specify the times, destinations, and directions. That’s it. No scripting, no common events, and no plugin commands.

Directions: 2 = down 4 = left 6 = right 8 = up 0 = leave the map (simulate building entry)

For each hour in the schedule, the NPC will move to the corresponding destination in order.

🧪 Built for Game Devs of All Skill Levels

Whether you’re making a cozy farming village, an immersive town simulation, or just want your NPCs to act like they have a life - it only takes a few lines to get started. With smooth movement, off-screen transitions, and optional logic triggers, it’s everything you need to make your world feel real.

No scripts. No clutter. Just dynamic behavior in a format anyone can use.

📜 Terms of Use

  • 🆓 Once purchased, the plugin can be used for both commercial and non-commercial projects
  • ✂️ Modification allowed for personal or project-specific use but you cannot remove the introductory metadata with instructions and developer information
  • 📦 Redistribution not allowed - do not re-upload or resell this plugin on other platforms
  • 🧩 No Credit required - credit is appreciated but not required


Updated 1 day ago
Published 3 days ago
StatusReleased
CategoryTool
AuthorBitQuest Studio
TagsRPG Maker, RPG Maker MZ

Purchase

Get this tool and 1 more for $9.49 USD
View bundle
Buy Now
On Sale!
10% Off
$5.99 $5.39 USD or more

In order to download this tool you must purchase it at or above the minimum price of $5.39 USD. You will get access to the following files:

NPC_Routines.js 11 kB

Development log

Comments

Log in with itch.io to leave a comment.

Hallo! Does this plugin need the clock & calendar system? (since its time triggered) thanks

It needs time saved in a variable. The routines are timed so if there is no time there is no routine.

You can set up the time system yourself and don’t need my clock and calendar system. Getting both together will just make the process a lot easier.

I see this says for " or any /indoor/ destination " does this work for them moving across multiple outdoor maps? what if you're entering their indoor destination map just before they do, are you going to see them come inside and walk to where they stand or is it built so they just suddenly appear in their standing destination in the " indoor map " ?
I'm looking for a plugin that allows dynamic movements between multiple bigger maps without causing jankiness like if you were to jump back and forth between maps while the NPC is traveling, for example.

Also do you know if its compatible with visustella plugins? the SiroGames one was exactly what i needed but unfortunately it isn't compatible.

Hello, the plugin can simulate transition movements indoors but does not handle multi-map routines.

I do not use Visustella so cannot comment on its compatibility.

Darn, this seemed like it could have been a good fix for my problem. guess i'll have to keep my eyes out for a solution then ^^; 

So just a quick question before I buy. I do just use the standard rpg maker mz character sheets. I see that you have an idle animation when there standing still. Will that be a problem for me? Since I don't have idle animations for my characters?

Hi! The plugin is designed to accommodate the standard RPG Maker MZ character sheets. You don’t need anything additional for the plugin to work.

(1 edit)

Awesome! Sorry for so many questions! But i do have one more. I have a custom time common event that caluclates Seconds, Mins, Hours and etc that i use. Would that be usable with this plugin for tracking the hour? I see that the plugin says that it uses a variable for hour. So wasn't sure if you allowed us to set that certain variable!  For instance my Hr variable is 12. 

Yes, you can pick the hour variable in the plugin parameters. It allows you to tell it which variable you're using for hour. In fact it relies on it. And no need to apologize. Happy to respond to any questions you have!