sknf

Member
Modder
Oct 15, 2016
385
556
great post , but wayyy too much information :)

for example you can skip the whole dl python thing , console bla bla
with just the one sentence "find in the forum the unren.bat file , run it , choose extract rpa/rpcy files and enable console etc and that's it"
 
  • Like
Reactions: Parmenion1405

Parmenion1405

Member
Dec 27, 2017
213
174
ok now i am making some progress. But the walkthrough says i have to buy a swimmsuit on Saturdays in the Badgrils shop. But i only hide when i am there even if i have 4k bugs with me... still trying but any help would be kind
 

Daasss

Member
Jan 23, 2017
223
367
Great post, now good luck figuring out what some variables (smth like moyra_ass_lock) mean :-D
 

Durrr

Member
Dec 10, 2017
138
665
This post is about; how to unlock scenes and when you are stuck how to progress in a renpy game. I think this post will help everybody stuck in any/most renpy games.

So, you are stuck how would it be possible to progress?

A renpy game basically is, as you may well know, a stuctured text (python) showing images(jpeg, pngs, etc. and some videos-webms and such) when conditions are met/right in its statements.

When you search filename of the image in a scene in renpy files you will see conditions how to access to scene with file modification or change game values. I will show the route with changing values in the game through the console. Other route may (and very possibly will) break your game installation (or archive extraction :)). Now i will list the steps to successfully alter game:

1) Enable in game console.
2) Extract images and game code (read the warning in that section for duplicate files!!)
3) Find desired scenes
4) Install a file search tool (Notepad++ in my case).
5) (optional)Change in game values. voila!

1) How to enable in game console?
We have to modify "00console.rpy" file in this folder "GAMENAME\renpy\common\".

View attachment 57853

Open this file with noterpad++ or a standart text editor and find "config.console = False". It is generally near 100th line.Change this to "config.console = True", just edit the word "False" to "True". Indentation and spelling is important in python, if you change the identation or write "true" there will be errors.

View attachment 57854

View attachment 57855

Save the file and quit the text editor.

2) Now the most tricky part of this tutorial. Some renpy games contain media (pictures, audio and movies) and game code in archives (.rpa files). Some games contain only media as archive but game code as extracted. And some cases game codes are encrypted as .rpyc files. If there are .rpy files then they are not encrypted(generally unencrypted files reside next to encrypted files, eg: "gamecode.rpy" and "gamecode.rpyc"). If media and game codes (as well as unencrypted) are not in a archive you may skip this step. But very possibly either they are in a archive and game codes are encrypted.

You can archives and game codes in "GAMENAME\game\" folder:
View attachment 57856
So, "Second_happiness-1.0-all" contains media in an archive and game codes are encrypted :(

So if either files are in an archive or game codes are encrypted then follow thsese steps:

a) install python

Get python from:


You may install python for a number of platforms; windows, linux, mac etc.
After installation lets check if it works:
View attachment 57857
If python is installed properly you may execute python from any directory in console. You see we checked python version inside "game" directory of our renpy game. If there is an error you may need to restart your operating system for environmental values to apply. If you have an error visit:


Now I assume everything is OK with your python installation.

Now we need two tools to extract archives and decode game codes:



download these and copy inside the "game" folder.

View attachment 57858


You may have trouble with downloading from github if you have no experience using github :). If i won't forget, i will upload them in this post.

So let's start with extracting the .rpa archive(s). All commands are to executed without quotation marks!!! I put them to mark them.
Before invoking command, this is how the "game" folder seems:

View attachment 57859

So we will invoke this command in console:
"python rpatool.py -x archive.rpa"
View attachment 57859

and also we have two archives, lets extract archiveF10.rpa too:
"python rpatool.py -x archiveF10.rpa.rpa"
View attachment 57862

Now the folder seems like this:

View attachment 57863


Now you see a lot of files added!. Now one of the most important thing to do:
DELETE ARCHIVE FILES, OR MOVE THEM TO ANOTHER FOLDER OUTSIDE GAME FOLDER OR CHANGE THEIR EXTENSION (.rpa to .rpaxx for example). I change their extension:

View attachment 57864

Because now we launch the game renpy tries to process extracted media files and game codes twice and will throw an error!!!! You have been warned.

Now lets decode/decompile .rpyc file. Extract "unrpyc.zip" (or "unrpyc-master.zip") to your game directory (extract files inside "unrpyc-master" directory inside zip file to "game" folder):
View attachment 57865


