Jump to content

Recommended Posts

Download mirror:

 

For everyone having problems downloading from MEGA, here is a mirror you can also download DD5 from (courtesy by Addramyr):

 

https://addy-skyrim.s3.us-east-2.amazonaws.com/LE/Devious+Devices+LE+5.0.7z

 

5.0 to 5.1 Delta Patches:

 

Devious Devices 5.0 to 5.1.7z

 

Devious Devices - BRRF.esp

 

Devious Devices For Him.esp

 

 

Attention content mod creators:


1. While the new device code is 99% backwards compatible with older DD versions, there were some regressions, not all of which I was able to perfectly eliminate. Due to the changes and because Skyrim's engine loves to derp like that, OnRemoveDevice() is no longer reliably called for NPCs when devices are removed by script. I am not aware of any DD mod actually using this function for NPCs (at least none in my own load order does), but in case yours does, please change your code accordingly, e.g. by setting up an event listener for your items if you want to get notified when the item unequips! OnRemoveDevice() is still called reliably for the player, or when devices are manually removed from an NPC by the player.
Also, the custom implementation for corsets has been removed. I do not plan to replace it with other custom code at this point. Corsets now behave like regular DD items. When a belt is worn, the corset is now worn over the belt, as one might normally expect anyway. The only slight clipping issues I noticed were the rope belts (crotch ropes), and I am not sure the issues are severe enough to justify writing special code for that item. Mods implementing custom corsets are advised to change their devices accordingly.
 
2. A big part of the time-saving effects is due to many functions no longer requiring to compute the rendered device and/or keyword for a given inventory device, which is very expensive to perform. The full effects of these optimizations can of course only be realized if modders change their code on their end and remove code used to determine these parameters when it's no longer needed.
 
3. If your mod currently includes code that for whatever reason equips or unequips devices using low-level internal DD API functions, this code will likely need to be rewritten, as several of these functions were deleted. Generally, the high-level functions should be used for such purposes.
 
Deprecated Functions:

These functions have been made obsolete by new code, but will probably never get removed due to their widespread use in existing mods. Please refer to the library source code for documentation about superceding functions.
-- Function EquipDevice(actor akActor, armor deviceInventory, armor deviceRendered, keyword zad_DeviousDevice, bool skipEvents=false, bool skipMutex=false)
-- Function RemoveDevice(actor akActor, armor deviceInventory, armor deviceRendered, keyword zad_DeviousDevice, bool destroyDevice=false, bool skipEvents=false, bool skipMutex=false)
 
These should NOT be used anymore and might eventually be removed in a future version. Please refer to the library source code for documentation about superceding functions.
-- Bool Function ForceEquipDevice(actor akActor, armor deviceInventory, armor deviceRendered, keyword zad_DeviousDevice, bool skipEvents=false, bool skipMutex = True)
-- bool Function ManipulateGenericDevice(actor akActor, armor device, bool equipOrUnequip, bool skipEvents = false , bool skipMutex = false)
-- bool Function ManipulateGenericDeviceByKeyword(Actor akActor, Keyword kw, bool equipOrUnequip, bool skipEvents = false, bool skipMutex = false)
-- Function ManipulateDevice(actor akActor, armor device, bool equipOrUnequip, bool skipEvents = false)
-- Function RegisterGenericDevice(Armor inventoryDevice, String tags)
-- Armor Function GetGenericDeviceByKeyword(Keyword kw)
-- Armor Function GetDeviceByTags(Keyword kw, String tags, bool requireAll = true, String tagsToSuppress = "", bool fallBack = true)
-- bool Function HasTag(Armor item, String tag)
-- bool Function HasTags(Armor item, String[] tags, bool requireAll = true)
-- zadxlibs.GetVersion()
-- zadxlibs.GetVersionString()

Link to comment

Ok, this is the new download page for the Devious Devices all-in-one installer. I will no longer update or support the older versions still available on their individual download pages. All support requests now go here, and here only! :)

 

Here is the 5.0 changelog:

 

Devious Devices 5.0
 
