Tool Ren'Py Extended Variable Viewer 3.00.04 - For walkthrough authors, game authors and modders

5.00 star(s) 6 Votes

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,167
14,882
Hey guys,
is there any way to import previously saved/exported values ?
No, and there probably will never be. I have nothing against the fact to cheat, but there's too many possible issues when importing many values. Even Ren'py itself can react strangely, while many games will just broke.
It's way better to deal with the values one by one.
 

yoyomistro

Engaged Member
Jan 15, 2017
2,679
3,342
Wow, how I am I just seeing this mod @anne O'nymous ? This would have saved me a lot of shooting in the dark with objects over the last couple years... Thanks a ton for this amazing tool! Great for someone lazy like me =P.
 
  • Like
Reactions: anne O'nymous

Cyryl

New Member
Jun 15, 2018
4
0
What about being able to open the viewer with mouse as well?. Like "click on the left/right side"? I use default ren'py rollback setting, it would be nice if you could choose the opposite site as a click for triggering EVV (great, great tool)
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,167
14,882
What about being able to open the viewer with mouse as well?. Like "click on the left/right side"? I use default ren'py rollback setting, it would be nice if you could choose the opposite site as a click for triggering EVV (great, great tool)
It's too random as method. Using the keyboard I already had to change the key combination two times because Ren'py came to use the same than me. So imagine with the mouse, that is also massively used by games themselves. I don't have their names in mind right now, but there's at least three games that use click on the right side as part of their own user interface.

