Jump to content

CK2 Modding Quick Question Thread


Recommended Posts

Posted
	on_success_title = {
		FROM = {
			limit = { tier = ROOT }
		}
		ROOT = {
			limit = { tier = DUKE }
			occupy_minors_of_occupied_settlements = FROM
			gain_all_occupied_titles = { who = FROM type = invasion }
			vassalize_or_take_under_title = {
				title = PREV
				enemy = FROM
				type = invasion
			}
			any_demesne_title = {
				limit = { tier = BARON }
				remove_holding_modifier = recently_conquered
				refill_holding_levy = yes
			}
		}
	}

Did I manage to transplant the title gain mechanic of an invasion into a subjugation war between duke level characters?

Posted

I have the following event chain:

 

Spoiler

narrative_event = {
    id = RSLBST.100
    title = rsl_choose_a_dog    
    desc = RSLBST100desc
    picture = kennel
    
    is_triggered_only = yes
    
    immediate = {
                ROOT = {
                    save_event_target_as = rsl_dog_owner
                }    
    }            
                

    option = { #buy a fighting dog
        name = EVT_OPTA_RSLBST100
        narrative_event = { id = RSLBST.101 }
    }
    option = { #buy a pet dog
        name = EVT_OPTB_RSLBST100
        narrative_event = { id = RSLBST.102 }
    }
    option = { #buy a breeder
        name = EVT_OPTC_RSLBST100
        narrative_event = { id = RSLBST.103 }
    }
    option = { #changed my mind
        name = EVT_OPTD_RSLBST100
    }
}

