Installer Steam
log på
|
sprog
简体中文 (forenklet kinesisk)
繁體中文 (traditionelt kinesisk)
日本語 (japansk)
한국어 (koreansk)
ไทย (thai)
Български (bulgarsk)
Čeština (tjekkisk)
Deutsch (tysk)
English (engelsk)
Español – España (spansk – Spanien)
Español – Latinoamérica (spansk – Latinamerika)
Ελληνικά (græsk)
Français (fransk)
Italiano (italiensk)
Bahasa indonesia (indonesisk)
Magyar (ungarsk)
Nederlands (hollandsk)
Norsk
Polski (polsk)
Português (portugisisk – Portugal)
Português – Brasil (portugisisk – Brasilien)
Română (rumænsk)
Русский (russisk)
Suomi (finsk)
Svenska (svensk)
Türkçe (tyrkisk)
Tiếng Việt (Vietnamesisk)
Українська (ukrainsk)
Rapporter et oversættelsesproblem
If they have listed relationships that you can see ingame already, then yes.
When you generate the world there are like 5-15 pawns of each faction, plus some will get made and saved from caravans and fleeing from raids and the like. If you turn this mod on on an existing unmodded save those pawns can still have relationships if you find them again later, but recycled pawns are the distinct minority and raiding a enemy settlement is basically the same as being raided in terms of pawn generation. So it's possible, but unlikely.
Also, the in-group bias for spawning with relatives in your own faction isn't usually high enough to overcome the fact that there are just a lot more pawns not-in-your-faction, so chances are high that that pawn's relatives will not be in the same faction*. Pirates/Empire it's a little more common because of the tech level disparity, but for other pawns chances are high that their relatives are just in wherever.
*This is basically the reason the main thing people install this mod to disable happens so often in vanilla, even though there's an additional check to make spawning with relations to the player's pawns less common. You can easily see it in action by going to an unmodded embark screen and rolling your colonists and seeing how many of them have a relationship with someone who isn't in your starting 8 (and is therefore in a different faction).
You're probably better off looking at https://psteamcommunity.yuanyoumao.com/sharedfiles/filedetails/?id=3011354315 or something similar if you want relationships to not be generated for certain specific pawns only.
Keep in mind that "relationship generation [as] normal" is rolling to see if a new pawn is related to any existing pawns. It's only more likely if you have preexisting relations because it's a larger surface area, generating the world with this mod and then playing without it is the same as not using this mod and just manually deleting every relationship with debug tools. Raiders will still be able to spawn in with relations to existing pawns who have no relationships.
If you play without debug mode some relations will already have been generated that you won't be able to see and this won't remove those though.
There isn't any vanilla behavior that tries to generate a pawn when another pawn dies anyway. It's not impossible that this mod would prevent whatever's generating a pawn from failing to generate relations for that pawn (and you can just load this mod and test, it's completely safe to add/remove at any time) but I very much doubt that that's really the core of the issue you're experiencing.
Error while generating pawn. Rethrowing. Exception: System.NullReferenceException: Object reference not set to an instance of an object
[Ref 47650D8D]
at RimWorld.Pawn_RelationsTracker+<get_FamilyByBlood_Internal>d__37.MoveNext () [0x001f5] in <2a40c3593b334f29ac3cb3d32d652351>:0
at ....
Thanks for this mod!
Thank you For the mod I was getting so annoyed by this.
The function that we are replacing got an additional condition under which it gets set to 0 (IsDuplicate) but since we're setting it to 0 under all circumstances anyway, anomaly will work completely fine with this.
giving it some thought, if these new relations are created only whenever a raid or some other incident (like visitors for example) happens, then doing what you said should indeed work for preserving starting relations.
thanks for the input.
I don't know if this is correct, but that is what I believe would happen.
In theory if you have a mod like Character Editor you should be able to go through the global list of all human pawns and I think that the son should exist in that list somewhere.
so, for example:
say i have a starter pawn, which is the brother of my other starter pawn (not "left behind", so they'll be there at the start of the colony), AND is the father of another pawn which WAS left behind.
that means if i turn on the mod after generating the map, both relations will persist then? so i could encounter the father's son sometime into the story?
Any pawns related to starters that aren't also starters/leaders can/will show up in the game though.
The mod just forces a certain piece of RNG to always roll 0 so you can turn it on and off freely with no consequences.
This works for the version of 1.5 that's in the unstable beta.
I'll put off adding tags until anomaly comes out.
The most ridiculous relationship for me yet: Both of my colonists were born in and never left the colony. So Randy decided to generate them a child and crash land it in the map corner with 10 seconds to live. Fuk that.
It changes how things generate and doesn't add/remove/change content so it's safe to add/remove midgame
It won't remove existing relationships (including ones which exist but you can't see if you're not in devmode) though so you won't notice it doing much. This is especially true because characters who have existing relations get recycled by raids/quests/etc.
btw, ColonistRelationChanceFactor is set to 1f in the PawnGenerationRequest, which has changed considerably
I would probably suggest reimplementing the vanilla function of BaseGenerationChanceFactor in the override (with whatever changes you want) and then passing back that __result but I haven't touched harmony (or indeed C#) in over half a year so I couldn't tell you offhand whether a naive implementation would work
static HarmonyPatches()
{
Harmony harmony = new Harmony("doll.RimWorld.NGR.Main");
harmony.Patch(typeof(PawnRelationWorker).GetMethod("BaseGenerationChanceFactor"), null, new HarmonyMethod(typeof(HarmonyPatches), nameof(NGRCorrection)));
}
public static void NGRCorrection(ref float __result)
{
__result = 0f;
return;
}
Is the 0f the value in question, and if it is, is 1 the value of the base game?
(yes)