This said, there's an alternative to this. My own button on top of the whole interface. But it need to be easily movable to not hide the game's UI (it's easy), to open a small menu that will never goes outside of the screen whatever the position of the button (more complicated), to be as transparent as the rest of my mods/tools (remove it, Ren'py will not complain, and it's not as easy as it sound), and to be compatible with all the versions of Ren'py since the 6.17.0 (this is a pain in the ass).
So it's still a works in progress for now, but it will happen one day.
 

Cyryl

New Member
Jun 15, 2018
4
0
In (almost?) every game in preferences settings I find the option "rollback side - disable - left side - right side"
Wouldn't such an option for EVV be as invasivise as that "standard" option? A simple hint such "can interfere with the game, keep it disabled in case" would be enough IMHO
I would find it ok if it does not work (e.g.) if you choose the same side selected for Rollback side - again, an hint "don't use the same side for rollack, this will blow up your PC" can be helpful. (bonus point if you really implement PC explosion)

Just something that works in most of cases if correctly set, if not I can revert to default (disabled, of course)

but there's at least three games that use click on the right side as part of their own user interface
How do these games deal with "rollback on right side" option? do they disable it?

A typical use case for me: get a choice in game, open EVV and check modified values, return to game, roll back, pick a different choice, check EVV, (maybe repeat if more than 2 choices...), select best choice, go on
Much easier if you can work just with the mouse.


Given that, great tool, with or without "open with a click" option. thanks for it.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,167
14,882
In (almost?) every game in preferences settings I find the option "rollback side - disable - left side - right side"
You shouldn't see this, it apply for mobile/tactile devices only. And it's not the mouse, it's the "pointer", which is a little different.


A simple hint such "can interfere with the game, keep it disabled in case" would be enough IMHO
When it come to computers, there's nothing like "enough".
In the late 80's, I helped my dad with his first computer. Among the many things I taught him was "create a 'c:\data' directory. and when a program ask you where to save, select 'c:\data' or one of its sub-directory". Simple enough, right ? Still, one year later his "data" directory was still empty and his datas put everywhere ; I even found some in the main windows directory !!! And it's not a question of age, at this time he was younger that I'm now.


How do these games deal with "rollback on right side" option? do they disable it?
By not working on a mobile device. Still don't remember the name, but for one of those game, the dev even explicitly said that there's no port for android because it would imply to redo all the User Interface because of the way the rollback works on them.


A typical use case for me: get a choice in game, open EVV and check modified values, return to game, roll back, pick a different choice, check EVV, (maybe repeat if more than 2 choices...), select best choice, go on
You are using a nuclear bomb to kill an ant. The extended viewer is for more in depth works, or games way too complicated (like Second Happiness, that is the initial impulse for this tool). But for 90% of the games, using the watch console command is enough to know what really matter.
 
  • Like
Reactions: yoyomistro

Cyryl

New Member
Jun 15, 2018
4
0
When it come to computers, there's nothing like "enough".
I know what you mean, I'm a developper too (but no pyton experience at all). Actually, I consider your tool as an "advanced user" tool, used by someone who knows what he is doing, more or less. Very likely, I'm wrong

And as a developper, I understand you not wanting people asking you "why this does not work?"

You are using a nuclear bomb to kill an ant. ... But for 90% of the games, using the watch console command is enough to know what really matter.
Maybe it's just because I don't know the tools. I use unren to enable developper console: are you referring to shift D + Variable viewer? or something else?
Variable viewer in developper console is really far from what you can get with EVV, using the "changed" filter.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,167
14,882
Maybe it's just because I don't know the tools. I use unren to enable developper console: are you referring to shift D + Variable viewer? or something else?
I'm referring to the watch command of the console. When you're on the console, type help it will show you all the available commands.
 

kingshowbei

New Member
Jul 27, 2019
5
2
Please help,
[...XXX\renpy\loader.py", line 648, in transfn
raise Exception("Couldn't find file '%s'." % name)
Exception: Couldn't find file 'AON.rpi'.

Windows-8-6.2.9200
Ren'Py 7.1.3.1092]
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,167
14,882
Please help,
[...XXX\renpy\loader.py", line 648, in transfn
raise Exception("Couldn't find file '%s'." % name)
Exception: Couldn't find file 'AON.rpi'.

Windows-8-6.2.9200
Ren'Py 7.1.3.1092]
Er... Yeah, you couldn't find the file "AON.rpi", because it don't exist.
"rpi" being the original extension for the archives' name, my initial guess was that you were trying to use this tool with a game wrote with a way too old version of Ren'py. But the version of Ren'py is 7.1.3, which is the opposite to "old".
So, I'll go with my hate for the stupids devs that mess with rpa/rpyc files (rpa only I guess here) thinking that it will protect their game (hint: it will not).

I already had to change something because of this (fucking Deviant Discovery and its, then, altered rpyc files) but sorry, this time there's nothing I can do.
Well, nothing except getting ride of the whole rpa archive. But I really don't like the idea. The less files there's, the easiest it is to install.

By curiosity, what's the name of the game ?
 

kingshowbei

New Member
Jul 27, 2019
5
2
Thanks for your reply, the game is "Insexual Awakening 1.0".
I've already run the amazing tool in other two games, and it works well.
 

OtK

Newbie
May 14, 2017
32
17
Just wanted to start out by saying,you're awesome, and this tool is awesome, but I've got a question.

So I found the variable I wanted to find, but the issue is that not only is it in an object, it's in an array inside the object (I think that's what it'd be called, my knowledge of programming is very limited) and I wanted to know if you know how to edit that variable in the console.

For example let's say the object is inventory and inside is itemtype1 and inside itemtype1 there is a Boolean set to False that I want to be True.

I know that normally to edit something inside an object I could do something like inventory.money = 10000, and with that I figured for working the console with another thing it would be like inventory.item1.boolean = True, but that doesn't work, so I was wondering if you'd know how to go one layer deeper in console?
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,167
14,882
Just wanted to start out by saying,you're awesome, and this tool is awesome, [...]
Thanks.


So I found the variable I wanted to find, but the issue is that not only is it in an object, it's in an array inside the object (I think that's what it'd be called, my knowledge of programming is very limited) and I wanted to know if you know how to edit that variable in the console.
Code:
object.attribute[ "something", "other thing", "whatever" ]
Is an array.
You change a value by finding its index ; knowing that the index start at 0.
So, here there's :
0 - "something"
1 - "other thing"
2 - "whatever"

To replace "other thing" by "different thing"... firstly you verify that you have the right index :
Code:
object.attribute[1]
It will write the value at this index. If it's not the right one, count again :)

Then to effectively replace the value, you write this :
Code:
object.attribute[1] = "different thing"
But all what looks like a list isn't always a list, alas. If it don't works or say that it's impossible, then it's not a list, and there's no way to change the value directly. You need to rewrite everything, which is risked.

This said, like you're not sure if it's a list, I'll also talk about the dictionaries. They looks like this :
Code:
object.attribute[ "idx1": "something", "idx2": "other thing", "idx3": "whatever" ]
Here it's easier, everything works by couples. You have the name of the entry "idx1", ":", then the value.
So, to replace "other thing" by "different thing" you need to do this :
Code:
object.attribute["idx1"] = "different thing"
Hope it helped you.
 
  • Like
Reactions: yoyomistro

Amon99

Newbie
Jul 4, 2018
17
1
for some reason...whenever I use this "mod" on a game, I use it once, then the next time I try to open It up it gives me an error. always points to 'scripts.rpy' any idea why?
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,167
14,882
for some reason...whenever I use this "mod" on a game, I use it once, then the next time I try to open It up it gives me an error. always points to 'scripts.rpy' any idea why?
What error it give you exactly ? And with what games ?
The mod itself isn't related to scripts.rpy, but there's possibly some side effects that I didn't noticed yet with the new version of Ren'py or some bad coding.
 

Amon99

Newbie
Jul 4, 2018
17
1
Folder names are long, but gonna use 'em. It happens with DeepImpactPatronSpecial-0.5-pc, Forgotten_Paradise-0.13-pc, four_elements_trainer_v083c-pc, JikageRising-v0.3d-pc, Lab_Rats_2-v0.18.2-pc, Lab_Rats_2-v0.20.1-pc, ParentalLove-version0.12-pc, ParentalLove-version0.13-pc, SpaceCorpsXXX(0.2.5)-v0.2.5-pc and TangledUp-110-pc

that's p much ALL of my ren'py games.

While running game code:
File "game/script.rpy", line 9172, in script call
$ the_morning_crisis.call_action()
file "game/crises.rpy", line 3518, in script
"The door to [the_person.possessive_title]'s room opens as..."
File "game/script.rpy", line 3033, in _cmp_
if self.name == other.name:
AttributeError: 'str' object has no attribute 'name'

it's always different in general depending on game, but the end always says AttributeError: 'str' object has no attribute 'name'

it happens when I try to press Alt+E a second time after activating it once.
 

anne O'nymous

I'm not grumpy, I'm just coded that way.
Modder
Respected User
Donor
Jun 10, 2017
10,167
14,882
DeepImpactPatronSpecial-0.5-pc, Forgotten_Paradise-0.13-pc, four_elements_trainer_v083c-pc, JikageRising-v0.3d-pc, Lab_Rats_2-v0.18.2-pc, Lab_Rats_2-v0.20.1-pc, ParentalLove-version0.12-pc, ParentalLove-version0.13-pc, SpaceCorpsXXX(0.2.5)-v0.2.5-pc and TangledUp-110-pc
From all of them, the only time I had the error was with Lab Rats 2 (an horror the code of this game). Therefore, I don't guaranty that I have effectively fixed the problem.

Can you please try the version attached to this post, and tell me if the error still happen for you with the other games ?
 
5.00 star(s) 6 Votes