Jump to content

Welcome to LoversLab
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. If you already have an account, login here - otherwise create an account for free today!
Photo

Devious Devices Framework Development/Beta


  • Please log in to reply
256 replies to this topic

#21
Princessity

Princessity

    <3 of the Swarm!

  • Contributor
  • PipPipPipPipPip
  • 1,711 posts

Does this thread mean you need more testers (in this case i'm willing to help) or is it more something  to coordinate all the testing (in this case i don't want to disturb you ;))?

 

We need testers and here is where all the testing happens. Currently we're looking for feedback on this.


  • 0

AdBot

AdBot
  • Advert

#22
Hæretic

Hæretic

    Senior Member

  • Members
  • PipPipPipPip
  • 360 posts

 

I've used this. Sometimes I find a texture will work that way and not work when done in the Mesh. 

But I avoid using this method if it works directly in he mesh. This is because I find (and others have reported), that it will sometimes glitch out causing the item to revert to whatever's in the nif. This glitch will go away when you reload a save, or sometimes you have to restart the game.

I never heard of textures not loading when using this technique. Can you show me a thread where this issue is discussed, please? I can imagine that skyrim does not load these textures if the vram is in overload already , at least it would make sense to give these textures a lower load priority. But apart from that I don't see any reason why this shouldn't work as intended.

Zap and HR use this technique for all brown/rusty iron items, DD uses it for all red & white variations and also for my iron items, just to name a few well-known examples. 

 

Btw changing textures in the nif should always work, except when a texture set in the ck overwrites this texture ^^

 

 

