News:

Please request registration email again and then check your "Spam" folder

Former www.henthighschool.com

[Resources] Writing events for BK

Started by Goldo, May 19, 2022, 09:17 AM

Previous topic - Next topic

GoldoTopic starter

Quote from: neronero on Oct 03, 2022, 10:48 AMYou cannot view this attachment.
I made a mod that adds ~1000 lines of flavor text for relationships, friendships and rivalries. The girls in your brothel will occasionally chat with eachother.
The vanilla game also already does this, but it could use some more variety. Plus this mod adds neutral chatter (for 'neutral' relationships)

Mechanically it's pretty simple since it's just some flavor text. And I don't really intend to develop this a lot further for now. It's more meant as a dialogue-lines resource for a future mod or update (that's why I'm stealth-dropping it here instead of in a seperate thread)

@Goldo I hope the dialogue lines can be of use to improve random_relationship_event() in a future release.

Thanks, looks cool!

I wonder if the frequency is not a bit too high (72% of showing dialogue on any given day if pulling a girl with both friends and rivals, which should happen fairly often), but it'll take some practice playing to see how it pans out.

Another remark, you can replace this chunk of code:
          other_girl_list = []
               
          for candidate in MC.girls:
              if candidate != girl:
                  if not candidate.away:
                      other_girl_list.append(candidate)

With this single line:
other_girl_list = [g for g in MC.girls if g != girl and not g.away]which I think is one of the sleek cool things about Python.

Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!

Hareb

Here's an updated version of the bookworm event, if someone wants to test. I've added four different reactions based on her preferences > 200 > 80 > 20 > completely refuse. Also, the dialogue is now a bit different, if she working or having a day off.

It now also shows pictures and does something to stats for various outcomes. Both of these could use some tweaking, since I am not so sure, what is an appropriate gain from training from game balance POV.

Also, the image tags could be more specific. I am not that familiar with the extended image tag system, since I've never compiled girl packs (figured there are enough people without me).

Bisexual training currently produces an error message. Also, I am not sure how to remove naked training option, if she is already nude.

Nonetheless, this is heaps better than previous file and most options work, if someone wants to give this a try  8)

GoldoTopic starter

Thanks, I will try and take a look this week when I'm able.
Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!

Hareb

It would be great, if you do. I could probably try and fix the bisexual checks (it's not girl.get_sex_attitude('bisexual') - is it?), but it will require some balancing by you in case, as I don't know my way around all the stats.

Also, I am currently really busy at work and have something every evening this week apart from Sunday. Things are very different than they were, when I got into BK during the lockdowns...

At least, the writing should be there

GoldoTopic starter

Hi, so here is some feedback on what I had time to try:

- Nothing seems broken in the code so far, so congrats!

- The sequence of events is strange when she refuses. For instance, I got this order of dialogue:
Spoiler
you "Let's see what you have learned! You know how to suck a mango, right?"
girl.char "I love sucking mango fruit, Sir. They're delicious!"
"She gets on her knees and begins to service your cock."
"She refuses."
girl.char "No way! I'm not actually doing that! I was mildly interested. That's why I picked the book."
girl.char "but I am not putting that thing in my mouth!."
"She rushes off."
[close]
Which doesn't make sense. You should probably put the conditional on refusing earlier in the interaction.
It seems to be the same for other sex acts.

- In general, I feel the tone of the girl's answers is very friendly, but that might not suit a girl that hates or fears the player. Some alternate lines here and there could help. In the end, you'll want to make use of the dialogue system (but that can wait).

- It's good to see you thought to include a conditional for taking a girl's virginity, congrats on that. It's easy to forget.

- I don't think it makes sense that every girl would be into spanking. You should probably add a check for a certain Fetish score and/or the Spanking fixation.

- Regarding typos, I spotted various sentences starting without caps, and some odd punctuation here and there.

- Minor immersion thing, but girls will mention their reading 'hobby', even though it is not one of their in-game hobbies as discovered through free girl interactions.

- I recommend thinking next about the skills and variables you want each outcome to affect. I see you left comments but it would be better with precise values and I found it lacked impacts on mood/love/hate (for instance, making her clean up the brothel on her free day is unlikely to make her very happy).

Information for others: For anyone who's curious to try this, you need a brothel with at least one girl who is a nerd, loyal or class president (personality-wise), and a minimum libido and obedience of 60. Then, you can run 'call test_hareb' in the console (shift+o), or use the test event cheat with 'test_hareb' (don't include the quotes).
Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!

