darknotfear Posted February 19, 2022 Posted February 19, 2022 (edited) Simple Wear & Tear V2 beta [2022-07-21] View File Warning: this mod was not fully tested yet, works fine for me though. I'm still stick with Skyrim SE v1.5.97 so it might not works for AE. Â A simple mod to manage your character's wear and tear level. In V2 mainly updated some skin visual effect. Now the morph config goes in an isolated json file, so make sure to backup your own config before overwritting. Â Features: Wear&tear / arousal level tracking. Customizable loose visual. Prolapse. Inflamed Skin Mark. LewdMark. Breast Bondage Visual. Â Requirements & Installation: RaceMenu or at least NetImmerse Override if you know what you are doing. Make sure you checked "Build Morphs" when using Bodyslide. MCM Helper v1.3.0 PapyrusUtil v3.9.0 Sexlab v163 USE V163! because I only build and tested it on v163, try v164 at your own risk. Sexlab Aroused Redux SSE CBBE 3BA or BHUNP or any body that supports genital morphs. (In that case you need to build your own configs) SlaveTats use SE Version. (Optional) Prolapsed Uterus esp not needed, and LET SimpleWear&Tear OVERWRITE Prolapsed Uterus because I need to change the slot to 53 for avoiding confliction with SOS. (Optional) Rosebutt v2 esp not needed, and I cannot get in touch with the mod author, contact me if the author want this feature deleted. (Optional)Apropos 2 USE THE SE VERSION, can be found somewhere in the thread, use search. (Optional) LewdMarks for lewd mark visual. (Optional) Bondage Rope Marks for rope mark visual. (Optional) Heretical Resources tattoo only, for breast bondage visual. Or you can use the cbbe version in the download section (I adjust the tex position, credits goes to the original author). Build Prolapsed Uterus in Bodyslide. Start the game and check "Mod Enabled" in MCM after configuration. Â Mod Config Explained: When character participate in sex passively, a certain amout of wearing level is add to the charater by Tearing Rate. The wearing level has no limitation, but anything go above 1.0 will not affect the visual. The wearing level can be inspected by click the Print Status in debug page. While the level is increasing towards 1.0, the visual effect will be calculated and updated for the charater corresponding to its wearing level. You can set morphs using sliders in Wearing and Arousal page to define your own visual, these values represents visual status at wearing level 1.0 or arousal 1.0. (Use bodyslide or Racemenu if you need preview sliders) The charater will recover its tightness per game hour controlled by Healing Rate. If you enable Use Apropos, the w&t values will be updated by Apropos w&t values (0-10) and mutiplied by 0.11 to make internal w&t in between 0-1.0 (Apropos level 9 = w&t level 1.0), so you may setup prolapsedAt somewhere between 0-1.0 . The wearing visual and arousal visual will overrided by the max one, so you can combine each of them at your own preferences. The morphs sliders are delta sliders, which means its relatively to your current bodyslide build, you may build you body at Vagina Innie 1.0 in bodyslide and setup the MCM sliders to -1 to make the actor vagina transform from innie to outie during the wearing process. (InnieOutie is inverted slider) Default values are located in SKSE\Plugins\StorageUtilData\SimpleWnT.json, you can change them if you like to. For users perfer more extreme sliders, set "fmorphslidermin" and "fmorphslidermax" in the json to what you want and restart the game. (eg. -2 and 2 for 2x sliders) For custom body slider, the description string is "sliderName,sliderDisplayName,sliderType,sliderDefaultValue", while 0 for type vaginal and 1 for type anal, seperated by comma. DO NOT USE THE NPC SPELL TOO FAST, it might corrupt the data since its not thread safe, let the mod finish its job. You can inspect you and your NPC status in the actor page. If you put anything in the Underwear Slots and clicked the Apply Slots, the mod will check your underwear in these slots instead of naked status, the prolapse will happens if you don't have a underwear equipped regardless the body armor, the slots are defined in numbers, separated by comma. (eg. 41,57 means slot 41 and slot 57 will be checked.) How to aquire and change body slots for an armor Use utility function to save and load tattoo setup from slavetats. Â How to Define Your Own Sliders: Spoiler Go to CalienteTools\BodySlide\SliderCategories and find the slider categories file for your body. Eg. for BHUNP its BHUNP3BBB.xml Find the slider you want, take "BreastsTogether" in category "Breasts" for example. <Slider name="BreastsTogether" displayname="Push Together" /> As you can see the sliderName is "BreastsTogether" and displayName is "Push Together", Because the json config pattern is "sliderName,displayName,sliderType,sliderDefaultValue", the result string would be (Types: Vaginal 0, Anal 1, Breast 2, Nipple 3) "BreastsTogether,Push Together,2,0" Then put it in the "morph" or "arousalmorph" section of SKSE\Plugins\StorageUtilData\SimpleWnT.json Make sure to use the correct json format and beware of the comma. You may use THIS tool to edit the json. The final result is like: Spoiler { Â "float": { Â Â Â "fupdateinterval": 60, Â Â Â "fvaginaltearingrate": 0.3, Â Â Â "fanaltearingrate": 0.3, Â Â Â "fvaginalhealingrate": 0.03, Â Â Â "fanalhealingrate": 0.03, Â Â Â "fvaginalprolapseat": 1.2, Â Â Â "fanalprolapsestg1at": 1, Â Â Â "fanalprolapsestg2at": 1.3, Â Â Â "fanalprolapsestg3at": 1.6, Â Â Â "faggressivemultiplier": 2, Â Â Â "fmorphslidermin": -1, Â Â Â "fmorphslidermax": 1 Â }, Â "floatList": {}, Â "int": { Â Â Â "iprolapsenakedonly": 1, Â Â Â "inotificationkey": 49, Â Â Â "iarousedvisual": 0, Â Â Â "iminimumarousedlevel": 30 Â }, Â "intList": {}, Â "string": { Â Â Â "strunderwearslots": "" Â }, Â "stringList": { Â Â Â "morphs": [ Â Â Â Â Â "PussyOpen,Open,0,0", Â Â Â Â Â "PussyWide,Widened,0,0", Â Â Â Â Â "AnusSpread,Anus Spread,1,0", Â Â Â Â Â "AnusSize,Anus Size,1,0" Â Â Â ], Â Â Â "arousalmorphs": [ Â Â Â Â Â "PussyCute,Peach,0,0", Â Â Â Â Â "AnusSize,Anus Size,1,0", Â Â Â Â Â "BreastsTogether,Push Together,2,0" Â Â Â ] Â } } Â Â Credits: MapleRabbit for scripting help. Awesome prolapsed uterus mod by idynaloak crajjjj for Apropos support help. Learned alot about scripting from the source code of nomkaz Andreis Everyone in the mod community. Submitter darknotfear Submitted 02/19/2022 Category Adult Mods Requires RaceMenu, MCM Helper v1.3.0, PapyrusUtil v3.9.0, Sexlab v163, Sexlab Aroused Redux SSE, CBBE 3BA, SlaveTats SE, (Optional)Prolapsed Uterus, (Optional)Rosebutt v2 Regular Edition Compatible No Edited July 21, 2022 by darknotfear 5
keymaster1965 Posted February 19, 2022 Posted February 19, 2022 im on AE I will test it, I have a shit load of mods so let see if they all play nice lol
jacobrox5656 Posted February 19, 2022 Posted February 19, 2022 Is mcm helper always going to be a requirement because that mod can a bit screwy most of the time. 1
myDNS Posted February 19, 2022 Posted February 19, 2022 Uuh I like this idea. Would be interesting if there was compability with Apropos2, I'll take a look at the scripts 1
Harry Smackmeat Posted February 19, 2022 Posted February 19, 2022 The image of wear 1.0 made me feel a weariness as if my very soul is being torn away out my pee hole and into the realm of Coldharbour. Thx. 10/10. Well done.
gborogboro Posted February 19, 2022 Posted February 19, 2022 (edited) Hello, tested the Mod in AE (1.6.353). Had to correct this post;Â Stated that it work before, but in fact it seems that healing not work. I hope i get the Mod right: Healing should revert the tear status (value and visually), right? Â Furthermore i use TAWOBA and this will sadly conflicting cause of Prolabsed uterus requirement. wont your mod not work without it or would it partially work (ill test it later anyway - just curious...)? Edited February 19, 2022 by gborogboro wrote that the mod would work in AE, but it seems some parts doesnt work...
zato770 Posted February 19, 2022 Posted February 19, 2022 GREAT JOB! may I suggest could maybe go even more extreme... 5
gborogboro Posted February 20, 2022 Posted February 20, 2022 1 hour ago, gborogboro said: Hello, tested the Mod in AE (1.6.353). Had to correct this post;Â Stated that it work before, but in fact it seems that healing not work. I hope i get the Mod right: Healing should revert the tear status (value and visually), right? Â Furthermore i use TAWOBA and this will sadly conflicting cause of Prolabsed uterus requirement. wont your mod not work without it or would it partially work (ill test it later anyway - just curious...)? NM my TAWOBA Question. Your Mod comes with a buildin solution... just overread the "BELOW" in the vaginal prolapse at setting... now continue testing the Mod in AE build.
darknotfear Posted February 20, 2022 Author Posted February 20, 2022 8 hours ago, jacobrox5656 said: Is mcm helper always going to be a requirement because that mod can a bit screwy most of the time. Whats wrong with MCM Helper?
darknotfear Posted February 20, 2022 Author Posted February 20, 2022 Spoiler 5 hours ago, zato770 said: GREAT JOB! may I suggest could maybe go even more extreme...  I tried to contact the author but no replies yet.
darknotfear Posted February 20, 2022 Author Posted February 20, 2022 6 hours ago, gborogboro said: Hello, tested the Mod in AE (1.6.353). Had to correct this post;Â Stated that it work before, but in fact it seems that healing not work. I hope i get the Mod right: Healing should revert the tear status (value and visually), right? Â Furthermore i use TAWOBA and this will sadly conflicting cause of Prolabsed uterus requirement. wont your mod not work without it or would it partially work (ill test it later anyway - just curious...)? Yes thats how healing works, you can check internal wear status by using the Print Status in the debug page.
FredOof Posted February 20, 2022 Posted February 20, 2022 5 hours ago, gborogboro said: NM my TAWOBA Question. Your Mod comes with a buildin solution... just overread the "BELOW" in the vaginal prolapse at setting... now continue testing the Mod in AE build. I got TAWOBA too, may I ask how will these two mods conflict?
belegost Posted February 20, 2022 Posted February 20, 2022 Very cool, always wanted a mod exactly like this, cheers!
myDNS Posted February 20, 2022 Posted February 20, 2022 (edited) 18 hours ago, myDNS said: Uuh I like this idea. Would be interesting if there was compability with Apropos2, I'll take a look at the scripts  Ight I might have a plan of action. I'm a terrible coder and have never tried my hands on Skyrim mod creation, like, ever. Maybe @darknotfear might have a better idea. But here's my plan.  Ight, so, saving Simple Wear & Tear states is thankfully easily done by calling these utility functions:  float Function LoadVaginalWearing() return StorageUtil.GetFloatValue(hostActor, STORAGE_KEY + VAGINAL_WEARING_KEY) ;"SimpleWnT_ACTOR_" + "VaginalWearing" EndFunction Function SaveVaginalWearing(Float v) StorageUtil.SetFloatValue(hostActor, STORAGE_KEY + VAGINAL_WEARING_KEY, v) ;v = LoadVaginalWearing() + delta EndFunction float Function LoadAnalWearing() return StorageUtil.GetFloatValue(hostActor, STORAGE_KEY + ANAL_WEARING_KEY) ;"SimpleWnT_ACTOR_" + "AnalWearing" EndFunction Function SaveAnalWearing(Float v) StorageUtil.SetFloatValue(hostActor, STORAGE_KEY + ANAL_WEARING_KEY, v) ;v = LoadAnalWearing() + delta EndFunction  These StorageUtil reads and writes are called by the SimpleWnTEffect TearVaginal(Float delta) and TearAnal(Float delta) functions. Since these operate on deltas we'd have to add a bit of code and a little checkbox to the MCM menu:  Function TearVaginal(Float delta) Float _v = 0.0 If Cfg.apropos2BridgeEnable _v = delta Else _v = LoadVaginalWearing() + delta EndIf SaveVaginalWearing(_v) If Cfg.bDebugMode DebugLog("Vaginal wearing: " + _v) EndIf EndFunction  With the same config condition we would have to suspend TearVaginal(Float delta) and TearAnal(Float delta) calls in the OnAnimationEnd() function. Either that or we just remove the function and call UpdateActorStatus() from the Apropos2Actors script instead. I really don't know the better way here, or if theres an even better one.  Anways here we'd be done with the SimpleWnTEffects script, but we need some kind of value conversion. The Apropos2ActorAlias script has a function called UpdateAbuseTextures(bool increasingAbuse) which gives us a good metric which we could copy for a value conversion function. Something like TearSimpleWnT(Int fAproposTearValue, String fArea). The metric wouldn't check for AverageAbuseState, but instead for _vaginalWearTear and in a seperate condition for _analWearTear. Here we could call SimpleWnTEffects TearVaginal(Float delta) and TearAnal(Float delta) with hardcoded values for delta.  We could easily convert the different values with this little function:  Scale a range [min,max] to [a,b]: (b-a)(x - min) f(x) = -------------- + a max - min More importantly (b-a)/(max-min) is also just the scaling-factor between the two.  Which would look something like this:  Function TearSimpleWnT(Int fAproposTearValue, String fArea) If Cfg.apropos2BridgeEnable If fArea == "Vaginal" Float metric = scaleRange(fAproposTearValue) If metric >= 9 SimpleWnTEffect.TearVaginal(1.0) ;I think the Range here is 0-1+, where prolapse occurs at 0.9 and higher values are kinda useless ElseIf metric < 9 && metric >= 7 SimpleWnTEffect.TearVaginal(0.6) ElseIf metric < 7 && metric >= 5 SimpleWnTEffect.TearVaginal(0.4) ElseIf metric < 5 && metric >= 3 SimpleWnTEffect.TearVaginal(0.2) Else SimpleWnTEffect.TearVaginal(0.0) EndIf ElseIf fArea == "Anal" Float metric = scaleRange(fAproposTearValue) If metric >= 9 SimpleWnTEffect.TearAnal(1.0) ;I think the Range here is 0-1+, where prolapse occurs at 0.9 and higher values are kinda useless ElseIf metric < 9 && metric >= 7 SimpleWnTEffect.TearAnal(0.6) ElseIf metric < 7 && metric >= 5 SimpleWnTEffect.TearAnal(0.4) ElseIf metric < 5 && metric >= 3 SimpleWnTEffect.TearAnal(0.2) Else SimpleWnTEffect.TearAnal(0.0) EndIf EndIf EndIf EndFunction Float Function scaleRange(Float x) Float fScaledVal = ((b - a) * (x - min)) / (max - min) + a ;min-max from Apropos and a-b from the used metric return fScaledVal EndFunction   Now we need to move on to the Apropos2Actors script. Basically all we need we can get in Function DoApplyWearAndTear(Actor anActor, String area, string damageClass, Bool isRapeOrAggressive, Bool isCreature). Here, after some conditions, Apropos calls aproposActor.IncreaseVaginalWearAndTear(amount) and aproposActor.IncreaseAnalWearAndTear(amount) Here we would call the TearForSimpleWnT() function in the corresponding conditional.  Lastly we would need to call the UpdateActorStatus() function in the SimpleWnTEffects script through the ApplyEffectsAndTextures(bool increasingAbuse) function in the Apropos2Actors script, somehow.  Idk if you'd need to somehow trigger the HealActor() function in the SimpleWnTEffect script, I guess you wouldn't.  I'm too inexperienced with Papyrus scripting, so if anyones up for the task, I think this should work? Edited February 20, 2022 by myDNS 2
samozlo Posted February 20, 2022 Posted February 20, 2022 9 hours ago, darknotfear said:  Reveal hidden contents  I tried to contact the author but no replies yet. The author of that mod is Komotor, the author have been gone for many years now. Even the patreon page is inactive I think. I guess it should be okay to try incorporate the mesh into your mod?
darknotfear Posted February 20, 2022 Author Posted February 20, 2022 1 hour ago, myDNS said:  Ight I might have a plan of action. I'm a terrible coder and have never tried my hands on Skyrim mod creation, like, ever. Maybe @darknotfear might have a better idea. But here's my plan.  Ight, so, saving Simple Wear & Tear states is thankfully easily done by calling these utility functions:  float Function LoadVaginalWearing() return StorageUtil.GetFloatValue(hostActor, STORAGE_KEY + VAGINAL_WEARING_KEY) ;"SimpleWnT_ACTOR_" + "VaginalWearing" EndFunction Function SaveVaginalWearing(Float v) StorageUtil.SetFloatValue(hostActor, STORAGE_KEY + VAGINAL_WEARING_KEY, v) ;v = LoadVaginalWearing() + delta EndFunction float Function LoadAnalWearing() return StorageUtil.GetFloatValue(hostActor, STORAGE_KEY + ANAL_WEARING_KEY) ;"SimpleWnT_ACTOR_" + "AnalWearing" EndFunction Function SaveAnalWearing(Float v) StorageUtil.SetFloatValue(hostActor, STORAGE_KEY + ANAL_WEARING_KEY, v) ;v = LoadAnalWearing() + delta EndFunction  These StorageUtil reads and writes are called by the SimpleWnTEffect TearVaginal(Float delta) and TearAnal(Float delta) functions. Since these operate on deltas we'd have to add a bit of code and a little checkbox to the MCM menu:  Function TearVaginal(Float delta) Float _v = 0.0 If Cfg.apropos2BridgeEnable _v = delta Else _v = LoadVaginalWearing() + delta EndIf SaveVaginalWearing(_v) If Cfg.bDebugMode DebugLog("Vaginal wearing: " + _v) EndIf EndFunction  With the same config condition we would have to suspend TearVaginal(Float delta) and TearAnal(Float delta) calls in the OnAnimationEnd() function. Either that or we just remove the function and call UpdateActorStatus() from the Apropos2Actors script instead. I really don't know the better way here, or if theres an even better one.  Anways here we'd be done with the SimpleWnTEffects script, but we need some kind of value conversion. The Apropos2ActorAlias script has a function called UpdateAbuseTextures(bool increasingAbuse) which gives us a good metric which we could copy for a value conversion function. Something like TearSimpleWnT(Int fAproposTearValue, String fArea). The metric wouldn't check for AverageAbuseState, but instead for _vaginalWearTear and in a seperate condition for _analWearTear. Here we could call SimpleWnTEffects TearVaginal(Float delta) and TearAnal(Float delta) with hardcoded values for delta.  Now we need to move on to the Apropos2Actors script. Basically all we need we can get in Function DoApplyWearAndTear(Actor anActor, String area, string damageClass, Bool isRapeOrAggressive, Bool isCreature). Here, after some conditions, Apropos calls aproposActor.IncreaseVaginalWearAndTear(amount) and aproposActor.IncreaseAnalWearAndTear(amount) Here we would call the TearForSimpleWnT() function in the corresponding conditional.  Lastly we would need to call the UpdateActorStatus() function in the SimpleWnTEffects script through the ApplyEffectsAndTextures(bool increasingAbuse) function in the Apropos2Actors script, somehow.  I'm too inexperienced with Papyrus scripting, so if anyones up for the task, I think this should work? So you want the visual be updated by Apropos2 w&t level?
darknotfear Posted February 20, 2022 Author Posted February 20, 2022 19 hours ago, randyluawdnmd said: Could it support NPC in future?? I need to test the presistency of datas before I can make it to NPC.
myDNS Posted February 20, 2022 Posted February 20, 2022 (edited) 26 minutes ago, darknotfear said: So you want the visual be updated by Apropos2 w&t level? Â Yess exactly, but using the Apropos calculations, basically. I know this defeats the purpose of you making a dedicated mod, but I like the Apropos visuals aswell. :^) Â I wrote a function and edited it in the post, maybe you can take a look at it and tell me if I'm stupid Edited February 20, 2022 by myDNS
darknotfear Posted February 20, 2022 Author Posted February 20, 2022 32 minutes ago, myDNS said: Â Yess exactly, but using the Apropos calculations, basically. I know this defeats the purpose of you making a dedicated mod, but I like the Apropos visuals aswell. :^) Â I wrote a function and edited it in the post, maybe you can take a look at it and tell me if I'm stupid Idk about the mechanism of Apropos2, for player maybe you can simply achieve that by setting Tearing Rate and Healing Rate to zero and manage wearing in Apropos using StorageUtil. For NPC, I dont know how Apropos track actors and I'm kinda short on time, sorry about that.
myDNS Posted February 20, 2022 Posted February 20, 2022 14 minutes ago, darknotfear said: Idk about the mechanism of Apropos2, for player maybe you can simply achieve that by setting Tearing Rate and Healing Rate to zero and manage wearing in Apropos using StorageUtil. For NPC, I dont know how Apropos track actors and I'm kinda short on time, sorry about that. Â You're right that does sound a lot less complicated and might just work. I'll try it out, maybe I can DIY it.
jacobrox5656 Posted February 20, 2022 Posted February 20, 2022 How do I get the prolapsed uterus to properly work/show idk if I'm not seeing it or my eyes are bad. Â
gborogboro Posted February 20, 2022 Posted February 20, 2022 11 hours ago, FredOof said: I got TAWOBA too, may I ask how will these two mods conflict? The prolapse uterus use the same body slot (53) as the Tight part of TAWOBAE. Okay not that hard to change the body slot, but for me playing withou prolapse is okay too.
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now