RPG Reactor 0.96.0
RPG Reactor 0.96.0.
Full write-up: docs/devlogs/2026-07-25-rpg-reactor-0.96.0.md
0.95.1 was an internal development version and was never published; its changes ship in 0.96.0.
Still in progress
3D maps are new in this cycle and are honestly described as a first pass. What
follows is known to be unfinished — it is listed so nobody has to discover it
themselves. Everything here is opt-in: a map is only 3D if its note says <3d>,
and a project with no 3D maps is untouched by all of it.
- Terrain needs authoring to look its best. Which tiles stand up cannot be
derived from a tileset — a shopfront wall and a forest are both simply
impassable — so it is set per tile in the 3D Shape editor, and objects that
span several tiles are declared there too.derive-tileset-3d-classes.cjs
fills in a reasonable starting point from how your maps are already painted;
expect to correct it rather than accept it. - Forests read as dense cover rather than as individual trees, and a
mountain range reads as one texture rather than as peaks. Both are drawn from
the terrain's own lone variant, which is the right source; the arrangement is
not settled. - Interior walls show the wrong art on top. A wall autotile is a wall
face and has no top, so a raised wall is capped with its own side art. The
fix is to pair a wall with the roof drawn for it, which is not implemented. - Pits and craters stand up. Their art blocks movement exactly like a rock
does, and nothing in the tileset distinguishes a hole from an object. Set
those tiles to Flat in the 3D Shape editor, once per tileset. - No parallax or sky. A 3D map draws a flat backdrop;
parallaxNameis
ignored. Battles are 2D, unchanged. - Editing a large 3D map is slower than editing it in 2D. Every paint
stroke rebuilds the whole scene. Fine at 100x50, noticeable at 200x200. - The 3D Shape key and preview panels are English-only for now, pending a
translation pass.
Added
-
3D maps (HD-2D). A map can be drawn in 3D: the ground lies flat, walls and buildings stand up, and characters stay as 2D sprites moving on the grid. It is opt-in per map — a map is 3D only if its note contains
<3d>— and nothing else changes. Event commands, passability, regions and movement keep working on the same grid, andMap###.jsonstays standard RPG Maker data; elevation and camera live in aMap###.r3d.jsonbeside it. A project with no 3D maps behaves exactly as before and never downloads the 3D library. Battles are still 2D. -
Tileset 3D shapes. Which tiles stand up cannot be derived from map data — a shop wall and a cliff face are both simply impassable — so it is authored. The tileset editor has a new 3D Shape mode beside passability and terrain: click a tile to cycle it through Flat, Upright and Scenery. Upright treats a column of tiles as one picture and stands it at full height, which suits a building drawn as a single tall prop; Scenery raises the ground instead, which suits a forest or a mountain range, where the same tile repeats across an area. Autotiles are classified once and apply to all their shapes. Stored per tileset in
Tilesets.r3d.json; a project that never classifies a tile never gets the file, and an unclassified map renders flat rather than guessing. -
A 3D view in the map editor. A 3D checkbox beside the A1 toggle swaps the map canvas for a 3D view of the same map. Drag to orbit, Shift or right-drag to pan, scroll to zoom, and double-click empty space to put the whole map back in view. Events appear as their character graphic on a standing sprite with number and name above, or a coloured cube when they have no graphic. Click to select, double-click to edit, right-click for the same menu the 2D map gives you; selection stays in step with the events panel in both directions. A1 water animates, following the same A1 checkbox as the 2D canvas.
-
Painting works in 3D. With tiles selected in the palette, dragging paints them exactly as in 2D — same brush, same autotiles, same undo — and the tile under the cursor is reported in the map bar. Without a selection, dragging orbits instead; Ctrl always orbits. Painting shares one implementation with the 2D canvas, so the two views cannot drift apart.
-
Two more tileset sheets, F and G, giving 512 extra tiles on top of B–E's 1,024. They work exactly like B–E — same grid, same passability, ladder, counter and terrain tag settings, same layer stacking — and appear as tabs in the tile palette and slots in the tileset database. They use a range of tile numbers RPG Maker leaves empty, so importing an MZ or MV project can never conflict with them, and a project that doesn't use them saves exactly the same data as before. Maps that do use them still save in the standard format; only the two new sheets would be missing if the project were opened in RPG Maker itself.
-
Event editor: Conditional Branch, Show Choices, and Loop can be folded away with the arrow beside them, so a long event no longer has to be scrolled past in full. A folded block shows how many lines it is hiding, nested blocks remember their own state while an outer one is closed, and folding follows the block if you edit commands above it. Folds are remembered per event page and survive closing the editor or restarting, so a page comes back the way you left it. Everything starts expanded, and a page you have never folded stays that way.
-
Map properties: resizing a map now warns before it discards anything. Shrinking a map tells you exactly how many tiles will be removed and lists the events that will be deleted, and nothing is changed unless you confirm. Previously both were discarded silently, and events outside the new bounds were left behind invisibly.
-
Map properties: a new anchor picker chooses which corner or edge your existing content stays attached to, so a map can grow from the top or left instead of only the bottom-right. Tiles and events move together, Set Event Location commands on the map follow, and the player and vehicle start positions are updated when they are on that map. Reactor also finds Transfer Player and Set Vehicle Location commands elsewhere in the project that jump to fixed coordinates on the resized map, and offers to update them so they still arrive in the right place. Top-left remains the default and behaves exactly as before.
Removed
- An old tileset editor screen that could never actually open — it tried to build itself from a class that no longer exists, and nothing in the editor linked to it. About 1,300 lines went with it, including a passability overlay that read its markings from the wrong tiles on every sheet. The tileset editor you use in the Database is unaffected.
Changed
- Bumped the current development version to RPG Reactor 0.96.0.
- The tileset screen in the Database shows all eleven layer slots without scrolling, and an unassigned layer now offers a Choose Image button where its tiles would be, instead of empty space. Double-clicking a layer row still works as before.
- Picking a tileset image uses the same modal styling as the rest of the editor, with a proper header and footer, and its file list is searchable like the other image pickers. It opens on the layer's current sheet, offers (None) at the top to clear a layer, and Escape, the close button, the footer, and clicking outside all dismiss it.
- Every tileset layer row has a + button that opens the picker for that slot, so a sheet can be swapped without hunting for the double-click.
- Every marking in the tileset editor is readable over any artwork. They are drawn straight onto the tiles, so a pale marker on pale ground — or a red X on red brickwork — could disappear into it. The O, X, star, damage and terrain-tag markings now carry a dark outline; the four-direction arrows and blocked dots, the ladder, the bush and the counter bar carry a dark edge. Colours are unchanged, just less washed out.
- Assigning or changing a tileset image now updates the map and the tile palette straight away instead of needing the editor restarted. Only the sheets that actually changed are reloaded, and the map is only redrawn if something on it uses them — adding a new sheet costs nothing.
- Map editing previews are cheaper: the preview used to create a fresh drawing object for every tile under the cursor, every time the mouse moved, on top of a layer type PIXI no longer supports for this. Most noticeable when dragging a large stamp or a wide circle brush across a big map.
- Map Properties now says which map you are editing: the header reads Map Properties | 0211: Canite City instead of just "Map Properties", and it updates as you type in the Map Name field. Renaming still only takes effect when you press OK.
- The Tileset dropdown in Map Properties now shows each tileset's number beside its name, so you can tell which database entry you are picking. It matches the numbering the Change Tileset event command already used.
- Map Properties now sizes itself to its contents and rearranges to fit the window. Map Name and Display Name share a row, as do Tileset and Scroll Type, and the panels pack into two balanced columns, dropping to one on a narrow window. The dialog no longer reserves a fixed height with empty space below it, and the whole thing stays visible without scrolling even with the BGM, BGS, and Battleback sections expanded. The Note box can also be dragged taller.
Changed
-
Standing things in 3D are cut-outs that turn to face you. They used to be fixed panels facing south, which is only correct from one direction: off that axis a structure read as a sheet of card folded up off the floor, and edge-on it vanished to a line. (A second panel crossing the first used to cover that, and it showed as a seam through the middle of the art.) A cut-out stays upright and spins to face you, exactly as the event sprites always have. Leaning it back towards the camera was tried, to stop cut-outs going edge-on as the camera climbs, and it cost far more than it bought: a leaning cut-out's art tips towards the viewer, so an object hangs off the point it stands on and that overhang swings as you orbit — at a 45 degree camera the top of a six-tile object sat 3.4 tiles from its anchor and travelled 4.8 tiles through a quarter turn. That was the drift, and the same overhang is why things looked lifted off the ground. Upright, the displacement is zero at every angle. Going edge-on is the camera's problem instead: the orbit stops at 72 degrees, short of the angle where standing art has nothing left to show, which is why an HD-2D game does not let you look straight down either. A whole object turns as one piece, about the middle of the row it stands in: a five-wide structure is a single cut-out, not five that fan apart as the camera moves, and it neither drifts off its cells as you orbit nor hangs above the ground in front of it. Walls are the exception and stay fixed, because a wall belongs to a building and faces a particular way.
-
Walls in 3D are solid mass, not standing panels. A dungeon's walls were each drawn as a panel on the south face of their run, which was wrong in both directions at once: from above the walls vanished and a maze read as open floor, and from an angle a block of wall eight cells deep became an eight-tile tower. A walled area now raises the ground it covers, so the corridors are carved out of it and the wall art reaches the vertical faces through the same code that draws a cliff. Seen from overhead a dungeon matches its 2D map.
-
Almost everything on a B–E sheet stands up now. A tile that blocks movement or draws above the character is a thing in the world — a tree, a peak, a landed ship, a shrub — not a marking on the floor. Requiring the ★ flag was far too strict, because an author sets it only where a character can walk behind something: a lone tree, a mountain and a ship all lay flat on the map while the forest beside them stood up. What stays flat is what is genuinely painted onto the ground — roads, cracks, scorch marks, anything walkable and unstarred. A pit or a crater is the case this gets wrong, since its art blocks the way like an object while being a hole in the ground; set those to Flat in the 3D Shape editor, once per tileset.
-
Standing objects turn where they stand. The point a cut-out spins on was the middle of its front row, so a deep object swung around its own front edge as the camera went round instead of turning on the spot. It is the middle of the footprint now; the height it stands at still comes from the ground at its front row, so it stays planted.
-
A prop stands as a whole, decided per piece of art rather than per tile, so one blocking or starred piece raises the whole picture. The launch gantry in the bundled project is three rows tall and only its top row is starred; read per tile, that stood its head up and left its legs lying on the ground.
-
A forest is drawn as trees now, not as terrain. A tileset that paints a forest or a mountain range as a repeating texture almost always draws the single tree or the single peak as well — for an autotile that is shape 46, the piece it uses for one isolated cell, and on a B–E sheet it is usually the block directly above the tiling art. Reactor stands that on the cell instead of extruding the tiling art, which gave a wall of bark, or raising it, which gave a plateau of bark. Each cell carries one, sized and nudged off centre by a hash of its position, on a forest floor that rises slightly above the land around it, so a wood reads as a wood rather than as an orchard planted on a grid. The tiling art is not also laid flat under them: it is that terrain seen from above, so drawing both draws every cell twice, and at ground level the second copy showed as a mat of canopy around the feet of the trees growing out of it. The scatter is fixed per cell, so it never shifts when you paint elsewhere. Tiles carry a new Foliage class in the 3D Shape editor beside Flat, Upright and Scenery, and the stand-in is recorded per tile so it can be pointed somewhere else.
Fixed
-
Trees and mountains in 3D came out darker than the same art on the ground. The cut-outs were drawn by a shader written for them, which skipped the conversion three.js does from the texture's colour space to the screen's — and the fog with it, so distance never faded them either. They use the same material as the flat tiles now, with only the vertex position replaced, so a tree is the colour of the ground it stands on.
-
Cliff and step faces in 3D were see-through. A face took its art from the topmost layer of the cell above it, which is usually a decoration — grass over dirt, a tree over grass — and a decoration's art is transparent everywhere the decoration is not, so a raised forest stood on a rim of holes with the sky showing through. Faces now take layer zero, the terrain, which is what the side of a step is made of.
-
3D maps stood forests and mountains on end as walls across the map. Which tiles stand up is authored per tileset, and a project's file could be filled in from the tileset flags — but impassable means a shopfront wall and a forest alike, and a column of forest cells collapses into one facade as tall as the run. On a 200x200 world map that turned a 58x39 forest into facades sixteen tiles high, with 68% of everything standing being terrain that should have been lying down.
editor/build-scripts/derive-tileset-3d-classes.cjsnow fills the file in from the maps instead: a building is one picture spread across its cells, so its tiles are mostly distinct, while a forest is a few tiles repeated over covered ground. Craters and rubble lie flat, water lies flat, blocked ground rises as a mass, and starred tiles stand. Run it per project and commit the result. -
Painting a wall autotile against the edge of the map cut off its end. A wall one tile in from the edge drew its finished edge; the same wall pushed right up against the boundary lost it. Reactor was treating everything off the map as more of the same tile, which is correct for ground and roofs — they carry on past the edge without drawing a border — but wrong for walls, which RPG Maker closes off. Checked against the maps in the bundled projects: of the 8,455 wall autotiles sitting on a map edge, 91% store the capped shape.
-
Right-clicking a single autotile now picks the kind, so painting with it continues the pattern and works out its own corners and ends. It used to copy that exact piece, so picking the middle of a wall and painting produced a row of middle pieces with no ends. Right-dragging an area still copies it exactly, which is what makes it useful for duplicating a finished piece of map.
-
Tile palette: switching to a different tileset layer kept the tiles you had selected on the previous one. The palette showed nothing highlighted, so it looked like no tiles were selected, but clicking the map painted the old layer's tiles anyway. Switching layers now clears the selection to match what the palette is showing.
-
Tileset layers F and G painted as an eraser. They appeared correctly in the palette and the hover preview, but placing one wiped the tiles under it instead. The map editor holds two separate routines for turning a palette click into a tile number, and only one of them had been taught about the new sheets; the other returned tile 0, which is what "empty" means, so painting rubbed tiles out. Both now share one definition.
-
Database: skills, weapons, items, and states created in the editor were missing fields the game engine expects every record to have, and each one failed differently in play. A new skill could not be used by any actor. A new weapon never showed up in the equip list and could not be equipped. Using a new item in battle corrupted the user's TP for the rest of the fight. A new state showed no battler pose and no overlay graphic. Clearing an existing record produced the same incomplete shape. All four templates now match what RPG Maker itself writes, checked against the records in the bundled projects.
-
Event editor: the Scroll Map command had no "Wait for Completion" option, so an event could not wait for a scroll to finish. Worse, opening an imported command that already had it set and pressing OK quietly turned it off. The checkbox is now there and the setting is preserved.
-
The title bar showed "RPG Reactor | Reactor One" for every project instead of the project you had open. This only affected the Wine/Proton compatibility mode, where Reactor draws its own title bar — that one was built with the demo project's name baked in and never updated. It now tracks the open project.
-
Event commands: "Set Event Location → Exchange with another event" was showing and saving the wrong fields, so it swapped with the wrong event and lost the direction setting. It now matches what the game reads.
-
Map export: waterfall tiles came out garbled in "Save Map as Image" and in the map-stamp preview for two of the water types.
-
Map editor: choosing the eraser together with the bucket fill erased one tile at a time instead of flood-erasing. Flood erase now works.
-
Web editor: keyboard shortcuts (Ctrl+S, Ctrl+Z/Y, copy/cut/paste, Delete) did nothing in the browser version. All of them work now.
-
Audio player: turning looping off while a track was playing had no effect until the next track started.
-
Sidebar: the divider positions you set were saved but never restored.
-
Character Generator: imported sheets whose size isn't a clean multiple of 3x4 could jitter by a pixel on the middle walk frame, and "Normalize All Templates" said it had fixed the sheet when it hadn't. Both fixed.
-
Map screen: large or edge-anchored plugin windows (HUDs, banners) could vanish while still partly on screen, because the off-screen check looked at the window's corner instead of its full size. Windows that draw only through gauges, names or state icons could also disappear. Both fixed.
-
Event commands: opening any "Entire Party" command — Change HP/MP/TP/EXP/Level/Parameter/State/Skill or Recover All — and pressing OK silently retargeted it at the first actor only. Your inn and church heal events were affected. The setting is preserved now, and Entire Party is selectable in the dropdown, which it never was before.
-
Event commands: a Show Text set to appear at the Top of the screen jumped to the bottom if you reopened it and pressed OK.
-
Event commands: Fadeout BGM and Fadeout BGS were saved in the wrong unit, so the default "1 second" fade actually took a full minute in game, and a 5-second setting took five minutes. Existing commands imported from RPG Maker were displayed wrongly too.
-
Events: creating an event with a graphic from the bottom half of a B/C/D/E tileset page saved the wrong tile, so the event showed a different graphic than the one you picked.
-
Plugin Manager: adding certain plugins wrote incorrect default values into
plugins.js, because settings belonging to a plugin's commands were being applied to the plugin's parameters. -
Database → System: Victory ME, Defeat ME, Game Over ME and the Boat/Ship/Airship music were reading and writing the wrong place, so those six rows always showed "(None)" and picking a track did nothing in game. All eight rows now work.
-
Database: newly created animations played once in the middle of the enemy group instead of once per target on all-target skills.
-
Database: the Traits and Effects lists in the Skill, Item, Weapon, Armor and State editors never refreshed after you added, edited or deleted a row. Beyond looking stale, deleting twice in a row could remove an entry you hadn't selected.
-
Event pages: clearing the variable-threshold box on a page condition saved an empty value that the game read as zero, so the page could start running when it shouldn't. The field now keeps its previous value instead. Actor and Item conditions were also being saved as text rather than numbers, which could confuse plugins that read them.
-
The Demo project that ships with the editor was missing two of its startup scripts, which would have left it stuck on the loading spinner for anyone who installed a fresh copy. The files existed but had never been committed. Both are now included, and a test checks the whole startup list so it cannot happen again.
-
Tilesets: on some tiles, setting a terrain tag appeared to work in the editor but the game still read the old value. This affected tiles whose flags had been written by third-party tools, and Reactor was only clearing part of the value. The tag now applies, and the palette shows the number the game will actually use.
-
Web editor: assets stored in a folder named
project(for exampleimg/pictures/project/) failed to load, because the file lookup matched the wrong part of the path. Fixed. -
Deployment: every released game included a complete second copy of the database. Battle Test leaves
Test_-prefixed copies of all fourteen database files indata/, and the deployment step was copying them along with everything else — 15 MB of dead weight on one of the bundled projects, 13 MB on another, plus your saved test party. They are now skipped. -
Database and battle test:
Tilesets.jsonandSystem.jsonwere written by overwriting the existing file in place, so a crash or power loss during the save could take out the old copy as well as the new one. Both now write to a temporary file and swap it in, which is what the rest of the editor already did. -
Event editor: opening a plugin command and pressing OK erased its readable name, so
PSYCHRONIC_PTBS: Start PTBS BattlebecamePSYCHRONIC_PTBS: PTBS_StartBattlein the event list — permanently, in the saved project. The name is now kept, taken from the plugin's own documentation when available, and the list shows it. -
Event editor: choice branches showed as
Choice 1,Choice 2instead of the choice text, because the text was never stored on the branch. New choice commands record it, and the list shows it. -
Event editor: an event's Name and Note were written into the editor's own interface without escaping. A name or note containing HTML broke the fields it was displayed in, and because the editor runs with full system access, opening someone else's project with a crafted event name could have run their code on your machine. Both are now escaped, and a test checks every interface template for the same mistake.
-
Event editor: adding a Play BGM/BGS/ME/SE, Fadeout, or Stop SE command inside a Conditional Branch, Loop, or choice branch placed it outside that branch. In the editor it appeared at the wrong nesting level, and in game it played even when the branch condition was false — along with every command after it in that branch. Existing audio commands were unaffected; only newly added ones.
-
Animation timings: setting a sound effect's volume to 0 saved it as 90 instead. A silent timing is a legitimate setting and the slider goes down to 0, but the value was being treated as "nothing entered" and replaced with the default.
-
Web editor: a save that browser storage rejected — running out of space is the realistic case — was reported as successful. The file looked saved for the rest of the session and then reverted to its previous contents on reload. Saving now reports the failure and names the files that could not be written.
-
Undo after resizing a map could corrupt it. Painting, then changing the map size in Map Properties, then pressing Undo restored tile data sized for the old dimensions — the map rendered as garbage, and saving wrote that mismatched data to disk. Paint and event history are now cleared when a map is resized, and a restored snapshot that no longer fits the map is discarded rather than applied.
-
Copying between two open editors now writes the shared clipboard atomically, so a large copy cannot be read half-written by the other instance.
-
Tile palette: a tile holding only a thin sliver of art — the few pixels that continue an object from the tile above — could not be painted on its own. It counted as an empty tile, which switches the editor into erase mode, so painting with it rubbed tiles out instead of placing them. Selecting it together with the tile above worked, which is why it looked like the tile simply was not recognised. Genuinely empty tiles still switch to erase mode as before.
-
Map Properties: the Tileset dropdown could appear as an empty collapsed sliver until a tileset was picked. It happened whenever the map pointed at a tileset that no longer exists — a cleared database entry, or a new map defaulting to Tileset 1 in a project whose tilesets start higher up. The dropdown now selects the first available tileset instead of nothing, and a project with no tilesets at all shows a normal-height control reading "(None)".
-
Map Properties: the Battleback selectors were always visible, ignoring the Specify Battleback checkbox, and lost their two-column alignment when toggled.
-
Web editor: the textual File/Database/Plugins/Tools/Forge/Help menu now displays clickable dropdowns. Its web-only horizontal scroll container clipped every submenu outside the bar; the menu now wraps on narrow screens while preserving visible overflow. The separate icon toolbar retains horizontal scrolling.
-
Map tree: New Map from a map's context menu now inserts the map immediately after that target as a sibling at the same hierarchy level instead of appending it to the bottom of the root list. Creation without an explicit context target uses the currently highlighted map as its insertion anchor.
-
Map editor: Auto-layer paint bucket fills now preserve unrelated upper tile planes. Filling a lower floor beneath Layer 4 walls changes and reconnects only the resolved lower destination layer instead of clearing or reshaping the walls above it; explicit Layer 1-4 and eraser behavior remain unchanged.
-
Packaged editor: launching the Windows executable, macOS app, or Linux executable again now opens another isolated RPG Reactor process instead of routing the request back into the first instance. Repeated launches receive atomically leased Chromium profile slots, while existing project locks continue preventing two editors from writing the same project.
-
Windows editor deployment: interactive developer builds no longer require
reseditwhile finalizing the executable. App-owned PE metadata remains mandatory for release builds, but SDK/normal developer packages can now complete from Linux-hosted NW.js workers as intended. -
Database deletion: the toolbar Delete button now matches keyboard Delete and Cut by clearing records to blank templates in place. Tileset IDs, rows, and maximums remain stable even when clearing trailing records; macOS Backspace is accepted as Delete. Previously toolbar deletion stored hidden
nullslots, making packaged-user results appear different depending on input method. Opening any top-level list — Actors, Items, Skills, Weapons, Armors, Enemies, States, Troops, Classes, Animations, Common Events, and Tilesets — repairs those persisted hidden slots into visible blank same-ID records. -
Localization: seven languages showed large parts of the editor in English. Chinese (Traditional and Simplified), Russian, Portuguese, German, French, and Greek inherited the English table, so roughly a third of the interface — the whole Effekseer Forge, event page fields, and toolbar tooltips — was never translated. All are now complete, and a new test fails the build when a key is added without translations instead of letting it quietly render in English.
-
Multiple editor launches: two launches starting at the same moment after a crash could both claim the same Chromium profile, which is exactly the collision the isolated-instance support exists to prevent. Slot takeover is now serialized so only one launch can claim a recovered slot.
-
Map tree: a new map whose file could not be written no longer stays in the map list. The list is restored to its previous contents and ordering, so a failed save cannot leave behind a map that does not exist on disk.
-
Bundled Demo: Deploy Game on the bundled Reactor One Demo failed with "Project runtime is incomplete". The Demo's engine files had fallen behind the current runtime and were missing the picture extensions and LZString entirely, so the Demo also ran an older engine than the editor shipped — without the level-999 support, gamepad input fixes, and save-path handling. Its runtime now matches the engine exactly.
-
Runtime performance: drawing to a bitmap no longer sends the whole image to the graphics card on every single operation. Anything that redraws text or images repeatedly — the victory aftermath EXP count-up most visibly — was uploading its entire window hundreds of times per frame; the uploads are now batched and sent once, just before drawing. This was the actual cause of the aftermath stutter.
-
Runtime performance: text colours are now read from the windowskin once per colour instead of on every use. Windows that redraw each frame — the victory aftermath EXP count-up most visibly — were performing thousands of one-pixel image reads per second, whose constant memory churn showed up as stuttering.
-
MV compatibility: battle animations played on party members are no longer mirrored. MZ flips every animation shown on an actor; MV never did, so MV animations are drawn to play as-is. The reversal was invisible on symmetrical effects but obvious on any animation containing words — Star Shift Rebellion's "Counter" animation read backwards. MZ-authored projects keep MZ's behavior.
-
MV compatibility: showing a choice could crash the game with "Cannot read properties of null (reading 'start')". Plugins and custom battle scenes create extra message windows that the scene never wires up, and a choice arriving on one of those had nowhere to go. Choices now fall back to the scene's real choice window, so they still appear and can be answered. Reported in Star Shift Rebellion.
-
MV compatibility: a Set Movement Route with Wait in one event could make a later event's move route finish instantly instead of waiting. The character being watched was remembered but never forgotten, so once an event ended, the next one could check the wrong character — one that had already stopped moving. Reported in Star Shift Rebellion as move routes running all at once.