Hermitic Posted February 3, 2021 Posted February 3, 2021 Once again, I come to you. I hope you saw my success in implementing larger breasts into the base game. I have an idea of how to implement the largest sizes too (which normally in the mod can only be acquired via beauty traits). The problem is that I need to find the place in the programming where the game take genes and uses them to make characters so I can swap the gene setting for normal breasts with the setting for sjk breasts. I don't know where that place in the programming is, though. Can anyone tell me? I've looked but not found it.
M4rocks Posted February 3, 2021 Posted February 3, 2021 7 hours ago, Hermitic said: Once again, I come to you. I hope you saw my success in implementing larger breasts into the base game. I have an idea of how to implement the largest sizes too (which normally in the mod can only be acquired via beauty traits). The problem is that I need to find the place in the programming where the game take genes and uses them to make characters so I can swap the gene setting for normal breasts with the setting for sjk breasts. I don't know where that place in the programming is, though. Can anyone tell me? I've looked but not found it. I would start with looking at sjk_beauty_breast_scale.txt (You'll need notepad, but I recommend Notepad ++) , but to warn you if your planning to make them larger you're gonna have to fix the attachments, or else the breasts will pop out of the clothes, it will ruin your immersion. Here you will have to play around with: Quote female = { setting = { attribute = "bs_body_breast_size_min" value = { min = 0.0 max = -2.0 } age = age_preset_puberty } setting = { attribute = "bs_body_breast_size_max" value = { min = 0.0 max = 2.0 } age = age_preset_puberty } # These are two extra blendshapes added to the female body and clothing to allow for some # extra scaling setting = { attribute = "sjk_bs_body_breast_size_max" value = { min = 0.0 max = 1.0 } age = age_preset_puberty } setting = { attribute = "sjk_bs_body_breast_size_max_extra" value = { min = 0.0 max = 1.0 } age = age_preset_puberty } } } } Good luck! Something you should know: These files can be found in sjkBreastScales/gfx/models/portraits/attachments (For clothes) and sjkBreastScales/common/genes (For the genes
M4rocks Posted February 3, 2021 Posted February 3, 2021 Wait, I misread your text, this would make them larger if you've got a mod Beauty Traits + (Can Be found on Steam Workshop). If anyone wants to make it, this mod is for grabs! Just let me know. Link
Hermitic Posted February 3, 2021 Posted February 3, 2021 If you read thread about integrating SJK into vanilla, you'll see that I've already messed with what you suggested. I think the problem is that Kincade inseparably attached the largest sizes to traits, so the only way I could get them is via traits. This means that I could never have females naturally range from minimal to maximal. Ah well. I at least was able to make the breasts significantly larger, though not maximal, as shown in my thread.
M4rocks Posted February 3, 2021 Posted February 3, 2021 Yea its in the resource so here's the path you need to take: sjkBeautyScalesBreasts/common, here you will find 3 things, decisions, script_values, and scripted_triggers. I know its not in decisions, but I've only skimmed through the other 2 but this is your mod expansion so I won't do all the work for you, if you haven't looked already, I'd look there. If you don't have the file here it is (all you gotta do is extract, and look in it, if you don't trust this file you can find it with the same name at the breast scale page) sjkBeautyScalesBreasts.zip
bobbily Posted February 4, 2021 Posted February 4, 2021 How do you code events that fire for the player's heir after the player's character has died? I assume it's some form of on_action (from studying the Carnalitas code), but this doesn't work: on_death = { effect = { primary_heir = { trigger_event = { id = test_event.0001 days = 1 } } } }
Dagulus Posted February 4, 2021 Posted February 4, 2021 4 hours ago, bobbily said: How do you code events that fire for the player's heir after the player's character has died? I assume it's some form of on_action (from studying the Carnalitas code), but this doesn't work: on_death = { effect = { primary_heir = { trigger_event = { id = test_event.0001 days = 1 } } } } on_death already has an effect block so you can't add another, if you do it will just collapse. It can actually be quite an issue, Some mods (of the top of my head, VIET) adds things like delays to the vanilla on_actions and if two mods try to do the same, it just tanks the whole on_action. I think the only thing you can safely add to an on_action is events = {}, random_events = {} and other on_actions = {}. So on your case, I would add an new on_action to on_death, that launched my_mod_on_action that used your code above.
bobbily Posted February 4, 2021 Posted February 4, 2021 Wow, I had no idea the on_actions didn't stack. That makes them so much less useful!
Dagulus Posted February 18, 2021 Posted February 18, 2021 On 2/1/2021 at 12:19 PM, Dagulus said: I suspect the reason why may be because the crime is from Carnalitis, which is obviously higher in my load order than my own mod, but you would still think basic sequencing could be achieved? So does anyone know if there is a way to set the sequence things go in? So to answer my own question in case someone else has this issue. The main way I have found to get around this is to launch whatever you need to go last as part of an on_action. These always seem to be the last thing to be resolved in any immediate block. That is still pretty limited though: AFAICT, if you are writing an event that needs to do multiple things in a specific order, you are probably safest to split it into multiple events.
Dagulus Posted February 18, 2021 Posted February 18, 2021 So moving on to today's question for things that have eaten far to much of my time... Has anyone played about with the activities box? The one the bottom corner that shows who is at the same activity as you. I would like to get rid of the checkered pink background at my orgy event, but I just don't see how the game knows where to pull the image from? Also, the orgy map marker is not showing an icon either, just a black circle. This is less annoying but I would still like something to display if possible.
joemann Posted February 23, 2021 Author Posted February 23, 2021 I have the following ai_will_do modifier in a character_interaction: Spoiler modifier = { factor = 2 scope:actor = { var:current_sex_drive >= 3 OR = { has_trait = rapist has_trait = sadistic ai_vengefulness >= medium_positive_ai_value } OR = { has_relation_nemesis = scope:recipient has_relation_nemesis = scope:recipient.father has_relation_nemesis = scope:recipient.mother has_relation_nemesis = scope:recipient.primary_partner has_relation_rival = scope:recipient has_relation_rival = scope:recipient.father has_relation_rival = scope:recipient.mother has_relation_rival = scope:recipient.primary_partner scope:recipient = { is_spouse_of = scope:actor exposed_cheating_on_spouse_trigger = { SPOUSE = scope:actor } } } } } Does anybody know why the error_log keeps spamming me with the following error: Spoiler Error: has_relation_nemesis trigger [ character (has relation) was null ] Script location: file: common/character_interactions/00_prisoner_rape_interactions.txt line: 234 [19:18:30][jomini_script_system.cpp:169]: Script system error! Error: has_relation_nemesis trigger [ character (has relation) was null ] Script location: file: common/character_interactions/00_prisoner_rape_interactions.txt line: 234 [19:18:30][jomini_script_system.cpp:169]: Script system error! Error: has_relation_rival trigger [ character (has relation) was null ] I haven't been able to test the particular situation the modifier covers, but why wouldn't this work? The idea here is that a vengeful character will rape a prisoner who is the wife or daughter of his rival or nemesis
Dagulus Posted February 23, 2021 Posted February 23, 2021 As an aside: I have not tested, but based on the 'offer_vassalization_interaction' it looks like 'has_relation_rival' should return true for a Nemesis as well, so you can cut out that test. As for your question, if any of scope:recipient.father, scope:recipient.mother or scope:recipient.primary_partner do not exist, I would expect it to generate the 'character (has relation) was null' error. It might also generate the same error if they technically exist but are dead. Your probably best of building a scripted_trigger and within that, testing if the scopes actually exist before you test them further. I think most people are used to scripting languages where testing for something that does not exist would simply return False (I know I am), but that does not seem to be how this one is set up. Of course, given how vague the error messages are, a lot of its down to trial and error.
joemann Posted February 23, 2021 Author Posted February 23, 2021 45 minutes ago, Dagulus said: As an aside: I have not tested, but based on the 'offer_vassalization_interaction' it looks like 'has_relation_rival' should return true for a Nemesis as well, so you can cut out that test. As for your question, if any of scope:recipient.father, scope:recipient.mother or scope:recipient.primary_partner do not exist, I would expect it to generate the 'character (has relation) was null' error. It might also generate the same error if they technically exist but are dead. Your probably best of building a scripted_trigger and within that, testing if the scopes actually exist before you test them further. I think most people are used to scripting languages where testing for something that does not exist would simply return False (I know I am), but that does not seem to be how this one is set up. Of course, given how vague the error messages are, a lot of its down to trial and error. Would this do the trick? Spoiler is_family_of_rival_trigger = { trigger_if = { limit = { OR = { exists = scope:recipient exists = scope:recipient.father exists = scope:recipient.mother exists = scope:recipient.primary_partner } } OR = { has_relation_rival = scope:recipient has_relation_rival = scope:recipient.father has_relation_rival = scope:recipient.mother has_relation_rival = scope:recipient.primary_partner } } } used as follows: Spoiler modifier = { factor = 2 scope:actor = { var:current_sex_drive >= 3 OR = { has_trait = rapist has_trait = sadistic ai_vengefulness >= medium_positive_ai_value } OR = { is_family_of_rival_trigger = yes scope:recipient = { is_spouse_of = scope:actor exposed_cheating_on_spouse_trigger = { SPOUSE = scope:actor } } } } }
M4rocks Posted February 24, 2021 Posted February 24, 2021 5 hours ago, joemann said: Would this do the trick? Reveal hidden contents is_family_of_rival_trigger = { trigger_if = { limit = { OR = { exists = scope:recipient exists = scope:recipient.father exists = scope:recipient.mother exists = scope:recipient.primary_partner } } OR = { has_relation_rival = scope:recipient has_relation_rival = scope:recipient.father has_relation_rival = scope:recipient.mother has_relation_rival = scope:recipient.primary_partner } } } used as follows: Hide contents modifier = { factor = 2 scope:actor = { var:current_sex_drive >= 3 OR = { has_trait = rapist has_trait = sadistic ai_vengefulness >= medium_positive_ai_value } OR = { is_family_of_rival_trigger = yes scope:recipient = { is_spouse_of = scope:actor exposed_cheating_on_spouse_trigger = { SPOUSE = scope:actor } } } } } Wait, theres a trait Rapist? What mod?
Dagulus Posted February 24, 2021 Posted February 24, 2021 10 hours ago, joemann said: Would this do the trick? Reveal hidden contents is_family_of_rival_trigger = { trigger_if = { limit = { OR = { exists = scope:recipient exists = scope:recipient.father exists = scope:recipient.mother exists = scope:recipient.primary_partner } } OR = { has_relation_rival = scope:recipient has_relation_rival = scope:recipient.father has_relation_rival = scope:recipient.mother has_relation_rival = scope:recipient.primary_partner } } } used as follows: Reveal hidden contents modifier = { factor = 2 scope:actor = { var:current_sex_drive >= 3 OR = { has_trait = rapist has_trait = sadistic ai_vengefulness >= medium_positive_ai_value } OR = { is_family_of_rival_trigger = yes scope:recipient = { is_spouse_of = scope:actor exposed_cheating_on_spouse_trigger = { SPOUSE = scope:actor } } } } } I think this might work? Spoiler is_family_of_rival_trigger = { scope:recipient = { or = { has_relation_rival = root any_parent = { has_relation_rival = root } any_spouse = { has_relation_rival = root } } } }
joemann Posted February 24, 2021 Author Posted February 24, 2021 8 hours ago, M4rocks said: Wait, theres a trait Rapist? What mod? A mod I am working on based on bits and pieces from other mods. The rape part is from Tosca, which I have modified, adding and expanding stuff. I don't think I will upload it since it is in perpetual change and is probably not compatible with other mods. I am not a good coder, but I enjoy modding the game almost as much as playing it. 1 hour ago, Dagulus said: I think this might work? Reveal hidden contents is_family_of_rival_trigger = { scope:recipient = { or = { has_relation_rival = root any_parent = { has_relation_rival = root } any_spouse = { has_relation_rival = root } } } } Thanks! this looks good and very much cleaner than what I cobbled together. As I said I am not a good coder. I will try it today. Question: if I don't expect to use this trigger elsewhere can I include it directly in the character_interaction? I am not sure what the criteria are for using a scripted trigger.
Dagulus Posted February 24, 2021 Posted February 24, 2021 10 minutes ago, joemann said: Question: if I don't expect to use this trigger elsewhere can I include it directly in the character_interaction? I am not sure what the criteria are for using a scripted trigger. I believe you should just be able to put it in the same file, yes.
joemann Posted February 28, 2021 Author Posted February 28, 2021 I have the following question: Spoiler immediate = { scope:test_sex_target = { if = { limit = { any_relation = { type = soulmate count = 1 } } random_relation = { type = soulmate save_scope_as = deflowerer } } else_if = { limit = { any_relation = { type = lover count = 1 } } random_relation = { type = lover save_scope_as = deflowerer } } else_if = { limit = { any_relation = { type = rapist count = 1 } } random_relation = { type = rapist save_scope_as = deflowerer } } else = { limit = { top_liege = { any_courtier_or_guest = { is_ai = yes is_adult = yes is_male = yes is_female = no NOT = { has_trait = virgin } OR = { has_trait = lifestyle_reveler has_trait = lustful has_trait = rapist has_trait = gallant has_trait = seducer has_trait = fornicator has_trait = adulterer var:basic_sex_drive > 3.5 } } } } top_liege = { random_courtier_or_guest = { limit = { is_ai = yes is_adult = yes is_male = yes is_female = no NOT = { has_trait = virgin } OR = { has_trait = lifestyle_reveler has_trait = lustful has_trait = rapist has_trait = gallant has_trait = seducer has_trait = fornicator has_trait = adulterer var:basic_sex_drive = 3 } } } } save_scope_as = deflowerer } } } When I test this on Duchess Mathilda ( scope:player_sex_target ) this always comes up with Mathilda herself as the deflowerer, although she has the HRE as her liege with a full court. I would like it to pick one of the emperors courtiers as the deflowerer. What am I doing wrong? Is Mathilda a default?
Dagulus Posted February 28, 2021 Posted February 28, 2021 1 hour ago, joemann said: I have the following question: When I test this on Duchess Mathilda ( scope:player_sex_target ) this always comes up with Mathilda herself as the deflowerer, although she has the HRE as her liege with a full court. I would like it to pick one of the emperors courtiers as the deflowerer. What am I doing wrong? Is Mathilda a default? At a first glance it looks to me that 'save_scope_as = deflowerer ' is in completely the wrong set of {}. I think it needs to be within 'random_courtier_or_guest = {}'. Whereas you seem to have it in the else statement of 'scope:test_sex_target = {'
joemann Posted February 28, 2021 Author Posted February 28, 2021 2 hours ago, Dagulus said: At a first glance it looks to me that 'save_scope_as = deflowerer ' is in completely the wrong set of {}. I think it needs to be within 'random_courtier_or_guest = {}'. Whereas you seem to have it in the else statement of 'scope:test_sex_target = {' ? Thanks. Sometimes it really helps when someone looks at it with fresh eyes.
joemann Posted March 20, 2021 Author Posted March 20, 2021 Since the 1.3 update I am having problems with character being bald. I partially solved it by modding the genes and ethnicity files. The problem is now limited to naked characters in the event window, which are always bald. Anybody know what causes this? I also get a strange error message referring to ethnicity files that I can not find. They are not in the vanilla game, neither are they in the mods in the Steam workshop file. Spoiler [12:49:37][ethnicity.cpp:285]: gene category 'hairstyles' cannot be influenced by DNA, at file: common/ethnicities/01_ethnicities_african_northeastern.txt line: 182 Does anybody know where they come from?
Mange2020 Posted March 20, 2021 Posted March 20, 2021 6 hours ago, joemann said: Since the 1.3 update I am having problems with character being bald. I partially solved it by modding the genes and ethnicity files. The problem is now limited to naked characters in the event window, which are always bald. Anybody know what causes this? I also get a strange error message referring to ethnicity files that I can not find. They are not in the vanilla game, neither are they in the mods in the Steam workshop file. Hide contents [12:49:37][ethnicity.cpp:285]: gene category 'hairstyles' cannot be influenced by DNA, at file: common/ethnicities/01_ethnicities_african_northeastern.txt line: 182 Does anybody know where they come from? The baldness seems to be a Paradox issue. Paradox totally changed the way hair worked, there are actually more changes on the backend that I spent the last couple of days working through. When I wanted characters to be naked who would otherwise not be naked I basically copied the code paradox uses (there are only a couple events that do this). left_portrait = { character = root animation = shock triggered_outfit = { remove_default_outfit = yes outfit_tags = { no_clothes } } } remove_default_outfit is meant to removes all clothing that does not match the outfit tags. But actually it removes all portrait modifiers that aren't coded with "ignore_outfit_tags = yes". Despite having an easy way code to prevent this problem Paradox hasn't used that code all that often, probably because the only events that code characters to be naked are a random court scheme result and a random brothel trip result. Anyway things like ablinism, gigantism, and even carnalitas tit modifiers will be removed by the remove_default_outfit command as well. Now it seems like hair is added to that list. My work around was to stop using the remove_default_outfit command (since its easier than fully replacing every modifier). By default "outfit_tags = { no_clothes }" will remove tops but leave your character with their pants, cloak, and headgear. So I added three outfit tags to my char_body_overhaul mod that no_cloak, no_hat, no_pants that each remove those items. So now I just code events with nudity with those outfit tags.
Mange2020 Posted March 20, 2021 Posted March 20, 2021 6 hours ago, joemann said: Since the 1.3 update I am having problems with character being bald. I partially solved it by modding the genes and ethnicity files. The problem is now limited to naked characters in the event window, which are always bald. Anybody know what causes this? I also get a strange error message referring to ethnicity files that I can not find. They are not in the vanilla game, neither are they in the mods in the Steam workshop file. Hide contents [12:49:37][ethnicity.cpp:285]: gene category 'hairstyles' cannot be influenced by DNA, at file: common/ethnicities/01_ethnicities_african_northeastern.txt line: 182 Does anybody know where they come from? The error is because you are trying to code a characters hairstyles in their DNA but DNA no longer influences hairstyle* just hair type. Hair style is determined via portrait modifiers that give you a random chance of having any one of the available hairstyles based on your culture and hairtype. Hairtype is genetic, hairstyle is not. But this is all new, so anything you have that messes with hair at all could be an issue.
joemann Posted March 24, 2021 Author Posted March 24, 2021 On 3/20/2021 at 8:48 PM, Mange2020 said: The baldness seems to be a Paradox issue. Paradox totally changed the way hair worked, there are actually more changes on the backend that I spent the last couple of days working through. When I wanted characters to be naked who would otherwise not be naked I basically copied the code paradox uses (there are only a couple events that do this). left_portrait = { character = root animation = shock triggered_outfit = { remove_default_outfit = yes outfit_tags = { no_clothes } } } remove_default_outfit is meant to removes all clothing that does not match the outfit tags. But actually it removes all portrait modifiers that aren't coded with "ignore_outfit_tags = yes". Despite having an easy way code to prevent this problem Paradox hasn't used that code all that often, probably because the only events that code characters to be naked are a random court scheme result and a random brothel trip result. Anyway things like ablinism, gigantism, and even carnalitas tit modifiers will be removed by the remove_default_outfit command as well. Now it seems like hair is added to that list. My work around was to stop using the remove_default_outfit command (since its easier than fully replacing every modifier). By default "outfit_tags = { no_clothes }" will remove tops but leave your character with their pants, cloak, and headgear. So I added three outfit tags to my char_body_overhaul mod that no_cloak, no_hat, no_pants that each remove those items. So now I just code events with nudity with those outfit tags. Thanks for this answer. Where/how do you define outfit_tags? I tried using outfit_tags = { no_cloak no_headgear no_legwear no_clothes } but I still get a naked character with a crown and a cloak (although he has his hair back ).
joemann Posted March 24, 2021 Author Posted March 24, 2021 I found your file; remove_outfit_modifiers. No need to answer. I'm trying to combine them into a single outfit tag now.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now