The game stores stats internally as signed int32 types, so you'll hit integer rollover if you try to go above 2,147,483,647.
Before that, the beneficial effects from stats are determined by some of the graphs in MEDIA/GRAPHS/STATS/. Two issues here:
One: The graphs use 32-bit floating point numbers. So we can assume that there's almost certainly an int-to-float cast performed somewhere along the line. 32-bit floats can represent numbers up to 3.402823466*10^38. However, they start running out of precision much, much sooner than that. They only have enough precision to exactly represent whole numbers up through 16,777,216. Beyond that, the whole numbers start rounding into each other. So, for example, if you had 16,777,217 Strength, it would get rounded down to 16,777,216 before getting put into the graph to calculate your damage bonus. The span of whole numbers that get rounded together doubles with every power of two.
Two: Some of the graphs are set to interpolate beyond the last defined point; others aren't. If a graph doesn't interpolate past the last defined point, that point is the highest output you can get, no matter how high the input.
Examples:
Damage bonus from Strength: interpolates
Damage bonus from Focus: interpolates
Crit damage Bonus from Strength: stops at 399.6% at 999 Strength
Block from Vitality: stops at 50.1% at 500 Vitality
Dodge chance from Dexterity: stops at 50.1% at 500 Dexterity
Crit chance from Dexterity: stops at 50.1% at 500 Dexterity
Armor bonus from Vitality: stops at 249.75% at 999 Vitality
Health bonus from Vitality: stops at 3596.4 at 999 Vitality
Of course, these are the vanilla graphs -- they can be easily changed by modding.
Finally, dodge, block, and critical damage are subject to hard caps for all sources taken together (75%, 75%, 500%), which can leave you in a situation where increasing an attribute has no meaning since you're already at the cap.
[edit: I misunderstood what you meant by "stat." The above answer applies to Strength, Vitality, Focus, and Dexterity, which are what most folks around here mean by "stats." As for health and mana, they're floats, so the absolute max is 3.402823466*10^38 and odd rounding behavior will set in above 16,777,216. I don't believe there is any cap for them.]
Torchlight 2 Rapid Respec - Putting the "hack" in "hack-n-slash" StashNinja - INFINITE Stash for Torchlight 2 NullMod - Play together in the same multiplayer game with different mods!
Comments
The game stores stats internally as signed int32 types, so you'll hit integer rollover if you try to go above 2,147,483,647.
Before that, the beneficial effects from stats are determined by some of the graphs in MEDIA/GRAPHS/STATS/. Two issues here:
One: The graphs use 32-bit floating point numbers. So we can assume that there's almost certainly an int-to-float cast performed somewhere along the line. 32-bit floats can represent numbers up to 3.402823466*10^38. However, they start running out of precision much, much sooner than that. They only have enough precision to exactly represent whole numbers up through 16,777,216. Beyond that, the whole numbers start rounding into each other. So, for example, if you had 16,777,217 Strength, it would get rounded down to 16,777,216 before getting put into the graph to calculate your damage bonus. The span of whole numbers that get rounded together doubles with every power of two.
Two: Some of the graphs are set to interpolate beyond the last defined point; others aren't. If a graph doesn't interpolate past the last defined point, that point is the highest output you can get, no matter how high the input.
Examples:
Finally, dodge, block, and critical damage are subject to hard caps for all sources taken together (75%, 75%, 500%), which can leave you in a situation where increasing an attribute has no meaning since you're already at the cap.
[edit: I misunderstood what you meant by "stat." The above answer applies to Strength, Vitality, Focus, and Dexterity, which are what most folks around here mean by "stats." As for health and mana, they're floats, so the absolute max is 3.402823466*10^38 and odd rounding behavior will set in above 16,777,216. I don't believe there is any cap for them.]
StashNinja - INFINITE Stash for Torchlight 2
NullMod - Play together in the same multiplayer game with different mods!
It's greatly appreciated!