RPG Maker MV and MZ use a custom encryption/scrambling method for their assets (tilesets, faces, battlers, etc.). They take a normal .png , apply a simple XOR obfuscation, and save it as .rgmvp .
Today, we’re going to fix that. Let’s talk about what .rgmvp files actually are, why they exist, and—most importantly—how to convert them to standard .png images. First, a quick myth-buster: An .rgmvp file is a PNG file. But with a twist.
def rgmvp_to_png(input_file, output_file): with open(input_file, 'rb') as f: data = bytearray(f.read()) for i in range(len(data)): data[i] ^= 0x29 # The XOR key used by RPG Maker with open(output_file, 'wb') as f: f.write(data) rgmvp_to_png('character.rgmvp', 'character.png')
If you’ve ever dug into the files of an RPG Maker MV or MZ game, you’ve likely run into a frustrating little wall: the .rgmvp file format.
A: Those are different (audio-related). This post is strictly for .rgmvp (image) files. Final Thoughts The .rgmvp format is a minor speed bump, not a brick wall. With a simple XOR decode, you can turn that “locked” file back into a usable PNG.