A downloadable tool

Buy Now$11.99 USD or more

Emotion battles you can see, drawn over your own art.

Sentiment gives every battler in RPG Maker MZ a feeling: happy, sad or angry, each with three rungs. The feelings play rock paper scissors. Happy beats angry, angry beats sad, sad beats happy. An attacker whose feeling wins deals x1.5 damage, and one whose feeling loses deals x0.5. Both numbers are parameters, and heals are never scaled.

The feeling is drawn over the portraits and battlers you already have. Your faces are never swapped for stock ones. Sentiment draws on top of them the way an artist marks up a sheet: a wash that reads the picture under it, an outline scribbled by hand around the face or the creature's own silhouette, and the feeling's marks. Gold stars for happy. Falling streaks for sad. Popped veins and jagged ticks for angry. Manic looks nothing like Happy, and Furious looks nothing like Angry.


⚠️ Compatibility — the question you actually have

Tested against RPG Maker MZ with the stock scripts unmodified, verified by running the plugin in the real engine rather than only in tests.

Plugin Manager order:

  1. SentimentCore.js — Sentiment [1/3] — the emotion rules. Load first. No engine code. v1.0.0
  2. SentimentArt.js — Sentiment [2/3] — the drawing kit: washes, scribbles and the emotion wheel. No engine code. v1.0.0
  3. Sentiment.js — Sentiment [3/3] — emotion battles you can SEE: happy, sad and angry drawn over every portrait and enemy, three rungs deep. v1.0.0

This order reads sensibly in the list and nothing depends on it. Every file resolves its siblings the first time a battle needs them, so Sentiment works in whatever order the Plugin Manager gives you, including the alphabetical order you get by dragging the folder in, which puts the entry file Sentiment.js first. That is tested: the frame-cost gate and a fresh install of the shipped zip into a blank MZ project both load the three files alphabetically and run a real battle. Sentiment.js is the only file that touches RPG Maker; the other two are the rules and the drawing kit, and neither knows the engine exists. Switch Sentiment.js off and nothing is patched.

Core methods extended — 12 by saved-original prototype extension, none replaced: Game_BattlerBase.prototype.initMembers, Game_BattlerBase.prototype.paramRate, Game_Battler.prototype.onBattleStart, Game_Battler.prototype.onBattleEnd, Game_Action.prototype.makeDamageValue, Game_Action.prototype.applyItemUserEffect, Window_BattleLog.prototype.displayAffectedStatus, Scene_Battle.prototype.terminate, Window_StatusBase.prototype.drawActorFace, Window_BattleStatus.prototype.drawItemImage, Sprite_Enemy.prototype.updateBitmap, Sprite_Actor.prototype.updateBitmap.

Because nothing is clobbered, Sentiment co-exists with other plugins that patch the same seams, including large suites.

Nine feelings, three rungs each

  • Happy, Ecstatic, Manic: quick and lucky, guard down. The wash lifts and warms the art.
  • Sad, Depressed, Miserable: hardened and slow. The wash drains the colour toward blue from the top down.
  • Angry, Enraged, Furious: hits harder, leaves itself open. The wash darkens toward red from the edges in.
  • Every rung pushes the numbers further and draws heavier: more passes of the outline, more marks, a stronger wash.

Where it is drawn

  • Battle portraits, with a small emotion wheel and the rung's name, so a player reads the whole party at a glance.
  • Every status portrait the engine draws through its standard face method.
  • Enemies, front view and side view, outlined around their own shapes.
  • Side-view actors, on every cell of the battler sheet, so the feeling moves with every motion.
  • The marks keep off the face: no star and no vein enters the box where a standard MZ face has its eyes and mouth. Measured in pixels over 150 seeds per rung.

Notetags and commands

  • <Sentiment: sad 2> on a skill or item and a hit leaves the target Depressed. <Sentiment: happy> pushes one rung more. <Sentiment: calm> clears it.
  • <Sentiment target: user> turns a skill inward: the feeling lands on the user.
  • <Sentiment max: 2> caps an actor or enemy. <Sentiment start: angry 1> sends an enemy in already angry.
  • Two plugin commands, Set Feeling and Calm Feeling, from any event; a small script API for everything else.
  • A battle log line when a feeling changes (%1 feels %2!, a parameter; blank shows nothing).

Built to sit quietly in a big project

Each treated picture is drawn once per face and rung and kept, so nothing is redrawn while a battle runs: the frame-cost gate measured a side-view battle with every battler feeling something at 31 draw calls per frame with no display-object growth. Saves keep every feeling, and a save made before you installed it loads with everyone calm.

Tested in the real engine

Every check ran in RPG Maker MZ's own runtime, from the exact zip you download, installed into a blank project with the stock database and art: the files loaded alphabetically as a drag-in gives you, the notetags on the stock Attack skill and Goblin, the plugin command through a real event, a real attack (x1.5 one way, x0.5 the other), front view and side view, calm after battle and a save round trip. Not yet tested with VisuStella Battle Core or other plugins that replace battler sprites: put Sentiment below them, and if a combination misbehaves, two switches turn the enemy and side-view drawing off while the rules, the portraits and the wheel keep working.

In the zip

  • SentimentCore.js (the rules), SentimentArt.js (the drawing kit), Sentiment.js (the only file that touches the engine): raw, readable, commented JavaScript.
  • Readme_for_Users.md and LICENSE.txt (use it in any number of your own commercial or free games).
  • No images, fonts or sounds: every mark is drawn in code over your art. The faces and creatures in these screenshots are our own demo art and do not ship.

From the same studio

  • Barrage: Undertale-style dodge phases for MZ battles, generated per enemy.
  • Escutcheon: the frame around your HUD, plates and gauges with real bezels.
  • Tether: a relationship chart drawn as face medallions.

AI disclosure: this plugin's code and graphics were made with generative AI. It ships no sounds and no story text.

Made by Core Systems Asset Factory.

Purchase

Buy Now$11.99 USD or more

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

sentiment-mz-plugin.zip 24 kB
Version 1

Development log