narrative_event = {
    id = RSLBST.101
    title = rsl_fighting_dog
    is_triggered_only = yes
    picture = fighting_dog    
    desc = RSLBST101desc
        
    immediate = {
        host = {
             create_character = {
                name = "Wodan"
                
                age = 17
                culture = dog_culture
                race = dog
                religion = pagan
                attributes = {
                            martial = 8
                            diplomacy = 2
                            stewardship = 3
                            intrigue = 5
                            learning = 4
                }
                trait = regular_balls_dog
                trait = regular_knot_dog
                trait = huge_dick_dog
                trait = regular_anus_dog
                trait = muscular_dog
                trait = shrewd
                trait = tough_soldier
                trait = gregarious
                trait = brave
                trait = cruel
                trait = wroth
                trait = stubborn
                trait = fighting_dog # custom portrait
                female = no
                random_traits = no
                historical = no
                fertility = 2
                health = 4
                
                
                
                                
            }   
            new_character = {
                add_friend = root
                give_nickname = nick_rsl_whitefang
                set_character_flag = rsl_virginity_checked
                set_character_flag = balls
                set_character_flag = height
                set_character_flag = shape
                set_character_flag = butt
                set_character_flag = anus
                save_event_target_as = rsl_fighting_dog
            
                
                
            }
            
        }
    }

The event works, a new character is created (I still can't get the static picture to show but I'll continue trying ) however, the dog character is not added to the player character as a friend in the relations screen although it did appear previously.

 

The only thing that I changed was in the event resulting from another option "choose a breeding dog:

 

Spoiler

narrative_event = {
    id = RSLBST.103
    title = rsl_breeding_dog
    is_triggered_only = yes
    picture = breeding_dog    
    desc = RSLBST103desc
        
    immediate = {
        host = {
            create_character = {
                name = "Red"
                age = 2
                culture = dog_culture
                religion = pagan
                attributes = {
                            martial = 6
                            diplomacy = 3
                            stewardship = 3
                            intrigue = 6
                            learning = 4
                }
                trait = huge_balls_dog
                trait = huge_knot
                trait = huge_dick_dog
                trait = big_anus_dog
                trait = big_dog
                trait = groomed
                trait = quick
                trait = gregarious
                trait = stubborn
                trait = lustful
                trait = uncouth
                trait = patient
                trait = breeding_dog
                female = no
                random_traits = no
                historical = no
                fertility = 6
                health = 4                    
            }   
            new_character = {
                            if = {
                                limit = {
                                    event_target:rsl_dog_owner = {
                                                                female = yes
                                    }                            
                                }    
                                add_lover = root                                
                            }
                            if = {
                                limit = {
                                    event_target:rsl_dog_owner = {
                                                                female = no
                                    }                            
                                }    
                                add_friend = root        
                            }             
                   
                                                    
                give_nickname = nick_rsl_hammer
                set_character_flag = rsl_virginity_checked
                set_character_flag = dick
                set_character_flag = balls
                set_character_flag = height
                set_character_flag = shape
                set_character_flag = butt
                set_character_flag = anus
                save_global_event_target_as = rsl_breeding_dog
            }    
            
            
        }
    }
    
    option = {
            name = EVT_OPT_RSLBST103
            event_target:rsl_dog_owner = {
                                    add_character_modifier = { name = rsl_has_breeding_dog duration = -1 }
                                    wealth = -5
            }
    }        
}

 

I added the part highlighted in yellow. Since then the dog is no longer added as a friend in either event, but even stranger the player character appears in the family screen of the dog as an Educator ( not lover as the code provides for ) but not in the player character screen as a ward. I suppose there is a scope issue here but where does the Educator come from?

Posted
5 hours ago, AlexWyrmin said:

	on_success_title = {
		FROM = {
			limit = { tier = ROOT }
		}
		ROOT = {
			limit = { tier = DUKE }
			occupy_minors_of_occupied_settlements = FROM
			gain_all_occupied_titles = { who = FROM type = invasion }
			vassalize_or_take_under_title = {
				title = PREV
				enemy = FROM
				type = invasion
			}
			any_demesne_title = {
				limit = { tier = BARON }
				remove_holding_modifier = recently_conquered
				refill_holding_levy = yes
			}
		}
	}

Did I manage to transplant the title gain mechanic of an invasion into a subjugation war between duke level characters?

Test it out.

3 minutes ago, joemann said:

I have the following event chain:

 

  Hide contents

narrative_event = {
    id = RSLBST.100
    title = rsl_choose_a_dog    
    desc = RSLBST100desc
    picture = kennel
    
    is_triggered_only = yes
    
    immediate = {
                ROOT = {
                    save_event_target_as = rsl_dog_owner
                }    
    }            
                

    option = { #buy a fighting dog
        name = EVT_OPTA_RSLBST100
        narrative_event = { id = RSLBST.101 }
    }
    option = { #buy a pet dog
        name = EVT_OPTB_RSLBST100
        narrative_event = { id = RSLBST.102 }
    }
    option = { #buy a breeder
        name = EVT_OPTC_RSLBST100
        narrative_event = { id = RSLBST.103 }
    }
    option = { #changed my mind
        name = EVT_OPTD_RSLBST100
    }
}

narrative_event = {
    id = RSLBST.101
    title = rsl_fighting_dog
    is_triggered_only = yes
    picture = fighting_dog    
    desc = RSLBST101desc
        
    immediate = {
        host = {
             create_character = {
                name = "Wodan"
                
                age = 17
                culture = dog_culture
                race = dog
                religion = pagan
                attributes = {
                            martial = 8
                            diplomacy = 2
                            stewardship = 3
                            intrigue = 5
                            learning = 4
                }
                trait = regular_balls_dog
                trait = regular_knot_dog
                trait = huge_dick_dog
                trait = regular_anus_dog
                trait = muscular_dog
                trait = shrewd
                trait = tough_soldier
                trait = gregarious
                trait = brave
                trait = cruel
                trait = wroth
                trait = stubborn
                trait = fighting_dog # custom portrait
                female = no
                random_traits = no
                historical = no
                fertility = 2
                health = 4
                
                
                
                                
            }   
            new_character = {
                add_friend = root
                give_nickname = nick_rsl_whitefang
                set_character_flag = rsl_virginity_checked
                set_character_flag = balls
                set_character_flag = height
                set_character_flag = shape
                set_character_flag = butt
                set_character_flag = anus
                save_event_target_as = rsl_fighting_dog
            
                
                
            }
            
        }
    }

The event works, a new character is created (I still can't get the static picture to show but I'll continue trying ) however, the dog character is not added to the player character as a friend in the relations screen although it did appear previously.

 

The only thing that I changed was in the event resulting from another option "choose a breeding dog:

 

  Reveal hidden contents

narrative_event = {
    id = RSLBST.103
    title = rsl_breeding_dog
    is_triggered_only = yes
    picture = breeding_dog    
    desc = RSLBST103desc
        
    immediate = {
        host = {
            create_character = {
                name = "Red"
                age = 2
                culture = dog_culture
                religion = pagan
                attributes = {
                            martial = 6
                            diplomacy = 3
                            stewardship = 3
                            intrigue = 6
                            learning = 4
                }
                trait = huge_balls_dog
                trait = huge_knot
                trait = huge_dick_dog
                trait = big_anus_dog
                trait = big_dog
                trait = groomed
                trait = quick
                trait = gregarious
                trait = stubborn
                trait = lustful
                trait = uncouth
                trait = patient
                trait = breeding_dog
                female = no
                random_traits = no
                historical = no
                fertility = 6
                health = 4                    
            }   
            new_character = {
                            if = {
                                limit = {
                                    event_target:rsl_dog_owner = {
                                                                female = yes
                                    }                            
                                }    
                                add_lover = root                                
                            }
                            if = {
                                limit = {
                                    event_target:rsl_dog_owner = {
                                                                female = no
                                    }                            
                                }    
                                add_friend = root        
                            }             
                   
                                                    
                give_nickname = nick_rsl_hammer
                set_character_flag = rsl_virginity_checked
                set_character_flag = dick
                set_character_flag = balls
                set_character_flag = height
                set_character_flag = shape
                set_character_flag = butt
                set_character_flag = anus
                save_global_event_target_as = rsl_breeding_dog
            }    
            
            
        }
    }
    
    option = {
            name = EVT_OPT_RSLBST103
            event_target:rsl_dog_owner = {
                                    add_character_modifier = { name = rsl_has_breeding_dog duration = -1 }
                                    wealth = -5
            }
    }        
}

 

I added the part highlighted in yellow. Since then the dog is no longer added as a friend in either event, but even stranger the player character appears in the family screen of the dog as an Educator ( not lover as the code provides for ) but not in the player character screen as a ward. I suppose there is a scope issue here but where does the Educator come from?

add_friend = root

Use ROOT, not root. Capitalization matters in the code.

Posted

I tried ROOT ( I also tried using  <event_target:rsl_dog_owner> instead of root ) but it  doesn't make a difference.

 

I suppose that the add_friend and add_lover commands impact both characters (each of them gets a friend, respectively a lover ) although I can't see it in the code. Is this hard-coded?

 

I have looked in the commands list but there is no command add_educator so where could that come from?

 

Maybe the game doesn't accept that human culture characters and dog_culture characters become lovers. Is it possible to verify this?

Posted
20 minutes ago, joemann said:

I tried ROOT ( I also tried using  <event_target:rsl_dog_owner> instead of root ) but it  doesn't make a difference.

 

I suppose that the add_friend and add_lover commands impact both characters (each of them gets a friend, respectively a lover ) although I can't see it in the code. Is this hard-coded?

 

I have looked in the commands list but there is no command add_educator so where could that come from?

 

Maybe the game doesn't accept that human culture characters and dog_culture characters become lovers. Is it possible to verify this?

event_target:rsl_dog_owner = {
	female = no
}  

There's your problem. "female" only works in character histories (and create_character is essentially that). Swap those two "female = x" with "is_female = x"

Posted

Thanks! This worked, I now get the dog in the lovers box if the character is_female. And the female also appears as the lover in the dogs box. However, in addition the female also appears as the dogs Educator. Lots of potential here ? but it is not what i was trying to achieve. Could the educator be linked to the dogs age (age = 17) ?

 

 If the character is < is_female = no > the dog does not appear in the character's friend box,

and the character himself is listed as Educator in the dog's family box.

 

So there is a problem with the add_friend command ( but it did work in an earlier stage ) I tried using is_friend but that makes no difference.

Posted

@lockeslylcrit In no small part thanks to you, now everything works as I intended. You just have to be lucky enough to have Harald Wartooth survive long enough to be the one to sign the peace treaty, otherwise you don't get the whole of proto-Denmark unless you sieged down every single county within it.

Posted
6 hours ago, joemann said:

Thanks! This worked, I now get the dog in the lovers box if the character is_female. And the female also appears as the lover in the dogs box. However, in addition the female also appears as the dogs Educator. Lots of potential here ? but it is not what i was trying to achieve. Could the educator be linked to the dogs age (age = 17) ?

 

 If the character is < is_female = no > the dog does not appear in the character's friend box,

and the character himself is listed as Educator in the dog's family box.

 

So there is a problem with the add_friend command ( but it did work in an earlier stage ) I tried using is_friend but that makes no difference.

if = {
	limit = {
		event_target:rsl_dog_owner = {
			is_female = yes
		}
	}    
	add_lover = ROOT
}
else = {
	add_friend = ROOT        
}

 

Posted

how hard will be to create mod which will allow with one click set all messages on popup and pause so one can chose during playing what will stay  and what will go into high priority or low priority or disable

Posted
5 minutes ago, nonusnomeni said:

how hard will be to create mod which will allow with one click set all messages on popup and pause so one can chose during playing what will stay  and what will go into high priority or low priority or disable

It's about as hard as trying to convince Paradox to release Victoria 3.

Posted

How to code second wives and concubines to co-exist in Holy Fury? edit the religion files no longer works. And add_consort target decision will crash the game.

Posted
11 hours ago, Hasagawa said:

How to code second wives and concubines to co-exist in Holy Fury? edit the religion files no longer works. And add_consort target decision will crash the game.

You can't. Never have been able to, probably never will.

Posted
35 minutes ago, AlexWyrmin said:

Does lower_tier_than = X work as a check?

[character/title scope] 
	lower_tier_than = [character/tier]
}

baron, count, duke, king, and emperor, and any character operator (PREV, FROM, ROOT, [character id]) all work.

Posted
20 minutes ago, lockeslylcrit said:

baron, count, duke, king, and emperor, and any character operator (PREV, FROM, ROOT, [character id]) all work.

Seems the problem was what I wanted to happen and not who I wanted it to happen to, then.

Thank you.

Posted

After repeated failed attempts at it, I can safely say that adding "imprison/prisoner = X" to a subjugation war's consequences seems to no longer work and I don't understand why, since other casus belli have it without having been modded.

 

If anyone had the same problem and found a solution, I'm all ears.

Posted
9 hours ago, AlexWyrmin said:

After repeated failed attempts at it, I can safely say that adding "imprison/prisoner = X" to a subjugation war's consequences seems to no longer work and I don't understand why, since other casus belli have it without having been modded.

 

If anyone had the same problem and found a solution, I'm all ears.

Gonna have to see the code for myself.

Posted
17 minutes ago, lockeslylcrit said:

Gonna have to see the code for myself.

	on_success = {
		ROOT = {
			piety = 100
			participation_scaled_prestige = 100
		}
		any_attacker = {
			limit = { NOT = { character = ROOT } }
			hidden_tooltip = { participation_scaled_prestige = 100 }
		}
		FROM = {
			piety = -100
			prestige = -100
			
			if = {
				limit = {
					is_reformed_religion = ROOT
					controls_religion = no
				}
				religion = ROOT # Reformed pagans are forced to convert back
			}
			
			custom_tooltip = {
				text = tribal_subjugation_tip
			}
				
			hidden_tooltip = {
				opinion = {
					modifier = opinion_subjugated 
					who = ROOT
				}
				any_vassal = {
					opinion = {
						modifier = opinion_subjugated 
						who = ROOT
					}
				}				
				any_demesne_title = {
					limit = {
						higher_tier_than = ROOT
					}
					ROOT = { usurp_title = { target = PREV type = invasion } }
					add_pressed_claim = PREV
				}
				any_demesne_title = {
					limit = {
						tier = ROOT
					}
					ROOT = { usurp_title = { target = PREV type = invasion } }
					add_pressed_claim = PREV
				}
				set_defacto_liege = ROOT
			}
			imprison = ROOT
		}
	}
	
	on_success_title = {
		ROOT = {
			occupy_minors_of_occupied_settlements = FROM
			gain_all_occupied_titles = { who = FROM type = invasion }
			take_under_title = {
				title = PREV
				enemy = FROM
				type = invasion
			}

			any_demesne_title = {
				limit = { tier = BARON }
				remove_holding_modifier = recently_conquered
				refill_holding_levy = yes
			}
		}
		FROM = { imprison = ROOT }
	}

	on_reverse_demand = {
		ROOT = {
			piety = -200
			transfer_scaled_wealth = {
				to = FROM
				value = 2.0
			}
			imprison = FROM
		}
	}

Note: I didn't input the command in both on_success and on_success_title at same time, this is just to show you were I put it while I was trying to make it work.

Posted
11 hours ago, lockeslylcrit said:

Then it is sounding like FROM is pointing nowhere.

It sounds weird to ask, since when I first added "imprison" to the casus belli it actually worked, but is it possible that FROM stops being identified as the defending party a fraction of a second before "enforce demands" runs its course, meaning the game is pretty much lagging them out of my dungeon?

 

Edit: when my modification still did what it was supposed to, I had more or less the same "weight" in mods as I have now, but I had, for example, all the Dark World submod content unzipped into the main mod's folder and activated through Dark World Reborn.mod.

Posted
7 hours ago, AlexWyrmin said:

It sounds weird to ask, since when I first added "imprison" to the casus belli it actually worked, but is it possible that FROM stops being identified as the defending party a fraction of a second before "enforce demands" runs its course, meaning the game is pretty much lagging them out of my dungeon?

 

Edit: when my modification still did what it was supposed to, I had more or less the same "weight" in mods as I have now, but I had, for example, all the Dark World submod content unzipped into the main mod's folder and activated through Dark World Reborn.mod.

If everything worked fine before and it no longer does, my bet is that something is overwriting your changes/your mod got accidentally disabled/Paradox added a different subjugation cb that looks and works almost exactly like the old one, in which cases you will have to check if your cb appears to be listed twice in the diplomacy menu.

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...