Ren'Py Brothel King [v0.2] [Goldo]

4.60 star(s) 46 Votes

Sgrodolo

Member
Sep 1, 2017
252
382
What's this "income penalty" about? It started happening from the moment i sold a slave for 7k in chapter 2, is it a safeguard against stacking too much money? At what point does it trigger if it is?
 

DougTheC

Member
Oct 15, 2018
386
218
What's this "income penalty" about? It started happening from the moment i sold a slave for 7k in chapter 2, is it a safeguard against stacking too much money? At what point does it trigger if it is?
Income penalty has to do with the current moon, which has odd effects on the people of Zan.

Hover over the year/month/day, and read the tooltip in upper right. Just one way to add a challenge / bonus to the drab life of a Brothel King.
 
  • Like
Reactions: Sgrodolo

Silito13

Member
Aug 9, 2016
198
95
Code:
[code]
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/BKendday.rpy", line 543, in script
    python:
  File "game/BKendday.rpy", line 560, in <module>
    farm_events += farm.programs[girl].resolve("training")
  File "game/BKfarm.rpy", line 650, in resolve
    changes[self.installation.skill] += dice(base_result+1) - 1
AttributeError: 'NoneType' object has no attribute 'skill'

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "game/BKendday.rpy", line 543, in script
    python:
  File "/private/var/folders/6p/ywsl911x6bg8pwfgr9bq9_9h0000gn/T/AppTranslocation/14300D2B-9869-484F-9817-974940198A30/d/Brothel_King.app/Contents/Resources/autorun/renpy/ast.py", line 928, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/private/var/folders/6p/ywsl911x6bg8pwfgr9bq9_9h0000gn/T/AppTranslocation/14300D2B-9869-484F-9817-974940198A30/d/Brothel_King.app/Contents/Resources/autorun/renpy/python.py", line 2245, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "game/BKendday.rpy", line 560, in <module>
    farm_events += farm.programs[girl].resolve("training")
  File "game/BKfarm.rpy", line 650, in resolve
    changes[self.installation.skill] += dice(base_result+1) - 1
AttributeError: 'NoneType' object has no attribute 'skill'

Darwin-18.7.0-x86_64-i386-64bit
Ren'Py 7.4.10.2178
Brothel King 0.2 v211126
Fri Dec  3 23:41:26 2021
[/CODE]

Getting this error when I have girls in the farm that are actually going to do something. Thoughts?
 

Sgrodolo

Member
Sep 1, 2017
252
382
Income penalty has to do with the current moon, which has odd effects on the people of Zan.

Hover over the year/month/day, and read the tooltip in upper right. Just one way to add a challenge / bonus to the drab life of a Brothel King.
Nice addition, would have easily destroyed my run if I was in a slightly worse place.
The game is complex and unforgiving, I love it. Reminds me of Rimworld, as in everything can go wrong in a couple of turns if you don't know exactly what you're doing.
Wish it got more updates being around for years, but I guess one can't just open a patreon account to fund it due to the copyrighted art.
 

Jman9

Engaged Member
Jul 17, 2019
2,295
958
File "game/BKfarm.rpy", line 650, in resolve
changes[self.installation.skill] += dice(base_result+1) - 1
AttributeError: 'NoneType' object has no attribute 'skill'

Darwin-18.7.0-x86_64-i386-64bit

Getting this error when I have girls in the farm that are actually going to do something. Thoughts?
Either Darwin (i.e. using a different launcher?) or auto-training is still buggy. Most likely the latter. I've never really used it myself, because dammit, I'm the one in charge, not Gizel. :D

Edit: Can someone report it on HHS? I'm in a... pickle right now. :) Probably all of auto-training needs another good debugging pass.

The game is complex and unforgiving, I love it. Reminds me of Rimworld, as in everything can go wrong in a couple of turns if you don't know exactly what you're doing.
Are you playing on one of the harder difficulties? Because the game not being hard enough has been an issue for quite a while.

Wish it got more updates being around for years, but I guess one can't just open a patreon account to fund it due to the copyrighted art.
Even if Goldo did make a Patreon and purged the art - some pirate guy could just make a 'graphics patch' and restore it :sneaky:, so no big deal - it would not make the situation any better. Goldo does BK as a hobby, AFAIK he's happy enough with his regular job, and game dev (especially adult game dev) is friggin' modern-day white-collar slavery. :cautious:
 

Sgrodolo

Member
Sep 1, 2017
252
382
Are you playing on one of the harder difficulties? Because the game not being hard enough has been an issue for quite a while.
Well possibly, now i'm getting the hang of it, for the first few hours it was a bit of a trial and error, especially because the game is not really very clear at telling what stats do what and gives people freedom to mix and match strategies between stats, perks, farm etc, it's easy to get lost on a suboptimal way of doing things.
Tbh it's mostly the fact i'm not one to follow walkthroughs and guides as it spoils the discovery process
 

Perdurabo

Member
May 4, 2017
119
80
If you spot a girl with the Elite trait, btw, seriously consider making her a dancer. Dancers use Body and Constitution, and are one of the easier jobs to get very high skill and payout for. Elite apparently makes the customer's budget not matter anymore, allowing the Elite dancer to more than drain them dry.

You could theoretically get a LOT more by making her a group girl, but the problem is that she'd likely need every other day off, and ultimately you'd probably make more having her dancing most days, ignoring their budget caps.
 

Jman9

Engaged Member
Jul 17, 2019
2,295
958
...the game is not really very clear at telling what stats do what...
...it's easy to get lost on a suboptimal way of doing things.
The tooltips do tell you what stats correspond to what jobs/sex acts. What else would you want? The precise technical details of what happens are intentionally obscured, subject to change and would be kinda tedious to explain anyway.

There is an optimal way? I thought a lot of things are competitive and situational. Some activities are subpar, sure, but not playing badly and playing optimally are two quite different things.

If you spot a girl with the Elite trait, btw, seriously consider making her a dancer. Dancers use Body and Constitution...
Why a dancer? Elite gives you a leg up on developing the Courtesan tree, i.e. refinement and thus the geisha job. Dancers also use Body and Libido. Waiting tables uses Constitution, and even then secondary stats are not all that impactful when it comes to evaluating performance.

You could theoretically get a LOT more by making her a group girl, but the problem is that she'd likely need every other day off, and ultimately you'd probably make more having her dancing most days, ignoring their budget caps.
If she needs every other day off, she needed about two days per three work days originally. You're still ~25% ahead on number of customers served over any longer time frame, and far away from 'dancing most days'. You do get hit with a score malus, especially when it comes to more picky customers.

Not sure if vanilla group is really worth it, but it's not because she can't work hard enough. As an aside, I don't really like that group doesn't actually perform gangbangs a lot of the time, but Goldo wanted balance and some players wanted picture variety. :cautious:
 

Perdurabo

Member
May 4, 2017
119
80
The tooltips do tell you what stats correspond to what jobs/sex acts. What else would you want? The precise technical details of what happens are intentionally obscured, subject to change and would be kinda tedious to explain anyway.

There is an optimal way? I thought a lot of things are competitive and situational. Some activities are subpar, sure, but not playing badly and playing optimally are two quite different things.


Why a dancer? Elite gives you a leg up on developing the Courtesan tree, i.e. refinement and thus the geisha job. Dancers also use Body and Libido. Waiting tables uses Constitution, and even then secondary stats are not all that impactful when it comes to evaluating performance.


If she needs every other day off, she needed about two days per three work days originally. You're still ~25% ahead on number of customers served over any longer time frame, and far away from 'dancing most days'. You do get hit with a score malus, especially when it comes to more picky customers.

Not sure if vanilla group is really worth it, but it's not because she can't work hard enough. As an aside, I don't really like that group doesn't actually perform gangbangs a lot of the time, but Goldo wanted balance and some players wanted picture variety. :cautious:

Every job hinges on Constitution. Every single one. It's why I won't take a girl who has any of the -energy or -constitution negatives. Because one busy night can run the risk of taking her out of service for several. Same reason I won't have them unarmed.

The reason for Dancer is entirely due to testing various jobs for how much you get paid in practice. Dancer was already high income in practice, likely because it's very easy to max all used stats and keep them there. I don't feel like digging through code to check exact modifiers.

By then making the budget limit not matter, you can squeeze the customers for more, all without spending 10+ energy per working event. If she can turn 20 energy into 1k+ dancing, any extra work she takes on the side from customer requests will just be icing on the cake, and won't drain her energy so fast that she needs many days off. One or two will work.

And in chapter 1, 2, 3, and even 4, the Okiya hasn't been a significant winner in my experience, possibly because the available customers would far rather have dancers, waitresses, or masseuses, which seem to be easy wins regardless what part of the city.
 
  • Like
Reactions: Jman9

Jman9

Engaged Member
Jul 17, 2019
2,295
958
Every job hinges on Constitution.
That is not unique to dancing.

Because one busy night can run the risk of taking her out of service for several.
Auto-rest scanner?

The reason for Dancer is entirely due to testing various jobs for how much you get paid in practice. Dancer was already high income in practice, likely because it's very easy to max all used stats and keep them there. I don't feel like digging through code to check exact modifiers.
How did you test it? Because if you tested only one girl, that's obviously going to be skewed. The 'all used stats' for dancers are Body, Libido and Refinement, and I seriously doubt these are easier to max and maintain than e.g. waitress's Charm, Constitution and Body.

Anything else is also skewed at least a little in a waitress's favour: greater chance to have a customer that likes blowjobs instead of anal, commoners are probably a better clientele than sailors, etc.

...all without spending 10+ energy per working event.
Whoring has its boosts, although now that I look at it, the bonuses have been nerfed a lot. But the question is, did you try it with a chapter 3 or 4 girl? Because whoring is supposed to come online later than jobs.

Also, did you try to make a whoring-focused slave, or did you just look at your dancing specialist not making as much money and wrote it off? Because obviously a specialist is going to be worse at another activity.

If she can turn 20 energy into 1k+ dancing, any extra work she takes on the side from customer requests will just be icing on the cake, and won't drain her energy so fast that she needs many days off.
The energy situation might reverse itself with bathtubs and especially Rejuvenation (or somewhat with Summon Phoenix). And how much exactly she makes via dancing doesn't matter, because comparing jobs is all about ratios, and whoring has higher multipliers, group sex for ~25% energy efficiency boost at the price of some score penalties, the 'Focus', 'Business&Pleasure', 'Me So Horny' perks and more.

'Days off' is not a useful metric for anything except how much re-scheduling you need. What's important is how much money she makes per energy point spent. Well, until you have something that trivialises energy, like Rejuvenation. Then it's all about just cash per night.

Customer requests are essentially mini-whoring and cost as much energy, so these are actually counterproductive if dancing is the focus.

And in chapter 1, 2, 3, and even 4, the Okiya hasn't been a significant winner in my experience, possibly because the available customers would far rather have dancers, waitresses, or masseuses, which seem to be easy wins regardless what part of the city.
Chapter 4 gives you bourgeois, who are into geisha and sex. By then you also have the furniture to nudge preferences somewhat.

The real issue is probably that Refinement is harder to raise early on. Or maybe something else.



I'm not asking all this because I want to put you down or anything. But Goldo is really not testing balance very thoroughly, what with his RL situation not allowing him to play the game much. And he's been too much on a nerfing roll for my taste lately.

Whoring and group sex used to be more powerful. Now, the job-boosting may have been too much in recent versions.

And I'm almost physically unable to play any incarnation of vanilla for an extended period any more... :cry:

Does anyone else find jobs better than whores by using 'Elite'?
 

Darkone123

Newbie
Oct 26, 2018
53
37
Got your point, don't worry; King's Way was build a long time ago by another user, don't know exactly in which ren'py build, then I modified to adapt it for BK 0.2, making a lot of UI changes but leaving almost intact the functions I found still working. As soon as I can I'll give a deep look into them and see what needs to be changed and what can be improved; meanwhile guys feel free to give me more details about what you'd like to have in this mod.

Thank you. My top three "wishes" for a revised "King's Way" Trainer would be:

1. As already mentioned, a way to automatically refill the "3 interactions with girls per day"-maximum would be very important.
2. The girls at the farm: It would be great if the "refill energy" option would also work with the girls in the farm.
3. An option to give you / your character for instance 10.000 gold would be great.
 

54yfgb56udf23

New Member
Jan 14, 2021
2
2
For first error,
you could manually edit game\BKchapter2.rpy
Line 5510:
Code:
            $ story_add_event("c3_suzume_hint")
to add "pass # " (which comments-out remaining line after "pass" non-operation)
Code:
            pass #  $ story_add_event("c3_suzume_hint")
, and delete file game\BKchapter2.rpyc to force recompile, then exit and re-run/load saved game; that should work for now.

The second error has this initial response from the dev:
This is a hook for Chapter3, it shouldn't activate normally. Does it happen if you don't use the unlock cheat? (You can fix it simply by entering "plaza.action=False" in the console, without quotes)
(After loading a save from before the error. Console is accessed by Control-o (letter o) from most screens.)

Odd that it does CTD and not just to Ren'Py debug/console choice.
Hey, I replaced my file with the one you attached and deleted the file game\BKchapter2.rpyc, but unfortunately I'm still getting the same error. I also tried loading a Chapter 2 save and progressing to Chapter 3 but it still happens. Any idea? Thanks.

Code:
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/BKendday.rpy", line 1026, in script call
    call play_events(type = "morning") from _call_play_events_1 # Note: Morning events are set with the new day's date: beware of the confusion
  File "game/BKevents.rpy", line 660, in script call
    call display_events(ev_list) from _call_display_events
  File "game/BKevents.rpy", line 672, in script call
    $ ev.play()
  File "game/BKendday.rpy", line 1026, in script call
    call play_events(type = "morning") from _call_play_events_1 # Note: Morning events are set with the new day's date: beware of the confusion
  File "game/BKevents.rpy", line 660, in script call
    call display_events(ev_list) from _call_display_events
  File "game/BKevents.rpy", line 672, in script call
    $ ev.play()
ScriptError: could not find label 'c3_suzume_hint'.

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "renpy/bootstrap.py", line 331, in bootstrap
    renpy.main.main()
  File "renpy/main.py", line 652, in main
    run(restart)
  File "renpy/main.py", line 148, in run
    renpy.execution.run_context(True)
  File "renpy/execution.py", line 922, in run_context
    context.run()
  File "game/BKendday.rpy", line 1026, in script call
    call play_events(type = "morning") from _call_play_events_1 # Note: Morning events are set with the new day's date: beware of the confusion
  File "game/BKevents.rpy", line 660, in script call
    call display_events(ev_list) from _call_display_events
  File "game/BKevents.rpy", line 672, in script call
    $ ev.play()
  File "game/BKendday.rpy", line 1026, in script call
    call play_events(type = "morning") from _call_play_events_1 # Note: Morning events are set with the new day's date: beware of the confusion
  File "game/BKevents.rpy", line 660, in script call
    call display_events(ev_list) from _call_display_events
  File "game/BKevents.rpy", line 672, in script call
    $ ev.play()
  File "renpy/script.py", line 918, in lookup
    raise ScriptError("could not find label '%s'." % str(original))
ScriptError: could not find label 'c3_suzume_hint'.

Windows-10-10.0.19041
Ren'Py 7.4.10.2178
Brothel King 0.2 v211126
Sun Dec  5 11:28:19 2021
 

DougTheC

Member
Oct 15, 2018
386
218
Code:
[code]
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/BKendday.rpy", line 543, in script
    python:
  File "game/BKendday.rpy", line 560, in <module>
    farm_events += farm.programs[girl].resolve("training")
  File "game/BKfarm.rpy", line 650, in resolve
    changes[self.installation.skill] += dice(base_result+1) - 1
AttributeError: 'NoneType' object has no attribute 'skill'

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "game/BKendday.rpy", line 543, in script
    python:
  File "/private/var/folders/6p/ywsl911x6bg8pwfgr9bq9_9h0000gn/T/AppTranslocation/14300D2B-9869-484F-9817-974940198A30/d/Brothel_King.app/Contents/Resources/autorun/renpy/ast.py", line 928, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "/private/var/folders/6p/ywsl911x6bg8pwfgr9bq9_9h0000gn/T/AppTranslocation/14300D2B-9869-484F-9817-974940198A30/d/Brothel_King.app/Contents/Resources/autorun/renpy/python.py", line 2245, in py_exec_bytecode
    exec(bytecode, globals, locals)
  File "game/BKendday.rpy", line 560, in <module>
    farm_events += farm.programs[girl].resolve("training")
  File "game/BKfarm.rpy", line 650, in resolve
    changes[self.installation.skill] += dice(base_result+1) - 1
AttributeError: 'NoneType' object has no attribute 'skill'

Darwin-18.7.0-x86_64-i386-64bit
Ren'Py 7.4.10.2178
Brothel King 0.2 v211126
Fri Dec  3 23:41:26 2021
[/CODE]

Getting this error when I have girls in the farm that are actually going to do something. Thoughts?
You may be able to avoid this error by choosing a specific location in the Farm to do training, rather than the "Anywhere (auto)" option, which seems to need some work.

The mention of Darwin seems to be that you are running an OS on an Apple system. How's it doing with BK/Ren'Py, generally?
 
Last edited:

DougTheC

Member
Oct 15, 2018
386
218
F95zone Mods:

Please upload this latest update patch for BK ver 0.2, dated 12-02-21 (02 Dec 2021).

It is the same as in the link of dev's sig on HHS site, but with the addition of (sub-)version numbering.

Also, it would greatly help to have these changes made to the OP:

  • Change "Update patch:" to "Required Update Patch:"
  • Remove the Nopy "Patches: " entirely, as they are out of business and the patch is correctly organized after the renamed "Required Update Patch:" label.
  • Change to Thread Updated: 2021-12-02
  • Change to Release Date: 2021-12-02
If it is allowed to have the "Installation:" section displayed visible by default, with spoiler as the option, that would help, as this is not a simple "unzip-and-go" install.
Required update patch loaded to my Mega link, as "The uploaded file is too large for the server to process."



Appreciate your support for this project! Any questions, check with me or Kite80.

(News update: this has now mostly been done. Thanks!)
 
Last edited:

vadi9203

Member
Aug 2, 2019
324
192
To those people who are using the lastest patch and are stuck in chapter3 from Goldo.
Will post a patch, in the meantime you can clear the story objectives manually in the console by typing the three following command lines:

Code:
game.set_task(None, "story")
Code:
game.set_task(None, "story2")
Code:
game.set_task(None, "story3")
 

Reiken

Newbie
Oct 25, 2018
62
9
I everyone I got the same problem with the "I'm sorry, but an uncaught exception occurred" but it's happened with no save and at the first launch of the game
 

Jman9

Engaged Member
Jul 17, 2019
2,295
958
...the "I'm sorry, but an uncaught exception occurred" but it's happened with no save and at the first launch of the game
This is not the error. This is like 99%+ of all errors. :cry:

Download Kite80's new distro, apply the latest from Goldo, and delete the 'persistent' file(s) in your user directories before starting (both the one in 'game\saves' and the one somewhere in Appdata or equivalent.

If problems still persist, post your traceback.



I'm starting to think all this needs to be in the OP somewhere. Including a warning not to waste others' time by posting only "doesn't work", "lots of errors", "an error occurred", "doesn't start", etc, even when the game throws a giant error log in your face. :mad:
 

DougTheC

Member
Oct 15, 2018
386
218
I everyone I got the same problem with the "I'm sorry, but an uncaught exception occurred" but it's happened with no save and at the first launch of the game
Please post the traceback.txt file, either as an attached file or in text of post between [SPOILER][/SPOILER] marks.

Did you:
  1. Also download the update patch and extract to folder named "game" with overwrite?
  2. Download the basic girl pack, or 1 or more girl packs, and place their extracted folders inside the game/girls folder?
 
Last edited:
4.60 star(s) 46 Votes