Now lets decompile them from console with the command:
"python unrpyc.py -c *.rpyc"

View attachment 57866

Now if you see this:
View attachment 57867

View attachment 57868

VOILA!!!!!

Most of the hard work is finished :)))

3) Now, this step will tell you how to find missing scenes/or how to progress when you are stuck. In this bit I will try to explain in detail about game mechanics(as renpy it it very basic):

I previously stated the obvious: A renpy game is actually bunch of media files (pictures, videos and audio) put sequentially when some conditions are met. I will put an example of renpy code block first a more human readable code (renpy/python code is obviously may be considered as clear human readable, you may say mine as "non programmer human readable :)").
**************
(a scene starts)
show image image1
show image image2
change visit_number by adding 1 to it
if user visited this scene 3 or more times show below images
show image image3
show image image3
show a multiple choice to user
choice1
choice2
if user clicks choice1, increase money with 200
if user clicks choice2, go to other scene
(scene ends)
**************

now lets put this in renpy words, a scene (group of images or a group of codes to execute) is generally marked as "label" in renpy. An image is displayed with "scene". Of course there are more details in these but this is the basic usage:

**************
label beach:
scene BeachShantSea1
scene BeachShantSea2
if(shant_money_beach >=3):
scene BeachShantSea3
scene BeachShantSea4
menu:
"Give money":
$ shant_money += 200
"pass":
jump beach_money1

**************

So what happens in the code block?
There is a scene (or a set of images and statements to be executed) defined as "beach". It sequentially displays BeachShantSea1 and BeachShantSea2 images. If shant_money_beach is 3 or more; display BeachShantSea3 and BeachShantSea4 images and at the end, present user with two options. If user clicks "Give money" then increase the variable shant_money by 200 (if you have given shantrel 2150$ by now, after this shantrel would have 2350$, thus "shant_money" would be 2350). if user clicks "pass" you would jump to another set of images called as "beach_money". The important point in this block is that if "shant_money_beach" is less than 3 then you won't get to the part of BeachShantSea3 and BeachShantSea4 images. So somewhere in code there must be a "$ shant_money_beach +=1". That would be inside (probably) in other scene (or as in renpy terms "label").

This may seem frustrating at first, but if you follow just a little more and after some real practice you will get expert providing yourself with basic solutions.

Now it is important to learn how renpy processes images under "game" director or under sub-directories of "game" folder. Renpy flattens sub-directories and extensions of image files. What?
Let's have an example. After extraction browse sub-directories of "game" folder. Lets look under "CharShantel" and "CharBrenda" directories

View attachment 57869

View attachment 57870

how does an image called from a renpy statement? (there are actually different implementations, but generally Second Happiness and other use basic notation). Let's take the image "BeachShantSea11.jpg" from "\game\CharShantrel". So when you call this image with "scene" keyword in renpy, you would type:

"scene BeachShantSea11"

What? Why not "scene \game\CharShantrel\BeachShantSea11.jpg" or "scene \CharShantrel\BeachShantSea11.jpg" or etc? renpy flattens all relevant file location and file extension!!. So the image below:

\game\{sub-directory1}\{imagefilename1}.{imageextension/type}

becomes just:

imagefilename1

This part is important. All relevant file location and image extension is thrown out. Of course in some neatly and better designed renpy games you may have:

image shantrel beach image one = "\CharShantrel\BeachShantSea11.jpg"

so let's wrap it up:
* renpy flattens of file location and extension from files, so:

"\game\CharShantrel\BeachShantSea11.jpg" becomes "BeachShantSea11" , you may have sets of sub-directories, so again:

"\game\CharShantrel\BeachShantSea11.jpg" => BeachShantSea11
"\game\CharShantrel\folder2\BeachShantSea12.jpg" => BeachShantSea12
"\game\dir1\dir3\dir5\image1.png" => image1

There won't be a problem sequential files having DIFFERENT extensions:

"game\dir1\image1.png"
"game\dir1\image2.jpg"
"game\dir1\image3.jpg"
"game\dir1\image4.png"

but you can't have same names even in different directories:

"game\dir1\image1.png"
"game\dir1\image2.jpg"
"game\dir1\image3.jpg"
"game\dir5\image1.jpg"

