GreatCroco Posted June 26, 2022 Posted June 26, 2022 @Kimy @Min I always found it a bit restrictive, as in: all or nothing. For example: Hiding a corset under the ancient nord armour doesn't make any sense, but hiding it under ebony does. However, the device hider doesn't allow this. Small(??) suggestion, that would also declutter the Devious Devices MCM: Inside the menu show a list of currently equipped item/the inventory. The player then can select an item and tick the slots they want hidden for that particular item. Does that work with the current system, or not?
DeWired Posted June 27, 2022 Posted June 27, 2022 (edited) @Kimyspeaking of patch archives.. ? I made one (against 5.2beta6). Summary of changes: - adds in MCM Vibrate Volume slider for NPCs, existing is left for player. - I think, fixes Vibrate Volume slider?.. - makes VibrateEffect use different volumes for player and NPCs from config. This way, player can have vibrations silenced while listening for NPC being vibrated. - log messages added for when shock effect is applied to player In archive patch itself (made with diff) and changed files. As always - it is a suggestion, treat as you wish ? Spoiler diff -Naur Source.orig/zadConfig.psc Source/zadConfig.psc --- Source.orig/zadConfig.psc 2021-01-05 21:37:32.324224300 +0300 +++ Source/zadConfig.psc 2022-06-27 16:04:11.931581100 +0300 @@ -113,6 +113,8 @@ float volumeEdgedDefault = 1.0 float Property VolumeVibrator = 0.5 Auto float volumeVibratorDefault = 0.5 +float Property VolumeVibratorNPC = 0.25 Auto +float volumeVibratorNPCDefault = 0.25 ; Quest Monitor Configuration bool Property ForbiddenTome = true Auto @@ -183,6 +185,7 @@ int VolumeOrgasmOID int VolumeEdgedOID int VolumeVibratorOID +int VolumeVibratorNPCOID int ForbiddenTomeOID int SergiusExperimentOID int SurreptitiousStreetsOID @@ -440,7 +443,8 @@ AddHeaderOption("Audio Configuration") VolumeOrgasmOID = AddSliderOption("Orgasm Volume", VolumeOrgasm, "{3}") VolumeEdgedOID = AddSliderOption("Edged Volume", VolumeEdged, "{3}") - VolumeVibratorOID = AddSliderOption("Vibrator Volume ", VolumeVibrator, "{3}") + VolumeVibratorOID = AddSliderOption("Player Vibrator Volume ", VolumeVibrator, "{3}") + VolumeVibratorNPCOID = AddSliderOption("NPC Vibrator Volume ", VolumeVibratorNPC, "{3}") ElseIf page == "Devices Underneath (1)" SetupSlotMasks() SetCursorFillMode(TOP_TO_BOTTOM) @@ -726,6 +730,11 @@ SetSliderDialogDefaultValue(VolumeVibratorDefault) SetSliderDialogRange(0, 1) SetSliderDialogInterval(0.01) + elseIf option == VolumeVibratorNPCOID + SetSliderDialogStartValue(VolumeVibratorNPC) + SetSliderDialogDefaultValue(VolumeVibratorNPCDefault) + SetSliderDialogRange(0, 1) + SetSliderDialogInterval(0.01) elseIf option == ssSleepChanceOID SetSliderDialogStartValue(ssSleepChance) SetSliderDialogDefaultValue(ssSleepChanceDefault) @@ -979,9 +988,12 @@ elseIf (option == VolumeEdgedOID) VolumeEdged = VolumeEdgedDefault SetSliderOptionValue(VolumeEdgedOID, VolumeEdgedDefault, "{3}") - elseIf (option == VolumeVibrator) + elseIf (option == VolumeVibratorOID) VolumeVibrator = VolumeVibratorDefault SetSliderOptionValue(VolumeVibratorOID, VolumeVibratorDefault, "{3}") + elseIf (option == VolumeVibratorNPC) + VolumeVibratorNPC = VolumeVibratorNPCDefault + SetSliderOptionValue(VolumeVibratorNPCOID, VolumeVibratorNPCDefault, "{3}") elseif option == ForbiddenTomeOID ForbiddenTome = ForbiddenTomeDefault SetToggleOptionValue(ForbiddenTomeOID, ForbiddenTome) @@ -1123,8 +1135,10 @@ SetInfoText("Controls the volume of an an actor's moans during an orgasm.\nDefault:" + volumeOrgasmDefault) elseIf (option == VolumeEdgedOID) SetInfoText("Controls the volume of an actor's moans after being edged.\nDefault:" + volumeEdgedDefault) - elseIf (option == VolumeVibrator) - SetInfoText("Controls the volume of a vibrator. Note, that the stronger vibrators are inherently louder than the weaker ones. If you set this too low, you may not be able to hear the weaker ones.\nDefault:" + volumeVibratorDefault) + elseIf (option == VolumeVibratorOID) + SetInfoText("Controls the volume of a vibrator for a player. Note, that the stronger vibrators are inherently louder than the weaker ones. If you set this too low, you may not be able to hear the weaker ones.\nDefault:" + volumeVibratorDefault) + elseIf (option == VolumeVibratorNPCOID) + SetInfoText("Controls the volume of a vibrator for NPC. Note, that the stronger vibrators are inherently louder than the weaker ones. If you set this too low, you may not be able to hear the weaker ones.\nDefault:" + volumeVibratorNPCDefault) elseIf (option == ForbiddenTomeOID) SetInfoText("Enable/disable the triggers to start the Forbidden Tome quest. Hint: This quest is started in the Arcanaeum.\nDefault:"+ForbiddenTomeDefault) elseIf (option == SergiusExperimentOID) @@ -1247,6 +1261,9 @@ elseIf option == VolumeVibratorOID VolumeVibrator = (value as Float) SetSliderOptionValue(option, value, "{3}") + elseIf option == VolumeVibratorNPCOID + VolumeVibratorNPC = (value as Float) + SetSliderOptionValue(option, value, "{3}") elseIf option == VolumeEdgedOID VolumeEdged = (value as Float) SetSliderOptionValue(option, value, "{3}") @@ -1394,6 +1411,7 @@ ExportFloat("VolumeOrgasm", VolumeOrgasm);EXPORTAUTOGEN ExportFloat("VolumeEdged", VolumeEdged);EXPORTAUTOGEN ExportFloat("VolumeVibrator", VolumeVibrator);EXPORTAUTOGEN + ExportFloat("VolumeVibratorNPC", VolumeVibratorNPC);EXPORTAUTOGEN ExportBool("ForbiddenTome", ForbiddenTome);EXPORTAUTOGEN ExportBool("SergiusExperiment", SergiusExperiment);EXPORTAUTOGEN ExportBool("SurreptitiousStreets", SurreptitiousStreets);EXPORTAUTOGEN @@ -1468,6 +1486,7 @@ VolumeOrgasm = ImportFloat("VolumeOrgasm", VolumeOrgasm);IMPORTAUTOGEN VolumeEdged = ImportFloat("VolumeEdged", VolumeEdged);IMPORTAUTOGEN VolumeVibrator = ImportFloat("VolumeVibrator", VolumeVibrator);IMPORTAUTOGEN + VolumeVibratorNPC = ImportFloat("VolumeVibratorNPC", VolumeVibratorNPC);IMPORTAUTOGEN ForbiddenTome = ImportBool("ForbiddenTome", ForbiddenTome);IMPORTAUTOGEN SergiusExperiment = ImportBool("SergiusExperiment", SergiusExperiment);IMPORTAUTOGEN SurreptitiousStreets = ImportBool("SurreptitiousStreets", SurreptitiousStreets);IMPORTAUTOGEN diff -Naur Source.orig/zadEventPeriodicShocker.psc Source/zadEventPeriodicShocker.psc --- Source.orig/zadEventPeriodicShocker.psc 2018-05-10 06:33:04.282100000 +0300 +++ Source/zadEventPeriodicShocker.psc 2022-06-27 15:39:30.165878400 +0300 @@ -12,10 +12,13 @@ armor vPiercing = StorageUtil.GetFormValue(akActor, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousPiercingsVaginal) + "_Rendered") as Armor if vPiercing && (vPiercing.HasKeyword(libs.zad_EffectShocking)) libs.NotifyPlayer("The piercings within you let out a painful jolt!") + libs.Log("zadEventPeriodicShocker: vPiercing") ElseIf vPlug && (vPlug.HasKeyword(libs.zad_EffectShocking)) libs.NotifyPlayer("The plug within you let out a painful jolt!") + libs.Log("zadEventPeriodicShocker: vPlug") Else libs.NotifyPlayer("A painful jolt courses through you!") + libs.Log("zadEventPeriodicShocker: generic") EndIf Else libs.NotifyNPC(akActor.GetLeveledActorBase().GetName() + " squirms uncomfortably as a painful jolt courses through her!") diff -Naur Source.orig/zadEventVibrate.psc Source/zadEventVibrate.psc --- Source.orig/zadEventVibrate.psc 2021-01-07 19:29:35.778818600 +0300 +++ Source/zadEventVibrate.psc 2022-06-27 15:42:17.659662100 +0300 @@ -30,6 +30,7 @@ if libs.ActorHasKeyword(akActor, libs.zad_EffectShockOnFullArousal) && libs.Aroused.GetActorArousal(akActor) >= 99 if (akActor == libs.PlayerRef) libs.NotifyPlayer("A painful jolt of electricity rocks you.") + libs.Log("zadEventVibrate: shock") Else libs.NotifyNPC(akActor.GetLeveledActorBase().GetName()+" squirms uncomfortably as electricity runs through her.") EndIf diff -Naur Source.orig/zadLibs.psc Source/zadLibs.psc --- Source.orig/zadLibs.psc 2022-03-28 23:14:58.890016400 +0300 +++ Source/zadLibs.psc 2022-06-27 16:07:10.049591400 +0300 @@ -2001,12 +2001,12 @@ Endif ; Initialize Sounds - float vibSoundMult = 1 + float vibSoundVol = Config.VolumeVibrator if akActor != PlayerRef - vibSoundMult=0.5 + vibSoundVol=Config.VolumeVibratorNPC EndIf int vsID = vibSoundSelect.Play(akActor) - Sound.SetInstanceVolume(vsID, Config.VolumeVibrator * vibSoundMult) + Sound.SetInstanceVolume(vsID, vibSoundVol) int msID = MoanSound.Play(akActor) Sound.SetInstanceVolume(msID, GetMoanVolume(akActor)) int timeVibrated = 0 @@ -2857,6 +2857,7 @@ Function ShockActor(actor akActor) if akActor == playerRef NotifyPlayer("The plugs within you let out a powerful electrical shock!") + log("zadLibs: ShockActor") Else NotifyNPC(akActor.GetLeveledActorBase().GetName()+" squirms uncomfortably as electricity runs through her.") EndIf diff -Naur Source.orig/zadShockVibEffect.psc Source/zadShockVibEffect.psc --- Source.orig/zadShockVibEffect.psc 2018-05-10 06:33:04.330730000 +0300 +++ Source/zadShockVibEffect.psc 2022-06-27 16:10:12.662217300 +0300 @@ -21,6 +21,7 @@ if Target == libs.playerRef libs.NotifyPlayer("A small jolt of electricity emenates from the ") libs.NotifyPlayer("plugs within you, causing you to cry out in pain.") + libs.Log("zadShockVibEffect: ShockActor") Else libs.NotifyNPC(Target.GetName() + " squirms uncomfortably as the plugs within her let out a painful jolt!") EndIf DDi vibrate patch.rar Edited June 27, 2022 by DeWired 1
Kimy Posted June 27, 2022 Author Posted June 27, 2022 2 hours ago, DeWired said: @Kimyspeaking of patch archives.. ? I made one (against 5.2beta6). Summary of changes: - adds in MCM Vibrate Volume slider for NPCs, existing is left for player. - I think, fixes Vibrate Volume slider?.. - makes VibrateEffect use different volumes for player and NPCs from config. This way, player can have vibrations silenced while listening for NPC being vibrated. - log messages added for when shock effect is applied to player In archive patch itself (made with diff) and changed files. As always - it is a suggestion, treat as you wish ? Reveal hidden contents diff -Naur Source.orig/zadConfig.psc Source/zadConfig.psc --- Source.orig/zadConfig.psc 2021-01-05 21:37:32.324224300 +0300 +++ Source/zadConfig.psc 2022-06-27 16:04:11.931581100 +0300 @@ -113,6 +113,8 @@ float volumeEdgedDefault = 1.0 float Property VolumeVibrator = 0.5 Auto float volumeVibratorDefault = 0.5 +float Property VolumeVibratorNPC = 0.25 Auto +float volumeVibratorNPCDefault = 0.25 ; Quest Monitor Configuration bool Property ForbiddenTome = true Auto @@ -183,6 +185,7 @@ int VolumeOrgasmOID int VolumeEdgedOID int VolumeVibratorOID +int VolumeVibratorNPCOID int ForbiddenTomeOID int SergiusExperimentOID int SurreptitiousStreetsOID @@ -440,7 +443,8 @@ AddHeaderOption("Audio Configuration") VolumeOrgasmOID = AddSliderOption("Orgasm Volume", VolumeOrgasm, "{3}") VolumeEdgedOID = AddSliderOption("Edged Volume", VolumeEdged, "{3}") - VolumeVibratorOID = AddSliderOption("Vibrator Volume ", VolumeVibrator, "{3}") + VolumeVibratorOID = AddSliderOption("Player Vibrator Volume ", VolumeVibrator, "{3}") + VolumeVibratorNPCOID = AddSliderOption("NPC Vibrator Volume ", VolumeVibratorNPC, "{3}") ElseIf page == "Devices Underneath (1)" SetupSlotMasks() SetCursorFillMode(TOP_TO_BOTTOM) @@ -726,6 +730,11 @@ SetSliderDialogDefaultValue(VolumeVibratorDefault) SetSliderDialogRange(0, 1) SetSliderDialogInterval(0.01) + elseIf option == VolumeVibratorNPCOID + SetSliderDialogStartValue(VolumeVibratorNPC) + SetSliderDialogDefaultValue(VolumeVibratorNPCDefault) + SetSliderDialogRange(0, 1) + SetSliderDialogInterval(0.01) elseIf option == ssSleepChanceOID SetSliderDialogStartValue(ssSleepChance) SetSliderDialogDefaultValue(ssSleepChanceDefault) @@ -979,9 +988,12 @@ elseIf (option == VolumeEdgedOID) VolumeEdged = VolumeEdgedDefault SetSliderOptionValue(VolumeEdgedOID, VolumeEdgedDefault, "{3}") - elseIf (option == VolumeVibrator) + elseIf (option == VolumeVibratorOID) VolumeVibrator = VolumeVibratorDefault SetSliderOptionValue(VolumeVibratorOID, VolumeVibratorDefault, "{3}") + elseIf (option == VolumeVibratorNPC) + VolumeVibratorNPC = VolumeVibratorNPCDefault + SetSliderOptionValue(VolumeVibratorNPCOID, VolumeVibratorNPCDefault, "{3}") elseif option == ForbiddenTomeOID ForbiddenTome = ForbiddenTomeDefault SetToggleOptionValue(ForbiddenTomeOID, ForbiddenTome) @@ -1123,8 +1135,10 @@ SetInfoText("Controls the volume of an an actor's moans during an orgasm.\nDefault:" + volumeOrgasmDefault) elseIf (option == VolumeEdgedOID) SetInfoText("Controls the volume of an actor's moans after being edged.\nDefault:" + volumeEdgedDefault) - elseIf (option == VolumeVibrator) - SetInfoText("Controls the volume of a vibrator. Note, that the stronger vibrators are inherently louder than the weaker ones. If you set this too low, you may not be able to hear the weaker ones.\nDefault:" + volumeVibratorDefault) + elseIf (option == VolumeVibratorOID) + SetInfoText("Controls the volume of a vibrator for a player. Note, that the stronger vibrators are inherently louder than the weaker ones. If you set this too low, you may not be able to hear the weaker ones.\nDefault:" + volumeVibratorDefault) + elseIf (option == VolumeVibratorNPCOID) + SetInfoText("Controls the volume of a vibrator for NPC. Note, that the stronger vibrators are inherently louder than the weaker ones. If you set this too low, you may not be able to hear the weaker ones.\nDefault:" + volumeVibratorNPCDefault) elseIf (option == ForbiddenTomeOID) SetInfoText("Enable/disable the triggers to start the Forbidden Tome quest. Hint: This quest is started in the Arcanaeum.\nDefault:"+ForbiddenTomeDefault) elseIf (option == SergiusExperimentOID) @@ -1247,6 +1261,9 @@ elseIf option == VolumeVibratorOID VolumeVibrator = (value as Float) SetSliderOptionValue(option, value, "{3}") + elseIf option == VolumeVibratorNPCOID + VolumeVibratorNPC = (value as Float) + SetSliderOptionValue(option, value, "{3}") elseIf option == VolumeEdgedOID VolumeEdged = (value as Float) SetSliderOptionValue(option, value, "{3}") @@ -1394,6 +1411,7 @@ ExportFloat("VolumeOrgasm", VolumeOrgasm);EXPORTAUTOGEN ExportFloat("VolumeEdged", VolumeEdged);EXPORTAUTOGEN ExportFloat("VolumeVibrator", VolumeVibrator);EXPORTAUTOGEN + ExportFloat("VolumeVibratorNPC", VolumeVibratorNPC);EXPORTAUTOGEN ExportBool("ForbiddenTome", ForbiddenTome);EXPORTAUTOGEN ExportBool("SergiusExperiment", SergiusExperiment);EXPORTAUTOGEN ExportBool("SurreptitiousStreets", SurreptitiousStreets);EXPORTAUTOGEN @@ -1468,6 +1486,7 @@ VolumeOrgasm = ImportFloat("VolumeOrgasm", VolumeOrgasm);IMPORTAUTOGEN VolumeEdged = ImportFloat("VolumeEdged", VolumeEdged);IMPORTAUTOGEN VolumeVibrator = ImportFloat("VolumeVibrator", VolumeVibrator);IMPORTAUTOGEN + VolumeVibratorNPC = ImportFloat("VolumeVibratorNPC", VolumeVibratorNPC);IMPORTAUTOGEN ForbiddenTome = ImportBool("ForbiddenTome", ForbiddenTome);IMPORTAUTOGEN SergiusExperiment = ImportBool("SergiusExperiment", SergiusExperiment);IMPORTAUTOGEN SurreptitiousStreets = ImportBool("SurreptitiousStreets", SurreptitiousStreets);IMPORTAUTOGEN diff -Naur Source.orig/zadEventPeriodicShocker.psc Source/zadEventPeriodicShocker.psc --- Source.orig/zadEventPeriodicShocker.psc 2018-05-10 06:33:04.282100000 +0300 +++ Source/zadEventPeriodicShocker.psc 2022-06-27 15:39:30.165878400 +0300 @@ -12,10 +12,13 @@ armor vPiercing = StorageUtil.GetFormValue(akActor, "zad_Equipped" + libs.LookupDeviceType(libs.zad_DeviousPiercingsVaginal) + "_Rendered") as Armor if vPiercing && (vPiercing.HasKeyword(libs.zad_EffectShocking)) libs.NotifyPlayer("The piercings within you let out a painful jolt!") + libs.Log("zadEventPeriodicShocker: vPiercing") ElseIf vPlug && (vPlug.HasKeyword(libs.zad_EffectShocking)) libs.NotifyPlayer("The plug within you let out a painful jolt!") + libs.Log("zadEventPeriodicShocker: vPlug") Else libs.NotifyPlayer("A painful jolt courses through you!") + libs.Log("zadEventPeriodicShocker: generic") EndIf Else libs.NotifyNPC(akActor.GetLeveledActorBase().GetName() + " squirms uncomfortably as a painful jolt courses through her!") diff -Naur Source.orig/zadEventVibrate.psc Source/zadEventVibrate.psc --- Source.orig/zadEventVibrate.psc 2021-01-07 19:29:35.778818600 +0300 +++ Source/zadEventVibrate.psc 2022-06-27 15:42:17.659662100 +0300 @@ -30,6 +30,7 @@ if libs.ActorHasKeyword(akActor, libs.zad_EffectShockOnFullArousal) && libs.Aroused.GetActorArousal(akActor) >= 99 if (akActor == libs.PlayerRef) libs.NotifyPlayer("A painful jolt of electricity rocks you.") + libs.Log("zadEventVibrate: shock") Else libs.NotifyNPC(akActor.GetLeveledActorBase().GetName()+" squirms uncomfortably as electricity runs through her.") EndIf diff -Naur Source.orig/zadLibs.psc Source/zadLibs.psc --- Source.orig/zadLibs.psc 2022-03-28 23:14:58.890016400 +0300 +++ Source/zadLibs.psc 2022-06-27 16:07:10.049591400 +0300 @@ -2001,12 +2001,12 @@ Endif ; Initialize Sounds - float vibSoundMult = 1 + float vibSoundVol = Config.VolumeVibrator if akActor != PlayerRef - vibSoundMult=0.5 + vibSoundVol=Config.VolumeVibratorNPC EndIf int vsID = vibSoundSelect.Play(akActor) - Sound.SetInstanceVolume(vsID, Config.VolumeVibrator * vibSoundMult) + Sound.SetInstanceVolume(vsID, vibSoundVol) int msID = MoanSound.Play(akActor) Sound.SetInstanceVolume(msID, GetMoanVolume(akActor)) int timeVibrated = 0 @@ -2857,6 +2857,7 @@ Function ShockActor(actor akActor) if akActor == playerRef NotifyPlayer("The plugs within you let out a powerful electrical shock!") + log("zadLibs: ShockActor") Else NotifyNPC(akActor.GetLeveledActorBase().GetName()+" squirms uncomfortably as electricity runs through her.") EndIf diff -Naur Source.orig/zadShockVibEffect.psc Source/zadShockVibEffect.psc --- Source.orig/zadShockVibEffect.psc 2018-05-10 06:33:04.330730000 +0300 +++ Source/zadShockVibEffect.psc 2022-06-27 16:10:12.662217300 +0300 @@ -21,6 +21,7 @@ if Target == libs.playerRef libs.NotifyPlayer("A small jolt of electricity emenates from the ") libs.NotifyPlayer("plugs within you, causing you to cry out in pain.") + libs.Log("zadShockVibEffect: ShockActor") Else libs.NotifyNPC(Target.GetName() + " squirms uncomfortably as the plugs within her let out a painful jolt!") EndIf DDi vibrate patch.rar 47.41 kB · 2 downloads Looks like a good change to me. I will merge this! 4
Cornoholio Posted June 28, 2022 Posted June 28, 2022 (edited) Having a bit of a picke with cursed loot here: if I install DCL first, it won't work since it required DD to work. DD's beta 6 has a field for a patch for DCL, but that is greyed out unless DCL is installed... which I cannot do, unless DD is. How do I get the patch engaged? Only way to get out of it is to install DD, then DCL, then re-install DD - then the patch is availlable. Might be just a nitpick, butt... Edited June 28, 2022 by Cornoholio
DeWired Posted June 29, 2022 Posted June 29, 2022 So, it seams like a problem: Iron Ring Slave Boots don't have BodySlide records for UUNP body, even at 5.2beta6, and I hadn't found any instances of them having such records in other versions (5.1, 5.0, 4.3). In CBBE, they go as <SliderSet name="DD - CBBE - IronSlaveBoots"> in /CalienteTools/BodySlide/SliderSets/DD - CBBE.osp. File formed is meshes/devious/expansion/ZariaBoot7_0.nif, used for Armor Addon zadx_bootsAA. It causes problems for Cursed Loot, as this exact model is used for Prisoner Leg Restraints.
hungvipbcsok Posted June 30, 2022 Posted June 30, 2022 On 6/29/2022 at 2:36 AM, Cornoholio said: Having a bit of a picke with cursed loot here: if I install DCL first, it won't work since it required DD to work. DD's beta 6 has a field for a patch for DCL, but that is greyed out unless DCL is installed... which I cannot do, unless DD is. How do I get the patch engaged? Only way to get out of it is to install DD, then DCL, then re-install DD - then the patch is availlable. Might be just a nitpick, butt... I have no that trouble since I am using MO2. I can just install DCL with patch first, then DD with patch.
naaitsab Posted July 1, 2022 Posted July 1, 2022 (edited) So idea for the "heavy bondage" limitations. Instead of setting the lockpick chance to 0, just outright disable it. Add a new edit value on the perk 'zad_BoundActivation' Spoiler This will only trigger on NPC's and when sneaking. A condition 'GetDead' could be added to allow corpse looting when sneaking. Other one is the lockpick limitation. Adding another Perk entry on the same perk but with a check if it's locked removes the lockpick popup. It could also be tweaked to trigger on GetLockLevel between 0 and 254 so it will be possible to open locked doors you have the key to. Only issue with this is that is might not be clear it's a locked door as the prompt is gone. Could be filtered to be only on doors with a GetIsObjectType -> door. Spoiler As some mods to tamper with the same things it would be wise to add a condition to it so it's something that can be disabled via MCM if something conflicts. Edited July 2, 2022 by naaitsab 1
hungvipbcsok Posted July 2, 2022 Posted July 2, 2022 The new DD5.2 beta 6 has 2 steel yoke in additem expansion esm. 3 steel yoke id in console "help". The 2 steel yoke in additem, 1 work properly and 1 is invisible.
Hellethia_ Posted July 2, 2022 Posted July 2, 2022 Hello ! I just wanted to report a little bug on a mesh of the posture collar, in case it hasn't been done before The new version of the posture collar has no smoothing group on his nif file, so i guess there was an issue on export from 3D software when it has been modified to add the padlock on the back. Here is a screen to show the difference 4
SilentAntagonist121 Posted July 2, 2022 Posted July 2, 2022 (edited) 46 minutes ago, Hellethia_ said: Hello ! I just wanted to report a little bug on a mesh of the posture collar, in case it hasn't been done before The new version of the posture collar has no smoothing group on his nif file, so i guess there was an issue on export from 3D software when it has been modified to add the padlock on the back. Here is a screen to show the difference Woah, where's that pretty frilled collar catsuit thing from? Edited July 2, 2022 by SilentAntagonist121 2
Hellethia_ Posted July 3, 2022 Posted July 3, 2022 18 hours ago, SilentAntagonist121 said: Woah, where's that pretty frilled collar catsuit thing from? Actually it's just the Collar part of the outfit mod from COCO's 2B Wedding Outfit, I just modified the nifskope to change material, remove transparency, and i modified textures as well. So it is completly independant (i use it as amulet slot here, i think it's looking well between the posture collar and the catsuit ^^) 5
ihatemykite Posted July 3, 2022 Posted July 3, 2022 (edited) Hello @Kimy, After seeing how lively it became here, I realized that I should contribute something more life changing. So, basically, the whole expression system in DD is broken to the core. I have fixed it in my mode Unforgiving devices, and I think that it is finally working as intended. Because of that, I'm quite sure that it should not cause much problem in the framework. So, I have taken the script, edited it, improved it (added some simple APi, may be good to expand it in the future) and integrated them in to DD. I would be glad if you could give it a look and possibly add in to the framework. I have created new quest zadexpressionquest. For now this quest only contains 2 scripts: zadexpressionlibs and zadprebuildedexpressions. Most importantly, this reworked system fixes following problems Applyexpression() not really working. It only changes one phoneme if the openMouth argument is true. I have edited zadlibs applyexpression() to instead use new API function from zadexpressionlibs which works. Gag expression was overwriting expression, so even if the apply expression was fixed, it would still be removed by gag effect. New applyexpressions() from zadexpressionlibs takes the gag in account, and only edits phonemes, without touching other expression nodes (more in pictures) Strength argument in applyexpression() was not working. This is SexLab problem. It either doesn't work or it works in way that I don't understand New expressions use priority system. In case that there is call to apply an expression with lower priority that the currently applied expression, the call will fail. This will help modders in future as they will not need to check if the expression should be applied. Depending on body, head mesh etc... Gag sometimes doesn't fit. This is from user to user, so a universal solution is impossible. For that reason I added simple way to fix this issue. I added 16 new faction. Every faction represent 1 phoneme node. Gag effect then use these factions ranks as how strong should phonem be (again, can be better explained on picture). In general, users can simply edit any actor gag phonemes by using console. For now this only edits simple gag. Large gag and panel gag is ignored. Pictures Spoiler Gag effect before changing factions rank Gag effect after changing phonems Phonem 0 to 10 Phonem 9 to 20 Phonem 10 to 80 It can be seen that this change is done by calling SetFactionRank in console. This way, gag effect can be even modified for different actors (like custom followers, etc..) Pleasure expression with strength 75. This is the expression which is used by vib function (yes, this is how it should correctly look. I'm also surprised). I tested it by calling libs ApplyExpression and it worked, so if other mods also tried to use the expressions, now it should work. The same expression after equipping gag. Now there is still one problem (and I already send the fix in this support thread few pages back). Issue is that when equipping gag, it will call QueueNiNodeUpdate, which reset expressions. I have fixed it by adding condition so it only gets called if inventory is open (this doesn't solve the issue but it will at least reduce chance of getting expression removed) Few other notes: I edited VibrateEffect function to use new function with priority. Also changed orgasm expression (uses same expressions from UD). Creating new expressions isn't really that hard so in case you don't like it you can try to edit to your liking Edited script zadGagEffect and zadGagScript, so they doesn't remove expression once gag is unlocked I have created it as a separate mod, but it should be simple to integrate in to the framework. It is possible that this may cause issue if Conditional Expressions is installed. But from my understanding Conditional Expressions is incompatible with pretty much any mod in existence that changes expression. There are at least source files for the mod, so it should be possible to create a patch in the future. Installation details Can be installed like any other mod. Needs to be after DD. Don't forget to install sexlab after starting the game, or expressions returned by framework will be none No special upgrade handling is required. Install and try, nothing more. Download link: Devious Expressions.zip Edited July 3, 2022 by ihatemykite Removed additional picture 12
Vakir Posted July 4, 2022 Posted July 4, 2022 Recently migrated skyrim to my SSD to improve performance. but seem to be having issues going into the Whip and Chain inn. Not sure whats causing it but I think its something with DD beta 6. I reinstalled a couple times to no avail. Is there something I'm possibly missing? I reinstalled my ENBs and SKSE but similar issues keep happening attempting to enter the inn
serranna Posted July 4, 2022 Posted July 4, 2022 5 hours ago, ihatemykite said: Pictures Maybe I just have a lack of understanding, but what exactly is wrong with the first picture? The mouth being more closed over the gag makes it look more secure to the head and seemingly fitting more snug in the mouth. I don't see any unusual clipping that would make it look unnatural. The second picture has the mouth way too open, making it look less snug and making it seem more like she could just push the ball out of her mouth with her tongue. Just my opinion here, I'm probably the only one who thinks this way.
Vakir Posted July 4, 2022 Posted July 4, 2022 45 minutes ago, Vakir said: Recently migrated skyrim to my SSD to improve performance. but seem to be having issues going into the Whip and Chain inn. Not sure whats causing it but I think its something with DD beta 6. I reinstalled a couple times to no avail. Is there something I'm possibly missing? I reinstalled my ENBs and SKSE but similar issues keep happening attempting to enter the inn ok seems its a DCL issue. ill bring it to that forum.
Mister X Posted July 4, 2022 Posted July 4, 2022 Heyho, is there a way to check whether the timed lock shield for a worn item is active? If not, could such way be provided? Pretty please? 2
thedarkone1234 Posted July 4, 2022 Posted July 4, 2022 11 hours ago, serranna said: Maybe I just have a lack of understanding, but what exactly is wrong with the first picture? The mouth being more closed over the gag makes it look more secure to the head and seemingly fitting more snug in the mouth. I don't see any unusual clipping that would make it look unnatural. The second picture has the mouth way too open, making it look less snug and making it seem more like she could just push the ball out of her mouth with her tongue. Just my opinion here, I'm probably the only one who thinks this way. The angle of the picture makes it hard to notice by there is clipping with the lower lip (On my character and frankly any character that has a base mouth shape which isn't 0 or 1 it is far more noticable).
thedarkone1234 Posted July 4, 2022 Posted July 4, 2022 17 hours ago, ihatemykite said: Hello @Kimy, After seeing how lively it became here, I realized that I should contribute something more life changing. So, basically, the whole expression system in DD is broken to the core. I have fixed it in my mode Unforgiving devices, and I think that it is finally working as intended. Because of that, I'm quite sure that it should not cause much problem in the framework. So, I have taken the script, edited it, improved it (added some simple APi, may be good to expand it in the future) and integrated them in to DD. I would be glad if you could give it a look and possibly add in to the framework. I have created new quest zadexpressionquest. For now this quest only contains 2 scripts: zadexpressionlibs and zadprebuildedexpressions. Most importantly, this reworked system fixes following problems Applyexpression() not really working. It only changes one phoneme if the openMouth argument is true. I have edited zadlibs applyexpression() to instead use new API function from zadexpressionlibs which works. Gag expression was overwriting expression, so even if the apply expression was fixed, it would still be removed by gag effect. New applyexpressions() from zadexpressionlibs takes the gag in account, and only edits phonemes, without touching other expression nodes (more in pictures) Strength argument in applyexpression() was not working. This is SexLab problem. It either doesn't work or it works in way that I don't understand New expressions use priority system. In case that there is call to apply an expression with lower priority that the currently applied expression, the call will fail. This will help modders in future as they will not need to check if the expression should be applied. Depending on body, head mesh etc... Gag sometimes doesn't fit. This is from user to user, so a universal solution is impossible. For that reason I added simple way to fix this issue. I added 16 new faction. Every faction represent 1 phoneme node. Gag effect then use these factions ranks as how strong should phonem be (again, can be better explained on picture). In general, users can simply edit any actor gag phonemes by using console. For now this only edits simple gag. Large gag and panel gag is ignored. Pictures Reveal hidden contents Gag effect before changing factions rank Gag effect after changing phonems Phonem 0 to 10 Phonem 9 to 20 Phonem 10 to 80 It can be seen that this change is done by calling SetFactionRank in console. This way, gag effect can be even modified for different actors (like custom followers, etc..) Pleasure expression with strength 75. This is the expression which is used by vib function (yes, this is how it should correctly look. I'm also surprised). I tested it by calling libs ApplyExpression and it worked, so if other mods also tried to use the expressions, now it should work. The same expression after equipping gag. Now there is still one problem (and I already send the fix in this support thread few pages back). Issue is that when equipping gag, it will call QueueNiNodeUpdate, which reset expressions. I have fixed it by adding condition so it only gets called if inventory is open (this doesn't solve the issue but it will at least reduce chance of getting expression removed) Few other notes: I edited VibrateEffect function to use new function with priority. Also changed orgasm expression (uses same expressions from UD). Creating new expressions isn't really that hard so in case you don't like it you can try to edit to your liking Edited script zadGagEffect and zadGagScript, so they doesn't remove expression once gag is unlocked I have created it as a separate mod, but it should be simple to integrate in to the framework. It is possible that this may cause issue if Conditional Expressions is installed. But from my understanding Conditional Expressions is incompatible with pretty much any mod in existence that changes expression. There are at least source files for the mod, so it should be possible to create a patch in the future. Installation details Can be installed like any other mod. Needs to be after DD. Don't forget to install sexlab after starting the game, or expressions returned by framework will be none No special upgrade handling is required. Install and try, nothing more. Download link: Devious Expressions.zip 94.8 kB · 12 downloads I didn't test it (and won't be able to in the next few days) but it sounds like some amazing improvements. If it can't make it into the next release, could we have it as a separate mod please? XD
Nathriel Posted July 4, 2022 Posted July 4, 2022 17 hours ago, ihatemykite said: It is possible that this may cause issue if Conditional Expressions is installed. But from my understanding Conditional Expressions is incompatible with pretty much any mod in existence that changes expression. There are at least source files for the mod, so it should be possible to create a patch in the future. While I am sure the regular version of Conditional Expressions would cause issues, there is also Conditional Expressions Extended here on LL which has compatibility with Devious Devices among other things. I am not sure how your changes will effect that, but that mod is still in active development (even got another update earlier today), so I would think a solution wouldn't be hard to find?
Kimy Posted July 4, 2022 Author Posted July 4, 2022 2 hours ago, thedarkone1234 said: I didn't test it (and won't be able to in the next few days) but it sounds like some amazing improvements. If it can't make it into the next release, could we have it as a separate mod please? XD The download posted should work as separate patch against DD already. If people can test it and let me know if they like the changes, I will merge that patch into the framework.
Kimy Posted July 4, 2022 Author Posted July 4, 2022 12 hours ago, Mister X said: Heyho, is there a way to check whether the timed lock shield for a worn item is active? If not, could such way be provided? Pretty please? I will look into it. 2
serranna Posted July 4, 2022 Posted July 4, 2022 3 hours ago, thedarkone1234 said: The angle of the picture makes it hard to notice by there is clipping with the lower lip (On my character and frankly any character that has a base mouth shape which isn't 0 or 1 it is far more noticable). I get it, and when I study my characters in game I see the slight clipping in the lower lip, but picture 2 still looks like the mouth is open a bit too much in my opinion. As I said, it looks like the character can just push the ball out of their mouth. I prefer the look with the ever so slight clipping because it feels like a more snug and secure fit. Also imagine how picture 2 would look with the ring or bit and the mouth open that much. I dont have any interest in the patch, but I would be interested in seeing pictures of them.
ihatemykite Posted July 5, 2022 Posted July 5, 2022 12 hours ago, serranna said: I get it, and when I study my characters in game I see the slight clipping in the lower lip, but picture 2 still looks like the mouth is open a bit too much in my opinion. As I said, it looks like the character can just push the ball out of their mouth. I prefer the look with the ever so slight clipping because it feels like a more snug and secure fit. Also imagine how picture 2 would look with the ring or bit and the mouth open that much. I dont have any interest in the patch, but I would be interested in seeing pictures of them. The main goal of the patch isn't to allow users to adjust the gag. Main goal it so make expressions work properly. The gag thing was not even in original mod (or at least in such capacity). I just added it because I have heard many people complaining about clipping issue with gags. In case you like how current gag look, you don't have to do anything. Default values are the same. Also, here are the pictures of ring gag. I also edit the factions a little to make it fit more. Spoiler Default expression. This is still what you get after installing the mod. You have to adjust the faction manually or nothing happens Adjusted expression. In comparison to previous pictures, I removed 1 and 10 modifier. This way it doesn't clip and still looks fits. Same thing but with ring gag. There is only problem with teeth clipping through teeth. This was most likely also an issue before, it was just impossible to see it. 2
tznvlw Posted July 5, 2022 Posted July 5, 2022 @ihatemykite I was wondering, are these tweaks available for DD v1.63?
Kimy Posted July 5, 2022 Author Posted July 5, 2022 4 hours ago, tznvlw said: @ihatemykite I was wondering, are these tweaks available for DD v1.63? There is no DD 1.63. We're at version 5.x now. Do you mean SexLab perhaps?
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