hungvipbcsok Posted October 4, 2022 Posted October 4, 2022 2 hours ago, titlover123 said: devious devices equip, unforgiving devices, deviously vanilla, estrus chaurus, those were the biggest ones Deviously vanilla is not support for DD5. It may work okay but I stop using it because it has no false check (you may trigger DV quest at the same time you trigger DCL quest etc)
ihatemykite Posted October 4, 2022 Posted October 4, 2022 6 hours ago, titlover123 said: devious devices equip, unforgiving devices, deviously vanilla, estrus chaurus, those were the biggest ones The most likely culprit will be Unforgiving Devices. The reworked expression system which is included in DD beta 7 is actually taken over from Unforgiving devices (with some changes to make it work better with DD). Because of that, both mods expression systems are incompatible. I added check in Unforgiving Devices which should disable its expression system if DD beta 7 is detected. But this is only feature in newer version. Do you have newest version installed?
ihatemykite Posted October 4, 2022 Posted October 4, 2022 (edited) Yet again I was brainstorming about the expression system, and I came to simple conslusion. The whole system which I proposed here (the one after the beta 7 release) will never work because of stupid skyrim engine. Simply put, skyrim just can't handle enchantments on NPCs. Even when using vannila enchanted armor on NPC, all it takes to break it is to just give NPC one potato. Enchantment will just dispell itself. And because my proposed update was using enchantments as a way to simplify making custom gags, I was just wasting my time. For that reason I just scraped the idea and instead start working on improving previous system (one which is currently in beta 7). Result is hopefully last iteration of expression system. Because it is starting to be chaotic keeping pace of what is actually updated, I will provide updated changelong in relation to beta 7 version Added handling for Ring, Bit and Panel gags You can edit gag expression in the same way as before, only difference is FormID of new faction Ring gags - MM000AXX (MM000A01 - MM000A10) Bit gags - MM000BXX (MM000B01 - MM000B10) Panel gags - MM000CXX (MM000C01 - MM000C10) It is important to note that currently, Ring and Bit gags are not affected. I added keyword property to script but because there is currently not special keyword for them, it will not work. For this to work, all Ring/Bit gags would need to get their own keyword (which would be linked to zadexpressionlibs) Panel gags have their own keywords, and so they will work Mutex is now actor specific, not global (should make updating expressions faster if there are more NPCs updated) Some small optimizations If actor have device with zad_GagCustomExpression, update event will be sent before expression mutex is activated. Function will also return early to save computation time. Added function ApplyGagEffect_v2 which allow to update gag expression with passed in factions. This with combination of zad_GagCustomExpression (and correctly written script) should allow mod creators to create custom gags which can also be edited by users by using provided factions (might create example in future if this will be included in next beta) Added LoadGagExpFromJSON which allow to load expression from JSON file (kept it from previous version. Is currently unused, but someone might find it usefull in future) Now there are few fixed/features which are not related to expressions but I added them anyway because I didn't want to create separate patch for that Orgasm/Edge now create new event which provide more information (old event is still included for obvious reasons) Spoiler ;new Orgasm event (sent after DeviceActorOrgasm event) Int loc_handle = ModEvent.Create("DeviceActorOrgasmEx") if loc_handle ModEvent.PushForm(loc_handle, self) ;Event source (zadlibs) ModEvent.PushForm(loc_handle, akActor) ;Actor ModEvent.PushInt(loc_handle, aiArousalSet) ;Arousal after orgasm ModEvent.Send(loc_handle) endif ;new Edgeevent (sent after DeviceEdgedActor event) Int loc_handle = ModEvent.Create("DeviceEdgedActorEx") if loc_handle ModEvent.PushForm(loc_handle, self) ;Event source (zadQuest) ModEvent.PushForm(loc_handle, akActor) ;Actor ModEvent.Send(loc_handle) endif Getting items while having mittens will not drop item if it have no name @Kimy Could you possible add keywords for Ring and Bit gags in new beta ? I will that create xEdit script which will apply the keyword to gags based on their name, so its not too much time consuming adding it manually. Lastly, as I'm lazy, I created few "batch" scripts (which have absolutely nothing to do with batch, nice shit Todd). They are directly in mod folder. You don't have to move them or anythink. Only think which needs to be done in case anyone want to use them is to edit the DD mod order. All batch scripts have factions formIDs started with XX. Just replace XX with actuall DD mod load order. Also, the Bit, Ring and Panel gags will need to use mod load order for Devious Expressions 3.esp, as they are included there, not in DD esp. After that is done, just open CMD, click on NPC (or player in 3rd person mode) and type bat SetGag (or different script name). SetGag will set gag factions in a way that best fits my characters, so it might not be as good for other peaple. Either way, its much faster that doing it for every NPC manually. Download: Devious Expressions 3.zip Edited October 4, 2022 by ihatemykite Editor is giving me mental breakdown 3
Kimy Posted October 5, 2022 Author Posted October 5, 2022 Hmmm... The problem with adding keywords to existing devices to make this feature work is that a lot, and I mean a LOT of devices are defined by 3-rd party mods and not the framework. Changing the framework devices is getting us less than half the way there. A solution that works without forcing every 3-rd party DD mod introducing gags to update would be highly preferable.
naaitsab Posted October 5, 2022 Posted October 5, 2022 3 hours ago, Kimy said: Hmmm... The problem with adding keywords to existing devices to make this feature work is that a lot, and I mean a LOT of devices are defined by 3-rd party mods and not the framework. Changing the framework devices is getting us less than half the way there. A solution that works without forcing every 3-rd party DD mod introducing gags to update would be highly preferable. Could also implement a fallback option? So if the device lacks any keyword for the new system the old/current one is used. Bit like the legacy item scripts are handled with DD5+. That way old mods don't break but new ones can use it.
ihatemykite Posted October 5, 2022 Posted October 5, 2022 4 hours ago, Kimy said: Hmmm... The problem with adding keywords to existing devices to make this feature work is that a lot, and I mean a LOT of devices are defined by 3-rd party mods and not the framework. Changing the framework devices is getting us less than half the way there. A solution that works without forcing every 3-rd party DD mod introducing gags to update would be highly preferable. 1 hour ago, naaitsab said: Could also implement a fallback option? So if the device lacks any keyword for the new system the old/current one is used. Bit like the legacy item scripts are handled with DD5+. That way old mods don't break but new ones can use it. As @naaitsab said, the fallback is best option. It is already implemented in version provided in beta 7 expression system. In case that gag doesn't have new keywords, it will use default gag expressions (aka, the normal gags, smaller gags). So all old and new gags will work as long they have zad_DeviousGag keyword. I will provide relavant code below: Spoiler ; apply this affect to actual gags only, not hoods that also share this keyword. if akActor.WornHasKeyword(libs.zad_GagNoOpenMouth) ;close mouth, reset phonems return loc_preset elseIf akActor.WornHasKeyword(libs.zad_DeviousGagLarge) ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions_Large,DefaultGagExpression_Large) elseif akActor.wornhaskeyword(libs.zad_DeviousGagPanel) ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions_Panel,DefaultGagExpression_Panel) elseif GagKeyword_Ring && akActor.wornhaskeyword(GagKeyword_Ring) ;Ring gag ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions_Ring,DefaultGagExpression_Ring) elseif GagKeyword_Bit && akActor.wornhaskeyword(GagKeyword_Bit) ;Bit gag ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions_Bit,DefaultGagExpression_Bit) else ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions,DefaultGagExpression_Simple) EndIf 1
titlover123 Posted October 5, 2022 Posted October 5, 2022 17 hours ago, ihatemykite said: The most likely culprit will be Unforgiving Devices. The reworked expression system which is included in DD beta 7 is actually taken over from Unforgiving devices (with some changes to make it work better with DD). Because of that, both mods expression systems are incompatible. I added check in Unforgiving Devices which should disable its expression system if DD beta 7 is detected. But this is only feature in newer version. Do you have newest version installed? I have not updated it in a long while
Kimy Posted October 5, 2022 Author Posted October 5, 2022 12 hours ago, ihatemykite said: As @naaitsab said, the fallback is best option. It is already implemented in version provided in beta 7 expression system. In case that gag doesn't have new keywords, it will use default gag expressions (aka, the normal gags, smaller gags). So all old and new gags will work as long they have zad_DeviousGag keyword. I will provide relavant code below: Reveal hidden contents ; apply this affect to actual gags only, not hoods that also share this keyword. if akActor.WornHasKeyword(libs.zad_GagNoOpenMouth) ;close mouth, reset phonems return loc_preset elseIf akActor.WornHasKeyword(libs.zad_DeviousGagLarge) ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions_Large,DefaultGagExpression_Large) elseif akActor.wornhaskeyword(libs.zad_DeviousGagPanel) ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions_Panel,DefaultGagExpression_Panel) elseif GagKeyword_Ring && akActor.wornhaskeyword(GagKeyword_Ring) ;Ring gag ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions_Ring,DefaultGagExpression_Ring) elseif GagKeyword_Bit && akActor.wornhaskeyword(GagKeyword_Bit) ;Bit gag ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions_Bit,DefaultGagExpression_Bit) else ApplyGagModifiers(akActor,loc_preset,PhonemeModifierFactions,DefaultGagExpression_Simple) EndIf Sounds good!
Hex Bolt Posted October 6, 2022 Posted October 6, 2022 Suggestion: Have DD 5 check for a concurrent installation of DD 4 (or older) and warn the player. I've seen at least 4 instances now when players who are relatively new to LL install both DD 4 and 5, probably because so many mods list DD 4 as a requirement, and/or they're confused because DD 4 has 3 packages but DD 5 has everything conveniently together ("oh, I need DD Assets, so I should install that"). This leads to explicable behavior without crashing the game, so the player reports problems for other mods that use DD. It's very confusing to the mod author to figure what's wrong (users rarely post a mod list, and authors tend to just look for something wrong in their own mods). I've learned now to ask newer players if they're installed two versions of DD, but if it's possible to check for that it could save some time and frustration, since I keep seeing this happen. 7
hungvipbcsok Posted October 7, 2022 Posted October 7, 2022 17 hours ago, HexBolt8 said: Suggestion: Have DD 5 check for a concurrent installation of DD 4 (or older) and warn the player. I've seen at least 4 instances now when players who are relatively new to LL install both DD 4 and 5, probably because so many mods list DD 4 as a requirement, and/or they're confused because DD 4 has 3 packages but DD 5 has everything conveniently together ("oh, I need DD Assets, so I should install that"). This leads to explicable behavior without crashing the game, so the player reports problems for other mods that use DD. It's very confusing to the mod author to figure what's wrong (users rarely post a mod list, and authors tend to just look for something wrong in their own mods). I've learned now to ask newer players if they're installed two versions of DD, but if it's possible to check for that it could save some time and frustration, since I keep seeing this happen. I think it is best if someone can put a warning sign at old DD4 mod "This mod is not supported anymore, use DD5 instead".
Laura Posted October 7, 2022 Posted October 7, 2022 (edited) On 10/7/2022 at 3:13 PM, hungvipbcsok said: I think it is best if someone can put a warning sign at old DD4 mod "This mod is not supported anymore, use DD5 instead". I think it's best to have both. One warning may not to be enough. Edited October 9, 2022 by Laura
Maddac Posted October 8, 2022 Posted October 8, 2022 On 10/4/2022 at 8:56 PM, titlover123 said: devious devices equip, unforgiving devices, deviously vanilla, estrus chaurus, those were the biggest ones the only one of those that I have installed is estrus chaurus, dont see why that would affect the gag animation
naaitsab Posted October 9, 2022 Posted October 9, 2022 On 10/7/2022 at 3:32 PM, Laura said: I think it's best to have both. One warning may to be enough. I would not underestimate the amount of "readme? never heard of that" and "big red text on the download page saying stuff? probably not important enough to read" users on here ? 2
Laura Posted October 9, 2022 Posted October 9, 2022 2 hours ago, naaitsab said: I would not underestimate the amount of "readme? never heard of that" and "big red text on the download page saying stuff? probably not important enough to read" users on here ? I forgot to add 'not'. I meant to say 'One warning may not be enough' 5
Kimy Posted October 9, 2022 Author Posted October 9, 2022 Eventually I plan to lock the old DD threads, remove the downloads from them and direct people to the DD5 page. If older DD mods haven't been updated by now, the probably never will. 4
Zaflis Posted October 10, 2022 Posted October 10, 2022 (edited) 5 hours ago, Kimy said: Eventually I plan to lock the old DD threads, remove the downloads from them and direct people to the DD5 page. If older DD mods haven't been updated by now, the probably never will. Actually it would even be enough to just add notices in the download pages: https://www.loverslab.com/files/file/269-devious-devices-assets/ https://www.loverslab.com/files/file/371-devious-devices-integration/ https://www.loverslab.com/files/file/1305-devious-devices-expansion/ None of those even mention that they are deprecated or link to the DD 5 thread. So it is not weird that confusion happens all the time. According to Google those are probably still the main files, so people find them first. Edited October 10, 2022 by Zaflis 2
chaimhewast Posted October 10, 2022 Posted October 10, 2022 10 hours ago, Zaflis said: Actually it would even be enough to just add notices in the download pages: People don't read. Even with a notice in red 72pt font, they will still download the old files and then complain when things don't work.
Zaflis Posted October 10, 2022 Posted October 10, 2022 (edited) 4 hours ago, chaimhewast said: People don't read. Even with a notice in red 72pt font, they will still download the old files and then complain when things don't work. Perhaps some, but the majority is not quite that stupid ? When you mention it like that, i do remember some mods where it happens but then author had several other notices at the top with 72pt font in bold and different colors... Some sanity in information should be kept still. Edited October 10, 2022 by Zaflis
naaitsab Posted October 10, 2022 Posted October 10, 2022 (edited) 4 hours ago, chaimhewast said: People don't read. Even with a notice in red 72pt font, they will still download the old files and then complain when things don't work. This, I think Kimy's approach will be best. Make a ending post on the 3 threads referring to the DD5 thread/download and lock the old thread but keep it for history sake. Remove the downloads (or let the download button refer to the mirror variant and link to the DD 5 download page). For archival sake the last versions could be downloaded before they are pulled offline. But if old mods don't get updated they probably never will. Unless somebody else does this. With some minor exceptions DD4 mods are compatible with 5 anyhow. And newer mods will break when using 4. Even if users read the warning, which a large group still won't the old version is dead for quite some time now so why keep it available? It's now only a thing that causes confusion regardless if users read the warning. Edited October 10, 2022 by naaitsab
Hex Bolt Posted October 10, 2022 Posted October 10, 2022 Two reasons that players still use DD4 are confusion and file size. Confusion can be dealt with as discussed above. It's my hope that 5.2 will be accessible to those who have difficulty downloading larger files or who have restricted access to Mega. I've never had any trouble downloading large files or with that hosting site, but some players have said that their countries (particularly those with authoritative regimes) place restrictions on internet usage. 5.2 is much slimmer & trimmer than 5.1, which is great (I often tell people about its reduced size), but the pain point for some players seems to be the 1 GB mark. Perhaps 5.2 can have an alternative download link to get it in two smaller pieces to be later combined (WinZip can do this), possibly with an alternate site as well, especially if DD4 will eventually be removed. There is a competing bondage framework that comes in a significantly smaller package (I'm not very familiar with it, but I know it exists). I only mention it because it would be a shame for players to miss out on the great things that DD 5 offers, and the mods that require it, due to downloading constraints. 3
naaitsab Posted October 10, 2022 Posted October 10, 2022 2 minutes ago, HexBolt8 said: Two reasons that players still use DD4 are confusion and file size. Confusion can be dealt with as discussed above. It's my hope that 5.2 will be accessible to those who have difficulty downloading larger files or who have restricted access to Mega. I've never had any trouble downloading large files or with that hosting site, but some players have said that their countries (particularly those with authoritative regimes) place restrictions on internet usage. 5.2 is much slimmer & trimmer than 5.1, which is great (I often tell people about its reduced size), but the pain point for some players seems to be the 1 GB mark. Perhaps 5.2 can have an alternative download link to get it in two smaller pieces to be later combined (WinZip can do this), possibly with an alternate site as well, especially if DD4 will eventually be removed. There is a competing bondage framework that comes in a significantly smaller package (I'm not very familiar with it, but I know it exists). I only mention it because it would be a shame for players to miss out on the great things that DD 5 offers, and the mods that require it, due to downloading constraints. That mostly runs down the fact that DD has _a lot_ more meshes and especially textures and those mostly cost most space. In this situation the best case would be using delta patches and only uploading things that are changed mesh and texture wise. As the ESM and script files are peanuts in size it's not worth sorting those before upload. But downloading (and don't forget uploading) 1GB+ for say 50MB of script and ESM changes is a bit overdoing it. The 'issue' currently is that there are efforts where made to move some things around like the Bodyslide files. So when that happens a delta patch might not be possible but for small patches it would be nice.
audhol Posted October 10, 2022 Posted October 10, 2022 (edited) 29 minutes ago, HexBolt8 said: There is a competing bondage framework that comes in a significantly smaller package 22 minutes ago, naaitsab said: That mostly runs down the fact that DD has _a lot_ more meshes and especially textures and those mostly cost most space. The fact that the other framework comes in a smaller package is only partially explained by it having far less meshes and textures, its also down to the way its split up in so much as theres the core package and then the user simply downloads the respectivite bodyslide package for their chosen body. Its no secret that caliente tools designed for cbbe requires far larger .osp files for uunp\bhunp so due to the way DD is packaged all that has to be contained in one file then unpacked via the fomod. I'm not saying this is the wrong approach but it does require the user to download loads of stuff they never use. Edited October 10, 2022 by audhol 1
Hex Bolt Posted October 10, 2022 Posted October 10, 2022 5 minutes ago, naaitsab said: In this situation the best case would be using delta patches and only uploading things that are changed mesh and texture wise. I wasn't suggesting smaller downloads for DD betas, only for official releases (which tend to be months apart). Delta patches for updating from 5.1 to 5.2 are great, but they don't help a player who has trouble getting the base download and doesn't have DD5 yet. Kimy will have to decide what works best, of course. I was just mentioning a potential impediment for players who might be interested in DD but have trouble accessing it, lest they be inadvertently driven away.
Kimy Posted October 10, 2022 Author Posted October 10, 2022 Whenever there are bugfix updates that don't affect meshes, I tend to offer these as a delta patch against the respective major version, but 5.2 has so many changes over 5.1 that this approach is impractical. At this point, I might just call 5.2 version 6.0. lol I could break down the download archive in multiple parts, but from experience, people tend to struggle with these, too. And most free cloud-servers other than MEGA place ridiculous limits on download rate, so I cannot use these either. 5
naaitsab Posted October 10, 2022 Posted October 10, 2022 52 minutes ago, Kimy said: Whenever there are bugfix updates that don't affect meshes, I tend to offer these as a delta patch against the respective major version, but 5.2 has so many changes over 5.1 that this approach is impractical. At this point, I might just call 5.2 version 6.0. lol I could break down the download archive in multiple parts, but from experience, people tend to struggle with these, too. And most free cloud-servers other than MEGA place ridiculous limits on download rate, so I cannot use these either. The split part causing issues did not came to mind. Quite a lot of people still use the built-in zip handler that does multi-file very poorly indeed. I'm also not sure how MO2/Vortex handle it if they even do. One thing that might be a big file saver is to split the CBBE and UUNP files into 2 separate uploads like @audhol suggested. As you never use both at the same time it would be a best of both world situation. But on the other hand you still have duplicate textures which also cause a big load on the file size. Splitting the files like for example SD did (A. Textures, B1 Meshes CBBE, B2 Meshes UUNP, C scripts+ESM) will make it very flexible but will also greatly raise the chance for "I did not read the instructions and ask for help in the thread" situations. So not sure if that is an option to look into.
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