there will be a call of two "image1" image even with different extensions and in different directories. If you use good notation stated above, actually you may. But not with simple "scene" keyword, if you write following in a renpy code:

scene image1

you will have a bad time.

Most of this information concerns a renpy game programmer. I have given this information just to give you better understating of following steps.

Now let's find a real world example that concerns us. For example the image "Sh06PornTV7.jpg" under "\game\CharShantrel\Sh06PornTV7.jpg" . This is an extended scene(image) displayed in TV watching event.

4) Install Notepad++ 8or any text processor with a capability of searching a keyword inside a bunch of files in any sub-diretory. Download notepad++ from:



Install it, then run the program:
View attachment 57872

Press CTRL+Shift+F of Search-> Find in files

View attachment 57873

Now fill in these:

Find what => Sh06PornTV7
Filters => *.rpy (if you dont set this notepad++ will search every file!!!)
Directory => full path of game directory for our game, now in my case:

View attachment 57874

now press "Find All":

View attachment 57875

and, voila:

View attachment 57876

Now double click the result (the line says Line xxx) it will take us the the .rpy code with the relevant line:

View attachment 57877

now you will see that there is an "if" block with conditions:

if (shant_tv_porn == 702 or shant_tv_porn == 703 or shant_tv_porn == 704 or shant_tv_porn == 705):

so if the variable "shant_tv_porn" is not 702, 703, 704 or 705 you won't advance to "Sh06PornTV7" scene(actually image). Now let's run the game and find the value stored as "shant_tv_porn" in our save.

By the way I had the following error:

View attachment 57879

I deleted the sub-directory "testcases" under "game" directory, everything went fine. Now load our save and after loading our save press "SHIFT+O" to open console:

before SHIFT+O

View attachment 57880

after SHIFT+O

View attachment 57881

you may notice an command input at the uppermost section of the screen. To display our variable in question "shant_tv_porn" enter it:

View attachment 57882

press enter then you see:

View attachment 57883

so in my save in question my variable of "shant_tv_porn" is 700. You may press ESC to colse console!!!. Now if we enter:

shant_tv_porn = 702

in the console and press enter then we will set the variable "shant_tv_porn" to 702 in game and if we save the game this variable will be stored as 702 and next time we will be able to advance to the scene Sh06PornTV7 part. But this short cut would (and in most cases WILL break some parts of the game). So let's take not the easist route but the solid route: Find the codeblock where "shant_tv_porn" is altered in game code and how we would really and lawfully!!! advance in the game.

OK, how we would do this? By searching "shant_tv_porn" in notepad++ in rpy files :) :

View attachment 57884

now this frigging confusing, isn't it?

View attachment 57885

actually not after we talk about assignment and checking of variable in renpy (or most programming languages).

When a single equal sign "=" is used, it tells program to assign the number/value on the right of statement to the value in the left. So:

a = 500

means; take 500 and assign to variable "a" and now variable "a" is 500.

When a double equal sign "==" is used, it tells program to check if the value/variable in the right is EQUAL to the variable in the left, so:

a == 400

means; is "a" is equal to 500?

In programming languages (in most of them) the single equal sign "=" is an assignment of a value/variable to another, double equal sign "==" is to check a condition. You may check for further detail:


After you get the concept it is easier to process the find results. We will check the results with assignment operators; "=" or "+=". What? What the f.ck is "+="?

"+=" means increment the variable on the left with the value/variable on the right. So in results there are couple of points of interest:

