Detection
This article has been bylined by a contributor. Current rules do not allow bylines in mainspace articles, but articles written before August 2007 may have been bylined prior to the rules. If you are the original author, please comment on this in the Talk page.
If you are not the bylined author, please treat this article with respect. While this is a Wiki and this article is considered open for editing, courtesy is expected. If at all possible, please contact the bylined author about any changes you would like to make.
As always, see the Edit History to see who has contributed to the page, and use the Talk page if you have any questions regarding its content.
This article has been marked by editors or authors as incomplete. Please see the Talk page for details. Discussion and collaboration can improve an article and lead to a better Wiki.
ON DETECTION by Jonathan W. Edwards A.K.A. SundayScour
- ALL OF THE ORIGINAL DATA FOR THIS ARTICLE CAME FROM "The Elder Scrolls Construction Set Wiki"
http://cs.elderscrolls.com/constwiki/index.php/Category:Detection
- THE COMPILATION OF DATA AND SYNTHESIS OF EQUATIONS ARE MY OWN
- PLEASE CORRECT IF YOU *KNOW* SOMETHING I'VE SAID IS WRONG!
- NONE OF THIS WORK HAS BEEN TESTED "IN ENGINE".
- HOWEVER, KNOWING HOW GAME MECHANICS WORK FOR MORROWIND AND THE NAMES AND VALUES OF THE VARIABLES THE FOLLOWING HYPOTHESIS SEEMS TO MAKE SENSE
- DEFAULT VALUES FOR ALL VARIABLES ARE GIVEN AT THE END
Definitions
- The actor who is sneaking = sneaker
- The actor who is detecting = detector
- The detection score of the actor who is sneaking = sneakers score
- The detection score of the actor who is detecting = detectors score
- First of all it should be noted how the detection process is initiated.
- Each NPC actor initiates detection against another actor who passes or fails.
- If the detection is against you, you may or may not be sneaking.
- In other words, there are no "Sneak success rolls" only "Detection success rolls".
- In Oblivion there are two equations that have to do with detection.
- The first is simple and if detected, a warning is communicated.
- This is considered "being noticed", and the detector is considered "aroused".
- The second detection equation is more complex and if detected the detector has seen the sneaker and can use the sneaker as a target for its action routines.
- The sneakers side of the equation is the same in both cases, however the detectors mathematical expression is different in each case.
Equation One: Noticing
- This equation is only used if detector has not already seen the sneaker and is not aroused.
- If sneakers score is GREATER than detectors, the sneaker is noticed and a warning is issued.
- (i.e. "Who goes there?" or "What was that?" or "Did you see something?")
T H E S N E A K E R:
- sneakers score = (same as below)
T H E D E T E C T O R:
- detectors score = FSneakNoticedMin
Equation Two: Seeing
- This is the important equation with regards to sneaking around without being attacked.
- If sneakers score is GREATER than the detectors score, the detector sees the sneaker and the sneaker is available as a target in the detectors actions.
T H E S N E A K E R:
- sneakers score = BASE + {Distance scaler * SKILL} + {Distance Scaler * LIGHT} + {Distance scaler * SOUND}
- simplified to
- sneakers score = BASE + Distance scaler * {SKILL + LIGHT + SOUND)
- where:
- BASE = FSneakBaseValue + (FSneakSleepBonus OR Zero) + (FSneakTargetInCombatBonus OR FSneakTargetAttackBonus OR Zero)
- Use "FSneakSleepBonus" if detector is asleep
- Use "FSneakTargetInCombatBonus if Sneaker is in combat but NOT WITH Detector
- Use "FSneakTargetAttackBonus if Sneaker is being attacked by detector
- Distance Scaler = Distance to Detector / {FSneakMaxDistance * [FSneakExteriorDistanceMult OR Zero]}
- Use FSneakExteriorDistanceMult if the cell you are in is marked as an Exterior cell, otherwise use zero
- SKILL = FSneakSkillMult * (Detectors sneak skill - Sneakers sneak skill)
- LIGHT = (FSneakLightMult OR FSneakSwimmingLightMult) * (ambient light level number)
- Use FSneakLightMult if sneaker is NOT swimming
- Use FSneakSwimmingLightMult if sneaker IS swimming
- SOUND = (FSneakSoundsMult OR FSneakSoundLosMult) * (FSneakRunningMult * <[FSneakBootWeightBase OR Zero] + [{FSneakBootWeightMult OR Zero} * actual weight of boots worn]>)
- Use FSneakSoundLosMult if sneaker is OUT of the Line of Sight (LoS) of detector
- Use FSneakSoundsMult if sneaker is IN the LoS of detector
- Use FSneakBootWeightBase if sneaker has boots equiped
- Use FSneakBootWeightMult if sneaker has boots equiped
T H E D E T E C T O R:
- detectors score = IAICombatMinDetection OR FSneakLostMin OR FSneakSeenMin OR FSneakUnseenMin
- Use IAICombatMinDetection if detector is in combat with sneaker
- Use FSneakLostMin if detector is already NOTICED by sneaker but NOT SEEN
- I DON'T KNOW EXACTLY WHAT FSneakSeenMin or FSneakUnseenMin mean, but BOTH default to zero and should be used if the sneaker is unnoticed by detector
(In other words they should be used if the sneaker has passed through equation one undetected and unnoticed)
VALUES
In no particular order:
FSneakSleepBonus = -10.0
FSneakSoundLosMult = 1.0
FSneakSoundsMult = 1.6
FSneakSwimmingLightMult = 0.5
FSneakTargetAttackBonus = 100.0
FSneakTargetInCombatBonus = 25.0
FSneakUnseenMin = 0.0
IAICombatMinDetection = -50.0
FSneakMaxDistance = 1500.0 @ 128 units per 6 feet
FSneakNoticedMin = -20.0
FSneakRunningMult = 1.3
FSneakSeenMin = 0.0
FSneakBaseValue = -25.0
FSneakBootWeightBase = 14.0
FSneakBootWeightMult = 1.0
FSneakExteriorDistanceMult = 2.0
FSneakLostMin = -20.0
LOOK FORWARD TO FEEDBACK!
sundayscour
sunday_scour@yahoo.com