Category:Detection
Detection is Oblivion's stealth mechanic. The concept isn't complicated: every actor has a degree of awareness of every other nearby actor, called a detection level. If this detection level is above a certain threshold then the searching actor (the "detector") is fully aware of the hiding actor (the "target"). The detector can then attack, offer a greeting, report the target's crimes, etc. If the detection level falls below the threshold again, the detector "loses" the target and can no longer interact with it.
Quite a few factors go into calculating detection levels. They fall into three basic categories: Sight, Sound, and Sneak Skill. Sight factors basically describe how well the detector can see the target, and only matter if the detector actually has a direct line-of-sight. Sound factors measure how much noise the target is making, from movement and from being in combat. Skill factors measure the relative sneak skill of the two actors. In all three cases, the distance from the detector to target plays a very important role. Whether or not the target has attacked the detector can make an enormous difference as well.
The complete list of factors and their values is below. Note that each factor is given a 'shorthand' name for reference other formulas. Also note that many of the factors are conditional - they take a "default" value some times and a more complicated value at others. Some formulas even have conditional parts - an extra multiplier or additive bonus that is used only under certain circumstances. These conditions are given as clearly as possible in the formulas; just be sure to read them carefully.
fSneakMaxDistance * (fSneakExteriorDistanceMult, for exterior cells) | ||
1 - (distance between detector and target) / maxDist | ||
fSneakSoundLosMult if detector has line of sight to target
1.0 otherwise | ||
0.0 if target is under water
1.0 otherwise | ||
fSneakRunningMult if target is running
1.0 otherwise | ||
fSneakBootWeightBase + fSneakBootWeightMult * (target boot weight) if target is moving 0.0 if target is stationary | ||
fSneakTargetInCombatBonus if target is in combat
0.0 otherwise | ||
fSneakSoundsMult * distMult * losSound * swimSound * (running * moving + combat) | ||
1.0 if detector has line of sight to target
0.0 otherwise | ||
fSneakSwimmingLightMult if target is under water
1.0 otherwise | ||
fDetectionSneakLightMod + (light level on target) * (fDetectionNightEyeBonus, if detector has Night Eye)
Light Factor is capped at 100 | ||
0.0 if target has Invisibility
1.0 - (target's Chameleon level, max 100) / 100.0, otherwise | ||
1.0 - (detector's Blindness level, from "Blindness" stat) / 100.0 | ||
fSneakSleepBonus if detector is sleeping
fSneakLightMult * distMult * losSight * swimSight * light * invis * blind, otherwise | ||
fSneakSkillMult * [(detector's Sneak skill) * distMult - (target's Sneak skill, if target is sneaking)] | ||
-100.0 if invis >= 100.0 (i.e. target has Invisibility or 100% Chameleon) 0.0 if target didn't attack detector -AND- (distance between target and detector) > maxDist fSneakBaseValue + (fSneakTargetAttackBonus, if target attacked detector) + Overall Sound Bonus + Overall Sight Bonus + Overall Skill Bonus, otherwise |
If the Overall Detection Level is greater than a certain threshold, the detector can becomes aware of the target. The thresholds are:
fSneakUnseenMin | all actors that are unaware of target
all non-hostile actors |
fSneakLostMin | hostile actors that are searching for target |
iAICombatMinDetection | hostile actors that are in combat with target |
A final note: The target-is-in-combat bonus is fairly significant. Combined with the much lower combat threshold, this can make it very difficult for an actor to return to hiding once a hostile actor has seen them.
See Also
There are 20 articles in this category.
This category currently contains no pages or media.