About This File
A new game should no longer be required.
Requirements:
PapyrusUtils - For miscUtil, not storage
Supported:
Bakas keywords - Either from downloading Bakas SLA or from using OSLAroused
The future:
I had some plans on adding more to SoD, like restrictive armor, health and shit like that. But I have decided that to try and make SoD more enticing, to leave the features as simply tracking details. All of my other ideas will be pushed to other mods. I will probably make a fomod and a few more KID along with more presets. Maybe refine the tracking some more, but thats gonna be it.
State of Dress(SoD) provides extensive keywords to track the players current skin/dressed state and stores them in factions on the player and in jContainer values.
Keywords:
If you look in the ESP, there is now a overwhelming amount of keywords. For adding keywords, you don't need to care about 90% of them.
KID allows for what I call presets, which is a single keyword that tells KID to attach other keywords to that object.
What you need to know, is that there are 2 sections to the keywords: _SoD_Loc(Location) and _SoD_Cov(Coverage).
_SoD_Loc is only for determining where a piece of armor is, this is not an indicator of whether or not the item covers skin.
_SoD_Cov is for determining if something covers that area from sight. KID is setup to mark armor with a Coverage keywords Location equivalent.
Preset keywords are so you only need to apply 1 keyword to an item, but can use more complex logic in papyrus without needing to keep track of 700 different keyword types, as you only need to look for the base keywords that KID will apply based on the preset. You can peruse the KID.inis to see all keyword placements.
1.9 Presets:
_SoD_{Cov or Loc}_Body_Full - Cov Body's children, Fore arms, Shins
_SoD_{Cov or Loc}_Body - Torso's children, Upper arms, Thighs
_SoD_{Cov or Loc}_Torso - Top's children, Bottom's children, Belly
_SoD_Cov_Bra - Breasts, nipples
_SoD_Cov_Panties - Pussy, Ass
_SoD_Uncovered - Chest, Pelvis
Blocking keywords are to determine if something is blocking direct access to this region in conditions and papyrus. This does not mean it's unreachable, it just means someone would need to put the smallest bit of effort in reaching it. These do not contribute to body coverage:
_SoD_Block_Ass
_SoD_Block_Vaginal
_SoD_Block_Dick
_SoD_Block_Nipple
_SoD_Block_Breasts
Base keywords are the keywords you should be checking for in conditions and papyrus. All presets will result in some of these keywords ending up on armor:
_SoD_Cov_Bra
_SoD_Cov_Panties
_SoD_{Cov or Loc}_Top
_SoD_{Cov or Loc}_Top_Transparent
_SoD_{Cov or Loc}_Hands_Transparent
_SoD_{Cov or Loc}_Feet_Transparent
_SoD_{Cov or Loc}_Bottom
_SoD_{Cov or Loc}_Bottom_Transparent
_SoD_{Cov or Loc}_Belly
_SoD_{Cov or Loc}_UpperArm_{Left and RIght}
_SoD_{Cov or Loc}_ForeArm_{Left and Right}
_SoD_{Cov or Loc}_Thigh_{Left and Right}
_SoD_{Cov or Loc}_Shin_{Left and Right}
Bondage keywords are distributed to DD, Toys, and Zaz items for a single KW for all of them. It changes nothing, and only useful for only having a single dependency:
_SoD_LocBondage_Eyes
_SoD_LocBondage_Mouth
_SoD_LocBondage_Anal
_SoD_LocBondage_Vaginal
_SoD_Bondage_KW
_SoD_LocBondage_Body is unused
It is important to remember that Location and Coverage keywords do NOT contribute to Charm or Erotic. You have complete control over when an item should be sexy or not via the Charming/Erotic/Fetish KWs. Just cause someone is wearing a bra, it does not mean its erotic. As it may be the ugliest thing you've ever seen.
Covered - Little skin shown. Imagine having every item slot in TAWoBA equipped.
Uncovered - Enough skin is shown that cum/dirt/tattoos could realistically be seen. Most, if any, tattoos don't have specific enough tags to do piece by piece basis, so SoD just generalizes.
Scanty - Bra/Panties that don't provide coverage, but can still be considered clothing. Thongs, that kind of thing.
Nude - There is nearly no clothing worn. Does NOT mean that nipples/pussy/ass are accessible. Look for blocking KW for that kind of thing. For instance, wearing pasties will still be considered nude.
General:
SoD tracks the player by default, but tracks any actor with the _SoD_ActorTrackerSpellSPID applied to them.
(Game.getFormFromFile(0x0DBC, "State of Dress.esp") as Spell)
Whenever an actors equip state has finished updating, it will send the event "SoD.stateUpdate" with the actor that was updated.
You can check when the last time an actor was updated by
jMap.getFlt(getStats(akActor), "lastUpdate")
jContainer keys:
All stats are stored in a master container which can be retrieved using
int function getStats(form akActor) int masterList = JFormDB.getObj(akActor, ".sod.stats") if !masterList return -1 endif return masterList endfunction
Dirt values from 0 to 3
jMap.getInt(getStats(akActor), "Dirt")
Clothing is stored in a storage value per body area
Body areas:
Head
Body
Hands
Feet
jMap.getInt(getStats(akActor), "{Body area}")
- 2 - Fully covered
- 1 - Uncovered: Breast and pussy covered. So wearing bikini, or underwear.
- 0 - Nude
- -1 - Transparent - Note: This will be scanty in the future, as with the new KWs there is no need to differentiate between opaque and transparent
- -2 - Tits out
- -3 - Pussy free use
jMap.getInt(getStats(akActor), "Erotic")
jMap.getInt(getStats(akActor), "Charm")
jMap.getInt(getStats(akActor), "bondage.vaginal")
jMap.getInt(getStats(akActor), "bondage.anal")
jMap.getInt(getStats(akActor), "bondage.oral")
jMap.getInt(getStats(akActor), "bondage")
jMap.getInt(jStats, "cumOral")
jMap.getInt(jStats, "cumAnal")
jMap.getInt(jStats, "cumVaginal")
Every time any value is changed, SoD sends out the following event:
RegisterForModEvent("SoD.stateUpdate", "equipStateChanged")
event equipStateChanged(Form actorForm)
if actorForm
Actor akActor = actorForm as Actor
;code
endif
endevent
Edited by SkyLover37
Description improvements
What's New in Version 2.0
Released
2.0 -
-Added getter functions for keywords to SoD_SKSE
-Added getArmorWith/withoutKeywords functions
-Added various functions for filtering armor arrays
-Improved keyword distribution for vanilla armors