My ARK Taming Calculator calculates the food, time and narcotics for taming the various creatures in ARK. This page is to hold any comments on the calculator and provide some background. This page was written as of V190 of ARK. Updated as of V234. Implementations of all the calculations discussed below can be found in the Taming Calculator.
Source code can be found here. Commits now serve as the changelog.
- Disallow invalid entries in all fields
- Add tooltips
- Determine steps to make the code work when downloaded
- Add new dinos / KO methods / foods
Data Many of the figures required for the taming calculation are available via the dev kit. Instructions for acquiring the dev kit are here. Once in the dev kit, some useful numbers can be found by clicking the 'PrimalEarth' folder, filtering to blueprints, and entering the dino's (internal) name in the search bar, as seen in the image on the right. A list of the internal names can be found in PrimalEarth->Dinos, as each creature has a folder in that folder.
In the image three blueprints are selected, these are the ones relevant to taming calculation. The first is [Creature]_Character_BP. This blueprint contains information about the creature's taming affinity. Filtering the blueprint's properties by the term 'aff' will narrow the list down to the relevant values. "Required Tame Affinity" is the base level of affinity required for a creature of this type at level 0. "Required Tame Affinity Per Base Level" is the affinity gain per level of the creature (here "Base Level" presumably refers to the level before taming, as creatures now gain levels when tamed). A level 1 creature requires the initial affinity plus one level of the per-level affinity. You will also see references to Tame Ineffectiveness, which would presumably be used for taming effectiveness calculations, and "Waking Tames" which is the new non-violent taming method.
Next up is DinoCharacterStatusComponent_BP_[Creature]. This blueprint contains details about the creatures food consumption and torpidity rates. Filter by 'food' to get the food related values. The 'food' value at the very top looks like the creatures base food amount - the total food isn't of interest in taming (starving is generally not a risk taming creatures face) so I haven't done anything with it. The numbers we want are further down - "Base Food Consumption Rate" and "Prone Water Food Consumption Multiplier". The former is exactly what it says it is - the creatures food consumption rate. It says "Base", but it doesn't seem to vary by level (at least not when taming). This is a very small value - presumably so that tame dinos last a long time without food if they aren't moving around. The latter value is a multiplier which, despite the odd name, is applied when the dino is unconcious and being tamed. Mutliply these two numbers to get the actual food consumption rate per second while taming. Both of these numbers, and thus the resulting taming food consumption rate, seem to be fixed per-species at the moment.
Staying within the same blueprint, we can filter by 'torp' to highlight some torpor related values. The very first value is simply "Torpidity", and is the base torpor of the creature at level 1. Note that this is at level 1, not 0 as with the affinity discussed above. Next is the "Recovery Rate Status Value" which is part of the torpor reduction rate; I am not sure what this value is for on its own, perhaps the torpor reduction rate when tamed. This value seems to be -0.1 for all creatures. Skipping down to near the bottom we find "Knocked Out Torpidity Recovery Rate Multiplier". As you might guess, this is a multiplier for the torpor reduction rate when the creature is knocked out (e.g. when taming). Multiply this by the -0.1 from above to get the actual base torpor reduction rate. Note that this is the base rate, there is an increase in the torpor reduction rate per level, which will be discussed later. The final value we want from this blueprint is "The Max Torpor Increase Per base Level", which is the percentage of the creature's base torpor it gains per level after level 1 (as the base value is for level 1). This value seems to be 0.06 (i.e. 6%) for all creatures. Thus the torpor at a given level is the base torpor plus 6% of the base torpor times one less than the creature's level.
The final blueprint has a name like DinoSettings_[Type]_[Size]_[Creature], though it can vary a bit. In here you can find data on the affinity gained when each possible food is consumed. Drill down into "Food Effectiveness Multipliers" and "Extra Food Effectiveness Multipliers". The type of food can be found in "Food Item Parent", and the value we are interested in is the "Affinity Override", which is the amount of affinity gain when this type of food is eaten. For common foods the gain is the same across almost all creatures, though there are some exceptions. The "Food Effectiveness Multiplier" itself multiplies the amount of food given by the food type, which is important for taming calculation as it affects how fast the food is eaten. Look up the Food Item Parent and filter on status to get the "Use Item Add Character Status Values" tree, in which one will have a "Status Value Type" of "Food", meaning it affects food, and a "Base Amount to Add" which will tell you the base amount of food give, which is multiplied by the creature's effectiveness multiplier for that food.
Above I discussed where to find the base torpor and how to calculate the torpor per level of a creature, as well as the base torpor rate. There is a wrinkle in the torpor rate calculation however, as the rate increases with level, but not quite linearly. Long story short, I stared at some spreadsheets for a few hours after knocking out five summoned ankylos in singleplayer and recording their actual torpor reduction rates, and eventually realised that the relationship between level and torpor-recovery-rate-per-level resembled a power function. A bit of Excel goal-seeking gave me the constants in the function, which appear to be the same for all creatures at all levels. My data points are not precise, as the only way I know to measure torpor rates in game is with a stopwatch, and tuning the power function using different in-game tests results in slightly different exponent/coefficient pairs, each of which is most accurate on the tests they were tuned on, and slightly less accurate than the rest. So, this approach is only an approximation, however it has gotten me the most accurate overall results.
The rate increase per level can also be very closely approximated with a linear relationship. Taking my level/rate curve for a Spino (since I don't have access to the actual relationship), and minimising the RMSE between it and a linear function of level, I get an increase per level of about 0.01819, or about 1.8%, of base torpor rate. In the image to the right you can see a graph of the linear function, power function, and some data points from spinos I abused in singleplayer (many spinos were harmed in the making of this chart). I would expect it to be a linear function, as it just makes sense, and most things in the game are, but I get results closer to my in-game readings with the power function, so that is what I use in the calculator.
Narcotics calculation is now easy. You can calculate the total time taken to tame, and the rate at which torpor is lost. One times the other is the total torpor required, divide by the amount given by narcotics (40) and you have the number of narcotics.
Not quite. Narcotics not only increase torpor by 40, they also pause torpor reduction while applying the increase. Otherwise they would never actually increase the torpor by 40 in practice, as the torpor would have dropped further by the time the narcotic effect finished. Some empirical investigation revealed that narcotics add 40 torpor over the course of 8 seconds, during which torpor decrease is paused. If more narco is used, another 8 seconds is added for each narco. Furthermore, at the end of the narcotic effect, the torpor reduction remains paused for one more second, during which the torpor value stays put. This one second interval occurs regardless of how many narcotics were applied together. So, one narcotic gains you 9 seconds of no-torpor-reduction (8 to apply the effect plus 1), while two narcotics used at the same time (i.e. second narcotic applied while torpor is still rising due to the first) gains you 17 seconds of no-torpor-reduction (8 times 2 narcotics effects, plus 1 at the end).
So, the actual value of a narcotic is 40 plus the creature's torpor reduction rate times 8. I don't factor the extra second at the end into the calculations as I don't figure it is worth people's time to plan out exactly how many narcos they will apply at the same time. If they stagger them enough that the extra seconds save them some narco, yay them.
When calculating for non-violent taming, which is referred to as "waking tame" in the dev kit, all calculations regarding torpor can obviously be ignored. The other calculations start from the same base, there are just some additions to make. For food consumption rate, the initial rate is calculated as before, but now it must also be multiplied by "Waking Tame Food Consumption Rate Multiplier" from DinoCharacterStatusComponent_BP_[Creature], which makes creatures being tamed by hand feed faster. The affinity gain from food must also be adjusted, being multiplied by "Waking Tame Food Affinity Multiplier" from [Creature]_Character_BP. There are some other values which don't directly affect calculation in the same blueprint: "Waking Tame Feed Interval" is the minimum amount of time between feeds, assuming the creature is hungry enough to eat (hunger is the limiting factor on the Ichthy unless you let it starve a bit), and "Waking Tame Allowing Feeding Food Percentage" which sounds like it prevents you from feeding unless the dino is below a certain hunger threshold, and indeed in my testing I found that after starting the tame (at which point the ichthy it at full food) there is an abnormally long delay before I can feed it the second time, presumably due to this property. Since the stats of wild dinos cannot be predicted just by level, this delay cannot be calculated precisely in advance.
Of course, since creatures being fed by hand do not eat automatically, we can only calculate the minimum time to tame. If the creature is not fed on time, or runs away when you try to feed it, it will of course take longer (although you can potentially 'catch up' over the course of a long tame due to the feed interval outpacing the food drop rate).
Taming effectiveness drops every time the creature eats an item of food. The drop rate is exponential, i.e. the rate at which effectiveness drops starts high and falls off very quickly, levelling off as you reach low levels of effectiveness. This suggests that the drop in effectiveness at each step is related to the current effectiveness . A quick test by giving freshly knocked out creatures only one piece of food shows that the drop in effectiveness also depends on the food and on the type of creature. However, the level of the creature does not matter. In [Creature]_Character_BP we find a value called "Tame Ineffectiveness by Affinity", which obviously links the affinity of the food item eaten with the amount of effectiveness lost. By testing with freshly knocked out creatures, which start at 100% effectiveness, we can eliminate the relation to current effectiveness, revealing that the effectiveness drop on any given creature is proportional to the amount of affinity the food item gives, and that the ineffectiveness multiplier is what makes that proportion different per creature. The rate, at 100% effectiveness, is actually the multiplier divided by the food's affinity value, times 100 to bring it to the correct order of magnitude. Now we must factor in the decay of the rate due to the drop of the actual effectiveness value. Since the rate appears exponential, we can try multiplying by the square of the current effectiveness, which gives us approximately the correct effectiveness/rate curve. To the right you can see a graph of actual effectiveness droprate data points for a Carno and Rex with different foods, and the computed curve for Carno/Raw Meat. This is the most inaccurate curve this formula generates, and it is still a fairly close fit. It also overestimates rather than underestimates the rate, so if the actual effectiveness differs it will be higher rather than lower.
It may seem that in order to calculate the effectiveness for a tame we would need to know the order in which food is given, for example it is far better to start a tame with Prime than with Raw meat. However, this is not actually the case. The graph to the right charts the effiency over the course of a tame using the above formula for a certain creature being given a fixed amount of Prime Meat, Prime Meat Jerky and Raw Meat, however the order is reversed for one of the curves. It turns out that they converge at the same effectiveness. This is because while better foods hold the creature at high effectiveness for longer if used early, being at high effectiveness for longer means spending a longer time with a high rate of effectiveness drop. Conversely if you use lower quality food at the start, you lose effectiveness quickly, but due to this the effectiveness drop rate lowers early as well, so the higher quality food delivered later is even more effective at minimising the drop rate.
Finally, the extra levels gained from effectiveness are currently 50% of the creatures untamed level times the final effectiveness. This is presumably a result of the value in DinoCharacterStatusComponent_BP_[Creature] called "Max Taming Effectiveness Base Level Multiplier", which is set to 50% for all creatures I have looked at. There is another multiplier in this blueprint called "Taming Ineffectiveness Multiplier", but this always seems to be set to 1 and so has no effect on anything.
Knocking Creatures Out
Creatures are typically knocked out by firing tranq arrows at them. To determine in advance how many we will need, we first need to know if the narcotic effect applies as it does with forcefeeding narcotics, and the amount of torpor applied by the darts. The answer to the first question, after some testing, is simply yes. In the case of tranq arrows the torpor is applied over five seconds regardless of the amount, and the one second pause at the end doesn't seem to happen, but other than that it is the same. If you know how many tranq arrows are needed to knock the creature out, you can just fire them off as fast as possible and then wait for the torpor to take effect. The difference in configuration between narcotics and tranq arrows (8 seconds vs 5) can be found in PrimalItemConsumable_Narcotic and DmgType_ProjectileWithImpactFX_Tranq. Filter each by "Status Value" and you will find the details of the torpor effect application, where narcotics are set to apply 40 at 5 per second (i.e. 8 seconds), and the tranq arrow damage type applies a variable amount over 5 seconds.
To find the torpor a weapon will do to a creature, we need the weapon and the damage type. Some obvious filtering will get you the weapons - "tranq" for anything involving tranquilizers, "club" for the club, etc. For creatures you want the Character BP discussed previously. For projectile weapon calculations, the projectile itself is considered the weapon, so there is no need to look up longnecks or bows, unless you want to find out the name of the projectile type, but the names are fairly self-explanatory anyway. Filtering the weapon's blueprint by "damage" will get you the damage value and damage type - exactly how this appears depends on the weapon type. In ProjArrow_Tranq_Bolt (tranq arrows from a crossbow) it is "Direct Damage" and "Direct Damage Type", for "WeapStoneClub" (the club) is it "Melee Damage Amount" and "Melee Damage Type". For creatures, you will find an AI section containing "Attack Infos" which will give the damage and damage type for each type of attack the creature has. The base damage done by the weapon/creature can also be affected by two values - the melee damage and the weapon damage. When these apply is mostly common sense - creatures only use their melee damage as they aren't really a weapon - bows don't use melee damage but do use weapon damage - clubs use both. In all damage type blueprints there are two relevant multipliers: "Damage Torpidity Increase Multiplier" and, inside the "Damage Character Status Value Modifiers" entry with "Value Type" "Torpidity", "Damage Multiplier Amount to Add". Both of these multipliers are applied seperately to the base damage done by the weapon/creature, and the two results are added to get the torpor applied. Thus the torpor applied by anything is always in direct proportion to the damage done, and the proportion itself only varies between weapons/creatures.
The torpor added in "Damage Character Status Value Modifiers" can be added over time as with a narcotic - and in some cases will stack if another hit lands while the previous torpor effect is still going (e.g. bows), while others will not (e.g. scorpion). This is irrelevant for calculation however, as the total number of hits doesn't change, it simply means people must know for each weapon/creature whether they can stack the hits or not. This may be controlled by "Limit Existing Modifier Description to Max Amount", which is set to 100 on types which don't stack, and set to 0 on those which do, but I have not checked throrougly.
Next, we know that creatures can take extra damage if you hit weakspots such as the head. Since torpor is calculated off the damage of the weapon, these weakpoints also affect torpor. In [Creature]_Character_BP we can find the values describing these weakpoints by filtering on the term "Damage". The the "Damage" section we will find "Bone Damage Adjusters", which control damage multiplication based on what part of the creatures skeleton was hit. You can open the creature's "Skeletal Mesh" to get a visualisation of where these points are, but in general the names make it pretty obvious. When calculating torpor, the location the arrow hits and the multiplier for that area (if any) must be factored in.
Creatures also have damage multipliers for incoming damage types. These are found in two locations - in the Character BP and in the DinoSettings BP. Both can be filtered by 'damage' to bring up the relevant sections. In the Character BP, the "Damage Type Adjusters" tree contains an entry for each damage type with a multiplier - the only multipliers relevant to knocking out you are likely to see here are multipliers to projectile weapons on fliers. In DinoSettings you will see the larger "Base Damage Type Adjusters" which contains multipliers for a number of damage types, at time of writing the only relevant ones which appear are Melee_Torpidity_StoneWeapon (club), Melee_Human (fists) and Melee_Dino_Herbivore (Pachy). All of the multipliers in both BPs apply to incoming damage and must be taken into account when calculating the torpor done. Importantly, these multipliers reference ancestor damage types, not the exact damage types you will see on knockout weapons/creatures. The multipliers actually apply to the named damage type or any descendant of that damage type. By going to a damage type and using the "Find Parent" button in the top right corner, you can trace your way up the tree of damage types to see what has what ancestors. All of the ancestor damage types must be taken into account as, for example, the club damage type has the ancestors HighTorpidity_StoneWeapon and Melee_Human, which means that damage from the club is actually affected by two multipliers on most creatures.
Finally, one small note is that while the Carno has a damage multiplier for its head, the bones are not correctly named in the bone damager adjuster fields so, intentionally or not, there is actually no multiplier for Carno headshots. I have not checked if this inconsistency appears elsewhere.
(Old, see git commits for more recent changes)
Added Allosaurus and Pelagornis with devkit figures
Added diplodocus with devkit figures
Added Lystrosaurus and Arthropluera with devkit figures
Added Manta, updated Dire Bear with devkit figures
Knockout calculator now remembers settings between sessions
Added Dire Bear estimate
Added Rhino, Dunkleosteus
Fixed Procoptodon torpor
Fixed Mosasaur effectiveness
Added Terror Bird
Fixed caching issues
All new narcotics timing code, now supports multiple narcotics types
Starve timer now controls the tame details summary timer
Slimming down and improvement of the UI - checkboxes become buttons etc
Help removed due to being hopelessly out of date
Fixed dung beetle calculation
Abbreviated text on knockout-table-summary
Fixed some fields trying to force integers when floats are allowed
Updated text on this page with new info on food value calculation and knockout calculation
Added Gallimimus, Dung Beetle, Dimetrodon from dev kit data
Fixed Oviraptor dodo egg time
Added all missing knockout methods
Added table summaries for hidden tables
Added new searchable selects
Added show/hide table animations
Vastly improved mobile usability
Reduced alarm volume
Added donate button link
Added Oviraptor, Procoptodon from dev kit data
Updated Compy, Penguin, Angler and Giganoto from new dev kit data
Added Compy, Penguin and Angler estimates
Fixed an error with giganoto numbers based on feedback/testing - devkit appears to be out-of-date on this, so it's labelled an estimate again
Fixed an issue with the page title feature and search engines
Added Giganoto dev kit values
Added spider and bat (untested, straight out of dev kit)
Removed second gigantopithecus entry, single entry is now dev kit values with one modification to being times in line with reports
If narcotics are currently in effect, torpor alarm will not sound and text will not turn red
Page title is now creature level and name for easier multi-tab tracking
Current torpor and food are now integer displays for easier editing
Added testing-based Giganotosaurus figures.
Devkit based quetzal and mosasaur added.
Added testing-based Quetzal figures.
Combined several pairs of taming details rows into single rows
Hid several taming details which are not generally needed - can be made visible by ticking a checkbox
Added alarms to narcotics and starve timing
Landing page no longer caches, so updates should be spotted by the browser automatically
Removed Meat and Meat Jerky, combined cooked and jerkied prime meat into one entry, to reduce food list for carnivores
Added testing-based figures for the Dire World, Beelzebufo and Megaloceros
15-08-01 - 15-09-27
Written by Crumplecorn
Last Updated 01/08/2015