- Added: The code handling equipping and unequipping devices has been rewritten. It's many times faster than the old implementation, and its performance isn't adversely affected by large actor inventories. The new API functions for handling items no longer require passing the rendered device or the keyword. This further reduces processing time, as CPU-expensive functions to determine these parameters for a given inventory device no longer have to be performed prior to manipulating devices.
- Added: The DD expansions "For Him" and "Beast Races Refit" (adding DD support for male and beast race characters, respectively) are now an official part of the framework. Installation of these components is optional, but recommended.
- Added: DD now has built-in support for gagged voices. When actors are gagged while having sex, appropriate gagged voices are used. 3rd party mods are no longer required for this feature.
- Added: Over hundred variants of the straitjackets made by Uneven Steven have been added.
- Added: For easy picking of random devices from the DD library, close to a hundred LeveledItem lists have been added and exposed to the API in the new zadDeviceLists script (which is attached to zadxQuest, as only DDX knows all DD devices). The lists are organized in tiers, so it's e.g. possible to pick a leather armbinder, any armbinder, or any type of wrist restraint. This feature is meant to replace the performance-expensive item database.
- Added: New library function StartValidDDAnimation() that will select and start a valid DD animation in a way that will not trigger the animation filter. The function will pre-apply most fallbacks the filter could, to maximize chances that a valid animation can be picked. DD mods are recommended to use this function to start sex scenes.
- Added: New API function SwapDevices() that can safely swap out a worn device to replace with one of the same type. If no conflicting devices are worn, the function behaves like LockDevice()
- Added: MCM toggle for the Manipulate Lock feature. If set to false, players can NOT opt to manipulate the lock of a device they're voluntarily equipping. False is also the default value.
- Added: Manipulated locks have been overhauled. Mods can now determine if a device has its lock manipulated by calling IsLockManipulated(Actor a, Keyword kw). The lock manipulation status can now bet set by calling SetLockManipulated(Actor a, Keyword kw) and SetLockUnManipulated(Actor a, Keyword kw), respectively. This obviously works for the player only, as NPCs cannot wear manipulated devices.
- Added: New API functions: GetWornRenderedDeviceByKeyword(Actor a, Keyword kw) can determine a rendered instance of a device worn in a certain slot without having to know the inventory device. IsGenericDevice(Actor a, Keyword kw) can be used to determine if the item in a given slot is a generic device, NOT tagged with blockgeneric or questitem keywords. Both functions are VERY fast and should be used instead of slower GetRenderedDevice(GetWornDevice()) combos.
- Added: zad_Material_* keywords to indicate the material of a DD device. These keywords can be used for e.g. dialogue purposes or helpful backsmiths etc.
- Added: zad_Property_* keywords can now indicate special traits of a device, such as whether it is painful to wear, or makes a lot of noise.
- Added: Moan sounds have been added to several device events.
- Added: Mod Events for inflatable plugs. See zadlibs.SendInflationEvent() for details.
- Added: The DD Contraptions NPC furniture interaction hotkey can now be configured in the DD MCM. It still defaults to PgUp.
- Added: A new MCM toggle allows the user to lock out the MCM difficulty settings while wearing restraints. This is to allow for a more hardcore experience.
- Added: The MCM configuration can now be saved, to avoid having to set the values for every new game!
- Added: Tighten/Untighten Devices: Linked DD devices can now be defined as device properties, that will replace the worn item with a "tighter" or "less tight" version (or really any arbitrary item) if it is getting unlocked. If a device has a less tight version defined, it will get automatically equipped when the player unlocks the currently worn device with a key. This allows modelling devices that have to be removed gradually. Also, tightening/untightening can be performed by script, using the new zadlibs.TightenDevice() and zadlibs.UntightenDevice() functions. Using the normal script API functions for manipulating devices will NOT trigger (un)tightening.
- Added: zadSlaveBootsScript now checks for the presence of the SKEE plugin too, to enhance SE compability.
- Added: New and cleaned up Bodyslide slider sets.
- Added: New inflatable panel gag variant
- Added: Colored variants of several catsuit models, to make the correct color model display in First Person Mode.
- Changed: Open belts now permit inserting and removing butt plugs.
- Changed: Many animation filter improvements. The animation filter will now hide any wrist bindings when an animation involves creatures, to allow the filter to select valid animations.
- Changed: Added a feature to detect device swaps (replacing a DD device in the same device slot) in progress and make sure the removal operation completes before trying to equip the new device.
- Changed: Rubber socks no longer make you trip over your heels...
- Changed: The DD animation filter can no longer be disabled, as it is essential for ensuring the game using correct animations for bound characters. Players who do not want to watch DD's limited choice of bound animations can still uncheck "Use Bound Animations" in MCM, which will make DD temporarily hide restraints that would normally require bound animations. In this case, the full selection of registered SLAL animations will be used. Restraints preventing certain kinds of intercourse (belts, gags, bras etc.) will still be respected.
- Changed: Several DD animations had some tags changed to improve animation filter behavior.
- Changed: Plugs and Suits now also check for zad_permitAnal and zad_permitVaginal keywords, which allows for creating devices that allow intercourse despite they'd normally block it.
- Removed: Code related to the deprecated DD3 escape system.
- Removed: DD Expansion items no longer register to the device database. This is the first step in deprecating and removing this feature. DDA/DDI devices will still get registered for the time being, to allow mods that pull items from the database to continue functioning. To improve backwards-compability with legacy mods, users can use the "Register Devices" toggle on the MCM debug page to force registration of DDX devices to the deprecated device database. This might help some legacy mods directly picking DDX devices to continue working until they can get updated.
- Changed/Fixed: When a DD animation is started, the code no longer simulates a Forward-key tap to end a possibly enabled auto run. This will fix a CTD commonly experienced by some players, at the expense of the workaround no longer working.
- Changed/Fixed: If the animation filter finds certain DD devices having no complete selection for animations available, it will now hide the restraints, if the first attempt to replace the animations fails.
- Fixed: NPCs no longer have their hands clip out of straitjackets and elbowbinders.
- Fixed: When removing devices from an NPC, the code now checks for all wrist restraints, and not just armbinders.
- Fixed: When the player removes a device from an NPC, their outfit is now getting reset correctly. This works for unique actors only. The outfit will also be correctly reset when a device having no key is removed from an NPC.
- Fixed: The fix for the gag effect has been fixed.
- Fixed: Timed items now work correctly.
- Fixed: Bound combat perks are no longer removed from an invalid actor (when the perk system is disabled).
- Fixed: NPCs wearing hobble skirts no longer affect the player's walking speed.
- Fixed: Chain collars now use the correct DD device slot.
- Fixed: Removed a dirty world edit from DDI.
- Fixed: DDX corsets no longer block the belt slot.
- Fixed: zadlibs.NeedsBoundAnim() now checks for the pet suit as well.
- Fixed: The obsolete "Quest" page has been removed from MCM.
- Fixed: Removing restraints from dead NPCs no longer causes them to become reanimated in funny ways.
- Fixed: Added two missing textures for the wooden DDC yoke.
- Fixed: The animation filter will no longer ignore blocked sex interactions when picking bound animations.
- Fixed: Wearing a anal or vaginal plug will now properly block "access", even when no belt is worn.
- Fixed: SelectValidDDAnimations() will now set the permitVagial, permitOral, and permitAnal flags to False if the animation would theoretically allow it but the suppress tags given manually ruled it out.

Link to comment

Didn't you say you merged DD assets, expansion, and integration into one mod for 5.0?  You might want to put that somewhere in the description so people not on patreon or discord know to remove all 3 old versions. 

 

(You might have already and I just missed it)

Link to comment
1 hour ago, RMCW said:

Awesome! Nice work.

 

Will this still work with at least any non-new devices?

 

Also, reading your description, this includes contraptions too?

I wouldn't know. 3BBB is not supported.

 

But yes, it does include Contraptions as well. :)

Link to comment
Just now, Xuvish said:

Does this replace DD Assets, Integration, and Expansion?

 

Does this replace Devious Device Equipment as well?

It replaces DD Assets, Integration, Expansion and Contraptions.

 

I have no clue what DD Equipment is? oO

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