Township - NPC Daily Routines & Living Towns, for RPG Maker MV & 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.
NEW IN 1.1 — RPG Maker MV
Township now runs in RPG Maker MV 1.6 as well as MZ, with one bridge file (CSAF_MVBridge.js, in the download) at the top of MV’s Plugin Manager. Each command becomes a Plugin Command line, for example Township SetTime hour=20 minute=30; the guide lists all nine. The demo town, the overnight watch, the walking, the poses, every command and the routine board were run on both engines from the shipped download: 57 checks.
Fixed for MV: a pose’s balloon now shows in MV too (MV keeps balloons on the character, not in a queue). A free update for every owner, and saves load unchanged.
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 and MV 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.
| Updated | 14 days ago |
| Status | Released |
| Category | Tool |
| Author | CSAF — Core Systems Asset Factory |
| Made with | RPG Maker |
| Tags | Game Design, gamedev, javascript, JRPG, Life Simulation, plugin, RPG Maker, RPG Maker MV, RPG Maker MZ, sourcecode |
| Languages | English |
| Links | Homepage |
| 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:
Development log
- Township is in the MZ Living Town Set, October bundle14 days ago
- Township 1.1: RPG Maker MV support, tested on both engines18 days ago
- Township is $9.09 until September 947 days ago
- Township is in the catalogue sale until 9 September48 days ago
- Township is 30 percent off until 9 September48 days ago
- Township is 9.09 until 9 September48 days ago
- Why overnight shifts break NPC schedules - and what Township does instead66 days ago






