Editting biome needs
1. Go to the main .xml
2. Look for 'BFGBiomeData'
3. You'll find this:
<BFGBiomeData location="borealforest_northamerica" locationSensitivity="10">
<alpine sensitivity="2"/>
<borealforest sensitivity="10" primary="true"/>
<desert sensitivity="-10"/>
<grassland sensitivity="0"/>
<temperateforest sensitivity="0"/>
<tropicalrainforest sensitivity="-5"/>
<tundra sensitivity="0"/>
<savannah sensitivity="0"/>
<scrub sensitivity="-5"/>
<wetlands sensitivity="-5"/>
</BFGBiomeData>
4. Edit the numbers between ="..." 10 = the animal loves this biome; 0 = the animal hates this biome.
5. primary="true" means this biome is the animal's primary biome. So if you want to change the primary biome from boreal forest to grassland you''ll get this:
<BFGBiomeData location="borealforest_northamerica" locationSensitivity="10">
<alpine sensitivity="2"/>
<borealforest sensitivity="10"/> -> delete primary="true"
<desert sensitivity="-10"/>
<grassland sensitivity="10" primary="true" /> -> add primary="true" and change 0 to 10.
<temperateforest sensitivity="0"/>
<tropicalrainforest sensitivity="-5"/>
<tundra sensitivity="0"/>
<savannah sensitivity="0"/>
<scrub sensitivity="-5"/>
<wetlands sensitivity="-5"/>
</BFGBiomeData>
Note: If the animal has sensitivity="10" for every biome (and no space needs either) it will be compatible with elevated paths as well!
Editting space needs
1. Go to the main .xml
2. Look for 'Space'
3. You'll find these lines f_RequiredInitialSpace="320" f_RequiredAdditionalSpace="80" (in the BFAIEntityDataShared line).
4. If you want to remove the space needs you've to change the numbers to '0'. You'll get this:
f_RequiredInitialSpace="0" f_RequiredAdditionalSpace="0"
Note: Marine animals don't have f_RequiredInitialSpace="..." f_RequiredAdditionalSpace="..." but f_RequiredInitialTankSpace="..." f_RequiredAdditionalTankSpace="..."
Making something tank & water placeable
1. Go to the main .xml
2. Look for 'ZTPlacementData'
3. You'll find something like this:
<ZTPlacementData icon3Doffset="0 0 1.25" icon3Dscale=".64" >
4. Add waterPlacement="true" tankPlacement="true"
5. You'll get this:
<ZTPlacementData waterPlacement="true" tankPlacement="true" icon3Doffset="0 0 1.25" icon3Dscale=".64" >
Making something float on water
1. Go to the main.xml
2. Look for: 'BFNamedBinder binderName="mainObj" '
3. You'll find something like this:
<BFNamedBinder binderName="mainObj">
<instance>
<BFPhysObj>
<BFActorComponent actorfile="entities\objects\props\Codename\Codename.bfm" activeSequenceName="Float_Idle" activeSequenceLoop="true" switch="0 5000 5001"/>
<BFGroundFitComponent heightOffset="0.0" >
<BFCollisionComponent grid="Bip01" />
</BFPhysObj>
</instance>
</BFNamedBinder>
4. Add floatOnWater="true" waterOffset="0.0" in the BFGroundFitComponent line
You'll get this:
<BFNamedBinder binderName="mainObj">
<instance>
<BFPhysObj>
<BFActorComponent actorfile="entities\objects\props\Codename\Codename.bfm" activeSequenceName="Float_Idle" activeSequenceLoop="true" switch="0 5000 5001"/>
<BFGroundFitComponent heightOffset="0.0" floatOnWater="true" waterOffset="0.0" >
<BFCollisionComponent grid="Bip01" />
</BFPhysObj>
</instance>
</BFNamedBinder>
Note: Sometimes BFGroundFitComponent is replaced by BFMultiGroundFitComponent. So if there's no BFGroundFitComponent you've to add floatOnWater="true" waterOffset="0.0" in the BFMultiGroundFitComponent line
Changing lifespans
1. Go to the .tsk
2. Look for 'lifespan'
3. You'll find these tasks:
<BFAITaskTemplate Name="Puberty" TaskDelayMin="60" TaskDelayMax="60" UniqueID="beargrizzly:Puberty">
<BFAICreateData>
<Subjects>
<BearGrizzly_Young/>
<Qualifiers_AND inWater_OR_onLand="true" lifespan="GE 5.22"/>
</Subjects>
<Targets>
<self/>
</Targets>
<Objects/>
</BFAICreateData>
<BFAIEvalData fixedScore="2000"/>
<BFBehExecTask>
<BFBehSendToken>
<BFAITokenList>
<BFAIToken Name="t_Age" GiveTo="subject" Timeout="59" Chance="50" Reconsider="true"/>
</BFAITokenList>
</BFBehSendToken>
</BFBehExecTask>
<BFAICompletionData/>
</BFAITaskTemplate>
<BFAITaskTemplate Name="Age_F" UniqueID="beargrizzly:Age_F">
<BFAICreateData>
<Subjects>
<BearGrizzly_Young_F/>
<Qualifiers inWater_OR_onLand="true"/>
</Subjects>
<Targets>
<self/>
</Targets>
<Objects>
<t_Age/>
</Objects>
</BFAICreateData>
<BFAIEvalData fixedScore="2000"/>
<BFBehExecTask>
<ZTBehMorph morphTargetEntityType="BearGrizzly_Adult_F" morphScale="true" morphPeriod="10" initScale="0.4"/>
</BFBehExecTask>
<BFAICompletionData/>
</BFAITaskTemplate>
<BFAITaskTemplate Name="Age_M" UniqueID="beargrizzly:Age_M">
<BFAICreateData>
<Subjects>
<BearGrizzly_Young_M/>
<Qualifiers inWater_OR_onLand="true"/>
</Subjects>
<Targets>
<self/>
</Targets>
<Objects>
<t_Age/>
</Objects>
</BFAICreateData>
<BFAIEvalData fixedScore="2000"/>
<BFBehExecTask>
<ZTBehMorph morphTargetEntityType="BearGrizzly_Adult_M" morphScale="true" morphPeriod="10" initScale="0.4"/>
</BFBehExecTask>
<BFAICompletionData/>
</BFAITaskTemplate>
<BFAITaskTemplate Name="Old" TaskDelayMin="60" TaskDelayMax="60" UniqueID="beargrizzly:Old">
<BFAICreateData>
<Subjects>
<BearGrizzly/>
<Qualifiers lifespan="GE 44.72"/>
</Subjects>
<Targets>
<self/>
</Targets>
<Objects/>
</BFAICreateData>
<BFAIEvalData>
<BFAIAttributeFloatMap lifespan="-100"/>
</BFAIEvalData>
<BFBehExecTask>
<BFBehPlaySet behSet="Sleep"/>
<BFBehSendToken>
<BFAITokenList>
<BFAIToken Name="t_Die" GiveTo="subject" Timeout="59" Chance="25" Reconsider="true"/>
</BFAITokenList>
</BFBehSendToken>
</BFBehExecTask>
<BFAICompletionData/>
</BFAITaskTemplate>
3. Every ZT2 year is 23.27 in the coding, so if you want an animal to reach puberty after 1 year and die after 5 years you'll get this:
<BFAITaskTemplate Name="Puberty" TaskDelayMin="60" TaskDelayMax="60" UniqueID="beargrizzly:Puberty">
<BFAICreateData>
<Subjects>
<BearGrizzly_Young/>
<Qualifiers_AND inWater_OR_onLand="true" lifespan="GE 23.27"/>
</Subjects>
<Targets>
<self/>
</Targets>
<Objects/>
</BFAICreateData>
<BFAIEvalData fixedScore="2000"/>
<BFBehExecTask>
<BFBehSendToken>
<BFAITokenList>
<BFAIToken Name="t_Age" GiveTo="subject" Timeout="59" Chance="50" Reconsider="true"/>
</BFAITokenList>
</BFBehSendToken>
</BFBehExecTask>
<BFAICompletionData/>
</BFAITaskTemplate>
<BFAITaskTemplate Name="Age_F" UniqueID="beargrizzly:Age_F">
<BFAICreateData>
<Subjects>
<BearGrizzly_Young_F/>
<Qualifiers inWater_OR_onLand="true"/>
</Subjects>
<Targets>
<self/>
</Targets>
<Objects>
<t_Age/>
</Objects>
</BFAICreateData>
<BFAIEvalData fixedScore="2000"/>
<BFBehExecTask>
<ZTBehMorph morphTargetEntityType="BearGrizzly_Adult_F" morphScale="true" morphPeriod="10" initScale="0.4"/>
</BFBehExecTask>
<BFAICompletionData/>
</BFAITaskTemplate>
<BFAITaskTemplate Name="Age_M" UniqueID="beargrizzly:Age_M">
<BFAICreateData>
<Subjects>
<BearGrizzly_Young_M/>
<Qualifiers inWater_OR_onLand="true"/>
</Subjects>
<Targets>
<self/>
</Targets>
<Objects>
<t_Age/>
</Objects>
</BFAICreateData>
<BFAIEvalData fixedScore="2000"/>
<BFBehExecTask>
<ZTBehMorph morphTargetEntityType="BearGrizzly_Adult_M" morphScale="true" morphPeriod="10" initScale="0.4"/>
</BFBehExecTask>
<BFAICompletionData/>
</BFAITaskTemplate>
<BFAITaskTemplate Name="Old" TaskDelayMin="60" TaskDelayMax="60" UniqueID="beargrizzly:Old">
<BFAICreateData>
<Subjects>
<BearGrizzly/>
<Qualifiers lifespan="GE 116.35"/>
</Subjects>
<Targets>
<self/>
</Targets>
<Objects/>
</BFAICreateData>
<BFAIEvalData>
<BFAIAttributeFloatMap lifespan="-100"/>
</BFAIEvalData>
<BFBehExecTask>
<BFBehPlaySet behSet="Sleep"/>
<BFBehSendToken>
<BFAITokenList>
<BFAIToken Name="t_Die" GiveTo="subject" Timeout="59" Chance="25" Reconsider="true"/>
</BFAITokenList>
</BFBehSendToken>
</BFBehExecTask>
<BFAICompletionData/>
</BFAITaskTemplate>
Changing amount of babies
1. Go to the .beh
2. Search for 'Birth' (Search for 'LayEgg' if the animal lays eggs)
3. You'll find this:
<Birth>
<subjects>
<Codename_Adult_F/>
</subjects>
<behaviors>
<BFBehRandomSet minPlays="1" maxPlays="2">
<randomSets>
<SpawnF weight="50"/>
<SpawnM weight="50"/>
</randomSets>
</BFBehRandomSet>
</behaviors>
</Birth>
4. minPlays="1" maxPlays="2" means the animal will get a minimum of 1 and a maximum of 2 babies per birth. Just change the numbers if you want to change the minimum or maximum amount of babies.
Editting pregnancy chance
1. Go to the .tsk
2. Search for: BFAIToken Name="t_Pregnant1"
3. You'll find this line:
<BFAIToken Name="t_Pregnant1" GiveTo="target" Timeout="-1" Chance="75"/>
4. Change the number behind Chance=.
Chance="100" means every mating will result in a pregnancy, Chance="50" means 50% of the matings will result in a pregnancy etc.