* Line 236 $ shant_tv_porn += 1
(this states that there is a condition which increases shant_tv_porn with 1.

* Line 290 if (shant_tv_porn == 700):
Line 291 $ shant_tv_porn = 701

* Line 296 if (shant_tv_porn == 701):
Line 297 $ shant_tv_porn = 702

* Line 352 $ shant_tv_porn = 703

* Line 348 $ shant_tv_porn = 704

* Line 355 if (shant_tv_porn < 699):
Line 356 $ shant_tv_porn = 700

So if your "shant_tv_porn" is lower you should click the result with line 355. But in my real shant_tv_porn = 700 case (which we got from console in the game) I must first increase it 701 and then to 702 ( because to display "Sh06PornTV7" we found this code : "if (shant_tv_porn == 702 or shant_tv_porn == 703 or shant_tv_porn == 704 or shant_tv_porn == 705):" above)

So in order to progress without breaking game lets click line 290:

View attachment 57886

now i speak english and the dialog language as default is russian in game codes we will make and additional search for russian text in our game progress to get out where where are stuck. So lets take this block from our results:

View attachment 57887

this part show how we can increase our "shant_tv_porn" value from 700 to 702. We (I) should translate russian text from google translate:



Трогать = Touch
Ты вообще меня не слушаешься! = You do not listen to me at all!
(this choice makes our variable 701)


Нет = No
Я ушла, а ты мультики смотри! = I'm gone and you watch cartoons
(this choice makes our variable 702)

So we know this scene, saturday evening, we will turn on porn first, then we will turn it off. And when we get to this option:

View attachment 57888

First time we will select "Touch", then next week/time w will select "No".

That is all!!!!!!! WE MADE IT. WE PROGRESSED TO DESIRED SCENE.

Extra info about our scene:::
************
Also if you have some programming experience, you may see that changing shant_tv_porn to 702 from console would not break the game if our initial value is 700, because both choices ("Touch" and "No") only changes our desired variable "shant_tv_porn" and jumps to same label "jump shant_hall_tv_end2". If there was a block like this:

"Трогать":

scene Sh06PornTV6 with Dissolve(0.5, alpha=True)
shantrelN "Ты вообще меня не слушаешься!"

"...{image=HeartQue.png}"

if (shant_tv_porn == 700):

$ shant_tv_porn = 701

$ shant_tv_variable = 5
jump shant_hall_tv_end2

I put an extra variable assigment "$ shant_tv_variable = 5" to this block. So if we would change "shant_tv_porn" from console, the other intended variable of "shant_tv_variable" would not be assigned 5 and your whole game would break!!!!!!!!!!!!

If I have time I will color this manual and create a pdf. But it may take time.


Now; to practice I may get two requests from you who are stuck. And want to progress to certain event/image/scene. find the appropriate image and and post referring me in your post. It is sunday and probably I will reply monday at best.

If you want to buy a beer to me, you may use this bitcoin adress :) :
3GhY43bNj8dtHmNKSGqNGYz8zhJE39CK7u

Thanks. Feel free to correct any mistakes.
wow
 

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
ok now i am making some progress. But the walkthrough says i have to buy a swimmsuit on Saturdays in the Badgrils shop. But i only hide when i am there even if i have 4k bugs with me... still trying but any help would be kind
If you can't buy her a swimsuit means didn't progress enough with the previous scene/events or are low in stats.
 

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
Great post, now good luck figuring out what some variables (smth like moyra_ass_lock) mean :-D
moyra_ass_lock it's just a variable name that can be "john" or "mike" whatever you want. It's not important the name but what that variable do and how to increase it. Following the same example using notepad++, file search, you can find where that variable is and what that variable do.
 

Jambobby

Newbie
Sep 3, 2017
37
0
Hi guys,

I'm stuck with Jennyin classroom. I can talk to her 100 times of each of the three subjects but nothing happen so i can't see her in front of the class to continue the beach girls story
Thanks for answers
 

bobn

Member
Oct 31, 2017
319
79
Do you have to pick one path on this? I read a post where if your stats get too high, then some options aren't open with other characters? Right now, I'm following the walkthrough for Shantel, Moira, Julia - but will that keep me from having opportunities with Brenda and the sisters?
 

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
Maybe this is a nice game but i am frustrated. It seems an immens grind. I have spend allready 6 hours with doing stuff, even with walkthrough. I can pull up "Mom's" Skirt... but the point where i should ignore does not appear... is this realy intendet. The walkthrough on page 1 post 1 is a mess cos later addet stuff is later in the walkthrough must be done eraly. I am Nerdking 51, have "only" 500k left, smartass is 18.5 imudence 19 ... and just realiezed that with it i screwed the Lala path,

Or is there something i am doing wrong
If you just skipped the Lala event hotspot "Poke" don't worry, it's only one scene good for nothing. I have posted some save on page 198, you can chose wich one you like\need and continue the game. To get the hotspot "Up" you need before find the hotspot "Tickle" on monday morning breackfast tha's really hard to find. I put both save there "Poke" and "Tickle", hope this will help.
 

Parmenion1405

Member
Dec 27, 2017
213
174
Hi guys,

