Pleevy

Member
Nov 23, 2024
285
850
103
I don't think I fully understand what you mean.

How my workflow on Cubsitting Simulator looks:
- I start the ren'py sdk launcher
- I click open project, that opens vscode
- I click 'launch game' in the sdk launcher
- generally, if I make a change in vscode and save, it loads the changes automatically.
- if the changes aren't automatically applied, I press shift + r in the game to reload.
- when I'm satisfied I tested everything, I build my win / linux / mac / android distributions.
(Then there are generally two more steps: - I get told I forgot to test X obvious thing and it doesn't work, - I hurriedly fix the bugs I should've caught during developing, but you can skip those last steps with proper testing :p)

What's not working with your new project / what do you mean with "function like this one does"?
I shall attempt to clarify:

So...with BSC...I have a set of files...If I am not mistaken its the same files you can download "as the game" via Xaverion's post/link etc. (Ill reconfirm that...I have of course also been working with files that have been deposited in PMs...but I know at some point, the core files had to be downloaded.) I can navigate to those game files and in the directory is an executable that starts the game...and some folders, one of which is game. In said game folder, there are LOTS of .rpy files. These are the code files. These are the files I have been working from/on directly. I open any of there files in notepad+, make the change, save the file and then when I load the main exe in the main directory, the game loads (or not if I make an egregious error, but then it tells me immediately) and the new changes are live in the code, no muss...no fuss...no recompiling into stand alone files...if something is wrong, I just reopen the the .rpy file and can reload the main game executable after fixing it. I don't have to run the ren'py sdk launcher. I don't even have that on any computer I have been using since this whole thing began...

I only just got it on one system now to use with the new project I am talking about, where, when starting from scratch, and using some AI generated boilerplate code and the generic stuff the SDK generates if you make a project that way, is in rpy files and I can mess with it, except the only way to "run the game" is THROUGH the sdk...not a stand alone executable specifically for the game itself...to get to THAT, I have to recompile it (build a distribution.) I have never had to build a distribution for any of the sutff I have been doing here...yet everything I do directly effects the files that are the game itself. (And most of the time..the stuff I have been writing works fine.)

That is what I want to achieve with the new project. I will be working in an environment where I do not neetd to protect the files, they will only be run on an isolated system where i have complete control over "everything else." I want a core executable, that does what BSC does...loads the game, and directly reads the .rpy files, even if its just a custom stand-alone like isolated/miniaturized version of the ren'py sdk that you never see, despite it performing its function. That way I can edit the .rpy files quickly, and likely remotely, to change or add the parts of the game on the fly and just have them work immediately as I make the changes, without needing to recompile (build a new distribution.)

Side note: I am wondering if this is why some of the changes to thing I am doing are not working as expected....despite not throwing total game breaking errors (stops the exe at launch level) but throws it up when the code is actually accessed (meaning some of my older code might not work either...more testing might be needed...I think I have kept decent patch notes so at least if someone has to fix it they will know where to look in general, even if not always line by line)
 
  • Like
Reactions: Novaca

MrFluffums

Member
Dec 23, 2024
143
368
63
Ahhh that makes a lot more sense.

In that case, if you don't want to use the SDK, you'd have to build a distribution, unzip that over your original project so it has the correct libraries / executables, and add config.developer = True somewhere in any rpy file. Any changes you make to the rpy files should be automatically processed, and you should be able to run the game without using the SDK.

I'd still personally recommend vscode through the sdk though, rather than a generic text editor. It has syntax highlighting and quite some nifty features.
 
  • Like
  • Yay, update!
Reactions: Pleevy and Novaca

Pleevy

Member
Nov 23, 2024
285
850
103
Ahhh that makes a lot more sense.

In that case, if you don't want to use the SDK, you'd have to build a distribution, unzip that over your original project so it has the correct libraries / executables, and add config.developer = True somewhere in any rpy file. Any changes you make to the rpy files should be automatically processed, and you should be able to run the game without using the SDK.

I'd still personally recommend vscode through the sdk though, rather than a generic text editor. It has syntax highlighting and quite some nifty features.
If I am going to continue down this path and do more with it...for sure I can adapt...but for this particular project...i really don't see that being an issue/a necessity. It's almost too simple to even need the coding in question, but it gives just enough an edge for what I want, that it is worth it. Plus...I am used to notepad++ editing for here as it is...so...unless vscode can catch what I'm doing wrong with the code I uploaded in the DM, then the benefits are currently outweighed by my laziness convenience.
 

