Jump to content

Recommended Posts

Not even sure it's possible since the game doesn't even really recognize culture which is the closest you can get. Skin color is obviously not a thing in CK3 as a variable you can define. It would be cool if this was possible but as of how the game is coded, I don't think it's possible.

The closest way to do it would be to create traits for culture/skin color and populate everyone in the game with it, somehow matching to an existing variable of your choice. Culture would probably be the closest since I don't think you can define skin color. Then you can make religious tenets/laws/events targeting that trait. But that would obviously be a lot of work and finicky.

Link to comment

Not really sure you need a mod for this kind of thing. The faith system is flexible enough that you could probably get this kind of scenario going. Granted, it will probably be difficult to maintain a dark skin tone if you're aggressively mixing.

 

Otherwise, you're looking at a bit of a modding mess to develop new tenant(s) and reciprocating trait(s) that enforce genetics. Might be doable, but it's beyond my research(until Paradox adds support for same-sex relationships and gender-swapping, I'm not particularly interested in modding CK3) - would probably be a useful basis for stuff like an orc invasion or the like if someone tries to tackle that kind of undertaking.

Link to comment
On 12/23/2020 at 5:14 AM, icehaku said:

Not even sure it's possible since the game doesn't even really recognize culture which is the closest you can get. Skin color is obviously not a thing in CK3 as a variable you can define. It would be cool if this was possible but as of how the game is coded, I don't think it's possible.

The closest way to do it would be to create traits for culture/skin color and populate everyone in the game with it, somehow matching to an existing variable of your choice. Culture would probably be the closest since I don't think you can define skin color. Then you can make religious tenets/laws/events targeting that trait. But that would obviously be a lot of work and finicky.

It's not a lot of work. I did a preliminary check and it is indeed possible in CK3 as most of the functionality from CK2, and more of course, is available. I made something similar to see how I could create a viral trait system in CK2. Despite restricting interracial preference to 1% of initial population, restricting interracial marriage potential to viable pairs in diplomacy range, etc, interracial pairings ended up dominating the entire world by end of game using spectator at highest speed. Those with preference traits would have a chance to spread the preference to their children and pupils. Here's an excerpt displaying how the race concept is distributed through a trait:

 

# character_event = {
# 	id = irpref.00001
# 	hide_window = yes
#   is_triggered_only = yes
# 	trigger = {
# 		NOR = {
# 			trait = african
#           trait = european
#           trait = asian
#           trait = mena
# 		}
# 	}
# 	immediate = {
#         if = {
#             limit = {
#                 OR = {
# 			        graphical_culture = africangfx
# 			        graphical_culture = westafricangfx
# 		          }
#             }
#             add_trait = african
#         }
#         else_if = {
#             limit = {
#                 OR = {
#                     graphical_culture = norsegfx
#                     graphical_culture = germangfx
#                     graphical_culture = occitangfx
#                     graphical_culture = englishgfx
#                     graphical_culture = saxongfx
#                     graphical_culture = frankishgfx
#                     graphical_culture = normangfx
#                     graphical_culture = southerngfx
#                     graphical_culture = byzantinegfx
#                     graphical_culture = easternslavicgfx
#                     graphical_culture = persiangfx
#                     graphical_culture = celticgfx
#                     graphical_culture = ugricgfx
#                     graphical_culture = westernslavicgfx
#                     graphical_culture = italiangfx
#                     graphical_culture = trueoccitangfx
#                     graphical_culture = romangfx
#                     graphical_culture = dalmatiangfx
#                     graphical_culture = outremergfx
#                     graphical_culture = crimeangfx
#                     graphical_culture = levantinegfx
#                     graphical_culture = croatsouthslavicgfx
#                     graphical_culture = serbsouthslavicgfx
#                     graphical_culture = magyargfx
# 		        }
#             }
#             add_trait = european
#         }
#         else_if = {
#             limit = {
#                 OR = {
#                     graphical_culture = turkishgfx
#                     graphical_culture = cumangfx
#                     graphical_culture = mongolgfx
#                     graphical_culture = chinesegfx
#                     graphical_culture = indiangfx
#                     graphical_culture = bodpagfx
#                     graphical_culture = mesoamericangfx
# 		          }
#             }
#             add_trait = asian
#         }
#         else_if = {
#             limit = {
#                 OR = {
#                     graphical_culture = southindiangfx
#                     graphical_culture = andalusiangfx
#                     graphical_culture = arabicgfx
#                     graphical_culture = berbergfx
# 		          }
#             }
#             add_trait = mena
#         }
# 	  }
# }

Pay no mind to the messed up formatting, the insert preview was fine...

 

This was triggered through a daemon to respect order of operations for all other necessary events adding traits for preference and the like. The daemon would pulse on startup, birth, and yearly.

 

on_startup = {
	events = {
		irpref.00000
		irpref.00002
		irpref.00007
	}
}
on_yearly_pulse = {
	events = {
		irpref.00000
	}
}
on_character_convert_religion = {
	events = {
		irpref.00004
	}
}
on_birth = {
	events = {
		irpref.00000
	}
}
on_adulthood = {
	events = {
		irpref.00006
	}
}

Like so. And the daemon:

 

character_event = {
    id = irpref.00000
    hide_window = yes
    is_triggered_only = yes
    trigger = {
		NOR = {
			trait = african
            trait = european
            trait = asian
            trait = mena
		}
	}
    immediate = {
        character_event = {
            id = irpref.00001
        }
        character_event = {
            id = irpref.00003
            days = 1
        }
        character_event = {
            id = irpref.00004
            days = 2
        }
        character_event = {
            id = irpref.00006
            days = 3
        }
    }
}

Performance impact was negligible in general and compared to the initial naive implementations I tried. As for how the actual pairings occurred, in CK2 I didn't find a great way for influencing matchup behaviour, so I just created an event that paired up AI rulers who failed to get married within 2 months to a viable match if present within diplomatic range, which means the preference was only respected about 50% in the end. It seems to me that CK3 will be more usable in this way but I don't have the time to comb through all the script files and figure out how it all goes together, so I'll wait until there is decent documentation.

 

And yes, this whole thread concept is cringe but so is everything on this website; it's niche fetishes all the way down so I don't see the point in judging any of them -- you just won't see me installing any of the furry or weaboo mods and that's ok.

Link to comment
  • 3 weeks later...
  • 1 year later...
On 12/31/2020 at 9:05 AM, fifthpint2 said:

It's not a lot of work. I did a preliminary check and it is indeed possible in CK3 as most of the functionality from CK2, and more of course, is available. I made something similar to see how I could create a viral trait system in CK2. Despite restricting interracial preference to 1% of initial population, restricting interracial marriage potential to viable pairs in diplomacy range, etc, interracial pairings ended up dominating the entire world by end of game using spectator at highest speed. Those with preference traits would have a chance to spread the preference to their children and pupils. Here's an excerpt displaying how the race concept is distributed through a trait:

 

# character_event = {
# 	id = irpref.00001
# 	hide_window = yes
#   is_triggered_only = yes
# 	trigger = {
# 		NOR = {
# 			trait = african
#           trait = european
#           trait = asian
#           trait = mena
# 		}
# 	}
# 	immediate = {
#         if = {
#             limit = {
#                 OR = {
# 			        graphical_culture = africangfx
# 			        graphical_culture = westafricangfx
# 		          }
#             }
#             add_trait = african
#         }
#         else_if = {
#             limit = {
#                 OR = {
#                     graphical_culture = norsegfx
#                     graphical_culture = germangfx
#                     graphical_culture = occitangfx
#                     graphical_culture = englishgfx
#                     graphical_culture = saxongfx
#                     graphical_culture = frankishgfx
#                     graphical_culture = normangfx
#                     graphical_culture = southerngfx
#                     graphical_culture = byzantinegfx
#                     graphical_culture = easternslavicgfx
#                     graphical_culture = persiangfx
#                     graphical_culture = celticgfx
#                     graphical_culture = ugricgfx
#                     graphical_culture = westernslavicgfx
#                     graphical_culture = italiangfx
#                     graphical_culture = trueoccitangfx
#                     graphical_culture = romangfx
#                     graphical_culture = dalmatiangfx
#                     graphical_culture = outremergfx
#                     graphical_culture = crimeangfx
#                     graphical_culture = levantinegfx
#                     graphical_culture = croatsouthslavicgfx
#                     graphical_culture = serbsouthslavicgfx
#                     graphical_culture = magyargfx
# 		        }
#             }
#             add_trait = european
#         }
#         else_if = {
#             limit = {
#                 OR = {
#                     graphical_culture = turkishgfx
#                     graphical_culture = cumangfx
#                     graphical_culture = mongolgfx
#                     graphical_culture = chinesegfx
#                     graphical_culture = indiangfx
#                     graphical_culture = bodpagfx
#                     graphical_culture = mesoamericangfx
# 		          }
#             }
#             add_trait = asian
#         }
#         else_if = {
#             limit = {
#                 OR = {
#                     graphical_culture = southindiangfx
#                     graphical_culture = andalusiangfx
#                     graphical_culture = arabicgfx
#                     graphical_culture = berbergfx
# 		          }
#             }
#             add_trait = mena
#         }
# 	  }
# }

Pay no mind to the messed up formatting, the insert preview was fine...

 

This was triggered through a daemon to respect order of operations for all other necessary events adding traits for preference and the like. The daemon would pulse on startup, birth, and yearly.

 

on_startup = {
	events = {
		irpref.00000
		irpref.00002
		irpref.00007
	}
}
on_yearly_pulse = {
	events = {
		irpref.00000
	}
}
on_character_convert_religion = {
	events = {
		irpref.00004
	}
}
on_birth = {
	events = {
		irpref.00000
	}
}
on_adulthood = {
	events = {
		irpref.00006
	}
}

Like so. And the daemon:

 

character_event = {
    id = irpref.00000
    hide_window = yes
    is_triggered_only = yes
    trigger = {
		NOR = {
			trait = african
            trait = european
            trait = asian
            trait = mena
		}
	}
    immediate = {
        character_event = {
            id = irpref.00001
        }
        character_event = {
            id = irpref.00003
            days = 1
        }
        character_event = {
            id = irpref.00004
            days = 2
        }
        character_event = {
            id = irpref.00006
            days = 3
        }
    }
}

Performance impact was negligible in general and compared to the initial naive implementations I tried. As for how the actual pairings occurred, in CK2 I didn't find a great way for influencing matchup behaviour, so I just created an event that paired up AI rulers who failed to get married within 2 months to a viable match if present within diplomatic range, which means the preference was only respected about 50% in the end. It seems to me that CK3 will be more usable in this way but I don't have the time to comb through all the script files and figure out how it all goes together, so I'll wait until there is decent documentation.

 

And yes, this whole thread concept is cringe but so is everything on this website; it's niche fetishes all the way down so I don't see the point in judging any of them -- you just won't see me installing any of the furry or weaboo mods and that's ok.

Are you open to sharing your old attempt for ck2?

 

 

Link to comment

Pursuit of Power and the warmonger allows you to conquer at will without any penalties. maybe a mod creating a decision for an african culture could do something similar much like the Akom faith scenario where you make an entirely matriarchal society. Carnalitas has a opinion modifier on size of breasts/ dick. the foundation is there the main issue is the game being able to discern between races.

Link to comment
  • 3 months later...

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