Jump to content

Recommended Posts

Posted

Presumably this mod only uses Devious Devices keywords to trigger morph changes, correct? It's not going to adjust a morph if a regular outfit piece has "corset" in the name, for example?

 

An update/bugfix patch at some point, if you ever get to it Rogwar, would be pretty great. I know Skyrimfet is slowly updating his mod, but his is currently incredibly buggy, so DBA is my only option for this kind of thing.

 

One bug I've found, although I don't know exactly what has caused it, is that despite the waist limit being set to 60, it's showing as 90 in MCM, and I believe it as my character's waist is teensy tiny lol.

Posted

Correct, I use the keywords from DD.

If (and that is a big if) I do an update to this mod, I could add that. Sounds like a neat idea to check for the clothing name.

It is not possible to exceed the limit set in the MCM. If you want to check, activate debug and look for this in the log: "DBA: Waist morph set. Waisttime="

 

Explanation:

Every update cycle the MCM setting is part of the check procedure. The MCM value of the waist is updated every time and it cannot calculate above the set limit. It is hardcoded from 0-100 with a percentage value in mind. If you cheat it to 1000 it will go down to a value between 0-100 after the update timer set in the MCM has gone past. If not, the game / script engine is broken.

If it is below 0 or above 100 I would really wonder, because:

if waisttime < 0 ; if there is no corset restraint and the value would decrease below zero because lack of training
		waisttime = 0 ; the training is set to zero.
	elseif waisttime > 100 ; opposite is true if you overdo your corest training. More training than fully trained will result in
		waisttime = 100 ; fully trained= 100%
	endif

This waisttime value is getting muliplied by the set limit in the MCM. If set to 60 you will have at the peek of training: 100 (waisttime) * 60 (MCM setting) / 100=60 (%) reduction value of the waist bones.

The only value tinkering with the DBA-waist is waisttime, the time you train or untrain with or without corset.

  • 2 months later...
Posted

Since this mod is pretty much stable, I propose a table in the description (or wherever) with each alteration, what affects it and what effects it has in game.

 

For example, gags affect mouth, more open wile wearing, reverting while not wearing, 

 

Slider || Affected by || Effect       || Revert         || Gameplay
=======++=============++==============||================++================
Mouth  ||        Gags || Mouth open   || Default mouth  || Aesthetic only
Neck   ||     Collars || Long neck    || Default neck   || Aesthetic only

 

I still barely get how legs work. I keep seeing messages about hands being weird but I don't get it.

 

Maybe if it's laid out people might suggest ideas. If you want them.

 

  • 2 weeks later...
Posted
On 4/11/2025 at 7:34 PM, Jim55 said:

Since this mod is pretty much stable, I propose [...]

 

Nevermind the sources are there, so I'll do it.

 

Eyes

  Affected by: Devious Blindfold or Eye toys

  Effect (cosmetic): Makes you squint

  Effect (gameplay): None

 

Mouth
  Affected by: Devious gag or Mouth toys
  Effect (cosmetic): Mouth Open

  Effect (gameplay): None

 

Neck
  Affected by: Collar or Neck Toy

  Effect (cosmetic): Elongated neck

  Effect (gameplay): None

 

Arm

  Affected by: Armcuffs, Arm Toy or Wrist Toy

  Effect (cosmetic): Arm geometry

  Effect (gameplay): None

 

Hand

  Affected by: Gloves or Hand toys

  Effect (cosmetic): Arm geometry

  Effect (gameplay): None

 

Breasts 

  Affected by: Corset , Bra,  nipple toys

  Effect (cosmetic): Breast geometry

  Effect (gameplay): None

  Notes:

    1.5x for Bra

    1.0x for harness or piercings

 

Waist

  Affected by: Corset , Straightjacket, Hobble Dress, Hobble Dress Relaxed

  Effect (cosmetic): Pinched waist

  Effect (gameplay): None

  Notes:

    1.5x  Corset + (Straightjacket, Hobble Dress, Hobble Dress Relaxed)
    1.0x Corset

    0.75x Straightjacket, Hobble Dress, Hobble Dress Relaxed


Butt

  Affected by: Harness, Belt

  Effect (cosmetic): Apple mode

  Effect (gameplay): None

 

Anus

  Affected by: Plug

  Effect (cosmetic): None

  Effect (gameplay): None

 

Vag

  Affected by: Plug AND piercing together

  Effect (cosmetic): Vag alteration

  Effect (gameplay): None

 

Weight

  Affected by: Corset or suit

  Effect (cosmetic): Skyrim fat slider

  Effect (gameplay): None

  Note: While not in a suit, weight goes up at 1x, while in suit, goes down 4x.


