Jump to content

Recommended Posts

State of Dress

View 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_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

 


 


  • Submitter
  • Submitted
    03/25/2022
  • Category
  • Requires
  • Regular Edition Compatible
    No

 

Link to comment
On 3/26/2022 at 10:25 AM, N.Gamma said:

State of Dress sounds like a very interesting system to me, but how is this capture of skin/dressed used by the supported mods? What exactly does this do for me in the game?

I should update the page to reflect this, but it's a framework. So it does nothing for a user unless a mod uses it. ATM gossip only uses it to apply exhibitionism fame.

Link to comment
10 hours ago, SkyLover37 said:

I should update the page to reflect this, but it's a framework. So it does nothing for a user unless a mod uses it. ATM gossip only uses it to apply exhibitionism fame.

But with the supports mods does the mod there already something in connection with Bakas SL Aroused?

Link to comment
14 hours ago, N.Gamma said:

But with the supports mods does the mod there already something in connection with Bakas SL Aroused?

All the mods in supports section are the mods that it accesses to determine values. So it checks clothes for keywords from bakas SL Aroused to determine clothing state. 

Link to comment
  • 1 month later...
  • 1 month later...
  • 1 month later...

Hey SkyLover37, 

I wanted to use the 'how tight/skimpy are these clothes?' feature from Fall of the Dragonborn with SLIF mods but it isn't compatible. Is that something this mod will get down the track? It would be quite interesting to only have weaker and/or skimpier armour equipable while the player is significantly enlarged/inflated by other mods.

Link to comment
  • 5 months later...

Sorry for not responding to comments. But here's an update.

 

So I am redesigning SoD. As I thought on it more, the original scope of SoD was far to vast for skyrim. Wanting to have specific keywords for every part and clothing type isn't reasonable nor needed. Also, I feel the new idea is more gamey and will be more fun to interact with. This also means that script usage will be dropped heavily, as these keywords allow for fine control using conditions.

 

I am kinda stuck on what to do for high heels, I wanted to do it where every X height would add Y charm and every X height above Z would increase erotic up to say ballet heels which would be fetish rank. The problem with doing it that way is that it would complicate, if not make entirely impossible, using the keywords and heels ratings together using conditions only. So, to ramble a bit, maybe extend the armor check function to include the keywords again and use factions again to add charming keyword count to heel height charm/ero value.

The problem with this is that as far as I can tell there is no papyrus equivalent to wornapparelhaskeywordcount. I have methods I can use, they just arent as convenient. I dunno, as I said, rambling.

  • Keywords 
    • _SoD_Chest - Means at the very least, the nipples are covered
    • _SoD_Pelvis - Means at the very least the pussy is covered
    • _SoD_CoversBodyPart - You will need to equip a certain amount of armor pieces that have this keyword to hide body tattoos
    • _SoD_CoversBody - Any armor marked as this will cover body tattoos on it's own
    • _SoD_Charming - Marks that this item adds to the players look. Slight cleavage, some fitted pants, that kinda thing. Ideally the more charming clothing you have youll get buffs to speech.
    • _SoD_Erotic - Marks that this item adds to the players sex appeal. Ideally this will be a kind of counter to charm, as in if your more erotic than charming, perhaps you still get a buff but it raises chance of rape.
    • _SoD_Fetish - This exists to mark extreme clothing that are close to but don't count as bondage, so this is the equivalent as something being marked as ToysToy. ideally fetish would increase sex appeal a ton and charm little. 

to expand just a little bit on the keywords, they are isolated from each other. so a piece marked as chest and fetish wont yield anything extra point wise. I did think about making it where the charming, erotic, and fetsih keywords added more points based on region, but I decided against it as I thought it would needless complications. 

 

As an example for keyword usage. the default iron armor would be marked as Chest, Pelvis, CoversBody'

While wearing a TaWoBA bikini top would be marked as chest, erotic, and coversbodypart and the bottom would be marked as pelvis, erotic, and coversbodypart

 

Let me know what you guys think.

Link to comment

It is mildly frustrating to need to configure a number of separate mods to detect how the PC is dressed (Baka/Sexlab-Survival are hardcoded for specific keywords, Sexlab Adventures has you add the keywords the mod considers skimpy or naked, and Sexlab - Sexual fame has you flag each piece of armor as naked/not-naked.) So it would be great is something like this became a go to armor keyword framework.

 

 

The problem I see, with your hypothetical iron armor, is that you need to add (multiple) keywords to all of the vanilla armors and clothing. I suggest assume that no keywords means the armor/clothing fully covers the body, use _SoD_Charming and _SoD_Erotic as you described and assume they are full body outfits (typical vanilla outfit that covers both the upper and lower portions of the body), and save use the _SoD_Chest/Pelvis/coversBodyPart keywords exclusively for any multi-piece armors like the bikini armors.

 

Also, I'd like to suggest instead of relying heavily on magic effect conditionals, create a script with the OnObjectEquipped() event and use that to tabulate the armor keywords then set some conditional properties for the magic effects and set up some ConsoleUtil.SetIntValue() so third party mods can access without needing any dependencies. As a side effect, this could make your heel height problem a little simpler to solve.

 

Thanks for you time

KRB

Link to comment
1 hour ago, Kae Arby said:

It is mildly frustrating to need to configure a number of separate mods to detect how the PC is dressed (Baka/Sexlab-Survival are hardcoded for specific keywords, Sexlab Adventures has you add the keywords the mod considers skimpy or naked, and Sexlab - Sexual fame has you flag each piece of armor as naked/not-naked.) So it would be great is something like this became a go to armor keyword framework.

 

 

