Install Steam
login
|
language
简体中文 (Simplified Chinese)
繁體中文 (Traditional Chinese)
日本語 (Japanese)
한국어 (Korean)
ไทย (Thai)
Български (Bulgarian)
Čeština (Czech)
Dansk (Danish)
Deutsch (German)
Español - España (Spanish - Spain)
Español - Latinoamérica (Spanish - Latin America)
Ελληνικά (Greek)
Français (French)
Italiano (Italian)
Bahasa Indonesia (Indonesian)
Magyar (Hungarian)
Nederlands (Dutch)
Norsk (Norwegian)
Polski (Polish)
Português (Portuguese - Portugal)
Português - Brasil (Portuguese - Brazil)
Română (Romanian)
Русский (Russian)
Suomi (Finnish)
Svenska (Swedish)
Türkçe (Turkish)
Tiếng Việt (Vietnamese)
Українська (Ukrainian)
Report a translation problem
https://steamproxy.net/sharedfiles/filedetails/?id=2828866565
Hope it helps anyone!
I can post screenshots if need be
Starting a world normally works fine unless you choose to start as one of the avali factions, then it'll glitch out on map generation on the step where it picks pawns.
This might be a rimvali side issue though in how they implemented things.
Sometime, I'll have to perform more extensive tests with the races you're using. Perhaps some of those have something related to graphical oddities.
Pre-existing humans or aliens should retain their race in your save. This mod should only affect new pawns. I've had old pawns come back or reappear in quests the same as they've always been.
The next thing you mentioned is something I'm already working on. I've been busy for the past few months and I'll get to implementing more specific settings eventually.
Interesting... I am glad that you have found out a way to manually generate racially specific pawns. That stuff is helpful to know - thank you.
Before calling pawn generation, persist the PawnKindDef's race ThingDef's defName
string originalPawnKindRaceDefName = pawnKind.race.defName;
Then I load the custom races ThingDef race into the PawnKindDef that will be used for generation. Create a PawnGenerationRequest with the "faked" PawnKindDef. This properly creates the klickmala pawn as I want it.
And for my good concience I wrap it all in a try-finally to always reset the original PawnKindDef's race back to what it was with
kindDef.race = ThingDef.Named(originalPawnKindRaceDefName);
It seems to work and pawns don't magically flip between races whenever a new pawn is generated, which honestly challenges my understanding of how a Def used as a shallow copy actually works...
Thank you for the clear response, it would have been amazing to have another method to call instead of the default GeneratePawn and pass a ThingDef race into it to be used for generation.
But thanks to the absolutely chaotic base game pawn generation that'll take a lot of effort to make viable, good luck to you.
Through testing, I am aware of the problem that a PawnKindDef's race and a Pawn's race are not consistent. Although when pawns are loaded, they retain their original race for some reason. I've never had problems with race persistency through testing.
Those problems that you mentioned - manual pawn generation - are apparent problems across other mods such as Altered Carbon. This is because the race selector in this mod is not paused, which will affect any pawn that generates regardless of manual execution. Unfortunately, this is a huge issue. The way I tried going about fixing this problem is having a class called "AnyModGeneratedPawn" that, when its method is called, it pauses the race selector. The next pawn that is generated manually is ignored by the race selector.
I am trying to generate a Pawn in code here. Normal way is to call PawnGenerator.GeneratePawn() with a PawnGenerationRequest.
Which fails for any race using your mod and creates a humanoid pawn instead (cause the PawnKindDef persisted in pawns like Klickmala is HUMAN)
I also wrote this up before you replied:
So uh, you just intercept pawn generation, replace the pawnKind.race with a shuffled one and then slap that on the pawn?
This would cause issues because the PawnKindDef is permanently saved in each Pawn, meaning all existing pawns would also have their .race field affected whenever a new pawn is generated. Unless I misunderstand and you create a deep copy of the PawnKindDef to persist in the pawn - which seems like an awful abuse of the Def system. Or maybe I just overestimate the importance of the persisted PawnKindDef post-pawn-generation
I'm not quite sure what you mean? For a custom race to generate its pawns, it could set its own weights with the extension and use generic vanilla pawnkinds for its custom racial factions - or it could ignore those entirely and just make its own pawnkinds to spawn in its own factions. I'm not opposed to that. All of the bigger race mods still do that.
Of course the PawnKindDef still exists. Custom races can still use it. In fact, this mod won't touch pawns that generate with non-human PawnKindDefs by default. I am not entirely sure what made you think I completely removed or disregarded it.
I'm not going to create an entirely new/overloaded/alternative generation method for pawns. That does not seem reasonable to me. I use PawnGenerationRequest so that I don't create tons of "boilerplate."
PawnGenerator.GeneratePawn() with a classic PawnGenerationRequest requires the PawnKindDef, which does not exist for custom races using your mod.
Do you provide any overloads or alternative methods to generate pawns without tons of boilerplate?
This mod assumes by default that all human pawnkinds are blank slates and can be replaced with aliens. If any pawnkind specifies a race other than human, then a toggled off "override all alien pawnkinds" has no effect on that pawnkind. Usually this is prevalent on race-specific factions (although I guess not all of them, which is why I added faction-exclusion in case of that problem).
Yes indeed. The high stellarch could be a T1 if there's a possibility of T1s spawning.
However, for factions with specific races in their pawnkinds (e.g. mantodeans), they will not be affected if "override all alien pawnkinds" is toggled off.
Factions toggled on in faction exclusion will not be affected in the race changes (e.g. if turned on for Empire, then they will only have human pawns).
I've been quite busy for some time because of my academic responsibilities. I cannot say for certain when I'll be working on the next update. Maybe during a fall break, or in December when my term ends? I'll have to schedule the update's progress somewhere around those dates.
Alien faction spawn weight adjustments are planned, although I could simplify it further by adding a blacklist of factions. I'll consider that.
For example, the Brotherhood Compendium Mod adds the Enclave from "Fallout". The Enclave believes that all sapient non-humans (Ghouls and Super Mutants in the heretofore mentioned game) are to be exterminated on sight. It breaks muh immersion to see a Gnome, a Nyaron, a Kurin, or (God forbid) a Ghoul as a member of the Enclave.
On August 9th to Mimi in the comments, I explained this problem. This is an oversight in RimHUD that is visible from using this mod.
I'll do that soon then, in the next update.
Make it so you can edit the "spawn chance" percentage, which is then converted to weight (if that's even necessary). It would be much easier and more intuitive.
Right now it's kind of fustrating, because weights are relative. So if I want to have a 10% chance of race A spawning, I have to fiddle with the weights of races B, C and E too so that the proportion is right. I hope you get the idea.