Pleevy

Member
Nov 23, 2024
285
850
103
Its funny (or sad depending how you look at it) i think i learned more about programming here then any where else then getting the next update of game
Take it as a win. Learning is always a good thing. There may be a half version update coming soon...If the back and forth in the DMs solves my current coding issue...then we're on 0.7.4 on the backend...and I might toss up a "patch" release at 0.7.5, despite the target being a public release at 0.8. We'll see.
It's the spooky month
Despite approaching Halloween...there will be no "seasonal" content added that shows up around various days...there's likely to be some costume-y images, but that is about as close as things are going to get.
 
  • Like
Reactions: DarkLink and Novaca

Pleevy

Member
Nov 23, 2024
285
850
103
Take it as a win. Learning is always a good thing. There may be a half version update coming soon...If the back and forth in the DMs solves my current coding issue...then we're on 0.7.4 on the backend...and I might toss up a "patch" release at 0.7.5, despite the target being a public release at 0.8. We'll see.
The good news, my code is acceptable. It wasn't the code, it was temporary files needing purging. This means that the part that was holding things up is almost done, which means moving onto more new content. Woo! This means higher likelihood of a half release...think of it as a patch release...stay tuned for more news as it comes.
 

Pleevy

Member
Nov 23, 2024
285
850
103
minor nitpick while looking at garage access. in screen mapTest() the foyer section needs rearranged to look like:
Code:
    elif Location == "Foyer":
        use cream_button(disabled=True)
        if not inv.has('garage_keys'):
            imagebutton idle "Foyer_vase_idle.png" hover "Foyer_vase_hover.png" focus_mask "Foyer_vase_hover.png" action Jump("Keys")
        if not flags.completed('raining'):
            use nav_button("up", "Outside", "Outside", xpos=0, ypos=0.72)
        else:
            use nav_button("up", "Outside", "Outside (Rain)", xpos=0, ypos=0.72, enabled=False)
        use nav_button("right", "Hallway", "Hallway", xpos=0, ypos=0.8)
        use nav_button("down", "Living", "Living room", xpos=0, ypos=0.88)
        use phone_button()
moving the vase button above the nav buttons keeps it from weaving in and out of the navigation buttons visually
Made these changes, I see what you mean. Sometimes it the little things.
Here is a somewhat simple 'expandable car events' setup. one example event added to showcase how it works. doesnt require editing any other file to work in 0.7.0 as it hijacks the 'click cardoor' event to set itself up.

FWIW if anyone ever needs to get hold of me about suggestions or code I share the fastest way to communicate is finding me in the official renpy discord, or in the renpy subreddit discord servers. I'm in both under this name and have direct messages enabled for anyone also in the server.
Have not given sufficient look at this part yet, it is on the list, along with a lot of other things. Not forgotten though...!
 
  • Like
Reactions: Novaca and seronis

seronis

Member
May 9, 2022
193
332
178
Made these changes, I see what you mean. Sometimes it the little things.

Have not given sufficient look at this part yet, it is on the list, along with a lot of other things. Not forgotten though...!
you can drop the garage.rpy file I uploaded into the game as a replacement with no manual copy/paste needed if you want to test. the original garage.rpy only had one label. and my file doesnt require anything else in the game to be edited to test.

still not a big deal if you decide NOT to use it. just explaining so you dont think testing it requires anything complex as its basically plug and play.
 

Pleevy

Member
Nov 23, 2024
285
850
103
you can drop the garage.rpy file I uploaded into the game as a replacement with no manual copy/paste needed if you want to test. the original garage.rpy only had one label. and my file doesnt require anything else in the game to be edited to test.

still not a big deal if you decide NOT to use it. just explaining so you dont think testing it requires anything complex as its basically plug and play.
Yeah, I noticed that the original was surprisingly barren...hell I have files for new content with more dev notes than that file has code. :D

Well that sure makes things easy. I'll see about looking at it today...I should have some time after lunch.

Just trying not to leave anyone helping hanging. I just need to understand it enough to know HOW to effectively use it, before I can say anything about whether "I" plan to. Of course...I'm not supposed to be the only one making these decisions...so...while my stamp of approval helps...its not the end-all-be-all.
 

Pleevy

Member
Nov 23, 2024
285
850
103
you can drop the garage.rpy file I uploaded into the game as a replacement with no manual copy/paste needed if you want to test. the original garage.rpy only had one label. and my file doesnt require anything else in the game to be edited to test.