Legs

  Affected by: Boots or legcuffs or hobbleskirt (but not relaxed hobble)

  Effect (cosmetic): Knee position and calf size

  Effect (gameplay): Speed alteration

 

Feet

  Affected by: Boots

  Effect (cosmetic): None + Tiptoe

  Effect (gameplay): Speed alteration, slot management

  If too far altered (75%+) and female, you can either be on tiptoe or in boots. Anything else will unequip item and equip tiptoe.

 

Speed adjust:

 

This is the part where my brain broke. We are very different people or the script interpreter has weird rules.

 

As I understand it, 

 

status -= MCMValue.maxspeedmult - foottime * MCMValue.heeldebuff * 0.6

 

should mean that at 100 max speed (MSM) and at default 1 heeldebuff, the penalty is a flat cut of 0-40 depending on training. However, if I cut out heeldebuff because it's 1, the line becomes

 

Status -= 100 - (0..100)*0,6

which is

Status -= 100- (0..60)

 

Meaning that at 0 training, Status is decreased by 100 with status being 100.

 

Either my brain is broken (very possible), the script language has a different order of operations (that would be weird), or this is why people complain about speed on installation. Works fine for me at 100% foot training, because boots cut 40 off my speed, which, with a fader over 1, can be a buff.

 

Apologies if I made an obvious error.

 

foottime * MCMValue.heeldebuff * 0.6 is a value between 0 and 60. Did you want to shave this off? -60 from Player AV Speedmult?

 

 

There's more rules under this for speed, but unless i understand how this is supposed to work, I'll stop here.

 

If I may offer a purely theoretical advice, regarding writing style, as a veteran, it would be to stop mixing values into the same equation. Here:

 

fHeelPenalty = (foottime /100) * MCMValue.heeldebuff * 0.6

 

This makes fHeelPenalty a unitary measure, varied from 0 to 0.6 which is a penalty. This makes further code easier to track:

 

Multiplicative:

  PlayerSpeed = BaseSpeed * (1 - fHeelPenalty) // from 0 to 0.4 means 0-40% off top speed, aka 60%-100%

 

Additive:

  PlayerSpeed = PlayerSpeed -  (BaseSpeed * fHeelPenalty) // from 0 to 0.6 means 0-60% flat decrease from normal speed

Posted
18 minutes ago, Jim55 said:

This is the part where my brain broke. We are very different people or the script interpreter has weird rules.

Your brain has just the wrong starting point :)

The speedmult is never touched. If a mod is touching a main value of the base game, just deactivate the mod and never bother to use it again.

If my mod is used in the base game without ever touching foot devices or high heels, the speedmult will be 100 as in the base game and never be changed.

In the moment you use heels or devious devices, the training is starting and your character feet will express the strain by using a modification to the speedmult. Based on the strength in my mod, the speed difference will be very strong or almost not existent.

 

You are right: The base modification is 40% of the initial character speed of the base game while using heels untrained. Try for yourself: Grab some 4'' heels and go for a jog after you took your time with sneakers and compare the time of 1 mile or 1.8 km... There will be a difference and a little bit of lasting pain afterwards cutting your speed down for a few hours :D 

 

Why this way to modify and not just cutting down the speedmult value by using the 'set speedmult to'? Because maybe you have another mod to modify walking speed. If you have two mods changing the base variable, you will have a mess immediatley. Asumption: Speedmult = 100; Mod 1 will change speedmult by -60% = 100-60%=40; Mod 2 will change speedmult by +25% =40+25%=50.

Now mod 1 is processing a change and the value of 60%, we remember our 60 in our own mod, is added to the speedmult, because you unequip the shoes 50+60= 110... Mod 2 is making it worse, because it is calculating always with the base game variable (now changed to 110) 25% of 110= 27,5...

You change the initial digit, you change the game. Modify it, but do not touch it. speedmult is 100 no matter what. Base calculation is always starting with 100.

 

1 hour ago, Jim55 said:

Meaning that at 0 training, Status is decreased by 100 with status being 100.

exact. resulting in a 0 (100-100=0) to modify the speedmult.

 

1 hour ago, Jim55 said:

foottime * MCMValue.heeldebuff * 0.6 is a value between 0 and 60. Did you want to shave this off? -60 from Player AV Speedmult?

yes.

 

1 hour ago, Jim55 said:

If I may offer a purely theoretical advice, regarding writing style, as a veteran, it would be to stop mixing values into the same equation

thanks :)  

And this is what makes the difference between noob (=me) to veteran (=you) :D To be honest: It was just for me. Seeing this much interest was never part of my wildest dreams. 10 downloads. maybe 15.... but this value? wow. just wow.