Hareb

Thanks so much for the feedback ... 8)

It's much better than I thought, if there's nothing broken. Is there not an error message with bisexual training?

Quote from: Goldo on Oct 21, 2022, 02:54 PM- The sequence of events is strange when she refuses. For instance, I got this order of dialogue:
Spoiler
you "Let's see what you have learned! You know how to suck a mango, right?"
girl.char "I love sucking mango fruit, Sir. They're delicious!"
"She gets on her knees and begins to service your cock."
"She refuses."
girl.char "No way! I'm not actually doing that! I was mildly interested. That's why I picked the book."
girl.char "but I am not putting that thing in my mouth!."
"She rushes off."
[close]
Which doesn't make sense. You should probably put the conditional on refusing earlier in the interaction.
It seems to be the same for other sex acts.

Yes, that's clearly mistake in placement of the if/elif structures. I'll get it fixed.

Quote- In general, I feel the tone of the girl's answers is very friendly, but that might not suit a girl that hates or fears the player. Some alternate lines here and there could help. In the end, you'll want to make use of the dialogue system (but that can wait).

Ah, so I should add a bit more dialogue for those...

I'll also add checks for spanking fetish and write some dialogue for girls who are not into that (it's a very well designed book cover though :P ).

Quote- Regarding typos, I spotted various sentences starting without caps, and some odd punctuation here and there.

I hope I can do some proofreading at some point. Most of the dialogue has been written late in the evening, when I am not at my most careful... so typos and weird punctuation may happen.

Quote- Minor immersion thing, but girls will mention their reading 'hobby', even though it is not one of their in-game hobbies as discovered through free girl interactions.

And I'll change the wording for that too..

Quote- I recommend thinking next about the skills and variables you want each outcome to affect. I see you left comments but it would be better with precise values and I found it lacked impacts on mood/love/hate (for instance, making her clean up the brothel on her free day is unlikely to make her very happy).

Alright... I'll try to be more precise about which values exactly change. Many of the comments are from very beginning, when I wrote the event as independent Ren'Py thing and had even less idea of how BK, Ren'Py and Python work. I've been watching some tutorials for both Ren'Py and Python as well.


GoldoTopic starter

Cool! Once you have a more precise idea on the impacts of each outcome, I can give you pointers on how to implement it in-game (i.e. turn the comment into a line of code that works).

The final step will be to integrate it in the daily event system.

(sorry I have not tested the bi event, so there might still be a bug there)
Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!

Hareb

Quote from: Goldo on Oct 21, 2022, 02:54 PM- In general, I feel the tone of the girl's answers is very friendly, but that might not suit a girl that hates or fears the player. Some alternate lines here and there could help. In the end, you'll want to make use of the dialogue system (but that can wait).

- I don't think it makes sense that every girl would be into spanking. You should probably add a check for a certain Fetish score and/or the Spanking fixation.


The last few weeks have been crazy at work, but finally it's easier and I've got some time to work on this...

How do I check hate and fear values?

How do I check, if the girl has a negative fixation about spanking?

GoldoTopic starter

Quote from: Hareb on Nov 16, 2022, 07:02 PM
Quote from: Goldo on Oct 21, 2022, 02:54 PM- In general, I feel the tone of the girl's answers is very friendly, but that might not suit a girl that hates or fears the player. Some alternate lines here and there could help. In the end, you'll want to make use of the dialogue system (but that can wait).

- I don't think it makes sense that every girl would be into spanking. You should probably add a check for a certain Fetish score and/or the Spanking fixation.


The last few weeks have been crazy at work, but finally it's easier and I've got some time to work on this...

How do I check hate and fear values?
girl.get_love() # Returns a value from +125 to -125 (capped +/-25 per rank)
girl.get_fear() # Returns a value from +125 to -125 (capped +/-25 per rank)

QuoteHow do I check, if the girl has a negative fixation about spanking?
girl.has_fixation("neg", "spanking") # Returns True or False
Easy, ain't it?
Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!

Hareb

Thanks!

Easy, if you know your way around all the various files with stats, which I can't say I do...

Still, there was a warning in the tutorials at the start of the thread that it's easier to start with linear events featuring set characters than brothel day events, which I of course ignored  8)

reddok

Hi everyone.
I'm back after a very busy year with not much to show and a question.

I'm looking for a way to add custom personalities that are not tied to an specific girl's _BK.ini
Sadly I'm not any more experienced than before, so I'm having trouble figuring out how, or even if it is possible to do so.