still not a big deal if you decide NOT to use it. just explaining so you dont think testing it requires anything complex as its basically plug and play.
Alright..I think I see what you have going on there, enough to get into trouble at least. First test...exactly what you made...worked fine...and then..I broke it. I copied and pasted new items per instructions in the file, relabeled them both in the code and what I see to see how it works (as it looks like you were gonna have it randomize the list if there were "too many") and then things went awry. I got an error are soon as I clicked on the car door, and when I ignore, all i got was a (working) list of ALL the options I made, even if they went outside the playable area.

You don't have permission to view the spoiler content. Log in or register now.
Aside from that, it definitely looks usable for a good portion of the car functions, there's gonna be some spots like when you go outside and "summon cream" for going to the city where the car would be a new option available, saves the ring costs, and changes the return trip as well (variables in those files not launching from the car/garage)...but I think this can be standalone with/without that from the looks of it, once we work out the couple little bugs.
 
  • Like
Reactions: Novaca

Ototoko123

New Member
Oct 19, 2025
1
1
0
Apologies to be a bother. But would it be possible to get some help on the installation process? There seems to be a good few files & the post containing links seems to be rather old which has me asking questions about their integrity.
 
  • Like
Reactions: Novaca

FoxyTails

Member
Feb 9, 2020
341
868
258
Apologies to be a bother. But would it be possible to get some help on the installation process? There seems to be a good few files & the post containing links seems to be rather old which has me asking questions about their integrity.
Normally it's pretty straight forward

You download the zip file & unzip it..
How you unzip it depends on your unzip program.. some installations allow you to right-click the zip file & select 'unzip here' or 'unzip to xx folder' where xx is the name of the file you're unzipping

you should end up with all the necessary files in a single folder...usually called the same name as the zip file..

So if the zip is called 'BSC 0.7.0.zip' then you should have a folder called 'BSC 0.7.0'

Inside this folder when opened you should see 3 folders 'game','renpy' and 'lib', as well as 3-4 files - an .exe, .py, .sh & possibly a .txt file

As for links..the links in first post are really obsolete.

Currently the game code is being worked on by a couple of fans, along with others on other bits & bobs, & the current link can be found in this post and is the most recent current version but I do have on good authority that the game is still being worked on
 
  • Like
Reactions: Novaca

Pleevy

Member
Nov 23, 2024
285
850
103
Apologies to be a bother. But would it be possible to get some help on the installation process? There seems to be a good few files & the post containing links seems to be rather old which has me asking questions about their integrity.
Normally it's pretty straight forwardAs for links..the links in first post are really obsolete.

Currently the game code is being worked on by a couple of fans, along with others on other bits & bobs, & the current link can be found in this post and is the most recent current version but I do have on good authority that the game is still being worked on
Can Confirm, Things still being worked on. Internally, 0.7.4 is being worked on.

Can Also confirm as of, what, a few days?...less than a week ago...the download from the post FoxyTails included in his response, Working, and the game files function (Just re-downloaded a copy for code/testing purposes.) despite the game still being incomplete.
 

seronis

Member
May 9, 2022
193
332
178
...and then..I broke it.
attach the file you used for testing if you could. that will let me both reproduce the exact bug and see if there was something wrong with your code, thus implying my instructions were bad and at fault which i could also fix.
 
  • Like
Reactions: Novaca

Pleevy

Member
Nov 23, 2024
285
850
103
attach the file you used for testing if you could. that will let me both reproduce the exact bug and see if there was something wrong with your code, thus implying my instructions were bad and at fault which i could also fix.
One Edited Garage File, Coming right up.

Note: It doesn't throw the error if I leave just your original file, its after I followed the copy/paste instructions and relabeled (The label name, and the button text for me to visibly see the change) them that it happens. I can delete all the copy pasted code and it goes back to normal.
 
  • Like
Reactions: Novaca

MrFluffums

Member
Dec 23, 2024
143
368
63
EDIT: Apparently I can't read documentation.
Alright..I think I see what you have going on there, enough to get into trouble at least. First test...exactly what you made...worked fine...and then..I broke it. I copied and pasted new items per instructions in the file, relabeled them both in the code and what I see to see how it works (as it looks like you were gonna have it randomize the list if there were "too many") and then things went awry. I got an error are soon as I clicked on the car door, and when I ignore, all i got was a (working) list of ALL the options I made, even if they went outside the playable area.