The problem I see, with your hypothetical iron armor, is that you need to add (multiple) keywords to all of the vanilla armors and clothing. I suggest assume that no keywords means the armor/clothing fully covers the body, use _SoD_Charming and _SoD_Erotic as you described and assume they are full body outfits (typical vanilla outfit that covers both the upper and lower portions of the body), and save use the _SoD_Chest/Pelvis/coversBodyPart keywords exclusively for any multi-piece armors like the bikini armors.

 

Also, I'd like to suggest instead of relying heavily on magic effect conditionals, create a script with the OnObjectEquipped() event and use that to tabulate the armor keywords then set some conditional properties for the magic effects and set up some ConsoleUtil.SetIntValue() so third party mods can access without needing any dependencies. As a side effect, this could make your heel height problem a little simpler to solve.

 

Thanks for you time

KRB

I agree on the iron armor example, so thanks for pointing out I need a fall back for vanilla. I was just gonna make an xedit script to just auto flag all vanilla armor, but checking for the ArmorCuirass keyword after the other keywords should work fine in that regard.

 

Charming, erotic will both be a simple +1 to each category per item marked. Fetish will add +2 erotic. I think it would be better to only have charming and erotic, for ease of use, but some items are just too far out there to simply be +1, imo. I may remove the fetish keyword when I start adding keywords manually depending on how it feels. Or, now that I think about it, I may be able to make it where it's +1 per slot the item uses. Although that would depend on how uniform in that regards armor mods are.

 

I've never used consoleUtil.SetIntValue() and I cannot find the command. Could you give me more detail on that?

Link to comment
  • 4 weeks later...

So, update.

 

After looking at slot usage, except for some outliers using slot 49 for panties, slot usage is pretty uniform. So instead of keywords, I will be checking for slots. any item in slot 32 (cuirass default) will be considered full cover(blocks sight of dirt, tattoos, and cum on body) unless it is marked as SOS_Revealing. In which case, it will check for by default clothing in the chest(32), abs(56), and pelivs(52). Mcm menu to enable requiring other slots: 46,47,45, 49, 53,57,58,54. The misc slots are taken exclusively from TaWoBA and I have not checked the uniformness of these, but I only really cared about slots 32 and 52, as these are the breasts/pussy coverage.

 

Charming and erotic keywords will still need to be distributed.

 

Heels will add 1 charm per inch up to 3 inch, then 1 erotic per inch past that.

 

I'm also making it where tattoos can be marked to contribute to Charming/Erotic. currently Makeup and Tights are marked for charming, and all the base lewd tats are marked as erotic. I will prob move these to a json for easier modifying, along with MCM options for adding removing.

 

Link to comment
  • 1 month later...

Update is basically done, I am holding off on uploading till I update gossip to make sure there isn't any other functionality I may want.

 

SoD will not track dirt/cum as there is no full proof way to ensure values are accurate without an update loop due to no consistent use of events for changes to dirt/cum.

 

Link to comment
  • 1 month later...

Hello,

 

I try to understand how this mod works. So, if I understand well, I need to manualy add the keywords "_SoD_Revealing" or "_SoD_Transparent" on the slot 32 from the armor I want to be tracked ?

 

I also wonder if it is safe to eslfy the plugin ?

 

 

 

 

Edited by darkangel2041
Link to comment
9 hours ago, darkangel2041 said:

Hello,

 

I try to understand how this mod works. So, if I understand well, I need to manualy add the keywords "_SoD_Revealing" or "_SoD_Transparent" on the slot 32 from the armor I want to be tracked ?

 

I also wonder if it is safe to eslfy the plugin ?

If there is clothing equipped in slot 32, SoD considers the body fully clothed, regardless of other slots. Adding the _SoD_revealing KW tells SoD that a piece of torso armor shows off the body. It also recognizes SoS_Revealing, so a lot of clothing mods are already compatable.

 

Use _SoD_Trasparent for any other slots.

 

Edit:

And yes, it can be an esl. The forms should even already be compacted, it just needs the esl flag in xEdit. I mustve forgot to do that.

Edited by SkyLover37
Link to comment
15 hours ago, SkyLover37 said:

If there is clothing equipped in slot 32, SoD considers the body fully clothed, regardless of other slots. Adding the _SoD_revealing KW tells SoD that a piece of torso armor shows off the body. It also recognizes SoS_Revealing, so a lot of clothing mods are already compatable.

 

Use _SoD_Trasparent for any other slots.

 

Edit:

And yes, it can be an esl. The forms should even already be compacted, it just needs the esl flag in xEdit. I mustve forgot to do that.

Great ! Thanks for your answer ?

Link to comment
On 4/10/2023 at 4:56 PM, SkyLover37 said:

And yes, it can be an esl. The forms should even already be compacted, it just needs the esl flag in xEdit. I mustve forgot to do that.

Hi again. I made some test and I have an error in the mcm menu : "error loading config => click to view". And if I click the following message is displayed "Invalid key : schema".

 

Esp or esl are the same result.

Nothing overwrite state of dress

I presume I have all the requierments

 

Any idea what I could have done wrong ?

Link to comment
5 hours ago, darkangel2041 said:

Hi again. I made some test and I have an error in the mcm menu : "error loading config => click to view". And if I click the following message is displayed "Invalid key : schema".

I join the question, I have the exact same problem.

Link to comment
7 hours ago, SkyLover37 said:

Ensure you have the correct MCM helper for you skyrim version, then ensure that MCM helper overwrites any conflict.

So, I solved this with your advice. I miss that I had MCM helper v1.3 and not the MCM helper v1.4 backport in the miscellaneous section (I am on V.1.5.97). I am quit tired these days, so I am sorry for losing your time. But realy thanks for your support ! ?

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • 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