Breeding Calculator

My ARK Breeding Calculator calculates timings and food requirements for raising baby creatures in ARK. This page is to hold any comments on the calculator and provide some background. This page was written as of V224.2 of ARK. Implementations of all the calculations discussed below can be found in the Breeding Calculator.

Source code can be found here. Commits now serve as the changelog.

To Do:

  • Food quantities by trough as well as by stack
  • Add fish meat?
  • Update below text with new food rate calculations
  • Add all the new dinos

Dev Kit

For a primer on finding data in the dev kit, see my Taming Calculator page. For breeding, the relevant blueprints are [Creature]_Character_BP, DinoCharacterStatusComponent_BP_[Creature] and, for creatures which lay eggs, PrimalItemConsumable_Egg_[Creature]_Fertilized. To get the basic timings for breeding, we can filter by 'baby' in [Creature]_Character_BP. The relevant values are Baby Age Speed, which seems to be constant across all creatures, and it's multiplier Extra Baby Age Speed Multiplier. To get the total time taken for the baby to mature in seconds, divide 1 by the product of these values. Baby Age Speed represents progress per second, with 1 being complete, so we multiply the speed by the corresponding multiplier, and then divide 1 by the result to get time taken in seconds. Gestation time works the same, but using the Baby Gestation Speed and Extra Baby Gestation Speed values. Note that even non-mammals have the gestation values, they simply aren't used.

For egg-laying creatures we must instead look in PrimalItemConsumable_Egg_[Creature]_Fertilized. The egg incubation seems to be bolted on to the durability mechanic, to to calculate the incubation time we filter by 'durability' use the values Egg Lose Durability Per Second and Extra Egg Lose Durability Per Second Multiplier. We can see from Initial Value Constant a little above that this value starts at 100, as in 100%, rather than the 1 used by the other timings, so here we divide 100 by the product of our speed values to get the time taken in seconds.

Food rates are the next item of interest. In DinoCharacterStatusComponent_BP_[Creature] we can filter by 'baby' to find Baby Dino Consuming Food Rate Multiplier. This determines the rate at which babies consume food, although I am not completely sure of the formula just yet, so I am using my own constants for the maximum and minimum baby food consumption rates for each creature in the current implementation.

Changelog

(Old, see commits for recent updates)

16-01-22
Added Dodo, Oviraptor

15-11-23
Initial Version

Comments

I had noticed that when there are long offline periods the calculator is wrong but when you are present it is correct. My theory is that Ark servers behave in an unhelpful way when a map zone/area is offline and then resumed.

What I believe happens normally is that with a player in the area, all the dinos are updated each tick, calculating their lost food, if there is room for more food and then if there is food to eat. That same tick, spoil timers are updated and if stuff expires it is changed to spoiled or removed from an inventory. All this behaviour matches the calculator as well as far as I can see.

What I believe happens when an area of the map or a whole server are left in stasis (no players in render distance) is very different. I have entered some numbers into a spreadsheet that seem to correlate with what I am about to describe. When an area first comes into render after a period of stasis the server loads in all the dinos, all the buildings and then starts to perform catch up calculations. The order of calculations being:
1) Calculate spoilage of food and items, turning to spoiled food or removing. Perform this as a one-off calculation of X minutes ago this food was 20 stacks of meat, in X minutes 10 stacks have spoiled.
2) Calculate the total food loss of every creature. Perform this as a one-off calculation of X minutes ago this creatures food was at Y units and it will have needed a further Z units of food. Y - Z gives a total food to fulfil.
3) Finally, check if the available food in the area is enough to cover the total demand. If it is not, start working out how long ago a creature was starving and being adding damage (often this kills the creature).

This catch-up calculation being done in a batch means that instead of a creature taking in food over time and the spoil happening over time it is done in one hit with much higher total food needed.

A short thank you for continuing to keep the Ark Breeding Calculator up, accepting updates and generally helping the wider community. My other half and I have used it extensively since coming to Ark a year ago. It has worked brilliantly and taken much of the stress out of guessing how much we might need to feed creatures we are raising.

Pages