You don't have permission to view the spoiler content. Log in or register now.
Aside from that, it definitely looks usable for a good portion of the car functions, there's gonna be some spots like when you go outside and "summon cream" for going to the city where the car would be a new option available, saves the ring costs, and changes the return trip as well (variables in those files not launching from the car/garage)...but I think this can be standalone with/without that from the looks of it, once we work out the couple little bugs.
The error kind of tells you what you need to know :p
"Randint missing positional argument 'b'" means you're trying to call randint with too few arguments.

If you look at the documentation ( ) what arguments randint expects, you'll find it requires two: a lower (inclusive) and upper (exclusive inclusive) bound.

For instance randint(1,6) would give either 1,2,3,4, 5 or 6.

Now if you check the code, you'll find you're trying to call randint with one argument instead of two: you're only passing the value of len(menu_ops).

If you change renpy.random.randint(len(menu_ops)) to renpy.random.randint(0,len(menu_ops)) it'll probably work. For a list of size 2 that'll select either element 0 or 1.
 
Last edited:
  • Like
Reactions: Novaca

Pleevy

Member
Nov 23, 2024
285
850
103
The error kind of tells you what you need to know :p
"Randint missing positional argument 'b'" means you're trying to call randint with too few arguments.

If you look at the documentation ( ) what arguments randint expects, you'll find it requires two: a lower (inclusive) and upper (exclusive) bound.

For instance randint(1,6) would give either 1,2,3,4 or 5.

Now if you check the code, you'll find you're trying to call randint with one argument instead of two: you're only passing the value of len(menu_ops).

If you change renpy.random.randint(len(menu_ops)) to renpy.random.randint(0,len(menu_ops)) it'll probably work. For a list of size 2 that'll select either element 0 or 1.
The error tells you what is going on if you understand enough of the code in the first place...i am still not there yet... :p

Hmm...this is interesting...I took a backup copy of 0.7, and just copied over the garage file (same one i uploaded, except for editing the string you mentioned Fluffums), made sure it had no rpyc files, started a new game, and went straight to the garage...and its about 50-50. Half the time, it still throws the error, and I can ignore and get the whole elongated list like my picture, and the other half it "works" and lists 5 random options with Nevermind at the end as the last option. Now am extra confused. o_O
 

MrFluffums

Member
Dec 23, 2024
143
368
63
So what "pop index out of range" means, is that you if you try to 'pop' the 8th element in a list with 7 items, python doesn't understand what you'd like to do. "But MrFluffums", you say, "I thought you said renpy.random.randint(0,len(menu_ops)) would never exceed the size of the list?"

And to that I say that apparently I can't read. I thought randint(0,2) would give either 0 or 1, but never 2. But the documentation (which I read poorly) says that renpy.random.randint(a, b) returns a random integer such that a <= N <= b. This is different from for example the range function in python, range(a,b) returns a range of integers a <= N < b.

Long story short, it's an off-by-one error. Instead of renpy.random.randint(0,len(menu_ops)) it has to be renpy.random.randint(0,len(menu_ops - 1)).

1761036530836.png
 

seronis

Member
May 9, 2022
193
332
178
One Edited Garage File, Coming right up.

Note: It doesn't throw the error if I leave just your original file, its after I followed the copy/paste instructions and relabeled (The label name, and the button text for me to visibly see the change) them that it happens. I can delete all the copy pasted code and it goes back to normal.
So it turns out im a forgetful idiot.

Your modified file throws no errors for me.


Wracking my brain on what could be going wrong when I finally remember a tweak i do in stuff I work on.
Code:
init -666 python:
    def new_randint(*args,**kwargs):
        global old_randint
        if len(kwargs) != 0:
            return old_randint(*args,**kwargs)
       
        if len(args) == 0:
            return old_randint(1,100)
        if len(args) == 1:
            return old_randint(0,args[0]-1)
        return old_randint(*args)
    old_randint = renpy.random.randint
    renpy.random.randint = new_randint
So yeah. it doesnt error for me because when I was half asleep at some point i added that to my copy of BSC (its part of my template project i use for all my renpy stuff)

So sorry. And fluff already explained why its an error without my 'fixed' version of randint. FWIW its not a bad modification to use as a convenience function. If its not clear it makes calls with no arguments return a pecentile roll. 1-100 inclusive. A call with 1 arg will be 0 - Val, non-inclusive. That way you can do stuff like how i used it with len() and get a legal index value. And when called with more than 1 arg or with keyword args it uses default behavior
 
Last edited:
  • Like
Reactions: MrFluffums
4.50 star(s) 4 Votes