Jump to content

[mod] Carnalitas - Unified Sex Mod Framework for CK3


Recommended Posts

Posted
1 hour ago, joemann said:

Thank you for your answer. In fact I am trying to understand how every character gets traits on startup of game. Your 1048.6 is an on_action or an event? I am still trying to understand CK3 code which I find confusing coming from CK2.

 

If I understand it correctly you can define your own on_action by simply using

 

trigger_event = {
                          on_action = <on_action name>
 }

 

or do you also need to define <on_action name> elsewhere?

Ah I see, the code I showed earlier is just from a character I created. So basically if you want to add traits on start up you would have to mod the history and character folders. 

 

The full code would look like this for example:

Spoiler

alexa = {
    name = "Alexa"
    female = yes
    dna = alexa
    #dynasty =
    martial = 20
    diplomacy = 20
    intrigue = 25
    stewardship = 20
    learning = 20
    prowess = 15
    health = 10
    religion = "norse_pagan"
    culture = "greek"
    trait = deceitful
    trait = diligent
    trait = patient
    trait = stubborn
    trait = education_diplomacy_3
    trait = pure_blooded
    trait = fecund
    trait = physique_good_2
    trait = beauty_good_3
    trait = intellect_good_3
    trait = shrewd
    trait = athletic
    trait = chosen #custom trait
    father = 1752
    mother = 15744
    1047.10.6 = {
        birth = yes
        effect = {
            add_character_flag = has_scripted_appearance
            add_character_flag = carn_seed_tits_big_2
            add_character_flag = immune_to_disease
            add_character_flag = carn_no_pregnancy_complications
        }
    }
    1066.1.1 = {
        add_court = 9777666
        add_employer = 9777666
        employer = 9777666
    }
    1500.1.1 = {
        death = yes
    }
}

 

Now how it all works I'm not 100% sure but If I had to guess it's via a script, haven't looked at it but most likely in scripted effects.

 

Posted

My problem is with the way in which the Carnalitas mod triggers the dt_traits on start_up.

 

I have copied the files to get the same effects but keep getting this error

 

[12:24:31][jomini_script_system.cpp:169]: Script system error!
  Error: trigger_event effect [ On action [et_character_initialization_pulse] not found ]
  Script location: file: events/et_character_initialization_events.txt line: 10
 
 
My copied script is almost identical to the Carnalitas script
Spoiler
namespace = et_character_initialization
 
et_character_initialization.0001 = {
 
    type = empty
    hidden = yes
 
    immediate = {
            every_living_character = {
                                    trigger_event = { on_action = et_character_initialization_pulse }
            }
    }
}

 

does anybody know what this error could be?
 
m
I have checked the files over and over again and can't find the error
Posted

First off: This is a great mod and a great framework.

 

One piece of feedback / feature request: Lay with lover is once every 5 years. This is fine. But shouldn't it be once every 5 years per lover? If Alice and Bob are my lovers, every 5 years I can choose if I want to lay with Alice or Bob. More logical would be every 5 years with Alice, every 5 years with Bob, for an everage of once every 2.5 years. 

 

