Jump to content

[mod] [CK2] Dark World: Reborn - Updated 13APR2024


Recommended Posts

I'm going to test my attempt at making sure I have the right file active. But I have yet another (slight) problem. When you have multiple mods that give the same type of trait (for example, I use both DW and Ala's Body Mod), there is no connection between the Ala trait and the DW trait. Ala would give me a huge dick, while DW might only give a regular dick. Is there any way to either A) there is a mod that matches various traits (Huge dick to Huge Dick for example), or B) how would I mod it? Like I said, I can copy and paste, and I can create a mod, but actually doing anything other than building on what others have done is something I have not attempted, and would have no clue how to do events to make sure traits are equal. I could create traits and descriptions (and with a little luck, maybe even use pictures I already have). I can mod events, but I have no clue to say "If player has DWR, Ala Body Mod, and ALoHa - Abos Lovers of Harems, active, both Ala and ALoHa will use their corresponding trait to DWR (Huge dick to Huge Dick to Huge Dick, for example).

Link to comment
On 10/4/2021 at 8:30 AM, James_E_C said:

My (badly copied/modified event from Harley's Breeding Idea event, also applied it to the female commander mounted and Belle mounted events) is this:

 

  Hide contents


        if = { # If Female Ruler has a breeder artifact, Female Ruler may get knocked up
            limit = { DWCourt.3123 = { any_artifact = { has_artifact_flag = breed } } }
            event_target:dDWCourt.3123 = {
                set_character_flag = dw_pregnancy_horse
                character_event = { id = dw_visits.9030 }
            }
 

 

 

 

That section for the female ruler could be condensed to just the following:

I could technically simply say has_artifact = dw_breed_collar, however, it's checking for a flag, to allow for more artifacts to work. They'd just need the have the word breed in the flag section for the artifact. I did it like that originally because I thought I'd include more, and to allow for any mods that wanted to add such an item for compatibility.

Event targeting only is used when you're going to apply or check something against a target that isn't the ROOT (usually the one viewing) entity for the event.

 

			if = { # If there is a breeder artifact
				limit = { any_artifact = { has_artifact_flag = breed } }
				set_character_flag = dw_pregnancy_horse
				character_event = { id = dw_visits.9030 }
			}

 

 

I'm actually pretty certain that has you've got it written, it wouldn't work. The above part that I posted though will be in the next release that should be out this weekend.

Link to comment

Actually, through help with Nocturina, I got it working. The only difference is a lack of the # explaining what it does, but since the game ignores that, it doesn't matter. Will you also do my suggested Futa/masturbating daughter/female courtier suggestion? I tried it, but as I said, the event fires, but doesn't fire the subsquent events for some reason. Here's my code, if it helps. Just my changes. For the Masturbating Daughter one (the screen pops up, but there is nothing there, aside from the title of the event, and a picture - could be because I forced it with no daughter, but just a courtier, have to ESC out of the game)


        has_children = yes
        OR = {
        is_female = yes (need to delete this)
        is_female = no
            AND = {
            is_female = yes
                OR = {
                trait = futa
                trait = lf_futa
                    }
                }
            }

Actually, I think I noticed the problem when I copied it, as pointed out above.

Here is the Educate Courtier when they come of age event (again, the event itself fires, but not the subsequent ones (for either male or female)


        if = {
            limit = {            
                is_female = yes
                liege = {
                    OR = {
                    is_female = no
                        AND = {
                        is_female = yes
                            OR = {
                        trait = futa
                        trait = lf_futa
                                }
                            }
                        }
                    is_adult = yes
                    prisoner = no
                    in_command = no
                    is_incapable = no
                }
            }
            liege = { narrative_event = { id = DWCourt.1100 } }
        }

A possible problem (although I don't see how, is the second part (for male education) also has a "is_female = yes" trigger

Link to comment
3 hours ago, James_E_C said:

Actually, through help with Nocturina, I got it working. The only difference is a lack of the # explaining what it does, but since the game ignores that, it doesn't matter. Will you also do my suggested Futa/masturbating daughter/female courtier suggestion? I tried it, but as I said, the event fires, but doesn't fire the subsquent events for some reason. Here's my code, if it helps. Just my changes. For the Masturbating Daughter one (the screen pops up, but there is nothing there, aside from the title of the event, and a picture - could be because I forced it with no daughter, but just a courtier, have to ESC out of the game)

 

  Reveal hidden contents

 

Actually, I think I noticed the problem when I copied it, as pointed out above.

Here is the Educate Courtier when they come of age event (again, the event itself fires, but not the subsequent ones (for either male or female)

 

  Reveal hidden contents

 

A possible problem (although I don't see how, is the second part (for male education) also has a "is_female = yes" trigger

 

Which event are you looking at modifying? If you can provide the event name/number, I'll take a look at it.

 

Link to comment
On 10/4/2021 at 11:55 PM, dewguru said:

 

No irritation. Really.

 

It was more me trying to make things clear. Since LL displays post counts, I've noticed a lot of newer people posting lately. Just wanted to ensure that folks knew this was a mod at it's end life, but that posting things is fine because I might decide 'fuck it' and make a fix, while the odds are low - there is still a chance.

If this was addressed to me as well, you need not worry. I m fully aware that most CK2 mods are not getting much or any support any more. Is is just a game I really liked and come back to once in a while.

 

That said I appreciate the concern and letting people know about it. That is really kind of you.

Also thanks a lot for putting in the work and still releasing another update for the mod.

 

 

I actually made some fixes for myself for what I thought might be some smaller oversights and as you said we can feel free to still post things I might let you know in case you want to take a quick look.

No worries though if you don't have the time for it, just if you like.

 

First thing is something really minor:

Spoiler

# Harley's Breeding Event idea - Participating
narrative_event = {
    id = dw_hvevents.2074
    is_triggered_only = yes
    picture = harley_breeding_01
    title = dw_breeder_bash_title
    window = "BiggerEventWindow"
    desc = dw_hvevents2074
    immediate = {
        random_courtier_or_vassal = {
            limit = { has_character_flag = dw_npc_harley }
            save_event_target_as = dw_harley_target
        }
        random_courtier_or_vassal = {
            limit = {
                NOT = { has_character_flag = dw_npc_harley }
                NOT = { character = ROOT }
                is_female = yes
                is_adult = yes
            }
            save_event_target_as = dw_guest_target_1
        }
        random_courtier_or_vassal = {
            limit = {
                NOT = { has_character_flag = dw_npc_harley }
                NOT = { character = ROOT }
                is_female = yes
                is_adult = yes
                NOT = { character = event_target:dw_guest_target_1 }
            }
            save_event_target_as = dw_guest_target_2
        }
    }
    option = { # Um, no.
        name = dw_hvevents2074a
    }
    option = { # Potential pregnancy? Sure
        name = dw_hvevents2074b
        hidden_tooltip = {
            event_target:dw_harley_target = {
                random_list = {
                    75 = { set_character_flag = dw_pregnancy_dog }
                    25 = { set_character_flag = dw_pregnancy_wolf }
                }
                character_event = { id = dw_visits.9030 }
            }
            event_target:dw_guest_target_1 = {
                random_list = {
                    75 = { set_character_flag = dw_pregnancy_dog }
                    25 = { set_character_flag = dw_pregnancy_wolf }
                }
                character_event = { id = dw_visits.9030 }
            }
            event_target:dw_guest_target_2 = {
                random_list = {
                    75 = { set_character_flag = dw_pregnancy_dog }
                    25 = { set_character_flag = dw_pregnancy_wolf }
                }
                character_event = { id = dw_visits.9030 }
            }
        }
    }
    option = { # Potential pregnancy? Sure - Count me in too
        name = dw_hvevents2074b
        hidden_tooltip = {
            # Player
            random_list = {
                75 = { set_character_flag = dw_pregnancy_dog }
                25 = { set_character_flag = dw_pregnancy_wolf }
            }
            character_event = { id = dw_visits.9030 }
            # Participants
            event_target:dw_harley_target = {
                random_list = {
                    75 = { set_character_flag = dw_pregnancy_dog }
                    25 = { set_character_flag = dw_pregnancy_wolf }
                }
                character_event = { id = dw_visits.9030 }
            }
            event_target:dw_guest_target_1 = {
                random_list = {
                    75 = { set_character_flag = dw_pregnancy_dog }
                    25 = { set_character_flag = dw_pregnancy_wolf }
                }
                character_event = { id = dw_visits.9030 }
            }
            event_target:dw_guest_target_2 = {
                random_list = {
                    75 = { set_character_flag = dw_pregnancy_dog }
                    25 = { set_character_flag = dw_pregnancy_wolf }
                }
                character_event = { id = dw_visits.9030 }
            }
        }
    }
}

on this event the third option also uses the name "dw_hvevents2074b" even though you did write a "dw_hvevents2074c" so probably just a small copy/paste forgot to change issue

 

 

Second thing is on the wizard tower recruits event "dw_wizardtower.100":

Spoiler

option = { # Sorcey
        trigger = {
            OR = {
                has_global_flag = dw_npc_sorcey_alive
                has_global_flag = dw_npc_ignore_sorcey
            }
        }
        name = dw_wizardtower100e
        narrative_event = { id = dw_wizardtower.104 }
        ai_chance = { factor = 0 } # We do not want the ai choosing this
    }

This option misses a NOT compared to the other ones, so it is currently only recruitable if she is already recruited or has been declined. Unless she was disabled on purpose then ignore that.

 

 

Third is something similar both this event:

Spoiler

# Shopping at the Wizard Tower: Awaken Heritage potion
narrative_event = {
    id = dw_wizardtower.324
    is_triggered_only = yes
    desc = dw_wizardtower324
    picture = potion_elder_blood
    window = "BiggerEventWindow"
    title = wizard_tower_shopping_title
    option = { # Use it
        trigger = {
            NOT = { trait = vampire }
            NOT = { trait = immortal }
        }
        name = dw_wizardtower320a
        consume_elder_blood = yes
    }
    option = { # Hold onto it
        name = dw_wizardtower320b
        add_character_modifier = { modifier = dw_elder_blood_potion duration = -1 }
    }
}

and the corresponding decision in "dw_potion_decisions.txt":

Spoiler

dw_give_npc_elder_blood_potion = {
        filter = court_including_me
        ai_target_filter = court_including_me
        from_potential = {
            has_character_modifier = dw_elder_blood_potion
        }
        potential = {
            NOT = { trait = vampire }
            NOT = { trait = immortal }
        }
        allow = {
            NOT = { trait = vampire }
            NOT = { trait = immortal }
        }
        effect = {
            save_event_target_as = dw_potion_target
            if = {
                limit = {
                    OR = {
                        ai = no # If a player really wants to drink, who are we to stop them.
                        trait = cruel
                        trait = impaler
                        prisoner = yes
                        AND = {
                            FROM = { trait = mind_control }
                            has_opinion_modifier = { who = FROM  modifier = dw_mind_control_obedience }
                        }
                    }
                }
                consume_elder_blood = yes
            }
            else_if = {
                limit = {
                    trait = paranoid
                    trait = zealous
                }
                FROM = { narrative_event = { id = dw_wizardtower.399 }}
            }
            else = {
                random_list = {
                    20 = { consume_elder_blood = yes }
                    80 = { FROM = { narrative_event = { id = dw_wizardtower.399 }} }
                }
            }
            FROM = { remove_character_modifier = dw_elder_blood_potion }
        }
        ai_will_do = {
            factor = 0.1
            modifier = {
                factor = 0
                ai = no # We don't want the ai giving potions to the player
            }
            modifier = {
                factor = 10 # ten times as likely to give to a sure target
                OR = {
                    trait = cruel
                    trait = impaler
                    prisoner = yes
                    AND = {
                        FROM = { trait = mind_control }
                        has_opinion_modifier = { who = FROM  modifier = dw_mind_control_obedience }
                    }
                }
            }
        }
    }

require you or the other character to be both not a vampire AND not be immortal. Considering the scripted effect for the potion is to turn someone into a vampire or make them immortal if they already are a vampire, it seems like it is missing a OR, or both NOT to be taken out for a NAND.

It could be possible that it was intended that vampire immortality is achieved with the Diablerie Study events instead, but I think that one wasn't finished.

 

 

Fourth thing is on the monster ball, this event:

Spoiler

# .7750 Monster Ball - Hunchback and the maiden
narrative_event = {
    id = dw_randomevent.7750
    is_triggered_only = yes
    picture = ball_60
    desc = dw_randomevent7750
    window = "BiggerEventWindow"
    title = dw_the_monster_ball_title
    option = { # Stop this!
        name = dw_randomevent7750a
        dw_create_hellboy = yes
        hidden_tooltip = { change_variable = { which = dw_ball_counter value = 1 } }
        narrative_event = { id = dw_randomevent.7702 }
        event_target:dw_target_maiden = { opinion = { modifier = raynor_humiliated_me who = ROOT } }
    }
    option = { # Good for her.
        name = dw_randomevent7750b
        hidden_tooltip = {
            change_variable = { which = dw_ball_counter value = 1 }
            character_event = { id = dw_visits.9020 } # Unknown hook-up pregnancy potential
        }
        narrative_event = { id = dw_randomevent.7702 }
    }
    option = { # Call it an evening
        name = dw_randomevent7700d
        hidden_tooltip = {
            set_variable = { which = dw_ball_counter value = 0 }
        }
    }
}

I'm pretty sure the second option is supposed to do a pregnancy check for "event_target:dw_target_maiden" and not for the player.

 

 

Fifth thing is with the pregnancy check effect on general:

Spoiler

limit = {
            event_target:new_mom = {
                OR = {  # Woman can't be over 45+ unless they're immortal
                    NOT = { age = 45 }
                    trait = immortal
                }
                is_pregnant = no # Can't already be pregnant
                health = 3 # body healthy enough for child birth
                fertility = 0.01 # At least a 1% chance
            }
            event_target:new_dad = {
                fertility = 0.01 # At least a 1% chance
            }
        }

You use this as the requirement to do the check, It would be nice to use "immortal = yes" instead of "trait = immortal" to catch all immortal traits other mods might have added.

 

Or replace the whole OR part with "NOT = { practical_age = 45 }" which is a condition that didn't exist back when this mod was originally set up, and it will nicely catch all immortal women who became immortal at a young age, while denying those who became immortal after already losing their fertility.

 

 

And for last only a minor point that I didn't even fully check for all portraits as well is the decision in "dw_portrait_decisions.txt":

Spoiler

# Cycle through Custom NPc Image
    dw_cycle_custom_npc_image = {
        filter = all
        ai_target_filter = self
        from_potential = {
            ai = no # The player should be the only one looking to change images
        }
        potential = {
            does_the_npc_have_multiple_image_options = yes
        }
        allow = {
            custom_tooltip = {
                text = dw_multiple_image_tooltip
                does_the_npc_have_multiple_image_options = yes
            }
        }
        effect = {
            dw_cycle_custom_image = yes
        }
        ai_will_do = { factor = 0 } # ai shouldn't be using this one
    }

there are some character who are included in the effect "dw_cycle_custom_image" but are not in the trigger:

Spoiler

does_the_npc_have_multiple_image_options = {
    OR = {
        has_character_flag = dw_npc_harley
        # has_character_flag = dw_npc_poisonivy
        # has_character_flag = dw_npc_vulture
        has_character_flag = dw_npc_batgirl
        has_character_flag = dw_npc_blackwidow
        has_character_flag = dw_npc_redrobin
        has_character_flag = dw_npc_spidergwen
        has_character_flag = dw_npc_spiderman
        # has_character_flag = dw_npc_venom
        # has_character_flag = dw_npc_twosix
        # has_character_flag = dw_npc_powergirl
        # has_character_flag = dw_npc_astrid
        # has_character_flag = dw_npc_hiccup
        has_character_flag = dw_npc_joker
        has_character_flag = dw_npc_helenparr
        has_character_flag = dw_npc_bobparr
        has_character_flag = dw_npc_violetparr
        # has_character_flag = dw_npc_dashparr
        has_character_flag = dw_npc_syndrome
        has_character_flag = dw_npc_hela
        has_character_flag = dw_npc_livewire
        has_character_flag = dw_npc_starfire
        # has_character_flag = dw_npc_raven
        has_character_flag = dw_npc_scarletwitch
        has_character_flag = dw_npc_rogue
    }
}

 

The two I noticed are "has_character_flag = dw_npc_blackfire" and "has_character_flag = dw_npc_x23" but there might be more, yet as I didn't go through the whole effect list to check, I don't expect you to either.

 

 

So that was all from me. I hope I made everything as clear as possible, so if you decide to look at it you know where to look.

But as previously said, no need to and no problem at all if you lack the time.

 

From the few personal modification to mods I made and my personal mod I use, I know how long it can take to get all this stuff done.

So making a mod as huge as DWR is a massive time investment.

 

So thank you very much for all the work you did for the community and I hope you have a wonderful weekend!

 

Edited by Nocturina
Link to comment

I'd like to add my own to the list of complaints about vampiric seduction spam. I'm getting an event more than once per minute (I'm guessing a couple days in-game time? Playing at game speed 4) to the point of making the game effectively unplayable, and the vampires aren't even in my own court so I can't even burn them at a stake or something. What makes this particularly vexing is that my character is incapable, and turning 90 (I'm using my own mod that slightly extends the lifespan). Not exactly seduce-able, or a prime target for seduction.

Link to comment
On 10/7/2021 at 9:32 PM, Nocturina said:

The fastest solution would be just to go LF Extras\common\scripted_triggers and in the file DWT_scripted_triggers.txt remove the trigger like in LF.

 

Don't worry that won't break LF Extras, it will just make the trigger of DWR control the LF Extra bestiality content, too. So then you will decide for both with the game rule.

Only problem would be if you want to use DWR's bestiality content but turn off LF Extra's bestiality content.

 

Great, that seemed to do the trick! Thank you for your time and effort, Nocturina, it was really helpful.

Link to comment

So, I drank a bit more than normal this weekend, and had a good time as the sports teams I follow both did well in their respective games.

 

In other words, I didn't wrap up things like I had planned this weekend for an update. I'll do it though at some point here in the next day or two, and I'll take a look at what was posted above and see about incorporating some of those changes if I agree with them.

 

Link to comment

Oof. Some kudos on the code review Nocturina. I have to admit that so far I've had to stare at a couple of them a bit longer than I would have in the past, in order to ask myself, just what the hell was it I was trying to accomplish.

 

Your detailed message though has definitely helped in getting them looked at.

 

Also - the reference to practical_age not being around when the mod was originally created, I have to say that NOR and NAND, and probably a third of conditions, commands and scopes didn't exist either when the mod was originally created. To include useful features now like the scripted_effects and scripted_triggers. :) It's actually one of the reasons the mod has been overhauled more than once.

Edited by dewguru
Link to comment

I've one or two more events to add before I wrap it up and post it. So, maybe tomorrow?

 

As of right now this is likely what the final change log will be. At this point, I already know that I'll be working on another update, so it's not the last one yet. :)

 

Change Log:
v1.91 (Dark World Reborn)
    - NOTE: This update is compatible with Save Games created with DWR version 1.83 or later. Save games with earlier versions of DWR will break.
    - New Events
    - New Artifacts
    - Fix: Red Sonja will now stop adventuring when the arc completes
    - Fix: Those with breeding artifacts, such as the breeding collar, might get knocked up in the stable events
    - Fix: An option name string to show the correct localization in a Harley event
    - Fix: An error in a trigger that prevented Sorcey from being recruited
    - Fix: An error that could prevent the intended use of the Elder Blood potion.
    - Tweak: Elder Blood was set to be a 1 in 5 chance of making a vampire who drank it, an immortal. I improved the odds to a 1 in 4 chance.
    - Fix: A scope error that would make a pregancy for the player, when they were not the one receiving the seed.
    - Fix: An issue where some hero/villains with multiple images where being recognized for image swaps

 

Edited by dewguru
Link to comment

New version has been uploaded.

 

Working on the next update. Going to take a look at the Vampire Seduction event that was mentioned by a couple folks as seeming spammy for the next update. I've one or two more Red Sonja events to add. Beyond these couple of things, we'll see what shakes out.

Link to comment
2 hours ago, IttuP said:

Could you also check the Demon seduction? The Kiss of Seduction?

I have to turn it off for my own kin to get the trait or they spam the seduction when they are grown up.

Looks like it should be pretty easy.

 

One of the later additions for CK2 modding was the means to set certain decisions to be used by the ai only at a certain frequency (ai_check_interval).

 

It was such a late addition, that it only is used on a handful of decisions.

 

The demon seduction decisions doesn't have it, and the vampire seductions is set to be used every 6 months. I'm going to set it to where said vampire or demon can only use the decision once every two years, and let's see if that helps. Sometimes, it seems like when deciding a target, the the player will be the preferred target, regardless of whether it's supposed to be random or not. So if we're seeing that happen, where the player is getting 10 events every two years from the 10 possible individuals using it, then I'll take another approach in dealing with it.

Edited by dewguru
Correction.
Link to comment

May I suggest a (slight) mostly flavor change to the Stable Morale event? Currently, the event has you (atleast it seems to be) random horse to fuck (or be fucked by). Instead, why not allow it to be your favorite (or primary, or personal, or whatever) horse? Maybe it could even grant a personal prowess boon, to represent how in touch (he he) you are with your horse. I'm not completely sold on the latter idea (about the personal combat skill), since most combat isn't done on horseback. Maybe it could be a better version of the Stable Whore trait? But I would really like the idea that you fuck your own warhorse, instead of just one that seems to be a good one...

Link to comment

Also, when I updated, the custom portraits for special NPCs (Belle, Jasmine, and recruited heroes) have all changed. Is there anyway to reset them, or do I have to start a new game to get the "right" portraits? I can remove the custom portrait, but there seems to be no "Add Custom Portrait" decision.

Actually, going through it, the update did seem to actually break the game (slightly). Some traits have changed or been deleted. I went from being a demonic hero to an angelic villian and lost the mind control trait.

Link to comment
31 minutes ago, James_E_C said:

Also, when I updated, the custom portraits for special NPCs (Belle, Jasmine, and recruited heroes) have all changed. Is there anyway to reset them, or do I have to start a new game to get the "right" portraits? I can remove the custom portrait, but there seems to be no "Add Custom Portrait" decision.

Actually, going through it, the update did seem to actually break the game (slightly). Some traits have changed or been deleted. I went from being a demonic hero to an angelic villian and lost the mind control trait.

 

Were any other mods updated? You shouldn't be seeing the trait disruption, as no traits were modified (unless your last save was something earlier than version 1.83 of the mod).

 

This would also impact the custom portraits, as those are trait based. Even if a trait was taken away, I'm pretty certain it would impact everything in the save game.

Link to comment

How do you access the slavery content? Yes, I DO have slavery allowed in the game rules, but I can't make a person my slave, I can't make an unlanded prisoner my slave, and i can't make a ruler (that's my prisoner) my slave. I thought it might be due to having other slavery mods, so I disabled them. But enslaving someone doesn't work. How do I do it? I both tried to right click on the person/prisoner and do it through the intrigue menu.

Link to comment
14 hours ago, Yanslana said:

 

Just to clarify, you're talking about the buildings in the capitol, right?

Yep! Actually, in every province, it is not capital-bound...! At the bottom of the building list, above the Grand Inn!

Edited by Drax70
Link to comment

Trying the bestiality side of things, I'm not sure if something's wrong on my end or where. I made sure there are no collisions from LF etc. with bestiality trigger, got the collar. But, the stable morale event does not cause beast pregnancy. Instead it applies the horse trait to any child born with another character.

Edit: checked if flag and event for the pregnancy toggles, will see if there is any outcome from that side. Considering high fertility of my character, is there any reduction of the chance?

Edited by Saveloy
Link to comment

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use