Amazing! Just look the airship in the demo and there you can see how to use different graphics for 2 of the same vehicle.
TomazellaGames
Creator of
Recent community posts
I kept reusing the same handful of script conditions across projects, so I figured I'd share them here. These go in Conditional Branch → Script (the last tab), and most work in both MV and MZ unless noted. I'm a RPG Maker MZ dev/user, so I'm more used to it, but a lot of JavaScript stuff is the same on MZ and MV.
All script conditions goes into the command "Conditional Branch...", page 4, script, as the image bellow.

Party & actors
- Check if a specific actor is in the current party:
$gameParty.members().some(a => a.actorId() === 3)
- Check if a specific actor is alive:
$gameActors.actor(3).isAlive()
- Check if the whole party is above half HP (useful before a boss gate):
$gameParty.members().every(a => a.hp >= a.mhp / 2)
- Check the current leader (party member 0):
$gameParty.leader().actorId() === 1
- Check if a specific party member is alive (0 is the leader):
$gameParty.members()[1].isAlive()
Equipment & items
- Check if any party member has a specific weapon equipped:
$gameParty.members().some(a => a.weapons().some(w => w && w.id === 5))
- Check how many of an item the party is carrying:
$gameParty.numItems($dataItems[7]) >= 3
- Check if the party has at least one Key Item (handy for "you're not ready yet" gates):
$gameParty.items().some(item => item.itypeId === 2)
Switches, variables & time
- Check if ALL switches in a range are ON (useful for "collect all X" quests):
[10, 11, 12, 13].every(id => $gameSwitches.value(id))
- Check if ANY switches in a range is ON:
[10, 11, 12, 13].some(id => $gameSwitches.value(id))
- Check if EXACTLY ONE switch in a range is ON:
[10, 11, 12, 13].filter(id => $gameSwitches.value(id)).length === 1
- Check if ALL switches in a range are OFF:
!([10, 11, 12, 13].some(id => $gameSwitches.value(id)))
- Check if a variable is within a range instead of an exact match:
$gameVariables.value(5) >= 10 && $gameVariables.value(5) <= 20
- Check total playtime in seconds (MV/MZ):
$gameSystem.playtime() >= 3600 // 1 hour+
Map & position
- Check if the player is facing a specific direction:
$gamePlayer.direction() === 8 // 2=down, 4=left, 6=right, 8=up
- Check distance between player and an event (in tiles):
$gameMap.distance($gamePlayer.x, $gamePlayer.y, $gameMap.event(5).x, $gameMap.event(5).y) <= 2
- Check if the player is currently on a specific region ID (MZ):
$gamePlayer.regionId() === 4
Misc that saved me a few times
- Check if it's currently night by variable (paired with a day/night plugin):
$gameVariables.value(1) >= 18 || $gameVariables.value(1) < 6 // Var 1 should be the hour, and check if in between 6pm and 6am
- Check gold with a comparison instead of the default Gold condition (lets you use >= inside a bigger expression):
$gameParty.gold() >= 500 && $gameSwitches.value(20)
And...
If you find any // things after two slashes, they are comments and are not considered in JavaScript conditions or anywhere with javascript.
You don't need to be attached to my specific examples. You can mix then, like to know if the player has more gold than the play time (in seconds), you can check:
$gameParty.gold() > $gameSystem.playtime() // or any "useless" check you want
Hope these save someone some time. If you've got your own go-to conditions, drop them below - always happy to steal good ideas.
Hey everyone! Just released Battle Rows, a Front/Back row combat system for RPG Maker MZ - the classic Final Fantasy-style positioning, but built to be designed around rather than just switched on.

Ranged and Melee make a difference, and is worthy using rather than just numbers.
A few things that make it different from a basic row toggle:
- Enemies get rows too, and you never set them. The plugin reads their position in the Troop editor and recalculates all battle long, so when the front line dies, whoever's behind steps up automatically.
- Every rate is yours to tune, and stackable with per-weapon, per-class, per-actor and per-enemy notetags - a spear that ignores the back row penalty, a tower shield that softens front hits, a boss that hits harder from the front.
- Skills that care about position: lock a skill to the back row only, or make a charge skill move its user to the front and strike in one action.
- Fully standalone, and built with aliasing rather than overwrites, so it tends to play nice with other battle plugins.

It's on a launch sale for the first week: https://tomazellagames.itch.io/battle-rows
Happy to answer any questions about the plugin!
Thank you for your words. Actually MapCore doesn't depend on Core, the numbering is just a suggestion.
The whole suite resolves cross-plugin references lazily at first use rather than caching anything at load time, so it's position-safe across the board, not just Core/MapCore, but all my plugins — reordering rows in Plugin Manager won't break it.
On the message window: already handled to avoid problems — the word-wrap width comes from this.innerWidth on Window_Message, not a patched windowHeight, so it's downstream of whatever Scene_Message.messageWindowRect sets rather than fighting it.
Thanks again for taking the time to write that up.
I'm sharing my new 2 main free plugins for RPG Maker MZ. Within those plugins, you'll find:
TomazellaMZ_0_Core
- Quality of Life stuff (like playtesting help)
- Player Benefits (like always escape)
- In-game speed control (no more annoying grinding)
- Escape Codes (like \LastGainedObj, \i[N} for icons in messages and other places)
- Auto Word Wrap (no more clipped messages)
- Lots of plugin commands
TomazellaMZ_2_MapCore
- Sliding Tiles (Pokemon Yellow feelings)
- Floating Text AND Icons on Events
- Event Helper (easier check for repeated events)

Grab the plugins for free here: https://tomazellagames.itch.io/mz-expo














