How A.N.D. Works
What does Advanced Nudity Detection actually do?
Advanced Nudity Detection (abbreviated as AND) is a mod that revolves around its own set of keywords which must be applied to your armor either via Keyword Item Distributor, xEdit, or some other Keyword distribution mod or program.
Based on what keywords it finds and certain RNG elements, it will assign a Faction to your character (or an NPC) which will reflect their nudity state, ranging from Fully Covered to Fully Nude and nearly everything in-between.
It doesn't matter what Body Type you use (such as 3BA, BHUNP, UNP, and so on), it doesn't matter if the armor is Vanilla or Modded, and it doesn't matter what slot your armor is on (with one minor exception). AND only cares about its Keywords. So long as you have a Keyword from AND attached to an armor piece you are wearing, it will work. The only exception is if NONE of your armor pieces contain ANY Keywords from AND. In this case, AND will check if you are wearing an armor piece in Slot 32.
If you are getting unwanted or unintended results, the most likely reason is because you are using one or more of AND's Keywords incorrectly or the keyword wasn't applied in the first place for some reason.
You can find more details in the sections below.
Nudity Condition Analysis
The various keywords in Advanced Nudity Detection determine your character's nudity state. Each keyword applies to a certain "Layer" that exists within Advanced Nudity Detection. These "Layers" only exist within the mod's code, and do not have any impact on the game or other mods. They only help the mod determine what condition to give you.
Here is an image to help you visualize the layers.
The Tan circle represents a part of your character's body.
The Green circle represents the "Underwear Layer".
The Blue circle represents the "Armor Layer".
The Purple circle represents the "Curtain Layer".
As you can see, the layers are split into three different areas: Chest, Genitals, and Ass. Additionally, every keyword that exists within Advanced Nudity Detection has also been placed in the sections they affect (with a few exceptions). The Transparent and NoCover variations of each keyword apply to the same area as their 'normal' version. For example, Thong, ThongT, and Thong_NoCover all apply to the Genitals section. You may also notice that some keywords apply to multiple areas: Underwear, ArmorBottom, and Miniskirt.
When the keywords are analyzed, it checks what areas they apply to and what they cover based on which "Layer" they occupy. Each layer covers all layers underneath them unless they are "Flashing" (more on that further down). If too few layers are covering a certain section, you will start gaining nudity conditions based on which areas aren't covered. For example, you will get the "Showing Bra" condition if you are wearing an item with a Bra keyword, but the Armor and Curtain layers are not covering your top (either because they don't exist or because they are Flashing).
Some keywords have not been added to the image because they function in a way that affects all layers. The CoversAll keyword covers every layer, and therefore prevents all possible nudity conditions. The NearlyNaked keyword prevents you from being considered nude if no other cover exists. The EffectivelyNaked keyword ALLOWS you to be naked despite wearing something.
Additionally, you may have noticed that two of the keywords in the image have an asterisk (*) - NipplePasties and VaginaPasties. Nipple Pasties only prevent you from being considered Topless, and Vagina Pasties only prevent you from being considered Bottomless. Both also effectively prevent you from being considered nude.
The NoCover variants of each keyword DO NOT cover anything (as the name implies). However, the mod is smart enough to know that you are still technically wearing something despite it not covering anything. For example, Bra_NoCover will not cover your chest but also doesn't make you Topless. Therefore you'll have both "Showing Bra" and "Showing Chest" conditions at the same time, but not "Topless".
Whenever you equip or unequip an item, your armor/clothes are checked after you exit ALL menus, and only happens once even if you equip or unequip multiple items. This update should take only half a second for most users. Very heavy script loads may see this take longer, but it should still be relatively quick.
An armor analysis also happens once every 15 In-Game minutes (45 real life seconds by default). If you use mods that change how fast days progress, the frequency will be higher with faster days or lower with slower days.
The script performs one armor check when first installed or when starting a new game, but does NOT check on game load. This is intentional.
The Flashing System
Advanced Nudity Detection has a Flashing system which is entirely RNG based. This Flashing system applies to ALL curtains and transparent items.
Starting in 2.5.0 the player can manually Flash or Un-Flash any curtains they're wearing with the associated MCM keybind. (The ability to manually flash other items is too tricky to negotiate with how many combinations of conditions that exist. Plus, if you really want to "Flash" those, you can just remove them instead.)
Curtains require a Flash Risk keyword of their matching type applied to them in order to function as intended. For example, Pelvic Curtains require one of the five different PelvicFlashRisk keywords. The keyword "Level" represents how likely it is for that curtain to Flash, with the "Low" variant being the lowest (least likely), and the "Ultra" variant being the highest (most likely).
When AND checks if an item is Flashing, it generates a random number between 1 and 100 for EVERY possible item, and then compares that to what you're wearing and their respective Flash Odds. If the generated number is EQUAL TO or LOWER than the item's Flash Odds, then that item is considered to be "Flashing" and will not cover the layers underneath it. If the generated number is HIGHER than the item's Flash Odds, it will NOT be considered "Flashing" and either continue to cover the layers underneath or start covering them again.
Example:
PelvicCurtain with PelvicFlashRiskHigh - Flash Odds are 50%. Pelvic Curtain Flash Roll is 50 or lower: Pelvic Curtain stops covering Pelvic Curtain Flash Roll is 51 or higher: Pelvic Curtain continues covering (or starts covering again)
Additionally, there are Transparent Curtains which have a higher chance of flashing with each respective Flash Risk keyword by default.
Based on which "Level" of Flash Risk keyword you use, here are the DEFAULT Flash Risk values for Curtains:
Low - 20%
"Normal" - 35%
High - 50%
Extreme - 65%
Ultra - 80%
However, if you are wearing a Transparent Curtain, the DEFAULT Flash Risk values are higher:
Low - 55%
"Normal" - 65%
High - 75%
Extreme - 85%
Ultra - 95%
There are also various Transparent items which are NOT curtains. These items SHOULD NOT be given a Flash Risk keyword. Their flash odds are "Built-In" to the keyword. Each Transparent item that isn't a curtain has an additional High and Low variant which increases or decreases their default flash odds respectively. These items function identically to Curtains, but simply apply to a different layer.
All NON-CURTAIN and NON-CSTRING armor/clothes that are marked as Transparent have a DEFAULT Flash Risk of 30% (Low) 50% (Normal) or 70% (High). CURTAINS need a Flash Risk keyword. Everything else DOES NOT need a Flash Risk keyword.
CStrings have their own default "Flash Risk" odds:
CString - 60%
CStringT_Low - 70%
CStringT - 80%
CStringT_High - 90%
Curtains that have not been given an appropriate Flash Risk keyword will never flash. Also, if multiple Flash Risk or Transparent keywords of the same type are detected at the same time (such as two or more ChestFlashRisk keywords, two or more PelvicFlashRisk keywords, or two or more BraT keywords), the keyword with the LOWEST odds of flashing will be used for the Flash check on that section/layer.
All Flash Odds can be customized in the MCM. However, the odds are restricted by the values set on the next keyword in the severity list, and all flash odds are hard-limited to be no higher than 99 and no lower than 1.
For example, the flash odds for "PelvicFlashRiskLow" cannot be lower than 1 and cannot higher than the number assigned to "PelvicFlashRisk". Therefore, the flash odds for "PelvicFlashRisk" cannot be lower than "PelvicFlashRiskLow" and cannot be higher than "PelvicFlashRiskHigh". And so on.
Lastly, similar to how the mod is smart enough to understand "NoCover" doesn't mean naked, the mod is also smart enough to know that flashing doesn't necessarily mean naked either. HOWEVER, there are a few intentional exceptions. CStrings can potentially cause you to be nude if no other coverage exists and the CString is flashing. Likewise, if all of your curtains are flashing and no other coverage exists, you will be considered nude.
Flashing odds are rolled every 15 In-Game minutes, which is synchronized with the mod's Nudity Check schedule.
Motion Flash
The Flashing System also has a "Motion" component to it, which ONLY affects curtains.
While you are Running (NOT walking) or Sprinting, Flash Checks happen much more frequently - roughly every 10 seconds. By default, your maximum Roll for the Flash System on curtains is reduced by 10 if Running, and 20 if Sprinting. This means the HIGHEST possible roll for your curtain flashes are 90 or 80 respectively.
To break down what this really means, let's look at our default flash odds again. To find my odds of flashing with the Motion Flash component, we must divide our base chance by the maximum roll.
If my Pelvic Curtain has a 50% base chance of flashing, then if I am running the odds are increased to roughly 56% because the maximum roll becomes 90:
50 / 90 = 0.55555 {~56%}
Likewise, if I am Sprinting, the maximum roll becomes 80, and therefore my flash odds increase further:
50 / 80 = 0.625 {~63%}
If my base chance is equal to or higher than the maximum roll, then I will always flash. Examples:
Transparent Chest Curtain with Ultra Risk while Running [95 / 90 = 1.0555 {106%}]
Transparent Chest Curtain with Extreme Risk while Sprinting [85 / 80 = 1.0625 {106%}]
Ass Curtain with Ultra Risk while Sprinting [80 / 80 = 1 {100%}]
----------------------------------------------------------------------
You can change the roll modifiers in the MCM, but the Running Modifier cannot be higher than the Sprinting Modifier. These modifiers set the maximum roll for your flash odds, which means a HIGHER modifier means the Maximum Roll is LOWER, which means a higher modifier makes it MORE likely to flash when moving in that way.
Running Max Roll = 100 - Running Modifier
Sprinting Max Roll = 100 - Sprinting Modifier
Lastly, if you want to disable the Motion Flash system, you may do so. All options for the Motion Flash system can be changed from the mod's main MCM page (Nudity States).
Nudity Conditions and their Requirements
Here is the full list of nudity conditions and the requirements to attain them:
NUDE
- Must be Topless and Bottomless
- Must NOT be wearing "NearlyNaked" item
TOPLESS
- Must be Showing Chest/Boobs
- Must NOT be Showing Bra
- Must NOT be wearing ArmorTopT, ArmorTop_NoCover, or NipplePasties
BOTTOMLESS
- Must be Showing Genitals and Showing Ass
- Must NOT be Showing Underwear
- Must NOT be wearing Microskirt, ArmorBottomT, ArmorBottom_NoCover, or VaginaPasties
SHOWING CHEST/BOOBS
- Must NOT have top "Curtain Layer" coverage (either by not wearing any kind of Chest Curtain or having the Chest Curtain be Flashing)
- Must NOT have top "Armor Layer" coverage (either by not wearing any kind of ArmorTop, having ArmorTopT be Flashing, or by wearing ArmorTop_NoCover)
- Must NOT have top "Underwear Layer" coverage (either by not wearing any kind of Bra, having BraT be Flashing, wearing Bra_NoCover, or wearing NipplePasties)
SHOWING BRA
- Must NOT have top "Curtain Layer" coverage (either by not wearing any kind of Chest Curtain or having the Chest Curtain be Flashing)
- Must NOT have top "Armor Layer" coverage (either by not wearing any kind of ArmorTop, having ArmorTopT be Flashing, or by wearing ArmorTop_NoCover)
- Must be wearing any kind of Bra
SHOWING GENITALS/PENIS/PUSSY
- Must NOT have genital "Curtain Layer" coverage (either by not wearing any kind of Pelvic Curtain or having the Pelvic Curtain be Flashing)
- Must NOT have genital "Armor Layer" coverage (either by not wearing any kind of ArmorBottom and/or any kind of Hotpants, having ArmorBottomT and/or HotpantsT be Flashing, or by wearing ArmorBottom_NoCover or any kind of ShowgirlSkirt)
- Must NOT have genital "Underwear Layer" coverage (either by not wearing any kind of Underwear, Thong, or CString, having UnderwearT, ThongT, or CString/CStringT be Flashing, or by wearing Underwear_NoCover or Thong_NoCover)
SHOWING ASS
- Must NOT have ass "Curtain Layer" coverage (either by not wearing any kind of Ass Curtain or having the Ass Curtain be Flashing)
- Must NOT have ass "Armor Layer" coverage (either by not wearing any kind of ArmorBottom and/or ShowgirlSkirt, having ArmorBottomT and/or ShowgirlSkirtT be Flashing, or by wearing ArmorBottom_NoCover or any kind of Hotpants)
- Must NOT have ass "Underwear Layer" coverage (either by not wearing any kind of Underwear, having UnderwearT be Flashing, wearing Underwear_NoCover, or wearing any kind of Thong or CString)
SHOWING UNDERWEAR
-
Must be wearing any kind of Underwear, Thong, or CString
-
If wearing any kind of Underwear, meet condition 1 OR 2:
- Must NOT have genital "Curtain Layer" coverage and NOT have genital "Armor Layer" coverage
- NOT have ass "Curtain Layer" coverage and NOT have ass "Armor Layer" coverage
-
If wearing any kind of Thong
- Must NOT have genital "Curtain Layer" coverage and NOT have genital "Armor Layer" coverage
-
If wearing any kind of CString
- Must NOT have genital "Curtain Layer" coverage and NOT have genital "Armor Layer" coverage
- Must NOT have CString be Flashing
-
If wearing any kind of Underwear, meet condition 1 OR 2:
Edited by NymphoElf
0 Comments
Recommended Comments
There are no comments to display.