For modders 1.4 - WVCSergkart/WVC_RacesBiotech GitHub Wiki

Compatibility Filter

A special def that is needed for compatibility with other mods.

  <WVC_XenotypesAndGenes.XenotypesAndGenesListDef>
	<defName>AnyDefName</defName>
	<!-- Keywords that allow you to filter out defNames of xenotypes. -->
	<!-- Xenotypes containing these words will not spawn in serums. Any string -->
	<blackListedXenotypesForSerums>
		<li>Baseliner</li>
	</blackListedXenotypesForSerums>
	<!-- List of xenotypes that can be in the resurrection serum. Any xenotype defs -->
	<!-- It is combined with the usual list, it is only necessary to determine which of the prohibited xenotypes are allowed specifically for these purposes. -->
	<whiteListedXenotypesForResurrectorSerums>
		<!-- <li>WVC_Undead</li> -->
	</whiteListedXenotypesForResurrectorSerums>
	<!-- Xenotypes for xenotype filter. Needed to determine default xenotypes for serums. Any string -->
	<!-- In addition to this filter, there are several more filtering stages.  -->
	<!-- All of them are in C# code and cannot be changed via XML. However, this filter takes precedence. -->
	<whiteListedXenotypesForFilter>
		<!-- <li>Pigskin</li> -->
	</whiteListedXenotypesForFilter>
	<!-- List of backstories that will not be overridden by the backstory changer. Required backstory defNames -->
	<blackListedBackstoryForChanger>
		<!-- <li>Colonist</li> -->
	</blackListedBackstoryForChanger>
	<!-- Words that should not be in the defName of Mechanoids. Used to random summon mechanoids. Required any string -->
	<mechDefNameShouldNotContain>
		<!-- <li>Zombie_</li> -->
	</mechDefNameShouldNotContain>
	<!-- Work only for WVC -XaG CompSpawnSubplant. Required thing defNames -->
	<!-- WVC_XenotypesAndGenes.CompSpawnOnDeath_Subplants or WVC_XenotypesAndGenes.CompSpawnSubplantDuration -->
	<plantsToNotOverwrite_SpawnSubplant>
		<!-- <li>GauranlenTree</li> -->
	</plantsToNotOverwrite_SpawnSubplant>
	<!-- Ignored by shapeshifter mechanic. Required gene Types -->
	<shapeShift_IgnoredGeneClasses>
		<!-- <li>Gene_Spawner</li> -->
	</shapeShift_IgnoredGeneClasses>
  </WVC_XenotypesAndGenes.XenotypesAndGenesListDef>

GeneExtension_General

Mod extension

<li Class="WVC_XenotypesAndGenes.GeneExtension_General">
	<canBePredatorPrey>true</canBePredatorPrey>
</li>

<canBePredatorPrey>true</canBePredatorPrey> - if false, then animals will not be able to hunt the carrier of the gene.

Gene stats inheritance

Mod extension

<li Class="WVC_XenotypesAndGenes.GeneExtension_General">
	<inheritableGeneDefs>
	  <li>PerfectImmunity</li>
	  <li>DiseaseFree</li>
	</inheritableGeneDefs>
</li>

allows genes to inherit different stats from other genes.

For example, the "Perfect senescent" gene inherits immunity from the vanilla "Perfect immunity" and "Non-senescent" genes.

inheritableGeneDefs1_v0

Currently inherited: exclusionTags, makeImmuneTo, hediffGiversCannotGive, suppressedTraits, forcedTraits, conditionalStatAffecters, statFactors, statOffsets, symbolPack.

GeneExtension_Background

Allows you to set a custom background for genes. Bypasses the VEF hardcode.

Background1_v0

<li Class="WVC_XenotypesAndGenes.GeneExtension_Background">
	<backgroundPathEndogenes>WVC/UI/Genes/GeneBackground_Endogene</backgroundPathEndogenes>
	<backgroundPathXenogenes>WVC/UI/Genes/GeneBackground_Xenogene</backgroundPathXenogenes>
	<backgroundPathEndoArchite>WVC/UI/Genes/GeneBackground_ArchiteGene</backgroundPathEndoArchite>
	<backgroundPathXenoArchite>WVC/UI/Genes/GeneBackground_XenoArchiteGene</backgroundPathXenoArchite>
