Tool Ren'Py Ren'Py Save Editor [v1.6.1] [Last Moment]

4.00 star(s) 4 Votes

Last Moment

Member
Modder
May 26, 2017
189
393
Sometime ago, i decide to make a simple Ren'py Save Editor. I was happy to share it with you guys . Sorry, I can't edit the other thread so i created a new one.

Today, I'm posting an update adding more features, improvements and fixes issues found by & Thanks for them.

The Editor simply open the save file for editing and can save the modified file in-place.

Run-time requirements:
  • .NET Framework 4.5
Features
  • Modify Save file in place
  • Search for variable or value
2018-09-06_16-01-43.png


You don't have permission to view the spoiler content. Log in or register now.

You don't have permission to view the spoiler content. Log in or register now.

Download
  • Version 1.6.1
  • Version 1.5
[/LIST]
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
9,949
14,548
As far as I can judge, for integers it's correct. But there's now some weird problems.
Before to continue a precision, I voluntary used a saved file containing some of my own tools variables. I did this because I know that it will add objects to the save file even if they are no object normally saved by the game. I clearly understood that for now you focus on integers, and that objects will give a weird result, that what I wanted to see, how weird it is.

On the positive side, like I said all integer values I have checked are correct. And on game with integer only it works fine. On the negative side, once there's more than integers, you've variables seen twice :
saveeditor.png
I'm not sure at 100%, but apparently all the variables prefixed with "store." are seen twice, once with the prefix and once without it.
Normally the prefix is useless since "store" is the default store and so variables don't need to be prefixed in regular scripts. Still, when used from an external python script or another store, the prefix is needed.
I can't confirm that it's that, but it looks like the prefixed variables were the ones I checked at some time in the console. But I don't know why are they saved twice.


Objects introduce a really weird behavior in the editor. Apparently at some time it stop correctly keeping track of the position and start to see as variable's names things that clearly aren't :
saveeditor2.png

All this said, seen from my point of view, this version is really better than the previous one. The save file I used for the screenshots is the same that returned nothing the last time. But still you seem to take the problem from the wrong angle. Data serialized by pickle are just small programs able to recreate the data structures and their content. So once you understood which opcode mean what, a bunch of "if opcode == this, do that" is enough to deserialize the data. Don't see your editor as something that read data, but as your own interpreter for programs wrote by the pickle module. And for the save part, it your own compiler which write the programs.

For this, you can look directly at the module source code to find the opcode, or use a real small ren'py code. Something really simple like :
Code:
label start:
 $ a = 10
 $ b = 11
 "Please, save now."
This way you'll find the correct opcodes for "this variable is named 'a' and its content is '10'", and you can confirm that it's right if the same thing also mean "this variable is named 'b' and its content is '11'". Then you change your code and assign the string "abc" instead of "10", and "def" instead of "11", which will give you new opcodes. In the same time, you should normally found the opcode meaning "it's the end for this structure", which should help you jump unknown opcodes.
I think that anyway you'll have to use the small Ren'py code at one time, since Ren'py add some parasitic data.


Side note: For the thread edition, the decision must come from the staff, but I think you deserve the "modder" flag.
 

Last Moment

Member
Modder
May 26, 2017
189
393
Thanks anne O'nymous for your great test and support

I'm not sure at 100%, but apparently all the variables prefixed with "store." are seen twice, once with the prefix and once without it.
Normally the prefix is useless since "store" is the default store and so variables don't need to be prefixed in regular scripts. Still, when used from an external python script or another store, the prefix is needed.
I can't confirm that it's that, but it looks like the prefixed variables were the ones I checked at some time in the console. But I don't know why are they saved twice.
I tested it with some games but never face this problem, Please attach the save file you used to check it may be the variable appear twice in the file itself.

Objects introduce a really weird behavior in the editor. Apparently at some time it stop correctly keeping track of the position and start to see as variable's names things that clearly aren't :


All this said, seen from my point of view, this version is really better than the previous one. The save file I used for the screenshots is the same that returned nothing the last time. But still you seem to take the problem from the wrong angle. Data serialized by pickle are just small programs able to recreate the data structures and their content.
I'm aware of this issue, next i will work with the structure / object records.

I know exactly how pickle works and i studied all the opcodes for example it use 'J' to prefix the 4 bytes signed integers.

The issue is the dynamic nature of the python, you can load everything in the file using non-dynamic language like C#. so i'm unpickling the file datatype by datatype :)

Side note: For the thread edition, the decision must come from the staff, but I think you deserve the "modder" flag.
Thanks for your suggestion, really appreciate it.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
9,949
14,548
I tested it with some games but never face this problem, Please attach the save file you used to check it may be the variable appear twice in the file itself.
They appear twice in the file. Still I'll attach the "log" file ; you'll understand better than me why this happened.


so i'm unpickling the file datatype by datatype :)
No problem for me. Now at least we are sure to both talk about the same things ;)


Thanks for your suggestion, really appreciate it.
It's nothing, you are the one who do all the works.
 

Last Moment

Member
Modder
May 26, 2017
189
393
Thanks for sharing the file

They appear twice in the file. Still I'll attach the "log" file ; you'll understand better than me why this happened.
So my unpickling technique is fine with this :) i will check this file too and use it for test as well, Thanks again
 

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
Hi @Last Moment i'm just trying your mod. Can i ask you if is possible to see the variables sorted in alfabetical order? Thank you
 

Gold613

Active Member
Sep 21, 2016
618
723
Not going to say I doubt you or anything but every time I try to download your file from mega, I get either interrupted or deleted on all my browsers, and the reason for it is because of my virus scanner. So just to be sure or what not could you check out what is flagging it ?

Ill link you here a screen shot of what I am received,
 

Last Moment

Member
Modder
May 26, 2017
189
393
Not going to say I doubt you or anything but every time I try to download your file from mega, I get either interrupted or deleted on all my browsers, and the reason for it is because of my virus scanner. So just to be sure or what not could you check out what is flagging it ?

Ill link you here a screen shot of what I am received,

Ill relink in a few have to blank out some stuff.
can you try the attached file? but i'm 100% sure the file is safe.
 

Gold613

Active Member
Sep 21, 2016
618
723
here you go, I had a link up but noticed that it had my User name linked which I use on other stuff so took it down to black it out

While it does say, Chrome, I received that same thing on my opera and brave browser.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
9,949
14,548
here you go, I had a link up but noticed that it had my User name linked which I use on other stuff so took it down to black it out
Just tested it with , the result is . Most of the match are with old virus/worm, none of them are the one detected for you, nor an alias of it. So for me it's a false positive result.
 
  • Like
Reactions: Last Moment

Gold613

Active Member
Sep 21, 2016
618
723
Just tested it with , the result is . Most of the match are with old virus/worm, none of them are the one detected for you, nor an alias of it. So for me it's a false positive result.
Yea I was thinking a false positive from the start but my problem was because of the trigger I can't even download it, I only legit use Malware bytes (pro paid) and bit defender thing really, and on your end it tells bit defender does not show a trigger yet on my end it does, I have it turned off but i still cannot download it as when it is completed it will automatically get instantly deleted or quarantined which pisses me off.

Hence why I wanted to see if he can look in too it to see what may be the cause and possibly if it is not too much to fix it so i can download and use it.
 

Last Moment

Member
Modder
May 26, 2017
189
393
Just tested it with , the result is . Most of the match are with old virus/worm, none of them are the one detected for you, nor an alias of it. So for me it's a false positive result.
Thank you again for your support. I posted an update today, wait for your feedback :).
 
4.00 star(s) 4 Votes