Township - NPC Daily Routines & Living Towns, for RPG Maker MZ
A downloadable tool
Township gives every NPC a real day. Homes, jobs, errands, overnight shifts, market days and festivals — with idle poses when they arrive, door transitions instead of pop-in, and a routine board that shows you every townsperson's whole day and lets you drive the world from it.
Why overnight shifts break in other plugins — and not in this one
Most routine plugins store a schedule as spans: "work from 08:00 to 17:00". That representation breaks the moment a shift crosses midnight, because now >= start && now < end is false for every minute when start is 22:00 and end is 07:00. No entry is active, the NPC has no destination, and it disappears.
Township stores no end times at all. A schedule is a ring of transition points, and the active entry is simply the last one at or before now, wrapping around midnight. An overnight shift is not a special case — it is the ordinary case, and the broken state cannot be represented.
This is not only about night watchmen. Everyone who sleeps through midnight has a wrapping span. In the demo town that ships with the plugin, 8 of 8 townspeople do.
Because where someone stands depends only on the time and never on accumulated state, three more things follow for free:
- NPCs are correct instantly after a map transfer. No walking to catch up, no frozen events.
- Talking to an NPC cannot corrupt its movement, because there is nothing stored to restore.
- The routine board can scrub to any time and show you the truth.
The routine board
Every townsperson's whole day as coloured strips, a sweeping day dial, and a live map with their positions. Scrub time and the whole town previews there. Press OK and the world goes there — the clock is set and everyone is re-placed. Shift+OK walks the player to whoever is selected.
It is a director's console, not a report: everything you can see, you can act on. An overnight span is drawn as one continuous band that runs off the right edge and continues at the left, with a chevron at each cut.
Built in the editor, not in a config file
<township_place:oven>on any event marks a destination — lay your town out visually.<township_door:front>marks where NPCs fade in and out.<township:baker>binds a townsperson to their event.- Poses on arrival: facing, step animation, a sprite swap, a balloon. The difference between a living town and people standing on marked tiles.
- Schedule variants by day type, weekday, switch or variable, with priorities to break ties. The base schedule has no conditions and is always the fallback, so resolution can never fail.
Fits a project you have already started
- Follows YOUR clock. Already own a day/night plugin? Point Township at the variables it writes and it will follow them instead of running its own.
- No core method replaced. Every patch is a prototype extension that saves the original and calls it, so other plugins that touch the same methods keep working.
- Saves stay small. Positions and paths are derived from the clock, never stored, so a save can never load into an inconsistent state.
- No
Math.random. The same town on every machine and every load. - Raw, readable JavaScript with full JSDoc. Never minified — you can read, debug and extend every line.
What ships
- Township.js — the engine: resolver, pooled pathfinding, poses, door transitions, interaction pause, three clock sources, nine plugin commands.
- TownshipBoard.js — the routine board scene.
- TownshipDemo_Millbrook.js — a complete worked town: 8 townspeople, 14 places, 2 doors, a market-day variant, an injury switch, a rest-day weekday variant and two overnight shifts of deliberately different shape. Read a real town, not a snippet.
Compatibility, stated up front
Township uses grid movement, the same as RPG Maker's own events. It is not compatible with pixel-movement or action-battle plugins that replace event movement wholesale. Said here rather than discovered later.
Terms
Free for use in commercial and non-commercial RPG Maker MZ projects. Credit appreciated, not required. Do not redistribute or resell the plugin itself.
More RPG Maker MZ systems from CSAF
Township is the town itself. These are the systems a living town feeds:
- Chronicle Core — branching quests, choices, faction reputation and world state. What your townspeople's world remembers.
- Bazaar Core — supply, demand, depleting stock and trade routes. The economy your market day runs on.
- Verdict Core — evidence, testimony and deduction. Investigation needs a town where everyone was somewhere.
- Cipher Core — an invented language your players actually learn to read.
| Published | 8 hours ago |
| Status | Released |
| Category | Tool |
| Author | CSAF — Corey & Stephanie's Asset Factory |
| Genre | Role Playing, Simulation |
| Tags | Game Design, gamedev, javascript, Life Simulation, plugin, RPG Maker, RPG Maker MZ, sourcecode |
| AI Disclosure | AI Assisted, Code, Graphics |
Purchase
In order to download this tool you must purchase it at or above the minimum price of $12.99 USD. You will get access to the following files:






