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

4.60 star(s) 46 Votes

Kite80

Well-Known Member
Modder
May 30, 2017
1,079
1,068
The topig "girls refuse to work" has been discussed a lot in the past, the result is that in the official version (0.14 + official patch) something brings girls to refuse normal jobs when they'd likely want to whore. This has been fixed in the experimental patch which will be released as official 0.15 update during this month. You can wait for that date though, since normal jobs don't bring as much money as whoring and the girls gain exp and reputation even if they only whore. In fact, in 0.14 official version we can afford to forget about jobs, except when a new slave can't whore yet and needs to be assigned to a normal job.
 
  • Like
Reactions: stiggy752

Tidalbore

Newbie
Dec 31, 2017
89
43
thnx

FYI if anyone has pictures of Lucy Heartfilia, send them my way, there are some tags im lacking sufficient pics for.
best advice I can give there is check out multiple sites like Pixiv, Gelbooru, E-Hentai Galleries, and even r34. I generally use Pixiv and Gelbooru mainly, as between the two you can generally find most pictures available for any given character without too much hassle (both sexual and non-sexual). I used E-Hentai for awhile, making use of the "HDoujin Downloader" program to rip galleries from it, but found it to be more of a hassle overall. As for r34, I rarely find anything on there that hasn't either come from Pixiv or made it onto Gelbooru as well, so it's become more of a desperation visit when girls come up lacking (ended up abandoning a few of the Fate girls I had tried to make packs for, just because they simply didn't have enough image variation and quality to make a decent pack out of, Mainly Quetzalcoatl and Mata Hari). The main headache I find is that specific characters often get "typecast," for lack of a better term, and you will find a massive number of pictures for very specific acts, and very few outside of it (as an example, when I made my F-GO Boudica girl pack, I was never lacking for tit-job pictures, to the point I stopped grabbing them entirely, but struggled to find anal and bisexual pictures for her).
 
Feb 24, 2019
260
77
XD Ive been using Rule34xxx mostly, dnt even bother with pahael. Used to use E-Hentai but I find it.. too over-whelming. Pixiv is just hard to understand being the site is mostly japanese. the booru's are pretty nice
 

stiggy752

Newbie
Sep 15, 2017
25
17
The topig "girls refuse to work" has been discussed a lot in the past, the result is that in the official version (0.14 + official patch) something brings girls to refuse normal jobs when they'd likely want to whore. This has been fixed in the experimental patch which will be released as official 0.15 update during this month. You can wait for that date though, since normal jobs don't bring as much money as whoring and the girls gain exp and reputation even if they only whore. In fact, in 0.14 official version we can afford to forget about jobs, except when a new slave can't whore yet and needs to be assigned to a normal job.
this is kind of what I experienced aswell.
There is no real reason to strike a balance between whoring and working.
 

Daulas

Member
Sep 5, 2018
148
53
Hello,

Sorry if this was dealt with somewhere, but I could not find my two problems using the search engine.

I've discovered the game a few weeks ago and I have been blocked by one thing that forced me to use a cheat mod to get the diamons: no matter how many times I go to the Waterfalls and look around, the event that grants access to the diamond mine is never triggered. Any idea what can be the problem?

Another strange bug is that I cannot have one of the girls in the farm trained in the correct facility. She is the fifth in the list (of 12) and I assigned her to the Workshop because she has a weakness for machines. But, ever since I assigned four women to the Monster Pen (out of twelve, I have in fact seven that have a weakness for monsters) and the game had to rearrange them to distribute evenly between the facilities, this girl can never get to the Workshop, despite the others being affected correctly (and, ironically, this means she is the fourth in the facility she gets sent to, which should not be possible, if I understand thing correctly). So, here again, has anyone any idea about how I could solve this?

And since I did not want to come empty-handed, and because my interest was piqued over several things, here are a few contributions (I only checked the first, since it is the only actual bug).

So, first, the partially solved bug: I realised after a while that my girls never got involved in bisexual sex. After searching through the code, I realised that it is simply because, on line 568 of BKendday.rpy, "bisexual" is written with an upper-case B. Ever since I changed it to the lower case, I have girls working in tandem with a customer.

However, I have not understood enough how worked the various functions of Step 10 in BKfunctions (in the definition of perform() ) to correct the text: the second girl is not mentioned at the start, but the plural pronoun is used nevertheless for what the customer asks (leading to sentences like "A carpenter was looking for a Tame girl. He was elated to meet Lyuky. He asks them to give service."). Only after this use of the plural, when the result is given, do we actually learn there were two girls (and who was the second one).

And now, two complete contributions.

First, I found it irritating that the girls could never get with more than three guys. I mean, come on, even in the "group" pictures, many involve more than that. I changed this by adding a little bit of code to BKendday.rpy. After line 560 (dealing with the third male participant to the orgy, I added this:
(I put it in "quotes" instead of "code" to make the message more easily readable)

## May bring in up to 4 more customers. In order to generate more variety, 4-men orgies will occur only four out of five times, and the 7-men orgies will only occur one out of five times (if they are even possible).
test = dice(5)

if girl.has_perk("Orgy") and (girl.get_stat("service") + girl.get_stat("sex") + girl.get_stat("anal") + girl.get_stat("fetish")) >= 450 and cust_list.index(cust) < len(cust_list)-3 and test > 1:
if girl.get_effect("special", "orgy") != 1.0:
customers.append(cust_list[cust_list.index(cust)+3])

if girl.has_perk("Orgy") and (girl.get_stat("service") + girl.get_stat("sex") + girl.get_stat("anal") + girl.get_stat("fetish")) >= 500 and cust_list.index(cust) < len(cust_list)-4 and test > 2:
if girl.get_effect("special", "orgy") != 1.0:
customers.append(cust_list[cust_list.index(cust)+4])

if girl.has_perk("Orgy") and (girl.get_stat("service") + girl.get_stat("sex") + girl.get_stat("anal") + girl.get_stat("fetish")) >= 550 and cust_list.index(cust) < len(cust_list)-5 and test > 3:
if girl.get_effect("special", "orgy") != 1.0:
customers.append(cust_list[cust_list.index(cust)+5])

if girl.has_perk("Orgy") and (girl.get_stat("service") + girl.get_stat("sex") + girl.get_stat("anal") + girl.get_stat("fetish")) >= 600 and cust_list.index(cust) < len(cust_list)-6 and test > 4:
if girl.get_effect("special", "orgy") != 1.0:
customers.append(cust_list[cust_list.index(cust)+6])
It would be easy to change the various get_stat with job_level and use other thresholds (probably something like 3, 5, 7 and 9), but I felt it was best to use the stats for this to allow more variety between the girls (the job levels, being limited to 4 stars—I don't want the 7-men gang bang being only available to X ranks—would make it far more rank-dependant, whereas the sex stats could open it earlier with the right training and developments, so more in the hands of the player).

Another thing I added, completely this time, is a variation of the thief encounter. I will probably extend it to the gambling encounter when she cannot pay: in this universe, where slavery can be used to cover debts, it would probably also be used as a punishment for crimes like theft. As such, I was frustrated when the MC could fuck the thief queen, but not use her in the brothel. On the other hand, I did not want for her to become a full-time resident (it was more fun). So, I devised a new possible outcome of the fight where the player can choose not to have her fucked by the MC, but forced to work for one night in the brothel. And to become a recurring feature afterwards.

I did not go through the whole details of the girls' performances with her, not only because I am not knowledgeable enough about the code, but also because I think she was supposed to be a fast addition, a reputation and gold bonus to occur occasionally.

The first code must be inserted into BKcity_events.rpy to replace the code from line 3592 to line 3594 (actually, those two lines are simply indented once more, but I think it's easier to replace them, and it makes my code clearer her ;)):

if brothel.level >= 3:
menu:
"Fuck her yourself":
you "Follow me, then."

$ sex = "strength"

"Make her work in your brothel tonight":
if hasattr(MC, 'thief_queen'):
$ MC.thief_queen.conscripted = True
else:
$ MC.thief_queen = get_girls(1, free=True)[0]
$ MC.thief_queen.brothel_visits = 0
$ MC.thief_queen.conscripted = True
$ MC.thief_queen.addicted = False

"[MC.thief_queen.fullname] will work tonight at your brothel."
else:
you "Follow me, then."

$ sex = "strength"
The second code must be inserted into BKendday at line 417 (well, before "CUSTOMERS AND GIRLS INTERACT") :
#### THIEF QUEEN GANG BANG ####
## Prepare

python:
if MC.thief_queen.addicted == True and MC.thief_queen.conscripted == False:
d = dice(30)
if d < (brothel.bedroom_type.level + brothel.level):
MC.thief_queen.conscripted = True

if MC.thief_queen.conscripted:
MC.thief_queen.conscripted = False

if MC.thief_queen.brothel_visits <= 5:
MC.thief_queen.brothel_visits += 1

d = dice(6)
roll = roll_dict[d]

# Calculate score and get result
score = d + 1 + MC.thief_queen.brothel_visits + brothel.level

for k in sorted(result_dict):
if score >= k:
result = result_dict[k]
if (result == "good"):
brothel.change_rep(+1)
gold_index = 80
elif (result == "very good"):
brothel.change_rep(+2)
gold_index = 100
elif (result == "perfect"):
brothel.change_rep(+3)
gold_index = 125
else:
brothel.change_rep(0)
gold_index = 60

# Compose description

# cust_names = and_text([c.name.lower() for c in customers]) ; a list of customers could be established.
gang_bang = dice(4) + 4 + MC.thief_queen.brothel_visits
customers = str(gang_bang) + " customers"
girl_names = and_text([MC.thief_queen.name])

cust_pronoun = "They"
cust_verb = "were"
girl_pronoun = "her"

if MC.thief_queen.addicted == False:
if MC.thief_queen.brothel_visits == 1:
suffix = "st"
elif MC.thief_queen.brothel_visits == 2:
suffix = "nd"
elif MC.thief_queen.brothel_visits == 3:
suffix = "rd"
else:
suffix = "th"

text_descript = "The Thief Queen works for you for the [MC.thief_queen.brothel_visits][suffix] time. " + customers + " participate to her gang bang."
else:
text_descript = "The Thief Queen was horny and decided to come and work for you again. " + customers + " participate to her gang bang."

if MC.thief_queen.brothel_visits >= 5 and MC.thief_queen.addicted == False:
MC.thief_queen.addicted = True
text_descript += "She realised that she liked this. From now on, there is a good chance she will show up again."

text_descript += perform_job_dict["roll_" + roll] % girl_names
text_descript += perform_job_dict["group_" + result] % girl_names
text_descript = "{size=18}" + text_descript # Done last as to not change the log text size

# Compose right text (changes)

text_changes = "\n\nRoll: " + "{image=" + "img_dice" + str(d) + "}"
text_changes += "\nSkill bonus: " + plus_text(MC.thief_queen.brothel_visits)

text_changes += "\n\n{b}Final result{/b}: " + str(score) + "\n({color=" + result_colors[result] + "}" + result + "{/color})\n"

gold_revenue = gold_index * gang_bang
log.gold_made += gold_revenue

text_changes += "\n" + stat_increase_dict["gold"] % str(gold_revenue)

# Choose pic

and_tags = []
not_tags = ["monster", "beast"] # Monster and beast pictures are not displayed during normal sex

and_tags = "naked"

act = "sex"

work_pic = MC.thief_queen.get_pic(perform_job_dict["group_tags"], perform_job_dict[act + "_tags"])

if not work_pic and act in all_sex_acts: # Defaults to sex if a picture hasn't been found
work_pic = MC.thief_queen.get_pic("sex")

if not work_pic and act in all_sex_acts: # Defaults to naked if a sex picture hasn't been found
work_pic = MC.thief_queen.get_pic("naked")

if not work_pic: # Defaults to profile if no other picture has been found
work_pic = MC.thief_queen.get_pic("profile", and_tags = and_tags, not_tags = not_tags)

ev_sound = None

perform_events.append(Event(pic = work_pic, char = MC.thief_queen.char, text = text_descript, changes = text_changes, sound = ev_sound, type = "Normal"))
Of course, the various values (how many men in the gang bang, the number of events before she gets addicted, the dice roll to have her coming back) can be modified depending on one's preferences. :)

I tested all these, and they are simple enough that there should not be any bug, but the code could probably optimised (I'm not a pro with Python, far from it).

I hope you find it interesting (and that someone can answer my questions at the start). :)
 

Kite80

Well-Known Member
Modder
May 30, 2017
1,079
1,068
@Daulas thank you very much for your feedback, I already sent a PM to Goldo with a direct link of your message, so he can read it as it is. The part of make the thief whoring is interesting, maybe Goldo would agree to insert it as a special event.

About the bugs you cited above, I'm quite sure most of them were fixed (I got the farm issue once, but with the latest experimental patch it never showed up again), mo once again I suggest to get that patch or to wait a little more when it will be released as official 0.15 update.
 

Daulas

Member
Sep 5, 2018
148
53
@Daulas thank you very much for your feedback, I already sent a PM to Goldo with a direct link of your message, so he can read it as it is. The part of make the thief whoring is interesting, maybe Goldo would agree to insert it as a special event.

About the bugs you cited above, I'm quite sure most of them were fixed (I got the farm issue once, but with the latest experimental patch it never showed up again), mo once again I suggest to get that patch or to wait a little more when it will be released as official 0.15 update.
Thank you for your answer.

Two other things I forgot to mention about how the game could evolve in my opinion:

I know it has been discussed elsewhere, but the security is a true problem, even with all the possible guards recruited and all the trap improvements. I think it could be useful to have some self-defence classes for the girls (especially since weapons drop really rarely). Maybe it could become like a job, and they would get free points when attacked (whether successfully or not, even) and be able to get to the 5-star level, with an increase of their defense stat of three points per level (the classes would also allow them to improve Body and Constitution, but perhaps at the risk of lowering Obedience and Sensitivity?).

And the quests are a nice feature, but I found them completely useless. As soon as a girl is able to become a competent whore (getting mostly good results), the quests are almost worthless because they last too long while not earning enough. When a girl can have four or five client interactions a night, even with only one man, she earns more than 1,000 gold, so any quest that is worth less than 1,000 gold is a waste of time at this point, and the same goes before for 500 gold when the girl can service 2 or 3 men, etc. As such, I really quickly ended up never using them, which is a shame, since I find the idea interesting, but I have to think of the bottom line if I want to be a responsible brothel owner... ;)

So, it may be interesting to have less quests, but with higher rewards (and/or more flexible stat modifiers), so they would not imbalance the brothel economy, but still be interesting to fulfill.
 
Feb 24, 2019
260
77
And the quests are a nice feature, but I found them completely useless. As soon as a girl is able to become a competent whore (getting mostly good results), the quests are almost worthless because they last too long while not earning enough. When a girl can have four or five client interactions a night, even with only one man, she earns more than 1,000 gold, so any quest that is worth less than 1,000 gold is a waste of time at this point, and the same goes before for 500 gold when the girl can service 2 or 3 men, etc. As such, I really quickly ended up never using them, which is a shame, since I find the idea interesting, but I have to think of the bottom line if I want to be a responsible brothel owner... ;)
I agree that once your girls are trained the quests become fairly pointless however when moving to a new area your brothel rep resets so sending your girls out to do those quests is better than them not making any money at all. That said about rep, as I have decided not to move up yet im still able to access the next areas, perhaps by doing events in the Magic Garden/Cathedral my rep wouldnt start at 0? XD
 

Strec

Active Member
Feb 20, 2018
607
390
So, it may be interesting to have less quests, but with higher rewards (and/or more flexible stat modifiers), so they would not imbalance the brothel economy, but still be interesting to fulfill.
What would be interesting is to have the new version to really see what have been modified :p
 

Daulas

Member
Sep 5, 2018
148
53
I agree that once your girls are trained the quests become fairly pointless however when moving to a new area your brothel rep resets so sending your girls out to do those quests is better than them not making any money at all. That said about rep, as I have decided not to move up yet im still able to access the next areas, perhaps by doing events in the Magic Garden/Cathedral my rep wouldnt start at 0? XD
Err, no... Even when moving, I made money almost every night. Perhaps not the first one or two, but quickly. I also only changed the customer preferences slowly, after the girls were at least consistently good at their jobs, so I would never go through a medium-length dry period.

So, no, even in a new district, quests were of almost no interest to me. Usually, the interesting ones were not available due to my girls' stats, and when they became available... well, they were no longer interesting.
 

don2sail

Newbie
Jun 3, 2017
98
47
i am playing v.14, adding the mod pack (ohwee v3). I recently moved to the warehouse bringing 4 maxed out girls that were all immediately raised to rank B. I have added some rank c girls. on the 2nd day all rank b girls were hit with poor diet penalties rendering them virtually unable to recover. at the current rates it will take 10 to 15 days to get them back in action and when they do it appears it will be for 1 day and the low recovery rate will render them useless again. What gives, I can find no reference to diet, how to avoid the penalty or how to recover. help!!!!
 

OhWee

Forum Fanatic
Modder
Game Developer
Jun 17, 2017
5,855
29,781
i am playing v.14, adding the mod pack (ohwee v3). I recently moved to the warehouse bringing 4 maxed out girls that were all immediately raised to rank B. I have added some rank c girls. on the 2nd day all rank b girls were hit with poor diet penalties rendering them virtually unable to recover. at the current rates it will take 10 to 15 days to get them back in action and when they do it appears it will be for 1 day and the low recovery rate will render them useless again. What gives, I can find no reference to diet, how to avoid the penalty or how to recover. help!!!!
Was just dropping in to see if .15 had dropped yet, saw your post.

Not sure what you did there that triggered the poor diet penalties. I've never seen what you've described happen before, so I don't have any advice.

I should note that you probably should be using the experimental mod at this point, as a lot has changed in BK since I made my mods back in November. I've already tagged the interface mod as 'nearly abandoned' and that applies to my gameplay mod as well. The gameplay mod was primarily to test out a few concepts and let other people try them out. I think a couple of ideas from the gameplay mod were ported over (with modifications) but for the most part yeah it's a standalone.

A number of ideas I suggested via the interface mod were ported over to the experimental mod. The font changes I think were not implemented though (a few people didn't like the Comical/Chow Fun combo). I'm biased to that combo myself, but it's Goldo's game so his call.

I'm currently not supporting either of my mods. Too many other projects on my plate at the moment, and frankly I just lost interest in working on them, due to other projects needing my attention. I'll probably give BK another go when .15 drops, but won't be doing any more mods for it.

So, if you want to be up to date, yeah I'd suggest the experimental mod. I do hope you enjoyed what I came up with though.
 

Kite80

Well-Known Member
Modder
May 30, 2017
1,079
1,068
Quests are meant to be a tool for beginner slaves, since in that way they can get experience and reputation faster when they are at lower levels. It is natural that when they improve their ranks and levels, such tool become almost useless.

Security has been improved a lot in the experimental patch, more balanced and with a lot of options like the security threat level shown in the brothel management; there are also more ways to improve it, like having a caster girl who will activate a magic shield during the first attack of the evening, or having Maya as assistant (she provides +2 defence to all the girls); MC himself can use magic shield if we choose to play as wizard.
I assure you that with the latest patch (which will be the incoming 0.15 update) the security issue won't be an issue anymore.

One last thing: there's no cannibalism option in BK, I guess it was mismatched with Jack-o-nine game...
 

Kite80

Well-Known Member
Modder
May 30, 2017
1,079
1,068
Experimental patch updated:

warrior spells fixed; now the unique girl in BK.ini (inside girl folder) allows to have unique girls without clones.
 

Kite80

Well-Known Member
Modder
May 30, 2017
1,079
1,068
Attention please: the latest experimental patch has a little bug in a new part of BK.functions code, here's how to temporary fix it:

- open BKfunctions.rpy with editra (or wordpad, but editra would be best)
- search this function: "def init_items()"

It should be like this:

Code:
    def init_items():
     
        # Creates a ranked dictionary for all items
     
        game.items = defaultdict(list)
     
        for it in all_items:
         
            game.items[it.rarity].append(it)
         
            for dis in district_dict.values():
                if it.min_rank <= dis.rank <= it.max_rank:
                    if it.rarity in ("U", "S", "M"):
                        pass
                    elif it.rarity < dis.rank:
                        dis.items["junk"].append(it)
                    elif it.rarity == dis.rank:
                        dis.items["common"].append(it)
                    elif it.rarity == dis.rank + 1:
                        dis.items["rare"].append(it)
                    else:
                        dis.items["exceptional"].append(it)

#    def list_items(rank = 1):
#      
#        district.items = defaultdict(list)
#      
#        district.items["junk"] += game.items[rank - 1]
#        district.items["common"] += game.items[rank]
#      district.items["rare"] += game.items[rank + 1]
#      district.items["exceptional"] += game.items[rank + 2]
#
#        return
- now modify it as shown below:

Code:
    def init_items():
     
        # Creates a ranked dictionary for all items
     
        game.items = defaultdict(list)
     
        for it in all_items:
         
            game.items[it.rarity].append(it)
         
#            for dis in district_dict.values():
#                if it.min_rank <= dis.rank <= it.max_rank:
#                    if it.rarity in ("U", "S", "M"):
#                        pass
#                    elif it.rarity < dis.rank:
#                        dis.items["junk"].append(it)
#                    elif it.rarity == dis.rank:
#                        dis.items["common"].append(it)
#                    elif it.rarity == dis.rank + 1:
#                        dis.items["rare"].append(it)
#                    else:
#                        dis.items["exceptional"].append(it)

        list_items()

    def list_items(rank = 1):
      
        district.items = defaultdict(list)
      
        district.items["junk"] += game.items[rank - 1]
        district.items["common"] += game.items[rank]
        district.items["rare"] += game.items[rank + 1]
        district.items["exceptional"] += game.items[rank + 2]

        return
This will fix all the error messages related to district items management.


EDIT: there are a few more bugs under investigation, will keep you updated asap.
 

Daulas

Member
Sep 5, 2018
148
53
Quests are meant to be a tool for beginner slaves, since in that way they can get experience and reputation faster when they are at lower levels. It is natural that when they improve their ranks and levels, such tool become almost useless.
Well, I can only partially agree with that statement. True, most of the quests are for beginner slaves and, while I'm not sure they are worth it except for the first few days, they can be useful.

But there are also a number of quests that have mid- or high-level requirements (like 180 in one stat or something like that). And those are where my problem lies, since they are implemented for high-level girls, but are actually not that interesting (low income/duration ratio compared to what they can make by working in the brothel)

Here is an example from my current game:
*Notorious* Escort needed
Duration: Two days.
Reward: 1,408 gold.
Requirements: Refinement 178 and Sensitivity 109.

That's 704 gold per night for a girl that can probably make 1,000, if not more, even if she does not have sex with groups (and she probably will).

And the next one is even worse:
Hiring help
Duration: Two days.
Reward: 1,339 gold.
Requirements: Obedience 253.

This is for a very-high-level girl (253 means she must be rank S and have some special items and perks), and she will probably make 2,000 or 3,000 in a SINGLE night! (again, if not more).

Maybe Rep gains should be increased and indicated and JP gains be added (and also indicated), so they would actually be incentives for the quests.
 

Kite80

Well-Known Member
Modder
May 30, 2017
1,079
1,068
Found a few discussions about quests on HHS forum, it seems that Goldo has taken in consideration the idea of a quest rebalancing, not sure if it's already done for the next update or if will come up later. For now, I'll take a look at current quests with the latest experimental patch and see if something has been improved, or eventually find a way to change it (maybe with a mod?).
 
  • Like
Reactions: Daulas
4.60 star(s) 46 Votes