Jump to content

Devious Devices Framework Development/Beta


Recommended Posts

A question that came up in a private chat - is there a mod event for DD that can equip/remove devices using generic tags?

If not, can you wiggle that in?

That would go a long way to add soft compatibility with DD from mods that want to use the content but do not want to add complex scripts or hard dependencies.

Edit: I would be happy to work on it if you can tell me which script would be a good fit to register the events.

 

Edit 2: (I got interrupted before I could finish my thought).

 

Suppose I want to add a restrictive collar to Alicia.

 

I would love to simply be able to write this and be done with it (no need to register zadLibs, no need to fetch keywords or rendered devices before hand... just two strings - a device name and a list of tags).

  int DDEquip = ModEvent.Create("zad_EquipGenericDevice")   

  if (DDEquip) 
        ModEvent.PushForm(DDEquip, self)             
        ModEvent.PushForm(DDEquip, AliciaActor)		; Actor to equip the item on
        ModEvent.PushString(DDEquip, "Collar")   	; String - name of the device to equip
        ModEvent.PushString(DDEquip, "harness,leather,black")   	; String - tags to apply
        ModEvent.Send(DDEquip)
  Endif

Removal could be a similar mod event or one more parameter of (device ON or device OFF).

Link to comment

Can I ask for a small feature added? I would like a mod event for zadEventHorny, so everytime an NPC gets distracted enough to fondle themselves I can detect it.

 

I don't see one in zadEventHorny.psc, and although this exists in documentation:

zadBaseEvent.psc:

; The following mod-events are now used:
; DeviousEvent<EventName> is automatically sent whenever any event is executed (As per Srende's request).
...

I haven't found a modevent string that gets thrown that I can catch for vanilla horny event, can I assume that wasn't including the horny event when it was written or am I missing it?

Link to comment

A question that came up in a private chat - is there a mod event for DD that can equip/remove devices using generic tags?

 

If not, can you wiggle that in?

 

That would go a long way to add soft compatibility with DD from mods that want to use the content but do not want to add complex scripts or hard dependencies.

 

Edit: I would be happy to work on it if you can tell me which script would be a good fit to register the events.

 

Edit 2: (I got interrupted before I could finish my thought).

 

Suppose I want to add a restrictive collar to Alicia.

 

I would love to simply be able to write this and be done with it (no need to register zadLibs, no need to fetch keywords or rendered devices before hand... just two strings - a device name and a list of tags).

  int DDEquip = ModEvent.Create("zad_EquipGenericDevice")   

  if (DDEquip) 
        ModEvent.PushForm(DDEquip, self)             
        ModEvent.PushForm(DDEquip, AliciaActor)		; Actor to equip the item on
        ModEvent.PushString(DDEquip, "Collar")   	; String - name of the device to equip
        ModEvent.PushString(DDEquip, "harness,leather,black")   	; String - tags to apply
        ModEvent.Send(DDEquip)
  Endif

Removal could be a similar mod event or one more parameter of (device ON or device OFF).

 

Check:

 

Event OnDDIEquipDevice(Form akActor, String DeviceType)

 

and

 

Event OnDDIRemoveDevice(Form akActor, String DeviceType)

 

The implementation is in zadBQ000.

 

It's pretty close to what you want and will allow you to manipulate generic DD items without setting a dependency on DDI.

Link to comment

So, I've ran into somewhat of a bug while trying the latest dev build...

Control dampening is turned off any time I equip or unequip any item, it's not saving the old value. I confirmed this by setting "savedINIDampen" in zadPlayerScript.psc to start true.

Link to comment
  • 2 weeks later...

Hi! In latest DDx build (Updated 2 days ago according to github, maybe that was also in 14 days old build, I haven't tried that version I downloaded update just totay) I've noticed, that [iron Prisoner Chains] device is a bit strange: it's chain looks like it was multiplied by 3, like on screenshots below. As far as I know it shouldn't be like that.

 

-5w2sJwe9Xc.jpg

0zqjn2ZXilo.jpg

 

 

Link to comment

I encountered the same bug when I worked on a variant of the chain collar that isn't released yet. I have absolutely no clue why this happens but apparently, this only happens with chains that I have created from scratch o.O The arm/leg chains from the prisoner chain are edited duplicates from the "ZaZAnkleChainsRagDolls" item but the chains that connect the whole thing are new.

This never happened during the creation of the prisoner chain where I had never equipped anything else. But when I tested the chain collar variant I had some other DD items equipped so my guess is that it might be caused by another item that is worn.

 

Edit: @ Princessity 

How would this glitch help us? I can't think of any practical use for it at the moment ^^

Btw each glitched chain duplicate has it's own collision but they don't collide with each other, also the chains will always spawn on the same position I see no way around that.

Link to comment

I encountered the same bug when I worked on a variant of the chain collar that isn't released yet. I have absolutely no clue why this happens but apparently, this only happens with chains that I have created from scratch o.O The arm/leg chains from the prisoner chain are edited duplicates from the "ZaZAnkleChainsRagDolls" item but the chains that connect the whole thing are new.

This never happened during the creation of the prisoner chain where I had never equipped anything else. But when I tested the chain collar variant I had some other DD items equipped so my guess is that it might be caused by another item that is worn.

 

Edit: @ Princessity 

How would this glitch help us? I can't think of any practical use for it at the moment ^^

Btw each glitched chain duplicate has it's own collision but they don't collide with each other, also the chains will always spawn on the same position I see no way around that.

I was hoping that would offer some way to get around slot limitations but... it was a long shot XD

 

Anyways I never had that happen in my tests. I do hope there's actually a reproducible trigger for that because it may be hard to fix if it happens randomly.

Link to comment

New builds are up on the DDi and DDx repos! Please download both to ensure everything works correctly.

 

Also some bodyslide files were removed and changed so when you're reinstalling DDx in MO, use "replace", not "merge". Other installation methods (NMM users, make sure to do whatever removes the old files and replaces them with new ones)

 

Summary of changes:

  • UUNP Straitjacket sliders should be fixed. Please check on your setup and let us know, this is a priority!
  • Controls dampening was again restricted to hobble dresses. It just doesn't look good without a skirt.
  • Ball&Chain no longer slows. Now it disables running and sprinting completely.
  • Tweaked the relative speed values of ankle chains, shoes and pony boots again.
  • Introduced (or did I?) many new and exciting bugs for you to find and report! <3
  • Known issue! Hobble dresses and restrictive boots making ankle chains and ball&chain invisible has not been fixed. We don't currently know how to fix it without breaking the interactions of hobble dresses with leg cuffs.
Link to comment

Yay, a new build! Thanks a lot for the UUNP straightjackets and the other new toys and refinements.

Really awesome work by you all!

 

Here's my report after trying to break it.

 

1) Found a possible incompatibility between DDi's hobble dress walk/bunnyhop setup and one or a couple of the other mods in my load order that change the SpeedMult. What happend was that, after equipping the extreme hobble dress, the animation would start at the correct low SpeedMult data as set in the MCM (i.e., 50, or 44 if set to 56 in the MCM, and so on). Then, after a few moments, the SpeedMult would change to something much near the default 100, then soon after drop down to the correct low value again.

 

I think I have narrowed it down to interference from the mod Fighting Fatigue, possibly in conjunction with PerMa. Fighting Fatigue has an option to make movement (running or over-encumbered) cost stamina, and it or PerMa then gradually decreases the player's SpeedMult as stamina drains. Switching off movement stamina cost in Fighting Fatigue's MCM seems to have fixed that issue, for now at least. More testing needed. Anybody else using these mods and getting the same slow-fast-slow movement speed cycling?

 

2) Found some minor issues or inconsistencies with a few items (including some of the already released ones):

- Mask of Shame does not apply any DD blinfold effect

- The new prisoner chains do not block the inventory collar slot. It is still possible to equip another collar (tried it with the Iron Nipple Chain Collar), which however does not get rendered and later on ends up as a broken item in the inventory after removing the prisoner chains.

- Iron Wrist Shackles (the seperate ones, not the harness set ones) don't have sound effects, though maybe that's intentional?

- Should the Black Latex Straightjacket (open) be called Ebonite Straightjacket like the others?

- like in the previous betas, straightjacket when worn with arm cuffs does not hide the arm cuffs on player/NPC body

 

3) UUNP Straightjackets seem to work *really* well! I've tried all models in black on a Unified UNP HDT body with UNPB preset and morphs. Very good visual results, pretty much no clipping even on more extreme body morphs! Bodies with very chubby legs make the split construction of the dress part slightly obvious, but then again this is a rather small price to pay for the surprisingly low texture distortion in that area. A pretty elegant solution I think.

 

Haven't tested all combinations (so many of them!), but the straightjackets seem to play nicely together with boots, corsets, and collars.

 

I'm attaching some screenshots below.

 

