What's new

A save editor for RPG Maker


JustLurksHere

Jungle Girl
Joined
Oct 28, 2016
Messages
558
Reputation score
45
...so, the save looks valid, though its contents makes me question the level of skill of either the plugin's author or its user.
The design doesn't seem well thought out.

Anyway, most likely somebody just needs to update size limits in the program or perhaps implement a file reader more robust than just throwing the whole unpacked string at json parser.

Yeah, I know, easier said than done. I'm just as lazy in my toy parser of ruby maker archive files.
 
OP
F

Froggus

Tentacle Monster
Joined
Apr 14, 2012
Messages
366
Reputation score
117
I did not expect the default size limit for the JSON serializer to ever be a problem, but considering the horrors I see in my day job I don't know where that optimism came from.

I also finally got around to dealing with Ruby structs. Just two months late.

Bust mostly, I was working on support for filtering the characters, items, switches and variables.

So anyway, new version.
 

JustLurksHere

Jungle Girl
Joined
Oct 28, 2016
Messages
558
Reputation score
45
@Froggus : I've got a not-quite related request. I've stumbled upon . It's supposed to work with RPGM XP, but for some reason I can't make it to.
Would you check that program and see if it works for you ? It's the XP part that interest me most. Sure, I could unpack and make the change in main, but I'd rather not.
 

DARK_ANGEL_HACK

New member
Joined
Oct 28, 2020
Messages
1
Reputation score
0
I did not expect the default size limit for the JSON serializer to ever be a problem, but considering the horrors I see in my day job I don't know where that optimism came from.

I also finally got around to dealing with Ruby structs. Just two months late.

Bust mostly, I was working on support for filtering the characters, items, switches and variables.

So anyway, new version.
Your RpgMakerSaveEditor 0.65 have a memory lack consumation, when writes a file once edited, it takes 30% CPU Usage to decode and it takes 4 minutes to write with 42.9% CPU Usage and a full program lag, then closes and the file don't get corrupted, its a great tool man, but could you fix it?
 

xrnn

Newbie
Joined
Nov 4, 2012
Messages
5
Reputation score
0
well, seems like I'm getting this error whenever I'm trying to edit saves from a certain game.
game number is RJ311454.
any idea what might cause it? tried multiple save editors, both online and offline. nothing works.


System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at RpgMakerSaveEdit.Mv.LZString.Decompress(Int32 length, Int32 resetValue, Func`2 getNextValue)
at RpgMakerSaveEdit.Mv.MvSavedGame.ReadSaveFile(Stream file)
at RpgMakerSaveEdit.Mv.MvSavedGame.Create(IFile file)
at RpgMakerSaveEdit.MainWindow..ctor(IFile file)
at RpgMakerSaveEdit.App.OnStartup(Object sender, StartupEventArgs e)
 

JustLurksHere

Jungle Girl
Joined
Oct 28, 2016
Messages
558
Reputation score
45
@xrnn: The traceback gives a decent enough hint. You might want to check the most primitive editor, one that's most likely to work ( ).
 
OP
F

Froggus

Tentacle Monster
Joined
Apr 14, 2012
Messages
366
Reputation score
117
well, seems like I'm getting this error whenever I'm trying to edit saves from a certain game.
game number is RJ311454.
any idea what might cause it? tried multiple save editors, both online and offline. nothing works.


System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
at System.ThrowHelper.ThrowKeyNotFoundException()
at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
at RpgMakerSaveEdit.Mv.LZString.Decompress(Int32 length, Int32 resetValue, Func`2 getNextValue)
at RpgMakerSaveEdit.Mv.MvSavedGame.ReadSaveFile(Stream file)
at RpgMakerSaveEdit.Mv.MvSavedGame.Create(IFile file)
at RpgMakerSaveEdit.MainWindow..ctor(IFile file)
at RpgMakerSaveEdit.App.OnStartup(Object sender, StartupEventArgs e)
The game uses custom compression for its save files, but since I was playing the game anyway and there's a chance the compression will become more popular in the future I've added support for it. The game also seems to use a custom party format, so you'll be able to edit gold and items but not characters.
 
OP
F

Froggus

Tentacle Monster
Joined
Apr 14, 2012
Messages
366
Reputation score
117
I think I've figured out the format of the saves for the new RPG Make MZ. It seemed simple enough at first, but a bug in the their save code makes the files more bloated than they should be and introduces some accidental obfuscation. Will investigate more this weekend, probably.
 

JustLurksHere

Jungle Girl
Joined
Oct 28, 2016
Messages
558
Reputation score
45
You might be overcomplicating it a bit.
While pako seems to be quite a pissant (it's supposed to produce zlib-compatible streams, but for some reason python doesn't seem to recognize them as such), as long as you can stay within the browser and use pako, number of changes needed to read the saves is pretty much limited to exchanging LZString for pako.

Edit: Writing them back seems to require about the same amount of changes. Though I'd like to figure out what exactly happens that makes the files written by MZ deemed invalid by python.
I suspect those utf8 <-> utf16 shifts play a role, but for the time being can't tell anything definite.
 
Last edited:
OP
F

Froggus

