Table of Contents

This page is currently a work in progress. Not everything is written here yet.

Runtime Shenanigans

It's probably not a secret that RPG Makers are pretty old pieces of software. The oldest one that can be considered usable nowadays has been originally released in 2000 after all! Therefore, the runtimes, or should i say, the engine itself, is pretty old and rusty as well. And it can show sometimes.

However, if you want to, you can easily modernize your game a bit by replacing the original game executable with a community-made recreation that should give your players a bit better experience. Even better, you can use these to free your games from Windows' shackles and make them cross platform!

While community-made RM interpreters are cool and all, there is one thing to keep in mind. Technically speaking, you are NOT allowed to use the RTP with them!!! The license for RPG Maker's RTPs does not allow you to use RTP assets in non-RPG Maker engines. Unofficial interpreters DO NOT COUNT AS RPG MAKER ENGINES, therefore, if you distribute your game with RTP included, you're technically violating RTP EULA!!!

Does that matter? As long as you are not planning on selling your game, probably not. I doubt Enterbrain/Kadokawa/whoever owns RPG Maker nowadays will want to sue you over this if you are making free, non-commercial games this way, but either way this is not legal advice. Talk to somebody more knowledgeable if you are concerned. What I can say is that there are games in the wild that do this exact thing and nobody gives a damn, an example of which is technically Collective Unconscious, though it only uses the RTP sound effects in few places as far as I'm aware.

Of course, if your game is not using any RTP assets, you can just not bundle the RTP and this won't apply to you. I really hope I didn't scare anybody away by saying all of this…

With all of that out of the way…

RPG Maker 2000 and 2003

The runtime for these two is pretty simple. It does not include any scripting engines and such (there are some community made patches for them but that's a different topic). In this case, there is a quite long running project called EasyRPG. These people not only develop the EasyRPG Player (which is actually the topic of this section) but also they are working on a custom, RM2K(3)-compatible game editor (not really usable yet) and a free (as in freedom) RTP replacement, that's not yet 100% complete, but what's already there looks really, really nice and, if you are REALLY scared of the above disclaimer (or just like the look of these assets), you might want to see if you can make your game only use these.

Anyway, advantages of using EasyRPG Player over the stock RPG_RT include:

There are some caveats as well, though these will probably be resolved by an update one day.

How do i use it in my project?

Pretty simple.

  1. Download the Windows version of EasyRPG Player. Even if you use RPG Maker in Wine, you'll need the Windows version to actually playtest using the Player.
  2. Go to your project directory.
  3. Delete, rename, move away the original RPG_RT.exe file.
  4. Copy the Player.exe file here and rename it to RPG_RT.exe
  5. You're all set! The project in question is now using EasyRPG Player.

If you want to, you can make RPG Maker itself to automatically provide the Player for new projects. Simply go to the program folder and replace the RPG_RT.exe.dat file with properly named Player.exe

How do i port my finished game to other platforms?

(Note that I don't know how to do this for all the platforms Player is available on. If I figure something out for missing platforms, I'll add it here.)

Advanced usage

TODO, will likely become a separate page.

RPG Maker XP, VX and VX Ace

In this case, it's a bit more complicated. These programs use something called RGSS, the Ruby Game Scripting System. This is the fancy Ruby based scripting engine that allows you to do much more than with bare events. Problem is, it's notoriously dependent on Windows-specific APIs, not to mention the original runtime using now outdated and deprecated DirectMusic for playing MIDIs, causing all sorts of issues.

Luckily, someone did eventually come up with a open source recreation of RGSS called mkxp, however it itself was targetted at experienced developers comfortable with Ruby, since you had to port your game to it yourself. Because of that, it got forked by, as the author themselves say, “an insane fox with nothing better to do than spend over a thousand hours figuring out how to fix a decade-old engine that runs two-decade old games they don't even care about very much” into mkxp-z, which actually implements the built-in stock RGSS functions, modules, all the good stuff, in a cross-platform way. It was originally developed with the goal of running Pokemon Essentials-based games, which are pretty darn complex. The goal is considered by the author achieved, and, well, if it can run PE games, it can probably run most XP/VX/VXA games without much work, and it almost definitely can run yours!

As a fun fact, latest versions of Pokemon Essentials actually ship with mkxp-z out of box. Talk about irony.

Some advantages of using mkxp-z over original runtime include:

As for the caveats…

How do i use it in my project?

This isn't as simple and straightforward as with EasyRPG Player, but it isn't impossibly hard either. Bare with me.

Obtaining mkxp-z

Keeping in mind you'll need the Windows version for testing regardless of your OS; since mkxp-z is in the state of “endless beta” with no normal releases, your options are:

As of writing this, mkxp-z official builds and documentation does not mention the fact you need 3 more DLLs on Windows for the program to work. If you are compiling it yourself, you already have them in <your MSYS64 folder/mingw64/bin/. These are:

  • libgomp-1.dll
  • libgcc_s_seh-1.dll
  • libwinpthread-1.dll

If you are downloading mkxp-z from me, these zips already include these. Heck, I even host those DLLs themselves here! If you are not, you'll need to get them from somewhere.

Putting it in the project

After you downloaded mkxp-z, putting it in your project is pretty much the same story as with EasyRPG Player.

  1. Extract the zip in your project directory.
  2. Delete, rename, move away Game.exe
  3. Rename mkxp-z.exe to Game.exe
  4. Done! Continue on with the guide, we are NOT done yet!

Configuring mkxp-z

OK, you have successfully put mkxp-z in your project. Now, there are two things we probably should take care of, that being providing the RTP and the MIDI soundfont.

For RTP, you have two options.

As for the soundfont, it's pretty similar. Put the soundfont somewhere nice and set it in mkxp.json. If the soundfont exists in the root of your project directory as soundfont.sf2, you should configure it as follows:

After all that, you should be all set! Try playtesting your game in RPG Maker now. If it works, great! If it doesn't, then I probably missed something in this guide. Tell me if that's the case.

There are more interesting options in mkxp.json, but these two are the most essential to set. Snoop around and tinker at your own discretion.

How do i port my finished game to other platforms?

I am only aware how to do Linux porting at the moment. Sorry :(

It's again a similar story to EasyRPG Player. Simply extract the mkxp-z Linux build into your directory. Remember to omit the mkxp.json file! You can even create a hybrid build of your game, for both Windows and Linux this way.

RPG Maker MV and MZ

TODO, though until i write this section: these are pretty much glorified web games, running on nw.js (Chromium).

RPG Maker Unite

Export your Unity project to other platforms. I dunno, I don't care about Unite.