</li>

Gene_Spawner

Allows you to create a spawner gene for any item.

  <GeneDef>
	<defName>SteelSpawner</defName>
	<label>steel spawner</label>
	<description>Spawn steel.</description>
	<geneClass>WVC_XenotypesAndGenes.Gene_Spawner</geneClass>
	<iconPath>WVC/UI/Genes/Gene_Spawner</iconPath>
	<customEffectDescriptions>
		<li>Spawns steel every (*DateTime)2-3 days(/DateTime).</li>
		<li>Stack count increases or decreases relative to metabolism.</li>
	</customEffectDescriptions>
	<exclusionTags>
	  <li>ResourceSpawner</li>
	</exclusionTags>
	<modExtensions>
		<li Class="WVC_XenotypesAndGenes.GeneExtension_Spawner">
			<thingDefToSpawn>Steel</thingDefToSpawn>
			<stackCount>22</stackCount>
			<spawnIntervalRange><min>120000</min><max>360000</max></spawnIntervalRange>
		</li>
	</modExtensions>
  </GeneDef>

Gene_Exoskin

Allows you to create a furskin gene with visible tattoos and a mask.

Please note that the "Disable mecha/node/rune/stone(skin) graphic" option disables this mechanic.

  <modExtensions>
	<li Class="WVC_XenotypesAndGenes.GeneExtension_Graphic">
		<furIsSkin>true</furIsSkin>
		<furIsSkinWithHair>false</furIsSkinWithHair>
		<furCanRot>true</furCanRot>
	</li>
  </modExtensions>

furIsSkin - If true, then the furskin will replace the pawn skin.

furIsSkinWithHair - If true, then the furskin will replace the pawn skin and use a mask. Red for skin color, green for hair color.

furCanRot - If true, then when the pawn rots the furskin will not disappear.

  <GeneDef WVC_Tag="MechaAndNodeSkins_EasyPatch">
	<defName>NewFurskin</defName>
	<label>new furskin</label>
	<geneClass>WVC_XenotypesAndGenes.Gene_Exoskin</geneClass>
	<iconPath>WVC/UI/Genes/Gene_FurskinD_v0</iconPath>
	<graphicData>
	  <fur>WVC_MechaSkin</fur>
	  <skinIsHairColor>false</skinIsHairColor>
	  <tattoosVisible>true</tattoosVisible>
	</graphicData>
	<exclusionTags>
	  <li>AG_Bodies</li>
	  <li>Bodies</li>
	  <li>Fur</li>
	</exclusionTags>
	<modExtensions>
		<li Class="WVC_XenotypesAndGenes.GeneExtension_Graphic">
			<furIsSkin>true</furIsSkin>
			<furIsSkinWithHair>false</furIsSkinWithHair>
			<furCanRot>true</furCanRot>
		</li>
	</modExtensions>
  </GeneDef>

Serums

There are two variants of XenotypeForcer:

CompProperties_UseEffect_XenotypeForcer - Basic, in the mod it is used when generating serums.

CompProperties_UseEffect_XenotypeForcer_II - Random, used only for a few serums.

Basic

<xenotypeForcerType>Base</xenotypeForcerType>

Can have one of 4 values, each of which is responsible for how the xenotype will be applied.

  • Base
  • Hybrid
  • Custom
  • CustomHybrid

Base - applies only one of the xenotypes, depending on whether it is inherited or not.

Hybrid - applies 2 xenotypes at once, necessarily of different heritability.

Custom - like Base only for custom xenotypes.

CustomHybrid - appropriately hybrid.

<removeEndogenes>true</removeEndogenes> and <removeXenogenes>true</removeXenogenes> - Responsible for whether genes will be removed before applying the xenotype.

<xenotypeDef>Baseliner</xenotypeDef> - The xenotype that will be applied. For the hybrid type, you can choose only 1 of the two xenotypes. The second one is always random. If not specified, a random one will be selected.