post-641640-0-23392700-1491518123_thumb.jpg post-641640-0-38609700-1491518129_thumb.jpg post-641640-0-12343600-1491518134_thumb.jpg post-641640-0-75542800-1491518135_thumb.jpg

Link to comment

Thank you for the detailed report, this will be super helpful!

 

@chains and collar, have you tried it with a different collar? The one that acts as piecrings+collar hybrid is... wonky, I was meaning to look at it. Need to remember. However, do any other collars exhibit similar behaviour?

 

@wrist shackles don't make sounds... but now that you mention it, maybe they should, I don't know. In the interest of not overusing it I limited the sounds to devices with long and heavy chains, but technically speaking there's nothing stopping us from adding them to wrist chains and chain harness mittens.

 

If anyone has any opinions, I'm open.

 

@Latex. Oh umm... Blaming Kimy.

 

@arm cuffs and straitjackets. Kimy? could you look into it? n_n

 

@mask of shame: blaming...

 

...um

 

OH LOOK A SHINY THING OVER THERE!

Link to comment
@chains and collar, have you tried it with a different collar? The one that acts as piecrings+collar hybrid is... wonky, I was meaning to look at it. Need to remember. However, do any other collars exhibit similar behaviour?

 

@wrist shackles don't make sounds... but now that you mention it, maybe they should, I don't know. In the interest of not overusing it I limited the sounds to devices with long and heavy chains...

 

I don't remember if I tried different collars with the prisoner chains. The piercings+collar one might well have been the first and only one, but I still have that testing savegame so I can try again quickly. The other new collars (neck chains) didn't show this anomaly, I think. I'll re-test that also.

 

Wrist shackles and sounds. I thought that might be the reason and I find it hard to argue against it. We can't have everything with this game's limited resources.

 

//EDIT some quick further collar testing results before I have to go work. It seems the Prisoner Chains are not to blame, but only the Nipple Chain Collar that causes this anomalous behaviour. It can be equipped when any other collar, it seems, is already being worn. The Prisoner Chains and all the other Iron Collars display the correct "can't wear multiple collars" message and block the equipping of another collar (that isn't the nipple chains one).

Link to comment

@Kimy 

 

Here is a patched version of the mod event from zadBQ00.psc with added support for optional tags. That would add more flexibility for adding devices without making DDi a full dependency.

I tried to keep it backward compatible by respecting the same interface variables.

 

I am not too familiar with github pull requests, so I will put the code here in case you feel like adding the change to the script.

I did test it on my end and it is working.

Event OnDDIEquipDevice(Form akActor, String DeviceType)
	Actor a = akActor As Actor
	String tags = ""
	; Adding support for optional tags separated from device string by a '|' - ex: 'Collar:metal,black'
	Int iTagsIndex 
	String sDevice = ""
	String sTags = ""

	; Split _args between Device and Tags (separated by '|')
	iTagsIndex = StringUtil.Find(DeviceType, "|")
	if (iTagsIndex!=-1)
		sDevice = StringUtil.Substring(DeviceType, 0, iTagsIndex )
		sTags = StringUtil.Substring(DeviceType, iTagsIndex +1 )
		DeviceType = sDevice
	endIf

	libs.log("DDI ModEvent equip request received. Trying to equip device: " + DeviceType + " on " + a.GetLeveledActorBase().GetName())
	KeyWord kw = GetKeywordByString(DeviceType)	
	; check for invalid return values and bail out if no valid davice was passed.
	If !kw || !a
		libs.log("DDI ModEvent failed. No valid device string or no valid actor received.")
		return
	Endif
	Bool reqall = false
	; special cases
	if DeviceType == "BallGag" || DeviceType == "Ball Gag"
		tags = "ball"
		reqall = true
	Endif
	if DeviceType == "RingGag" || DeviceType == "Ring Gag"
		tags = "ring"
		reqall = true
	Endif
	if DeviceType == "PanelGag" || DeviceType == "Panel Gag"
		tags = "panel"
		reqall = true
	Endif
	armor iDevice 

	if (tags!="")
		tags = tags + "," + sTags
	else
		tags = sTags
	endif

	If tags == ""
		iDevice = libs.GetGenericDeviceByKeyword(Kw)
	Else
		iDevice = libs.GetDeviceByTags(Kw, tags, reqall, tagsToSuppress = "", fallBack = true)
	Endif
	if !iDevice
		libs.log("DDI ModEvent failed. No matching device found.")
		return
	Endif
	armor rDevice = libs.GetRenderedDevice(iDevice)
	libs.equipDevice(a, iDevice, rDevice, Kw, skipEvents = false, skipMutex = true)
