For the default values of RPG parameters, refer to the RPG Parameters page.
This is the formula for the derived stat DerivStat_ClothDirtyingSpeedKm
.
return 1000 / lerp(RPG.FullClothDirtyingOnZeroSpeed, RPG.FullClothDirtyingOnFullSpeed, surface.movementSpeedMult)
Note: surface.movementSpeedMult
is defined in gamedata.pak\Libs\MaterialEffects\SurfaceTypes.xml
.
return DerivStat_ClothDirtyingSpeedKm * distanceTraveled / 1000
if perkCount <= RPG.MinPerkPoints then
return min(perkCount, RPG.MaxPerkPoints)
end
return min(perkCount - RPG.MinLeftoverPerks, RPG.MaxPerkPoints)
return RPG.HerbGatherSkillToCount * sqrt(skillLevel)
return RPG.HerbGatherSkillToRadius * skillLevel
Tolerance is unrelated to minigame difficulty. If computedTolerance > appropriateTolerance
, the lock is considered too hard to pick and the minigame will not start. Since 2018, the game displays a "too hard to pick" notification when this condition is true
. If the values of RPG.LockPickingAppropriateTolerance
and/or RPG.ControllerLockPickingAppropriateTolerance
are negative, this condition will always be false
, allowing the player to start the minigame for locks beyond the player's skill level.
M = RPG.LockPickingToleranceMCoef
N = RPG.LockPickingToleranceNCoef
A = RPG.LockPickingToleranceACoef
K = RPG.LockPickingToleranceKCoef
computedTolerance = M - N * difficultyModifier - A * e ^ (-K * skill)
-- clamp computed tolerance between 0 and 1
if computedTolerance < 0 then
return 0
end
if computedTolerance > 1 then
return 1
end
return computedTolerance
Note: The computed tolerance is clamped between 0 and 1.
XPMulCoef = RPG.LockPickingSuccessXPMulCoef
XPDivCoef = RPG.LockPickingSuccessXPDivCoef
return XPMulCoef * (lockDifficulty + 1) / (XPDivCoef * skillLevel + 1)
if bWasLockedPicked then
return RPG.LockPickingStealthXP
end
return nil
return standardWeight * (1.0 - RPG.EquippedWeightSubWithWellWornPerk)