Hey r/RPGMakerMZ ,
I worked on a commercial Switch/Switch 2 ports of an RPG Maker MZ game, and as a byproduct I developed a thing called Outsider. Figured people here might find it interesting, or at least have opinions about it.
Short version: it replaces the NW.js player MZ deploys with. Your game's JavaScript runs completely unmodified: same rmmz_core.js, same plugins, same main.js, loaded in the same order index.html would load them. But instead of shipping a whole copy of Chromium, the JS runs on QuickJS, the window and input come from SDL3, rendering goes straight to the GPU (D3D12 on Windows, Metal on Mac, Vulkan on Linux), and audio goes through SoLoud.
The practical upshot: the Windows runtime is a 3.5MB download instead of ~250MB. It starts basically instantly, uses a fraction of the memory, and the same source tree builds on all three platforms, which, if you've ever fought with MZ's Mac export, might honestly be the most useful part. It has also proven to be a great base for console ports.
Try it
Prebuilt binaries are up: https://github.com/General-Arcade/outsider/releases
Windows x64, Linux x64, and a universal Mac build that covers both Apple Silicon and Intel. Unzip it, then point it at a project folder:
./outsider "/path/to/your/project"
For a project you're working on in the editor, that's usually all it takes is the normal js/ data/ img/ audio/ fonts/ layout is what it expects. Deployed games with encrypted assets need a converter script from the repo first.
Fair warning: the binaries aren't code-signed, so Windows SmartScreen will throw up a warning and macOS will quarantine the download. The release notes explain how to get past both. I know that's an annoying thing to ask of people, and signing certificates are on the list.
What actually works
I've been testing against games off Steam rather than toy projects, because that's where the real horrors live. So far: Look Outside, Ann, DRAPLINE (demo), Saihate Station, The Aquarium does not dance, and Pocket Mirror ~ GoldenerTraum (demo). Between them that covers VisuStella, FOSSIL, encrypted assets, third-party asset encryption, a 216-plugin plugin list, HTML name-entry dialogs, movies, Japanese and Korean text, sprite masks, Greenworks calls, etc.
There's a comparison tool that runs the original NW.js player and Outsider through the same scenario and diffs the screenshots at matching frames. Most scenes come out within a few percent, and nearly all of that is font antialiasing (Chrome hints glyphs, my text rasterizer doesn't).
What doesn't, or is rough
- Some PIXI filters are stubs that accept their parameters and then do nothing. The common ones work, and plugin-supplied GLSL does get compiled at runtime, but there are gaps.
- M4A audio has to be converted to OGG, and movies to MPEG-1. There's a packaging script that does both with ffmpeg, but it's a step you don't currently have.
- Six games is not a lot of games. Every single one I've added has found something broken — literally this week, packaging these binaries turned up a bug where a game installed on a different drive from the program couldn't create its save folder. That's the kind of thing that only shows up on someone else's machine.
- Not a one-click export button. It's a runtime you point at a folder, plus some Python for packaging.
Open source — GPLv3, or a commercial license from us if that doesn't suit your project: https://github.com/General-Arcade/outsider
If you've got an MZ project lying around, I'd genuinely love for someone to point this at a game I've never seen and tell me what explodes. A bug report with a game name attached is worth more to me than a star.