EndEvent

And here is an example of call to test it:

  int DDEquip
  DDEquip = ModEvent.Create("DDI_EquipDevice")   

  if (DDEquip)     
        ModEvent.PushForm(DDEquip, kPlayer)		
        ModEvent.PushString(DDEquip, "Collar|restrictive,metal")   	
        ModEvent.Send(DDEquip)
  Endif

  DDEquip = ModEvent.Create("DDI_EquipDevice")   

  if (DDEquip)       
        ModEvent.PushForm(DDEquip, kPlayer)		
        ModEvent.PushString(DDEquip, "Belt")   	
        ModEvent.Send(DDEquip)
  Endif
Link to comment

A new build is up on the DDi repo! No changes have been made to DDx repo or any new devices added. This is mostly a TOTAL REVOLUTION THAT WILL CHANGE THE WORLD FOREVER behind the scenes that (assuming I did it right) should be unnoticeable to users.

 

IMPORTANT! Due to extensive file structure changes, please make sure to remove any previous installation of DDi and replace it with the new build. To avoid issues, ensure that no old files remain! (This only applies to Integration. Expansion and Assets don't have to be reinstalled)

 

Summary of changes:

  • Split hobble dress AAs off into their own folder and behaviour file, extending the time before we hit the nearest AA cap by 100%
  • Implemented new coding for the above (requires extensive testing involving equipping and unequipping armbinders, yokes and hobble dresses repeatedly and in variable order, as well as checking whether they continue to work properly after reloads, cell transitions, additional device interactions and over long play sessions)
  • Updated some of Feuertin's animations, they should look and work even better
  • Bumped the version number in FNIS and fomod to 3.4.0
  • Added animation and keyword support for Elbowbinders and BBYokes (not available as devices yet, coming Soonâ„¢ in a future DDx update)
  • Rearranged the installer. Feuertin's new omnidirectional animations are the new default. Forward-facing variants are still available as an option.
Link to comment

A new build is up on the DDi repo! No changes have been made to DDx repo or any new devices added. This is mostly a TOTAL REVOLUTION THAT WILL CHANGE THE WORLD FOREVER behind the scenes that (assuming I did it right) users should not notice.

 

IMPORTANT! Due to extensive file structure changes, please make sure to remove any previous installation of DDi and replace it with the new build. To avoid issues, ensure that no old files remain! (This only applies to Integration. Expansion and Assets don't have to be reinstalled)

 

Summary of changes:

  • Split hobble dress AAs off into their own folder and behaviour file, extending the time before we hit the nearest AA cap by 100%
  • Implemented new coding for the above (requires extensive testing involving equipping and unequipping armbinders, yokes and hobble dresses repeatedly and in variable order, as well as whether they continue to work properly after reloads, cell transitions, additional device interactions and over long play sessions)
  • Updated some of Feuertin's animations, they should look and work even better
  • Bumped the version number in FNIS and fomod to 3.4.0
  • Added animation and keyword support for Elbowbinders and BBYokes (not available as devices yet, coming Soonâ„¢ in a future DDx update)
  • Rearranged the installer. Feuertin's new omnidirectional animations are the new default. Forward-facing variants are still available as an option.
I'll start by mentioning that this happened before this new update...

But my character decided to try tugging on her belt while wearing an armbinder, something that obviously should not be possible (and the animation thus had the hands missing)

Though if this is fixed by the latest update feel free to ignore this.

 

Also, I should try and get all the devices off my character before updating since it sounds like a big change, correct?

Link to comment

Oh, struggle stuff is Kimy's domain. I'm sure she'll take a look when she has a moment. Thank you for the report!

 

Also yes, it would help. You don't have to take off all devices, just yokes, armbinders and hobbledresses - anything that messes with animations.

 

On the other hand, in theory, the animation changes should be backwards-compatible so if you could test what happens if a character already wearing one of those devices updates to the new system, it would be a useful bit of data to me too! <3

Link to comment

 

A new build is up on the DDi repo! No changes have been made to DDx repo or any new devices added. This is mostly a TOTAL REVOLUTION THAT WILL CHANGE THE WORLD FOREVER behind the scenes that (assuming I did it right) should be unnoticeable to users.

 

...

 

Hello, did a quick test with the latest DDi build.

 

Good news: "should be unnoticeable to users" certainly seems to be the case! I ran two tests - first on an old save where my character and also a follower were locked in all sorts of devices, including straightjacket (PC), hobble dress, armbinder (follower), and several other items. Everything loaded and played as I think it should do. Animations played well, walk speed was fine, cell transition and load screen transitions worked fine, even a console coc into Riverwood with an immediate random dragon attack (thanks DCO!) worked okay and the followers returned to their bound/hobble anims right after sheathing their weapons (had to console-kill the poor dragon though).

 

In the second test, I used a save where char and followers were not wearing any devices and equipped them with a few combinations of dresses, straightjackets and other items. So far, all is working as it should. I'll continue to try and break it. I'm using a save where I have several different followers recruited for testing. One vanilla, one from 3DNPC, and one with custom system force-recruited with EFF. All wear the dresses okay and the slow walk or bunnyhop animations work fine, though with the straightjackets their hands are visible in the armbinder position behind their backs (only followers, not player char).

Link to comment

 

@Kimy 

 

Here is a patched version of the mod event from zadBQ00.psc with added support for optional tags. That would add more flexibility for adding devices without making DDi a full dependency.

I tried to keep it backward compatible by respecting the same interface variables.

 

I am not too familiar with github pull requests, so I will put the code here in case you feel like adding the change to the script.

I did test it on my end and it is working.

 

 

Merged your code to GitHub! Thanks! :)

 

Link to comment

New builds on DDi and DDx repos!

 

(FNIS re-run required!)

 

Integration:

  • Further streamlined the AA system. Both user experience and the API should feel much better now. DD's entire AA system is now more centralised and automated. As the result it should be able to handle switching between different AA sets more smoothly.
  • Added a new AA set for Front Cuffs
  • Fixed wrong installation path for the Bunnyhop hobble option in the installer
  • A new device difficulty mechanic based on the FO4 version of DD (LockAccessDifficulty)
  • Fixed chastity animations ocurring while wearing restraints

Expansion:

  • Added brand new ground models for all Heretic devices that were missing them! Courtesy of HisDudeness2015
  • Added mesh files for the Elbowbinder (not implemented in game yet)
  • Added mesh files for the HDT Iron Wrist cuffs (not implemented in game yet)
  • Fixed (hopefully!) the anomalous behaviour of the Nipple Chain Collar, as well as its rusted variant's textures
Link to comment

 

 

@Kimy 

 

Here is a patched version of the mod event from zadBQ00.psc with added support for optional tags. That would add more flexibility for adding devices without making DDi a full dependency.

I tried to keep it backward compatible by respecting the same interface variables.

 

I am not too familiar with github pull requests, so I will put the code here in case you feel like adding the change to the script.

I did test it on my end and it is working.

 

 

Merged your code to GitHub! Thanks! :)

 

 

 

