← Overview

Condition Value Calculator

Exactly per ConditionExtensions.GetConditionValueFromLevel(...) (decompiled, full ConditionEffect switch + ConditionID fallback). Pick a condition, set level & multiplier → value. The in-game value is one point in the ± range from the per-roll deviation 0.9–1.1.

Condition

ConditionEffect:

Inputs

Level (= areaBase + rarity)
0
level per LevelScaling.GetLevelFromAreaLevelAndRarity(areaLevel, rarity). For an item the prefab level field is what actually matters; areaLevel only feeds this helper.
isArmor forces valueDivider=1 for the armor-type effects (MaxHealth, Armor, MaxMana, the *AttackSpeed effects, MagicBarrier, IncreasedManaRegen). don't calculate values from level = item flag dontCalculateValuesFromLevel=1: the in-game value is the literal you author, level scaling is skipped. isNegative / isTemporary / isEnemy are taken from the condition's JSON (not enemy/temporary for equipment).

Result

base num (pre-multiplier)0
valueDivider used1
value @ dev 1.00
stored ConditionData.value (± range, dev 0.9–1.1)
0
range:
displayed in-game (1:1)0

Formula tail (from the code)

Source: ConditionExtensions.cs:250-1133 (GetConditionValueFromLevel) + helpers (GetMiningDamage / GetApplyBurning / GetChanceToApplyPoison / GetRadioactiveDamageOverTime); per-roll deviation from LevelToConditionValues (random.NextFloat(0.9f,1.1f)). Rounding = round-half-to-even (Unity math.round). showDecimal from ConditionsTable.json controls the in-game display factor (true → value÷10). Conditions flagged no level formula hit the engine's warn path (num=0 → clamps to 1 for a positive multiplier).