Tentacle Monster
Joined
Apr 14, 2012
Messages
366
Reputation score
117
You might be overcomplicating it a bit.
While pako seems to be quite a pissant (it's supposed to produce zlib-compatible streams, but for some reason python doesn't seem to recognize them as such), as long as you can stay within the browser and use pako, number of changes needed to read the saves is pretty much limited to exchanging LZString for pako.

Edit: Writing them back seems to require about the same amount of changes. Though I'd like to figure out what exactly happens that makes the files written by MZ deemed invalid by python.
I suspect those utf8 <-> utf16 shifts play a role, but for the time being can't tell anything definite.
The data is UTF-8 encoded twice. First the JSON is UTF-8 encoded, then it is zipped, then the zipped bytes are also UTF-8 encoded. That's what bloats the save files.
 
OP
F

Froggus

Tentacle Monster
Joined
Apr 14, 2012
Messages
366
Reputation score
117
There, I've uploaded a version that works on at least some MZ games. Do remember to back up your saves before using it.
 

JustLurksHere

Jungle Girl
Joined
Oct 28, 2016
Messages
558
Reputation score
45
Froggus said:
The data is UTF-8 encoded twice. First the JSON is UTF-8 encoded,...
That phrasing is a bit off - json files pretty much are supposed to be utf8 encoded (as per spec) and in case of MV/MZ they are.
Though I agree that part of the code would look much cleaner and saner if they simply pushed around raw byte arrays.
I still didn't figure out how exactly do it outside pako, but I'm pretty sure most of the mess comes from using pako's 'to: 'string'' option.
 

Rextra

Member
Joined
Jun 25, 2018
Messages
52
Reputation score
12
Thanks a ton for this. Tested on a couple of MV games, all worked flawlessly. Would be perfect to include switches and variables editing, which I guess will be the next step, considering that there's already a greyed-out option for that in the advance tab. Anyway, take your time, no need to rush, you have already done a great deal for all of us.
 

SoulLess Child

Active member
Joined
Nov 26, 2018
Messages
586
Reputation score
121
Thanks a ton for this. Tested on a couple of MV games, all worked flawlessly. Would be perfect to include switches and variables editing, which I guess will be the next step, considering that there's already a greyed-out option for that in the advance tab. Anyway, take your time, no need to rush, you have already done a great deal for all of us.
that should work, at least it does when the saves are in \www\save folder.
 

Rami Qasimi

New member
Joined
Jun 15, 2021
Messages
1
Reputation score
0
MvSaveFile: Edit anything, but you have to use a text editor. I suggest Notepad++ with JSTool plugin.

RpgMakerSaveEdit: Edit gold, class XP. Works on RPG Maker MV, VX/VX Ace and XP.

(mega mirror)

version 0.69
Support for RPG Maker MZ. Still not widely tested, remember to back up your games before editing.

version 0.68
Support for deflate-compressed save files.

version 0.67
Support for filtering the list of characters, items, switches, and variables.
Support for larger json files in MV save files.
Half-assed support for Ruby structs in VX save files.

version 0.66
Fixes a bug that could destroy saves for RPG Maker MV.

version 0.65
Support for latest RPG Maker MV.

version 0.63
Fixes switch editing.

version 0.61
Fixes item editing for some MV games.
Fixes a rare crash in VX games.

version 0.6
Edit items, armors, weapons for games that don't use a customized equipment system.
Logging of exceptions.
Broader support for VX Ace games.

version 0.5.2
Edit integer variables in addition to switches.

version 0.5.1
Edit all bonus stats in VX saves.

version 0.5.0
Edit game switches.

version 0.4.0
Edit character's bonus stats.

version 0.3.3
Support even more games.

version 0.3.2
Support for some weirder save files.

version 0.3.1
Support for VX and VX ace.

[Thread renamed from Does there exist a save editor for RPG Maker MV?]

I have thrown together a tool that... works, for at least one game... but has a horrible interface. And I don't want to waste time improving it if someone else has already done the work.
I've downloaded it , now how it will work ?
 

JohnDog2353

New member
Joined
Dec 9, 2019
Messages
1
Reputation score
0
I keep getting this error when trying to edit a save file from A Struggle with Sin v .3.9.0.a

This is from using the RpgMakerSaveEdit program the version that opens a command prompt and uses a text editor to change values

System.ArgumentNullException: Value cannot be null.
Parameter name: input
at System.Web.Script.Serialization.JavaScriptSerializer.Deserialize(JavaScriptSerializer serializer, String input, Type type, Int32 depthLimit)
at RpgMakerSaveEdit.Mv.JsonUtil.DeserializeMutable(String json)
at RpgMakerSaveEdit.Mv.MvSavedGame.ReadSaveFile(Stream file)
at RpgMakerSaveEdit.Mv.MvSavedGame.Create(IFile file)
at RpgMakerSaveEdit.MainWindow..ctor(IFile file)
at RpgMakerSaveEdit.App.OnStartup(Object sender, StartupEventArgs e)




I've used the other versions that opens a program allowing variable and switch editing which works as intended but doesn't allow me to change the MC's stats.
The version I am having an issue with I've managed to use in the past to edit the MC's stats in the past. Also attached a zipped save file of the file I am attempting to edit
 

Attachments

Top