Jump to content

About This File

 A new game should no longer be required. 

 

Requirements:

SKSE

Address Library

Racemenu

PO3 papyrus extender

Keyword Item Distributor

MCM Helper

PapyrusUtils - For miscUtil, not storage

jContainers

 

 

Supported:

Sexlab

Toys Framework

Devious Devices

ZazAnimation

Bathing in Skyrim

Dirt and Blood

Slave Tats

Sexlab cum overlays extended

Bakas keywords - Either from downloading Bakas SLA or from using OSLAroused

 

 

SKSE Source

 

 

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}")
Body Values:
  • 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
 
 
 
Lewdness values:
Based on the clothing worn that has the charming or erotic keywords, the player will have an erotic and charm value. The intended use of Erotic is for whether an npc would want to fuck the player, the intended use of charm is to have NPC's respect the player. High erotic and low charm, for instance, could be used as a reference to tell if an NPC would rape the player. 
jMap.getInt(getStats(akActor), "Erotic")
jMap.getInt(getStats(akActor), "Charm")

 

Bondage Values:
SoD checks for bondage keywords from toys/DD and stores a few of them.
jMap.getInt(getStats(akActor), "bondage.vaginal")
jMap.getInt(getStats(akActor), "bondage.anal")
jMap.getInt(getStats(akActor), "bondage.oral")
jMap.getInt(getStats(akActor), "bondage")

 

Cum Values:
SoD does not have an update timer, it only updates values as needed through PO3 functions and supported events. Due to this it does track cum, but realtime sexlab cum tracking requires the add/clear cum mod events. SCOE send them, and maaaaybe SLP+?
Toys realtime tracking will come the next toys update.
WIthout the supported events, the cum will not be accurate.
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



×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use