Thank you!

 

And Content Consumer will thank you as well :)

Link to comment

Hi All,

 

I'm looking at changing the armour slots used by EC+ during it's birthing animation to avoid it removing devices.

 

Where is the most up to date list of slots used by DD - I found the Slot Usage Reference on GiTHub but it hasn't been updated since Jan 2015, is it still current?

Link to comment

 

 

 

@Kimy 

 

Here is a patched version of the mod event from zadBQ00.psc with added support for optional tags. That would add more flexibility for adding devices without making DDi a full dependency.

I tried to keep it backward compatible by respecting the same interface variables.

 

I am not too familiar with github pull requests, so I will put the code here in case you feel like adding the change to the script.

I did test it on my end and it is working.

 

 

Merged your code to GitHub! Thanks! :)

 

 

 

Thank you!

 

And Content Consumer will thank you as well :)

 

 

Thanks to both of you. Things should be a lot easier going forward. :)

 

EDIT: Now all I need is a full and comprehensive list of device strings including all variants, past, present, and future.  :P

Link to comment

CC: That'd be quite the list. For example, zadlibs.RegisterDevices() in DDi alone has:

  • bra
  • metal
  • padded
  • DDi
  • cuffs
  • arms
  • legs
  • collar
  • short
  • posture
  • armbinder
  • leather
  • black
  • gag
  • harness
  • ball
  • panel
  • ring
  • strap
  • blindfold
  • full
  • plug
  • vaginal
  • iron
  • simple
  • anal
  • primitive
  • soulgem
  • magic
  • pump
  • inflatable
  • belt
  • open
  • full
  • piercing
  • nipple
  • koffii
  • restrictive
  • corset
  • gloves
  • yoke

You'll want to check the registration for the devices you're interested in to be certain, since some keywords are used in different ways - for example "harness" applies to both body harnesses and harness gags.

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