I'm stuck with Jennyin classroom. I can talk to her 100 times of each of the three subjects but nothing happen so i can't see her in front of the class to continue the beach girls story
Thanks for answers
Same here i have had an Heart End in first and second talk option. But with "Lesbian" option i only get a ? every time... the game is realy nice, but since i discovered that some events seems related to progress in other pathways. And a lot of stuff can triggert in different orders.. its hard. So u normaly will spend grinding at least twice as much time (it could easy be 4-5 times needed) kills a little fun

edit: And some progress needs to be achived at the same daytime.. so your forced to do week after week with very slow progress. And it seems impossible to progress in all pathways equaly
 

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
Same here i have had an Heart End in first and second talk option. But with "Lesbian" option i only get a ? every time... the game is realy nice, but since i discovered that some events seems related to progress in other pathways. And a lot of stuff can triggert in different orders.. its hard. So u normaly will spend grinding at least twice as much time (it could easy be 4-5 times needed) kills a little fun
Jenny content version 07.

Go school, speak with Jenny, you have 3 questions:

1 – Homework

2 – Volley

3 – Lesbian.

Start with the 1st question, DO NOT TRY THE OTHERS or you will get several Heart “?” not necessary!

The 3 question must be done sequentially, If you didn’t get the first question heart end, you will never get the second question heart end and so on.

First question (Homework)

Speak with her, get the first Heart start.

After the first heart start, the probability to speak with her alone are 1/5 so save the game at home, go school, speak, if his friends show up and don’t let you speak with her, reload and try again.

You must get 3 Heart total, 2 start and 1 end.

2nd question “Volley”

Same as before, get the first heart start and save the game before ask again.

Beware here, to get the heart end you must have won the volley game 5 times in total.

Total Heart to collect for 2nd question are 3, 2 start 1 end.

3rd question “Lesbian”

First time I speak with Jenny about this question I get the Heart End.

When you get all the 3 question heart end, you will meet Jenny out school at day time, if you don’t see her click around the wall. Talk to her, get heart start.
Don't anymore need speak with Jenny inside school.
......

If you miss only the lesbian heart end i don't remember well but maybe you can meet Jenny outside school, try it.
If not, save the game at home, go to school, speak with jenny if you can, if not reload the save and retry.
 
  • Like
Reactions: Alteni

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
Do you have to pick one path on this? I read a post where if your stats get too high, then some options aren't open with other characters? Right now, I'm following the walkthrough for Shantel, Moira, Julia - but will that keep me from having opportunities with Brenda and the sisters?
If you are too hight on stats the only event you can miss is Lala hotspot "Poke" that is good only to see one scene but don't affect any others event.
You can solve the full game following my WT, character by character if you want or all togheter. If you choose all togheter you have to solve them version by versions following the changelog to.
 

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
Same here i have had an Heart End in first and second talk option. But with "Lesbian" option i only get a ? every time... the game is realy nice, but since i discovered that some events seems related to progress in other pathways. And a lot of stuff can triggert in different orders.. its hard. So u normaly will spend grinding at least twice as much time (it could easy be 4-5 times needed) kills a little fun

edit: And some progress needs to be achived at the same daytime.. so your forced to do week after week with very slow progress. And it seems impossible to progress in all pathways equaly
At least twice means "you need twice but if you like can do it all times you want". Moreover not all event is needed repeat it 2 times but since we can't know wich one is needed or not do it all twice just to be sure.
 

Parmenion1405

Member
Dec 27, 2017
213
174
thanks @mirenzo so i havent had the 2nd talk option done, cos i have only 4 wins in my game. Sometimes it is very frustrating. No hints no advice and events happens once a week have to be done up to 6 times... i realy like the game idea, but that could be solved another way for better gaming expericene
 

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
edit: And some progress needs to be achived at the same daytime.. so your forced to do week after week with very slow progress. And it seems impossible to progress in all pathways equaly
I know it's boring but nobody prevents you to do 3-4 character\events at the same time. IMAO you will need a secretary who notes you te point where you are each event and what to do.
 

mirenzo

Well-Known Member
Game Developer
Jun 7, 2017
1,612
800
thanks @mirenzo so i havent had the 2nd talk option done, cos i have only 4 wins in my game. Sometimes it is very frustrating. No hints no advice and events happens once a week have to be done up to 6 times... i realy like the game idea, but that could be solved another way for better gaming expericene
You welcome. This game was born\made to be a brain teaser. Fortunately the last versions were made much more easy to solve.
 
3.00 star(s) 66 Votes