The reason why is I'm trying to make a series of events that will end with the addition of a girl to the brothel. Said girl would get a different personality depending on the decisions the player made along the way, and I want the dialogues to reflect them.

GoldoTopic starter

Quote from: reddok on Dec 22, 2022, 06:53 PMHi everyone.
I'm back after a very busy year with not much to show and a question.

I'm looking for a way to add custom personalities that are not tied to an specific girl's _BK.ini
Sadly I'm not any more experienced than before, so I'm having trouble figuring out how, or even if it is possible to do so.

The reason why is I'm trying to make a series of events that will end with the addition of a girl to the brothel. Said girl would get a different personality depending on the decisions the player made along the way, and I want the dialogues to reflect them.

There are several ways to do this, all are fairly advanced. Here is what I would recommend:

1) Create your new Personality as an instance of the Personality() class in a custom .rpy file
2) Append your personality to the gpersonalities dictionary (after init).
3) Force personality change in-game using the generate_personality() method of the Girl() class. This will likely work, but you may get some potentially weird misalignment of backgrounds, traits and sexual preferences, depending on how far the new personality is from the original one.
4) If you can't live with that, you may need to force the re-generation of background/preferences, and possibly overwrite traits. The drawback is the player may notice the changes and get confused.

If the above does not make sense, you are probably not ready.
Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!

Raptor010

I have some useful links for anyone looking to get into making events from an old user by the name of Poke. These have all been rehosted into a new Drive:

This first document has some small explanations and links to documents/packs with events in them. (Some links are broken):
https://docs.google.com/document/d/1Ywc4I5_0jFw7lrqASYtJX8szAS9TCFyx_xP4FbhNLMM/edit?usp=sharing

This document explains Transitions, writing events, sizing, and has coding examples for multiple possibilities:
https://docs.google.com/document/d/1yITTRpLA1yKAp2ejL49bGdwieP5rV7KsGw3hUZgsYFc/edit?usp=sharing

This document is an example of how they laid out their events and planned them in advance (Nessa). This may provide some insight and assist with anyone looking to plan their own:
https://docs.google.com/document/d/1n0543MgP6TCOC3hAvsHsiCs03wokBWjX1yj26ZUSo_I/edit?usp=sharing

neronero

#43
I'm trying to make girls gossip about one another while they're not around (escaped, exhausted, hurt)

Example:
Quotecall dialogue(girl1, "gossip intro")
Girl 1: "Did you hear the news about [Girl 3]?"

call dialogue(girl2, "gossip topic")
Girl 2: "I know, right? She totally has stallion-AIDS now."

The problem is/was: How can I put [Girl 3]'s name in [Girl 1]'s mouth, while still using the dialogue system.

The best I've come up with after some tinkering is this:
# Add dialogue lines on the topic with placeholder substrings (or whatever their official name is)
add_dialogue("gossip intro", ("very modest"), ("Does anyone know where %s is?"))

# Find dialogue on the topic
dialogue_object = pick_dialogue("gossip intro", "very modest")

# Modify the line within the dialogue object before it's spoken
dialogue_object.line = dialogue_object.line % (girl3.name)

# Say the modified line
dialogue_object.say(girl1.char)

# Keep the rest of the gossiping interaction simple, not using girl3's name but just "she"/"her"
call dialogue(girl2, "gossip topic")
One thing that's annoying about this is that I can't give pick_dialogue() multiple keys (to also search for personality + attributes) - but I guess I could run it 3 times with a different key each time, and pick randomly from the 3 results.

Other than that, it sorta works. But I'm just stumbling along, so maybe there's a more obvious solution I'm missing?
My Girl Packs: [ link ] - Trait King mod: [ link ]

GoldoTopic starter

Before diving into anything too complicated, this seems to work well enough:

add_dialogue("gossip intro", ("generic"), ("Does anyone know where [girl2.name] is?"))

$ girl1 = MC.girls[0]
$ girl2 = MC.girls[1]

call dialogue(girl1, "gossip intro")

It also works with multiple dialogue:

add_dialogue("gossip intro", ("generic"), ("g: Does anyone know where [girl2.name] is?", "mc: You mean [girl2.fullname]? I haven't seen her."), multiple=True)

$ girl1 = MC.girls[0]
$ girl2 = MC.girls[1]

call dialogue(girl1, "gossip intro")
Maker of BK. Looking for the latest patch for BK 0.2? The link doesn't change, so bookmark it!