* Fertility, Quantity Modifier: 100 %

Adda

Well-Known Member
Jun 23, 2022
186
18
54
Anyone know how to increase this stat?

* Fertility, Quantity Modifier: 100 %
 

Theron

Well-Known Member
Nov 8, 2018
3,589
1,373
44
I think it's effectively an unused statistic. I'm fairly certain that normal Fertility is used to determine quantity in applicable pregnancies.

Edit: It looks like the 'Broodmother' perk will increase it by 50%. Not entirely sure how to get it, though.
 
Last edited:

Animefan666

Well-Known Member
Sep 6, 2020
819
313
I think it's effectively an unused statistic. I'm fairly certain that normal Fertility is used to determine quantity in applicable pregnancies.

Edit: It looks like the 'Broodmother' perk will increase it by 50%. Not entirely sure how to get it, though.
I don't think that perk is actually in the game. You'd have to save edit it in.
 

Theron

Well-Known Member
Nov 8, 2018
3,589
1,373
44
I don't think that perk is actually in the game. You'd have to save edit it in.
It can be added in Flash with the Save Editor. I haven't tried consoling it in JavaScript.
I don't know of any legitimate in-game way to get it. I only mention it for completeness.
 

OrangeBurner

Well-Known Member
Mar 13, 2022
305
72
Anyone know how to increase this stat?

* Fertility, Quantity Modifier: 100 %
Fertility, Quantity Modifier's value is determined by this function:
JavaScript:
pregnancyMultiplier()
{
    let bonus = 0;
    bonus += this.perkv1("Broodmother");
    return (this.pregnancyMultiplierRaw + this.pregnancyMultiplierMod + bonus);
}
So, you can increase it with the Broodmother perk.
That perk was gotten from having sex with a lapinara Female many times.
But it is now disabled (Even if you activate lapinaras in the cheat menu you still cannot get the perk since the reference to its function is now commented out).
So, the only way to get it now is via the console (or save editor):
pc.createPerk("Broodmother", 0.5, 2, 0, 0, "Increases the maximum gestation quantity of pregnancies, where possible.");

// Perk: Broodmother
// v1: Mother’s pregnancyMultiplier() bonus.
// v2: Pregnancy’s pregnancyQuantity multiplier.
// v3:
// v4:
(Taken from its commented out function)
Currently, they is no way to legitly increase pregnancyMultipilerRaw or pregnancyMultiplierMod (Only console and save editor)


What pregnancyMultipiler() actually does is increases the average amount of babies you have in a single pregnancy (To a certain limit).
What Broodmother's v2 value does is increase that physical limit of how many babies you can possibly have.
Heres the code for it:
JavaScript:
static defaultOnSuccessfulImpregnation(father, mother, pregSlot, thisPtr, qtyEdit = null) {
    if (thisPtr.debugTrace) Log(LogCategory.Player, LogDetail.Log, "defaultOnSuccessfulImpregnation handler called");

    // Setup the pregnancy data for the Mother
    const pData = mother.pregnancyData[pregSlot];

    if (thisPtr.handlesType == null) {
        Log(LogCategory.Creature, LogDetail.Warning, `BasePregnancyHandler for type ${this._handlesType} doesn't exist.`);
    }

    pData.pregnancyType = thisPtr.handlesType;
    if (thisPtr.debugTrace) Log(LogCategory.Player, LogDetail.Log, "Knocking up " + mother.short + " with pregnancy type " + pData.pregnancyType);

    pData.pregnancyIncubationMulti = (mother.pregnancyIncubationBonusMother() + father.pregnancyIncubationBonusFather()) / 2.0;
    if (thisPtr.debugTrace) Log(LogCategory.Player, LogDetail.Log, "Calculated incubation acceleration multi as " + pData.pregnancyIncubationMulti);

    pData.pregnancyIncubation = thisPtr.basePregnancyIncubationTime;
    if (thisPtr.debugTrace) Log(LogCategory.Player, LogDetail.Log, "Total incubation time as " + pData.pregnancyIncubation);

    // Define limits
    const quantityMin = thisPtr.pregnancyQuantityMinimum;
    let quantityMax = thisPtr.pregnancyQuantityMaximum;

    // Limit bonuses
    let qtyMultOverride = 1;
    if (mother.perkv2("Broodmother") > 1) qtyMultOverride *= mother.perkv2("Broodmother");
    if (qtyMultOverride > 1) quantityMax = Math.max(quantityMax, Math.round(quantityMax * qtyMultOverride));

    // Calculate the *number* of "children", if applicable
    let quantity = rand(quantityMax + 1);
    if (quantity < quantityMin) quantity = quantityMin;

    // qtyEdit is Array used to the children calculations
    // 0: Applies extra multiplier to quantityMax (after fertility calculation).
    // 1: Minimum fertility threshold before adding extra children.
    // 2: Increment to count through fertility loop.
    if (qtyEdit != null && qtyEdit.length > 2) {
        const limit = Math.min(qtyEdit[1], 100);
        const inc = Math.max(qtyEdit[2], 0.1);
        let cnt = 0;

        // Always start with the minimum amount of children.
        quantity = quantityMin;

        // Unnaturally fertile mothers may get multiple children.
        for (let i = mother.fertility(); i >= limit; i -= inc) {
            quantity += rand((quantityMax - quantityMin) + 1);
            // To prevent overloop crashes.
            cnt++;
            if (cnt >= 100) break;
        }
    }
    if (qtyEdit != null && qtyEdit.length > 0 && qtyEdit[0] > 1) quantityMax = Math.round(quantityMax * qtyEdit[0]);

    // Quantity bonuses
    const fatherBonus = Math.round((father.cumQ() * 2) / thisPtr.definedAverageLoadSize);
    const motherBonus = Math.round((quantity * mother.pregnancyMultiplier()) - quantity);

    quantity += fatherBonus + motherBonus;

    if (quantity < quantityMin) quantity = quantityMin;
    if (quantity > quantityMax) quantity = quantityMax;

    pData.pregnancyQuantity = quantity;
}