It was / is my first mod in my gaming life and it was my first coding beyond a VBA script in Excel to protect the sheet with the press of a button ;) My starting point was, let's say just 0.1 beyond zero.

 

 

Posted
9 hours ago, Rogwar002 said:

exact. resulting in a 0 (100-100=0) to modify the speedmult.

 

Status is 0 at 0 training and 60 at full training.

 

Let's call fHeelPenalty = MCMValue.maxspeedmult - foottime * MCMValue.heeldebuff * 0.6

fHeelPenalty is 100 - (0..60) making it 100..40.

 

status is status - fHeelPenatly, or 100 - (100..40) which is 0 .. 60.

 

However,

 

    if currentspeedmult as int != status as int    ; // doesn't affect math
        speedmod = MCMValue.maxspeedmult - status - speedmodother
        // speedmod = 100 - (0 .. 60) - 0 = 100 .. 40

 

        dba_Player.restoreActorValue("SpeedMult", currentspeedmod as int) // 0

 

        dba_Player.damageActorValue("SpeedMult",speedmod as int)

 

And this is where my lack of experience shows. Wiki says that DamageActorValue subtracts the value from the normal, claming that at health 10, DamageActorValue(3) makes health 7.

 

Your code makes sense for a call to SetAV. But DamageAV works with a reversed scale. Am I reading the wiki wrong?


 

Quote

 

Try for yourself: Grab some 4'' heels and go for a jog after you took your time with sneakers and compare the time of 1 mile or 1.8 km... There will be a difference and a little bit of lasting pain afterwards cutting your speed down for a few hours :D 

 

Wife said to stop doing that or she'll hide my network cables.

 

 

I've ordered more cable.

Posted (edited)

Let's start in the beginning. My assumption was exactly the same and I found out by try and error, that Skyrim is genius and insidious at the same time.

 

The value SpeedMult is not the running speed nor the walking speed. Of course not. As the name does imply it is a multiplicator. It is not a value between 0-1 but 0-200 and it is by default 100.