Yeah, I've been having problems. Removing a texture set in the CK is sometimes impossible - I can delete it and it will come back, or sometimes it won't let me delete it at all. Occasionally all it takes is saving and exiting the CK and it will magically fix itself, but I don't know what I'm doing wrong. :(

 

Isn't this always the case in the CK ? When you delete any reference the "count" entry will jump to 0*D, to signal that it is deleted but to have it removed from the list you need to reload the esp.


  • 0

#23
Content Consumer

Content Consumer

    I am here to Consume your Content!

  • Contributor
  • PipPipPipPipPip
  • 5,008 posts

Isn't this always the case in the CK ? When you delete any reference the "count" entry will jump to 0*D, to signal that it is deleted but to have it removed from the list you need to reload the esp.

 

 

 

Yes, but I mean that when I try to delete it absolutely nothing happens. It doesn't get a deleted flag, it just... stays there, unmodified.

To be clear, this doesn't happen all the time, it's intermittent and I can find no apparent cause.


  • 0

#24
Hæretic

Hæretic

    Senior Member

  • Members
  • PipPipPipPip
  • 360 posts

 

Yes, but I mean that when I try to delete it absolutely nothing happens. It doesn't get a deleted flag, it just... stays there, unmodified.

To be clear, this doesn't happen all the time, it's intermittent and I can find no apparent cause.

 

 

Huh, that sounds like the usual weird CK behavior... I think I never had this exact problem, but I stumbled across a whole bunch of other strange behaviors similar to this one.

Most of the time I try to work around it directly in the CK or with TESVEdit. In this case, I would try to just delete the reference with TESVEdit.

A few times I managed to trash an esp completely so it couldn't be loaded anymore with the CK. TESVEdit loads almost every esp, so it's always a great last resort to delete the last steps you made.


  • 1

#25
VirginMarie

VirginMarie

    Mega Poster

  • Members
  • PipPipPipPipPip
  • 1,230 posts

 

 

I've used this. Sometimes I find a texture will work that way and not work when done in the Mesh. 

But I avoid using this method if it works directly in he mesh. This is because I find (and others have reported), that it will sometimes glitch out causing the item to revert to whatever's in the nif. This glitch will go away when you reload a save, or sometimes you have to restart the game.

I never heard of textures not loading when using this technique. Can you show me a thread where this issue is discussed, please? I can imagine that skyrim does not load these textures if the vram is in overload already , at least it would make sense to give these textures a lower load priority. But apart from that I don't see any reason why this shouldn't work as intended.

Zap and HR use this technique for all brown/rusty iron items, DD uses it for all red & white variations and also for my iron items, just to name a few well-known examples. 

 

Here's one case of a user reporting it. Items involved use the technique. I can recall this mentioned at least a few times. And It happens to me, maybe 1 time out of every several hours of playing. This will happen with the Zaz devices that use it too, mine are setup using Zaz assets and inherited this method for textures.

 

I think it happens much less or not at all if you never die (i.e. using a Death Alternative), so I'm not seeing it myself, or reports of it, since adding the Death Alternative in my mod (theory... most people are not dying lol). Death also appears to cause items with animations to become invisible (also rare). And death's "rag-doll" effects my anal devices, glitching them out of position. Has made me wonder if it's actually the rag-dolling that causes all of these 3 things.

 

So due to this vulnerability, I avoid using the technique and do it in the nif when I can. I've had textures that work fine in CK but wont work in the nif (example: have been unable to get the gold zaz texture into the nif so stuck with it in the CK still), but I barely know what I'm doing when it comes to nif stuff :P


  • 0

#26
Hæretic

Hæretic

    Senior Member

  • Members
  • PipPipPipPip
  • 360 posts

 

Here's one case of a user reporting it. Items involved use the technique. I can recall this mentioned at least a few times. And It happens to me, maybe 1 time out of every several hours of playing. This will happen with the Zaz devices that use it too, mine are setup using Zaz assets and inherited this method for textures.

 

I think it happens much less or not at all if you never die (i.e. using a Death Alternative), so I'm not seeing it myself, or reports of it, since adding the Death Alternative in my mod (theory... most people are not dying lol). Death also appears to cause items with animations to become invisible (also rare). And death's "rag-doll" effects my anal devices, glitching them out of position. Has made me wonder if it's actually the rag-dolling that causes all of these 3 things.

 

So due to this vulnerability, I avoid using the technique and do it in the nif when I can. I've had textures that work fine in CK but wont work in the nif (example: have been unable to get the gold zaz texture into the nif so stuck with it in the CK still), but I barely know what I'm doing when it comes to nif stuff :P

 

 

The case you posted sounds more like a HDT bug or something. The user reported that items "turn black (or lose their texture)" which means they don't revert to the original but use no texture at all right? Also, he mentioned that "eyes of my character disappear" so this sounds like something more serious than just alternative textures not loading.

You also mentioned items turning invisible or glitching out of position but not the textures returning to its original state, or did I misunderstood something? Overall I am not sure yet this has anything to do with alternative texture sets.

 

I hate bugs you can't reliably reproduce :dodgy:  this makes things a lot more complicated. Please, you or anyone else who has the reverting textures issue (if there is one), make a screenshot if it occurs and a list of all the items you are currently wearing.

If your body or items you wear become invisible please check if you are wearing any HDT item. HDT items can cause this issue and there is a Fix for this (fix may cause other issues it's still in beta).


  • 0

#27
pincopallino

pincopallino

    Perverse Idiot

  • Members
  • PipPipPip
  • 180 posts

without texture sets and meshes recycling mods like DD would become at least 2 times bigger. I am just thinking at bodyslides files lol. 6 textures sets for every DD item. Every mesh * 6 + relative bodyslide data


  • 0

#28
Hæretic

Hæretic

    Senior Member

  • Members
  • PipPipPipPip
  • 360 posts

without texture sets and meshes recycling mods like DD would become at least 2 times bigger. I am just thinking at bodyslides files lol. 6 textures sets for every DD item. Every mesh * 6 + relative bodyslide data

:lol: You're right, with all the bodyslide data DD would probably be around 1gb, if there was a copy for every texture variant.

 

Of course, even if it is bugged the method will still be used, but I still wanna know if there really is a problem with alternative texture sets. If there is maybe we can find the issue and eliminate it.


  • 0

#29
VirginMarie

VirginMarie

    Mega Poster

  • Members
  • PipPipPipPipPip
  • 1,230 posts

 

The case you posted sounds more like a HDT bug or something.

Well it could be HDT related because at least 1 of the 3 devices that user was wearing, also have HDT chains. And when It happens to me, well I pretty much always have HDT something. But I'm certain it's the alternate textures that are vulnerable. This has never happened to items that do NOT use alternate texture. When I've replaced in the nif and stopped using alternate, the problem is fixed. Can I say 100% for certain? No as its hard to reproduce. But I've seen this over long enough period of time to believe my conclusion is pretty solid. I only have theories for cause, but I know alternate textures are vulnerable to not loading.

 

The user reported that items "turn black (or lose their texture)" which means they don't revert to the original but use no texture at all right?

Not sure. The original texture is black rust. They could be reverting to the original since black is the original.

 

Also, he mentioned that "eyes of my character disappear" so this sounds like something more serious than just alternative textures not loading. Sure but the cause could be the same. My theory is that It might be caused by ragdolling and/or death, and eyes, alternate textures, and animated items, are all vulnerable.

 

You also mentioned items turning invisible or glitching out of position but not the textures returning to its original state, or did I misunderstood something?

I only mention because my theory is they are all related. These other problems happen perhaps from the same cause but are not texture related. They do not always happen at the same time. The texture problem is the most common and most often happens on its own.

 

Overall I am not sure yet this has anything to do with alternative texture sets.

I've seen it happen with some of your Heretic items. It's harder to detect as I use only black rust ones, but you can notice that they've gone from the dull back, to a shiny black.

 

I hate bugs you can't reliably reproduce :dodgy:  this makes things a lot more complicated. Please, you or anyone else who has the reverting textures issue (if there is one), make a screenshot if it occurs and a list of all the items you are currently wearing.

Will do, but as mentioned I'm not seeing this anymore because I have my death altnernative feature in use. I suspect this is occurring due to death, or due to the ragdoll effect during death. So I'd have to purposely die and stuff to catch this happening. :) But it will happen again sooner or later.

 

If your body or items you wear become invisible please check if you are wearing any HDT item. HDT items can cause this issue and there is a Fix for this (fix may cause other issues it's still in beta).

I don't see that fix as a solution. I believe it's side-effects are worse than the problem it tires to solve. It's easier to just load a save when this occasionally happens.

 


  • 0

#30
Hæretic

Hæretic

    Senior Member

  • Members
  • PipPipPipPip
  • 360 posts

 

 

Well it could be HDT related because at least 1 of the 3 devices that user was wearing, also have HDT chains. And when It happens to me, well I pretty much always have HDT something. But I'm certain it's the alternate textures that are vulnerable. This has never happened to items that do NOT use alternate texture. When I've replaced in the nif and stopped using alternate, the problem is fixed. Can I say 100% for certain? No as its hard to reproduce. But I've seen this over long enough period of time to believe my conclusion is pretty solid. I only have theories for cause, but I know alternate textures are vulnerable to not loading.

 

 

Okay, this sounds like there really is a problem. Maybe someone here is willing to test this? DD uses this method for all rusty iron items and Red/White variants. Equip some of those items and try to die xD

 

It makes sense I never had this happen if it is caused by dying. I almost always run around in test environments and never actually play the game, so I never die . On the other hand, I experimented with ragdolls quite a lot and most of the time the actor had some of my items equipped. Maybe dying really is the crucial part here, not the ragdoll mode? 


  • 0

#31
VirginMarie

VirginMarie

    Mega Poster

  • Members
  • PipPipPipPipPip
  • 1,230 posts

I cannot understand what's going on in this log. This repeats a lot. I'm using DDi 3.3

Line 4289 referenced is the 4th line in my code below.

I'm using getrendereddevice and DDi is doing an Actor.PlaceAtMe ??

[11/28/2016 - 07:45:58PM] Error: Cannot place a None object
stack:
[ (00000014)].Actor.PlaceAtMe() - "<native>" Line ?
[zadQuest (0D00F624)].zadlibs.GetRenderedDevice() - "zadLibs.psc" Line 790
[VirginStoryMain (2D01848C)].virginmain.VirginIsHarnessBlocked() - "VirginMain.psc" Line 4289
[VirginStoryMain (2D01848C)].virginmain.OnUpdateGameTime() - "VirginMain.psc" Line 640
Bool Function VirginIsHarnessBlocked()
	If PlayerRef.wornhaskeyword(libs.zad_deviousharness)
		WornDevice = libs.getworndevice(PlayerRef, libs.zad_deviousharness)
		RenderDevice = libs.getrendereddevice(WornDevice)
		If (RenderDevice.haskeyword(blockgeneric) || WornDevice.haskeyword(blockgeneric)) && ! WornDevice.haskeyword(VirginDevice)
			Return True
		EndIf
	EndIf
	Return False
EndFunction

  • 0

#32
Verstort

Verstort

    Mega Poster

  • Members
  • PipPipPipPipPip
  • 1,363 posts

 

I cannot understand what's going on in this log. This repeats a lot. I'm using DDi 3.3

Line 4289 referenced is the 4th line in my code below.

I'm using getrendereddevice and DDi is doing an Actor.PlaceAtMe ??

[11/28/2016 - 07:45:58PM] Error: Cannot place a None object
stack:
[ (00000014)].Actor.PlaceAtMe() - "<native>" Line ?
[zadQuest (0D00F624)].zadlibs.GetRenderedDevice() - "zadLibs.psc" Line 790
[VirginStoryMain (2D01848C)].virginmain.VirginIsHarnessBlocked() - "VirginMain.psc" Line 4289
[VirginStoryMain (2D01848C)].virginmain.OnUpdateGameTime() - "VirginMain.psc" Line 640
Bool Function VirginIsHarnessBlocked()
	If PlayerRef.wornhaskeyword(libs.zad_deviousharness)
		WornDevice = libs.getworndevice(PlayerRef, libs.zad_deviousharness)
		RenderDevice = libs.getrendereddevice(WornDevice)
		If (RenderDevice.haskeyword(blockgeneric) || WornDevice.haskeyword(blockgeneric)) && ! WornDevice.haskeyword(VirginDevice)
			Return True
		EndIf
	EndIf
	Return False
EndFunction

 

Maybe check that WornDevice isn't None before passing it to libs.getrendereddevice?


  • 0

#33
VirginMarie

VirginMarie

    Mega Poster

  • Members
  • PipPipPipPipPip
  • 1,230 posts

 

 

I cannot understand what's going on in this log. This repeats a lot. I'm using DDi 3.3

Line 4289 referenced is the 4th line in my code below.

I'm using getrendereddevice and DDi is doing an Actor.PlaceAtMe ??

[11/28/2016 - 07:45:58PM] Error: Cannot place a None object
stack:
[ (00000014)].Actor.PlaceAtMe() - "<native>" Line ?
[zadQuest (0D00F624)].zadlibs.GetRenderedDevice() - "zadLibs.psc" Line 790
[VirginStoryMain (2D01848C)].virginmain.VirginIsHarnessBlocked() - "VirginMain.psc" Line 4289
[VirginStoryMain (2D01848C)].virginmain.OnUpdateGameTime() - "VirginMain.psc" Line 640
Bool Function VirginIsHarnessBlocked()
	If PlayerRef.wornhaskeyword(libs.zad_deviousharness)
		WornDevice = libs.getworndevice(PlayerRef, libs.zad_deviousharness)
		RenderDevice = libs.getrendereddevice(WornDevice)
		If (RenderDevice.haskeyword(blockgeneric) || WornDevice.haskeyword(blockgeneric)) && ! WornDevice.haskeyword(VirginDevice)
			Return True
		EndIf
	EndIf
	Return False
EndFunction

 

Maybe check that WornDevice isn't None before passing it to libs.getrendereddevice?

 

 

It would prevent the log spam. But I'm wanting to understand what's happening.

 

If this passed the test...

If PlayerRef.wornhaskeyword(libs.zad_deviousharness)

How could WornDevice be a none?


  • 0

#34
donotbugme

donotbugme

    Member

  • Members
  • PipPipPip
  • 177 posts
Have you checked that your harnesses inventory device has the zad_inventorydevice keyword. I believe GetWornDevice will return none for the device in question if it does not have that keyword; from what I can tell looking at the code of getworndevice
  • 0

#35
VirginMarie

VirginMarie

    Mega Poster

  • Members
  • PipPipPipPipPip
  • 1,230 posts

Have you checked that your harnesses inventory device has the zad_inventorydevice keyword. I believe get Worn device will always return none if it does not have the keyword from what I can tell looking at the code of getworndevice

 

Yes that keyword is present. This function is working successfully with the device normally too. I think I will do a check for none in case it does encounter devices missing the keyword.


  • 0

#36
donotbugme

donotbugme

    Member

  • Members
  • PipPipPip
  • 177 posts

Have you checked that your harnesses inventory device has the zad_inventorydevice keyword. I believe get Worn device will always return none if it does not have the keyword from what I can tell looking at the code of getworndevice


Yes that keyword is present. This function is working successfully with the device normally too. I think I will do a check for none in case it does encounter devices missing the keyword.

Very odd problem to say the least. If it were me I would burrow down into GetWornDevice to see if the correct keyword is passed in and the while loop returns the correct or any device. Then look at get rendered device the same way. Bit down in the internals but not terribly so
  • 0

#37
wubwubwub

wubwubwub

    Member

  • Members
  • PipPipPip
  • 56 posts

Some feedback for Hæretic's idle blocker:

 

-WOHOO! This is awesome! Random idles causing people to clip out of their gear was unfortunate.

 

-So far, NPCs in gear applied before the mod was loaded seem to be able to play blocked idles. Source: Last saved next to a flock of "bound girl" NPCs from DCL before finding this thread.

 

-The block seems to apply if the gear is refreshed (pickpocked some shackles off one, replaced with red armbinder. NPC no longer raises a beer mug when a bard plays).

 

-I use ultimate follower overhaul, which adds 13 idles to PlayerFollowerPackage, some of which aren't blocked. They seem set to play every few seconds when the follower isn't moving or mounted. Nice to have in standard play, but breaks the bound anims. I could edit that mod to remove them, but is there any chance to add the following to the blocker?

IdleWipeBrow [IDLE:000977EC]

IdleDrunkStop [IDLE:000CEFD1]

idleSquat [IDLE:000D6F0A]

IdleOffsetArmsCrossedStart [IDLE:000FF7F4]

IdleStudy [IDLE:000977ED]

IdleStop_Loose [IDLE:0010D9EE]

IdleNervous [IDLE:0010ACB1]

LooseDialogueResponsePositive [IDLE:00058B45]

IdleCiceroHappy [IDLE:00103654]

IdleExamine [IDLE:00075C3D]

IdleDrunkStop [IDLE:000CEFD1]

IdleDrunkStop [IDLE:000CEFD1]

IdleStop_Loose [IDLE:0010D9EE]

 

That's how they appear in TES5Edit. Yes, DrunkStop is listed 3 times, Stop_Loose is listed twice. LooseDialogueResponsePositive is also conversational, and I don't know if that will mess up dialogue if it gets blocked. Worst case, I can get rid of those from UFO directly.

 

-Related to the above, other people testing should probably note if they have follower overhaul / NPC immersion mods, or bugfix mods that alter a bit of everything.

 

-The Unofficial Skyrim Legendary Edition Patch changes IdleSalute in WE32EscortPrisoner [PACK:000B80F4]. Not sure specifically where it shows up ingame (intro questline?) but if the bugfix patch loads last it'll undo the animation blocker. Although I haven't been saluted too often in an armbinder, so I don't think it'll be noticeable.


  • 0

#38
Verstort

Verstort

    Mega Poster

  • Members
  • PipPipPipPipPip
  • 1,363 posts

Some feedback for Hæretic's idle blocker:

 

-WOHOO! This is awesome! Random idles causing people to clip out of their gear was unfortunate.

 

-So far, NPCs in gear applied before the mod was loaded seem to be able to play blocked idles. Source: Last saved next to a flock of "bound girl" NPCs from DCL before finding this thread.

 

-The block seems to apply if the gear is refreshed (pickpocked some shackles off one, replaced with red armbinder. NPC no longer raises a beer mug when a bard plays).

 

-I use ultimate follower overhaul, which adds 13 idles to PlayerFollowerPackage, some of which aren't blocked. They seem set to play every few seconds when the follower isn't moving or mounted. Nice to have in standard play, but breaks the bound anims. I could edit that mod to remove them, but is there any chance to add the following to the blocker?

IdleWipeBrow [IDLE:000977EC]

IdleDrunkStop [IDLE:000CEFD1]

idleSquat [IDLE:000D6F0A]

IdleOffsetArmsCrossedStart [IDLE:000FF7F4]

IdleStudy [IDLE:000977ED]

IdleStop_Loose [IDLE:0010D9EE]

IdleNervous [IDLE:0010ACB1]

LooseDialogueResponsePositive [IDLE:00058B45]

IdleCiceroHappy [IDLE:00103654]

IdleExamine [IDLE:00075C3D]

IdleDrunkStop [IDLE:000CEFD1]

IdleDrunkStop [IDLE:000CEFD1]

IdleStop_Loose [IDLE:0010D9EE]

 

That's how they appear in TES5Edit. Yes, DrunkStop is listed 3 times, Stop_Loose is listed twice. LooseDialogueResponsePositive is also conversational, and I don't know if that will mess up dialogue if it gets blocked. Worst case, I can get rid of those from UFO directly.

 

-Related to the above, other people testing should probably note if they have follower overhaul / NPC immersion mods, or bugfix mods that alter a bit of everything.

 

-The Unofficial Skyrim Legendary Edition Patch changes IdleSalute in WE32EscortPrisoner [PACK:000B80F4]. Not sure specifically where it shows up ingame (intro questline?) but if the bugfix patch loads last it'll undo the animation blocker. Although I haven't been saluted too often in an armbinder, so I don't think it'll be noticeable.

 

I'm pretty sure I remember heretic blocking some of those animations you listed specifically (IdleNervious and wipebrow at least) so does he have to block them in a certain package?

 

When I tested with UFO I only saw two animations still breaking armbinder, and we couldn't find the animations specifically to stop them. Those animations you listed all have 00 mod index, so they're vanilla animations, are you sure UFO didn't add it's own animations specifically and those are the only changes it made?

 

Edit: it looks like IdleDrunkStop isn't among the idles changed by the armbinder test mod, and IdleStop_Loose, LooseDialogueResponsePositive. Maybe if those are added then UFO can be compatible again, since I don't see any added animations in UFO.


  • 0

#39
Verstort

Verstort

    Mega Poster

  • Members
  • PipPipPipPipPip
  • 1,363 posts

Here try this, I'll try it later myself.

 

All I did was take the last three animations and added the same condition to them that were added to the other idles.

 

(at least I think that's all heretic did...)

 

Edit: I missed IdleCiceroHappy, which was still showing when I tested it. I've updated it.

 

Edit2: so far no animating, looks like UFO is playable with this change

Attached Files


  • 1

#40
Hæretic

Hæretic

    Senior Member

  • Members
  • PipPipPipPip
  • 360 posts

Here try this, I'll try it later myself.

 

All I did was take the last three animations and added the same condition to them that were added to the other idles.

 

(at least I think that's all heretic did...)

 

Edit: I missed IdleCiceroHappy, which was still showing when I tested it. I've updated it.

 

Edit2: so far no animating, looks like UFO is playable with this change

 

So you added ?

IdleDrunkStop [IDLE:000CEFD1]

IdleStop_Loose [IDLE:0010D9EE]

 

I am still not sure if animations like IdleCiceroHappy need to be blogged at all because no npc would trigger that one randomly. In the CK animations window you can do rightclick>UseInfo and see which references use this animation. If it isn't used in any sandbox/master package or in an idlemarker no npc should play it while walking around skyrim. At the moment I don't see any problems with blocking these animations either, just saying we should decide which animations we really want to have blocked when this gets integrated.

 

 

Yes adding the heavybondage condition to the animations was all I did, I was a bit surprised too that the solution might be this easy and apparantly no one already did this.

That's also why I suspected to encounter problems like packages or scenes getting stuck. Has anyone of you encountered any issues yet ?


  • 0