<li Class="WVC_XenotypesAndGenes.CompProperties_UseEffect_XenotypeForcer">
	<xenotypeForcerType>Base</xenotypeForcerType>
	<xenotypeDef>Baseliner</xenotypeDef>
	<removeEndogenes>true</removeEndogenes>
	<removeXenogenes>true</removeXenogenes>
</li>

Random

<xenotypeType>Base</xenotypeType> - Type of xenotype, there are two of them. Basic and Archite.

  • Base
  • Archite
<li Class="WVC_XenotypesAndGenes.CompProperties_UseEffect_XenotypeForcer_II">
	<xenotypeType>Base</xenotypeType>
	<removeEndogenes>false</removeEndogenes>
	<removeXenogenes>true</removeXenogenes>
</li>

Sub-Xenotype

Mechanics of hybrid sub-xenotypes.

A hybrid xenotype is created from several things.

From the vanilla double xenotype mechanics:

<doubleXenotypeChances>
	<WVC_Undead>1.0</WVC_Undead>
</doubleXenotypeChances>

And class: Class="WVC_XenotypesAndGenes.SubXenotypeDef"

  <XenotypeDef Class="WVC_XenotypesAndGenes.SubXenotypeDef">
	<defName>WVC_Featherdust</defName>
	<label>featherdust</label>
	<iconPath>WVC/UI/Mecha_Icons/Gene_DustAngel_v0</iconPath>
	<selectionWeight>0.7</selectionWeight>
        <doubleXenotypeChances>
	  <WVC_Undead>1.0</WVC_Undead>
        </doubleXenotypeChances>
	<!-- If any genes need to be removed, they can be listed here. -->
	<!-- The code is run in this order: double xenotype -> genes -> removeGenes -> endogenes -->
        <!-- removeGenes removes genes from the double xenotype -->
        <!-- Please note that if a gene is in removeGenes, it cannot be added to endogens -->
	<removeGenes>
		<li>WVC_RandomLearning</li>
		<li>WVC_RandomHands</li>
		<li>WVC_RandomWoundHealing</li>
		<li>WVC_RandomImmunity</li>
		<li>WVC_RandomMetabolism</li>
		<li>WVC_RandomMoveSpeed</li>
		<li>WVC_RandomPsychicAbility</li>
		<li>StrongStomach</li>
		<li>WVC_MildGeneticInstability</li>
		<li>WVC_AgeDebuff_Sterile</li>
		<li>WVC_SkinColor_Undead</li>
		<li>Hair_Grayless</li>
		<li>WVC_PatchSkin</li>
	</removeGenes>
	<!-- endogenes are always added to the germline -->
	<endogenes>
		<li>WVC_FeatherSkin</li>
		<li>WVC_BodySize_Small</li>
		<li>WVC_Pain_Extra</li>
		<li>WVC_Learning_SlowNoSkillDecay</li>
		<li>Skin_SheerWhite</li>
		<li>WVC_NaturalDisease_DiseaseFree</li>
		<li>WVC_NaturalImmunity_PerfectImmunity</li>
		<li>WVC_HeadBoneHorns</li>
	</endogenes>
	<!-- genes are always added to the xenogenes -->
	<genes>
		<li>WVC_Dustogenic</li>
		<li>WVC_Dustogenic_WoundHealing</li>
		<li>WVC_Dustogenic_Ageless</li>
		<li>WVC_Dustogenic_Metabolism</li>
		<li>WVC_Dustogenic_Blesslink</li>
		<li>WVC_Dustogenic_AngelBeauty</li>
		<li>WVC_Dustogenic_GeneticStability</li>
		<li>WVC_Dustogenic_ImmaculateConception</li>
		<li>WVC_Dustogenic_Clotting</li>
		<li>WVC_Dustogenic_FeatherBlades</li>
		<li>WVC_Wings_FeatheredWings</li>
		<li>WVC_FamilyByBlood_Dustogenic</li>
		<li>WVC_Hands_Angel</li>
		<li>Aggression_HyperAggressive</li>
		<li>WVC_SlaveSuppression_Unruly</li>
	</genes>
  </XenotypeDef>

This is how the Featherdust and Resurgent xenotypes were created. Screenshots can be found above.

⚠️ **GitHub.com Fallback** ⚠️