This multiplicator is influencing all values, that does make your character move, e.g. NPC_Sprinting_MT, NPC_Sneaking_MT, NPC_Default_MT (=80,099998; and please don't ask why Bethesda made a float value like that as a default, because I have no idea) etc.

 

If you damage the actor value Speedmult you damage the walking speed by that multiplied amount in percent. Reducing Speedmult by 50 will half your speed, because 80,099998 *50% = 40,04999.

 

Let's go back to the mod. I am asking for the speedmult by asking getAV("speedmult"). In an unmodded game this should be 100.

This is my base. I will not touch it. It is and will be always 100. I am asking if another mod is modifying this value, but nothing else. "If stupid does change base game value to hilarious values, ignore stupid and set base game value with limits from DBM MCM (max 100, min 25 by default)."

 

Next step: I made a setting in the MCM: Speemult max is 100 by default (changeable from 1-250). This is my value to calculate everthing around running and walking speed. This value is used every cycle my mod does.

Now I am going to substract everything that is bad from this Speedmultmax status value. Meaning 100-*insert damage here*

The thing your are missing: Foottime. This little digit is your training experience calculated by the game timer multiplied by a balancing value (3.57; instead of playing skyrim 3.57 days, you need only 1). The longer you train, the higher the value. With enough training, your status damage is neglible. Foottime is multiplied with your current heel situation. If you are wearing heels for a long time, your foottime is high, resulting in a big chunk of positive influcence on your damageing status value. As we already read before: status value default (100)= MaxSpeedmult from MCM (100) -footime * heeldebuff (default =1). If foottime is exeeding 100 in game days your damage to your foot status value is 0 resulting in 0 damage to the mod value to damage the speedmult.

Every 6.66s (default) I am starting the same calculation.

 

If using the default settings without heels, your speedmult is not touched during the first calculation, because the status value calculation is 100-100=0.

the formular is reading:

status (100) -= DBM MCM maxspeedmult value (100)- foottime (0) * DBM MCM heeldebuff value (1)

step by step:

100-=100-0*1 // in German we say: Punkt vor Strichrechnung meaning First multiply or divide, than substract or add.

result is 100-=100-0 //zero times 1 is nothing or zero

100-=100

Papyrus language -= is the result of substracting

100-100=0

The staus modifier is 0.

DamageAV "Speedmult" = 0

Damage does mean substract, but 100-nothing is 100. No change.

 

Depending on the footwear in combination with heeltraining the calculation is done or not. There is a surveilance of Slot 37 in combination with time to determine, if the debuff for heels should work or not.

 

Edited by Rogwar002
Posted

 

Listen, I've taken way more of your time than I should. I'll wrap my brain around this when I had more sleep. Maybe I will translate it into a language I do understand and drag some sliders around. You use DamageActorValue with SpeedMod but you explain why Status is 0. I agree status is zero, but you don't call DamageActorvalue with Status. Speedmod and speedmodother seem to go off each other, are you trying to do incremental damage, as in a transition time? It's not in game.

 

meh, I'll figure it out.

 

One question, though. If it's "heel training" shouldn't I be better with heels than on dubious tendons? With default settings 

 

max 100, min 40, foot mult 1.0, alteration strength 100, status 100

 

I get 30 with heels and 60 barefoot (tiptoe).

 

Also, shouldn't min 40 apply?

 

After opening and closing the MCM, I get -30

 

image.png.f874cf072f47cd542ff626afd87cd2c9.png

 

and then subsequent runs of the script seem to re-center on 60.

 

Boosting heel debuff to 2.0 (aka buff) I get

 

image.thumb.png.8db50cc5fdba426b205c952a3d9a2854.png

 

Which ... at 10 I was completely frozen. 150 when closing MCM, followed by 10, followed by 100 which has stabilized. 40 barefoot.

 

Mind you, the gold heels are non-debuffing Dollmaker heels. With the regular ones I get less. 60 after MCM, 50 after the script runs. Then 58.

 

Aaaand after writing this and testing with various gear it gives me 60 tiptoe and 90 in heels.

 

I don't know any more. I'm going to bed. It's mocking me.

Posted

For me it seems there is another mod modifying your speedmult value. This is why it takes more than one cycle of my mod to get it right, because it is trying to respect the second mod.

Without seeing your game I can only tell so much.

For me the mod is working as it was coded. I am of course using Devious Devices and Devious Cursed Loot.

Tbh: I did not make any update to the mod in a long time. Here and there I am playing around with my modded Skyrim. Just used Wabbajack to download and activate a Skyrim AE version. Maybe this will get me addicted again, maybe not.

We'll see. If yes, I will probably code an AE version of my mod and maybe (a big maybe) add features and better help notes inside of the scripts.

  • 5 months later...
Posted (edited)
Am 30.04.2025 um 21:55 Uhr sagte Rogwar002:

Mir scheint, es gibt einen anderen Mod, der Ihren Speedmult-Wert ändert. Deshalb dauert es mehr als einen Zyklus meines Mods, bis es richtig funktioniert, da er versucht, den zweiten Mod zu berücksichtigen.

Ohne Ihr Spiel zu sehen, kann ich nur so viel sagen.

Bei mir funktioniert der Mod so, wie er programmiert wurde. Ich verwende natürlich Devious Devices und Devious Cursed Loot.

Ehrlich gesagt: Ich habe die Mod schon lange nicht mehr aktualisiert. Ab und zu spiele ich mit meinem modifizierten Skyrim herum. Habe gerade mit Wabbajack eine Skyrim AE-Version heruntergeladen und aktiviert. Vielleicht macht mich das wieder süchtig, vielleicht auch nicht.

Mal sehen. Wenn ja, werde ich wahrscheinlich eine AE-Version meines Mods programmieren und vielleicht (ein großes Vielleicht) Funktionen und bessere Hilfetexte in die Skripte einbauen.

 

I would be very happy if that happened.

:thumbsup:

 

I myself have been using the "Skyimfet" mod for several years (as the SE version) – which is why I never looked in the LE section to see if there was an "easy" version (the change in body appearance).

I quite like the "bonus and penalty" system – which lies behind the intention of his training... since I have more than 10 years of experience with active BDSM and "fetishes" (this includes wearing corsets with the corresponding changes to my own body) – "Devious Training" was a perfect fit for my list of options.

 

Six months ago, I decided to switch from the SE to the AE version and also switched from "Vortex" to "MO2" – quite a mental challenge for someone like me at 63 years of age.

And I can't get "Devious Training" to work at all in its current AE version, and I'm looking for an alternative for purely visual changes.

:relieved:

 

I'm currently refraining from implementing Your LE-version into my AE image — especially since "MO2" will complain about the "43" format anyway... and I'd have to deal with xedit.

 

Edit:

I decided to ignore the message about "Format 43" after all... and the mod works!

It actually works quite well – so much so that it initially stays in the loading order.

:thumbsup:

 

As I've seen in the game, there are "thought messages" about the respective "parts" you wear (and which change your body).

If you change this mod again in the future, I have a suggestion: move these texts to a JSON file so that you, as a mod user, can customize them (e.g., add your own translation into your native language).

💖

 

Edited by Miauzi
  • 4 months later...

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...