If that is too difficult to code, an alternative would be to have the time between lay with lover being active is 5/(# of lovers).

Posted
2 hours ago, kalleklovn said:

First off: This is a great mod and a great framework.

 

One piece of feedback / feature request: Lay with lover is once every 5 years. This is fine. But shouldn't it be once every 5 years per lover? If Alice and Bob are my lovers, every 5 years I can choose if I want to lay with Alice or Bob. More logical would be every 5 years with Alice, every 5 years with Bob, for an everage of once every 2.5 years. 

 

If that is too difficult to code, an alternative would be to have the time between lay with lover being active is 5/(# of lovers).

Just edit it yourself, find carn_sex_interaction and carn_sex_interaction_values and put 1 year instead of 5. WHat is so hard about it?. Also you can edit the text in carn_interactions_l_english from "#weak No game effects will happen because you have used this interaction in the last 5 years #!" to "#weak No game effects will happen because you have used this interaction in the last 1 years #!" if you want the correct text to pop up.

Or put whatever cooldown you wan't to, I just made mine 1 year. GL

 

Documents\Paradox Interactive\Crusader Kings III\mod\Carnalitas\localization\english = carn_interactions_l_english

Documents\Paradox Interactive\Crusader Kings III\mod\Carnalitas\common\character_interactions = carn_sex_interaction

Documents\Paradox Interactive\Crusader Kings III\mod\Carnalitas\common\script_values = carn_sex_interaction_values

Posted
3 hours ago, kalleklovn said:

First off: This is a great mod and a great framework.

 

One piece of feedback / feature request: Lay with lover is once every 5 years. This is fine. But shouldn't it be once every 5 years per lover? If Alice and Bob are my lovers, every 5 years I can choose if I want to lay with Alice or Bob. More logical would be every 5 years with Alice, every 5 years with Bob, for an everage of once every 2.5 years. 

 

If that is too difficult to code, an alternative would be to have the time between lay with lover being active is 5/(# of lovers).

1.2.3 is on Github, and this is part of the changelog:

 

Lay With Lover/Make Love
Changed the name of this interaction to Make Love.
Now allows you to pay to Make Love to prostitutes.
Reduced the amount of Stress lost.
Reduced the cooldown to 1 year.

 

Edit: I do agree however that it would be nice if it was every (?) year/s per lover.

Posted
3 hours ago, sakira1993 said:

Just edit it yourself, find carn_sex_interaction and carn_sex_interaction_values and put 1 year instead of 5. WHat is so hard about it?. Also you can edit the text in carn_interactions_l_english from "#weak No game effects will happen because you have used this interaction in the last 5 years #!" to "#weak No game effects will happen because you have used this interaction in the last 1 years #!" if you want the correct text to pop up.

Or put whatever cooldown you wan't to, I just made mine 1 year. GL

 

Documents\Paradox Interactive\Crusader Kings III\mod\Carnalitas\localization\english = carn_interactions_l_english

Documents\Paradox Interactive\Crusader Kings III\mod\Carnalitas\common\character_interactions = carn_sex_interaction

Documents\Paradox Interactive\Crusader Kings III\mod\Carnalitas\common\script_values = carn_sex_interaction_values

I know I can do this, but you misunderstand me; what you're suggesting is not what I want.

 

I don't want Lay with lover / Make love to be on a fixed timer, I want it to depend on the number of lovers I have. (And I don't want to edit the mod every time I get a new lover.)

 

I started with 1 lover (the husband) and could lay with lover every 5 years. Now I have 5 lovers but can still only make love every five years; I want lay with lover to be possible (on average) every year, and for that to be dynamic depending on the number of lovers I currently have.

Posted

For some reason, the big tits traits stay visually locked at stage 1 when displaying the nude model. They do work fine with a clothed faith.

 

Does it have something to do with me also using the leaf removal mods? Or using a custom DNA string?

Posted
1 hour ago, Hentai8 said:

For some reason, the big tits traits stay visually locked at stage 1 when displaying the nude model. They do work fine with a clothed faith.

 

Does it have something to do with me also using the leaf removal mods? Or using a custom DNA string?

Could very well be DNA, what bust option did you set for that character?

Posted
3 hours ago, Hentai8 said:

Stage 3. Unless you are talking about the DNA, in which case I used this string:
https://steamcommunity.com/sharedfiles/filedetails/?id=2230528628&searchtext=custom+ruler
But then I made some changesskin, hair and eyes color, as the ethnicity didn't fit the Carpathian region where I play, but nothing to the bust DNA-wise, I just added the tits_big_3 trait.

Just checked the DNA and that is exactly the problem. The bust gene selected is the "bust clothes" and iirc the changes on that setting are extremely small to notice. Try changing it to "bust_shape_1_half" for example and then trying again.

Posted

It didn't work :/ .

 

EDIT: OK, I think that's because I maxed it in the gene slider too. If I unmax it, the changes do appear. That being said, the breasts still look much bigger when clothed. Is that normal?

Posted

I wanted to ask if wesomehow become a pimp in the upcoming update, what is the income we are supposed to get for one prostitute? Also do we get the money monthly like taxes? Is there a training system involved? Also what stat or traits should we be paying attention to? 

Posted

Carnalitas 1.2.3 is now released, including many improvements and bug fixes, as well as the ability to make your slaves prostitute themselves.

  

On 10/9/2020 at 10:49 AM, ptp190 said:

I wanted to ask if wesomehow become a pimp in the upcoming update, what is the income we are supposed to get for one prostitute? Also do we get the money monthly like taxes? Is there a training system involved? Also what stat or traits should we be paying attention to? 

You get yearly income equal to half of what your slaves earn. (You can imagine that the other half of the money goes to keeping the business running.) There's no training system currently; your slaves will rank up in prostitution skill the same way players do, which is based on diplomacy, intrigue, and traits like intelligence and beauty.

  

On 10/8/2020 at 3:03 AM, UnexpectedGuest said:

I translated the mod into german language. Is it okay to place the file with the translated txt Datas here?

Put in a pull request on github.

 

On 10/7/2020 at 8:57 PM, kalleklovn said:

One piece of feedback / feature request: Lay with lover is once every 5 years. This is fine. But shouldn't it be once every 5 years per lover?

The reason for the unified cooldown is so that mods can attach interesting effects to sex or impregnation, without the possibility of abuse from having many lovers.

 

For example, imagine that someone makes a succubus mod where you can gain power from having sex. If Carnalitas allowed you to Lay With Lover on a per-lover cooldown, you could easily game the system by constantly switching concubines in and out and gain power much faster than intended.

 

To balance this exploit, the succubus mod would either have to reduce the amount of power gained from having sex to a miniscule amount, or add its own internal cooldown to the effect. A much more elegant solution is to limit the number of times you can gain any benefit from Lay With Lover in the first place.

  

6 hours ago, SamIAmHam said:

The new traits do not work with the Strengthen Bloodline decision. I'd suggest altering the decision to include the new traits.

I'm looking into this.

 

  

On 10/7/2020 at 6:34 PM, joemann said:

I have copied the files to get the same effects but keep getting this error

 

[12:24:31][jomini_script_system.cpp:169]: Script system error!
Error: trigger_event effect [ On action [et_character_initialization_pulse] not found ]
Script location: file: events/et_character_initialization_events.txt line: 10

Did you read the error? You're calling an on_action that doesn't exist. It should be carn_character_initialization_pulse

Posted
2 hours ago, Cheri Song said:

The reason for the unified cooldown is so that mods can attach interesting effects to sex or impregnation, without the possibility of abuse from having many lovers.

 

For example, imagine that someone makes a succubus mod where you can gain power from having sex. If Carnalitas allowed you to Lay With Lover on a per-lover cooldown, you could easily game the system by constantly switching concubines in and out and gain power much faster than intended.

 

To balance this exploit, the succubus mod would either have to reduce the amount of power gained from having sex to a miniscule amount, or add its own internal cooldown to the effect. A much more elegant solution is to limit the number of times you can gain any benefit from Lay With Lover in the first place.

 

Good points. I feel such things should be balanced by the cost of acquiring lovers, and that the effort spent on seducing a lot of people should give some benefit w.r.t. make love.

Posted

Thanks for this nice update!
It's great that now we can sell slaves with highest bidding person.

But as last time I suggested, I still think make filter within "gold/wealth" would be even greater for some reason.

- Sometimes the richest person isn't the target you want to sell, say you don't wanna drain money from your families or vassals. You just want them to keep their money for their own domain or warfare etc.

- Want to keep the richest person for more expensive slave. Say now there is a person got 500 gold atm, I got 3 slaves which can be sold by 100 gold each. But I don't want to sell them to this person so I can sell another slave worth close to 500 gold or more to him in the future.

Posted
34 minutes ago, and2011reas said:

Thanks for this nice update!
It's great that now we can sell slaves with highest bidding person.

But as last time I suggested, I still think make filter within "gold/wealth" would be even greater for some reason.

- Sometimes the richest person isn't the target you want to sell, say you don't wanna drain money from your families or vassals. You just want them to keep their money for their own domain or warfare etc.

- Want to keep the richest person for more expensive slave. Say now there is a person got 500 gold atm, I got 3 slaves which can be sold by 100 gold each. But I don't want to sell them to this person so I can sell another slave worth close to 500 gold or more to him in the future.

Unfortunately it is not possible to do this without editing the character interaction window directly, which is a little overkill right now. If more people ask for this feature, or if we end up having to edit the character interaction window later on for another reason, we'll roll the changes in at that time.

Posted
7 hours ago, Cheri Song said:

Carnalitas 1.2.3 is now released, including many improvements and bug fixes, as well as the ability to make your slaves prostitute themselves.

  

You get yearly income equal to half of what your slaves earn. (You can imagine that the other half of the money goes to keeping the business running.) There's no training system currently; your slaves will rank up in prostitution skill the same way players do, which is based on diplomacy, intrigue, and traits like intelligence and beauty.

  

Put in a pull request on github.

 

The reason for the unified cooldown is so that mods can attach interesting effects to sex or impregnation, without the possibility of abuse from having many lovers.

 

For example, imagine that someone makes a succubus mod where you can gain power from having sex. If Carnalitas allowed you to Lay With Lover on a per-lover cooldown, you could easily game the system by constantly switching concubines in and out and gain power much faster than intended.

 

To balance this exploit, the succubus mod would either have to reduce the amount of power gained from having sex to a miniscule amount, or add its own internal cooldown to the effect. A much more elegant solution is to limit the number of times you can gain any benefit from Lay With Lover in the first place.

  

I'm looking into this.

 

  

Did you read the error? You're calling an on_action that doesn't exist. It should be carn_character_initialization_pulse

Thank you for answering. I should give some context first. I am trying to learn to mod in CK3 and have started a mod of my own. I am using script which I copy from other mods, not to publish it later on but as a basis for experimenting with the code. In my mod I use the prefix et_ . So in my mod the on_action et_character_initialization pulse does exist. At least I think it does. In my understanding the on_action is created by the following piece of code from your mod

Spoiler

namespace = et_character_initialization

et_character_initialization.0001 = {

    type = empty
    hidden = yes

    immediate = {
    
            every_living_character = {
            
                                    trigger_event = { on_action = et_character_initialization_pulse }
            }
    }
}

If something more is needed to create a scripted on_action I would love to know.

I hope you don't mind me using your code to practice with and would very much appreciate help with this ( I have already spent hours trying to understand where the error comes from)

Posted
2 hours ago, Cheri Song said:

Unfortunately it is not possible to do this without editing the character interaction window directly, which is a little overkill right now. If more people ask for this feature, or if we end up having to edit the character interaction window later on for another reason, we'll roll the changes in at that time.

I see, it's really not the 1st priority though.
Thanks for reply!

Posted
4 hours ago, joemann said:

In my understanding the on_action is created by the following piece of code from your mod

You are mistaken. The on_action is triggered by that line of code. It is defined in common/on_action/carn_character_initialization_pulse.txt

You don't have to make a new on_action, since carn_character_initialization_pulse is already triggered properly. All you need to do is add your event to the on_action. For example, you can create a new text file in your own mod, in common/on_action/en_on_actions.txt, with the following code:

carn_character_initialization_pulse = {
	events = {
		your_event.0001
	}
}

This will fire your event as intended.

Posted

@Cheri Song

When you have the time could you add preference traits for the corresponding partner's body trait and body trait modifiers.

Body trait modifiers -
bigger dick size - increase fertility + increased chance to trigger wounded on wife/concubine/lover/slave/partner when a sex scene event is triggered
bigger breast size - increase diplomacy and intrigue, decrease prowess, small chance to get small health debuff (back pain) in older ages

In terms of preference traits

Basically everyone gets a sexual orientation congenital/physical trait that determines how much they favor other character's endowment.

Traits comes in 5 flavours (Loves small, likes small, neutral, likes big, loves big),

example: a hetro male with a liking big trait means that he favors females with big/huge breast so females with big breast gets minor (+5) attraction opinion boost from him and this can go up to (+30?) opinion boost if the combination is loving big trait paired with a gigantic breast

In fact, to balance it out, the draw back of loving small/big is that they get a minor to moderate attraction debuff to the opposing size.

Finally, a player decision that allows them to change their preference at the cost of stress.

I am happy to help code some of it sometime in the future when i got a bit of time (amateur - did a bit of CK2 coding) but not familiar with how to contribute via github, can i just post edited files here for you?

Pretty confident i can just plagerize some of your existing code to create the effect.

Also is there any syntax addon you use if you used notepad++ by chance? (for skyrim script coding, there was a syntax addon for notepad++ that made life a lot easier looking through all the lines of code)

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
×
×
  • Create New...