nagothm Posted September 12 Author Posted September 12 (edited) 5 hours ago, michel1234 said: Needs some patches to come out for clothing packs Also does it behave well with the curtain keywords? It will add or remove whatever keywords you want. Edited September 12 by nagothm
DipSh8t Posted Friday at 06:31 PM Posted Friday at 06:31 PM The new version working perfectly reversing clothing back to their normal version. Ty so much for this. Gonna start playing around with your keyword feature cause i think it might solve one of my issue playing with IED where i have to choose between having weapons display during scene or not having them display at all wearing certain armor. Does the reset function introduce in new version reverse the keyword that got add on to the armor as well or just the model?
nagothm Posted Monday at 12:03 AM Author Posted Monday at 12:03 AM (edited) On 9/18/2026 at 11:31 AM, DipSh8t said: The new version working perfectly reversing clothing back to their normal version. Ty so much for this. Gonna start playing around with your keyword feature cause i think it might solve one of my issue playing with IED where i have to choose between having weapons display during scene or not having them display at all wearing certain armor. Does the reset function introduce in new version reverse the keyword that got add on to the armor as well or just the model? You are welcome, and the reset reverses both the model and the keywords. Edited Monday at 12:04 AM by nagothm
Evanderxx Posted yesterday at 11:26 AM Posted yesterday at 11:26 AM (edited) Hi, thanks for making this. Quick question: does DAVKeywords support replaceBySlot, or only replaceByForm? I have a DAV config that hides armor by slot, like "replaceBySlot": { "32": "Skyrim.esm|000D67" }, with addKeywords and removeKeywords on the same variant. At startup everything resolves — the log says Resolved 20 addKeywords, 50 removeKeywords, and 35 replacement form mappings, with no failures. But nothing happens in game, and with VerboseLog = 1 there are no runtime lines at all. Those 35 form mappings all come from other mods' configs that use replaceByForm. My slot-based variants contribute zero, which makes me think slot matching isn't supported. Is that right? And if so, would you consider adding it? One slot rule could cover every armor in that slot instead of listing every outfit by FormID. I basically want it to say for example by advanced nudity detection to be considered topless if slot 32 is used anything other than default (e.g. hidden, loosentop), slot 52 exposed bottoms if anything other than default on slot 52 which is for the modesty animation, bonus points if npc can detect it by Advanced nudity detection Edited yesterday at 11:27 AM by Evanderxx more clarification
nagothm Posted yesterday at 02:40 PM Author Posted yesterday at 02:40 PM 3 hours ago, Evanderxx said: Hi, thanks for making this. Quick question: does DAVKeywords support replaceBySlot, or only replaceByForm? I have a DAV config that hides armor by slot, like "replaceBySlot": { "32": "Skyrim.esm|000D67" }, with addKeywords and removeKeywords on the same variant. At startup everything resolves — the log says Resolved 20 addKeywords, 50 removeKeywords, and 35 replacement form mappings, with no failures. But nothing happens in game, and with VerboseLog = 1 there are no runtime lines at all. Those 35 form mappings all come from other mods' configs that use replaceByForm. My slot-based variants contribute zero, which makes me think slot matching isn't supported. Is that right? And if so, would you consider adding it? One slot rule could cover every armor in that slot instead of listing every outfit by FormID. I basically want it to say for example by advanced nudity detection to be considered topless if slot 32 is used anything other than default (e.g. hidden, loosentop), slot 52 exposed bottoms if anything other than default on slot 52 which is for the modesty animation, bonus points if npc can detect it by Advanced nudity detection Yeah, I screwed that up sorry. I accidentally broke the link to that replacebyslot function. I will fix it. 1
Evanderxx Posted yesterday at 03:07 PM Posted yesterday at 03:07 PM 27 minutes ago, nagothm said: Yeah, I screwed that up sorry. I accidentally broke the link to that replacebyslot function. I will fix it. Got it, thank you so much for the mod by the way. For more information only if needed, replaceByForm does work on my end, I switched my slot rules over to form mappings and the keywords fired correctly. So it looks like it's just the slot path.
nagothm Posted yesterday at 04:50 PM Author Posted yesterday at 04:50 PM (edited) New version is up. I worked out some bugs in the code making it a little faster (honestly not something anyone would have noticed, but every little bit counts.). It also corrects my breaking of the replaceBySlot function. Should be working correctly now. I also added a configurable cooldown to how long after a sexlab scene before DAV switches any "open" ARMA swaps back to their normal setting. It is lightly tested with no issues i could find. I probably won't have much time over the next few days if another issue crops up, so just report it if you find it, I'll get to it when I am able. Edited yesterday at 05:13 PM by nagothm 1
Evanderxx Posted yesterday at 06:15 PM Posted yesterday at 06:15 PM (edited) 1 hour ago, nagothm said: New version is up. I worked out some bugs in the code making it a little faster (honestly not something anyone would have noticed, but every little bit counts.). It also corrects my breaking of the replaceBySlot function. Should be working correctly now. I also added a configurable cooldown to how long after a sexlab scene before DAV switches any "open" ARMA swaps back to their normal setting. It is lightly tested with no issues i could find. I probably won't have much time over the next few days if another issue crops up, so just report it if you find it, I'll get to it when I am able. Hey, thanks for turning that around so fast. Slot 32 is now tagging perfectly. It fixes so much and slot 32 works perfectly now. But now i have some requests if you could (it is completely okay if you don't want them, since you are the creator) Two things I've run into, no rush on either: Variants that hide a piece don't tag. I use DAV to hide armor, so the replacement ARMA has no model, nothing renders, by design. Since no skeleton node gets created, IsReplacementARMARendered never matches it. Across 500+ matches in my verbose log it only ever shows the one replacement that has a real mesh; the model-less one doesn't appear once. So "hide this slot" variants can't tag at all, and I think that's a fairly common way people use DAV. Would it be possible to read variant state from DAV itself rather than inferring it from the skeleton? For example, I like that if when i hide slot 52 underwear (from TAWOBA for example) then the player character will hide her bottom, and A.N.D will detect it as exposed bottom. currently, it works perfect on slot 32 Keywords often need a re-equip. After switching a variant the keywords usually don't update until I unequip and re-equip the item. Looks like the node check runs before the 3D rebuild finishes and doesn't retry, so it misses the new node until the next equip event. Like for example I wear iron armor slot 32, then i hide it, i need to re-equip it so that it works okay (A.N.D detect it as topless/naked and PC covers her top or top and bottoms depends if slot 52 is equipped or not) But still, thank you so much again, the slot 32 side is working perfectly Edited yesterday at 06:16 PM by Evanderxx
nagothm Posted yesterday at 06:27 PM Author Posted yesterday at 06:27 PM (edited) 15 minutes ago, Evanderxx said: Hey, thanks for turning that around so fast — slot 32 is tagging perfectly now. It fixes so much and slot 32 works perfectly now. But now i have some requests if you could (it is completely okay if you don't want them, since you are the creator) Two things I've run into, no rush on either: Variants that hide a piece don't tag. I use DAV to hide armor, so the replacement ARMA has no model, nothing renders, by design. Since no skeleton node gets created, IsReplacementARMARendered never matches it. Across 500+ matches in my verbose log it only ever shows the one replacement that has a real mesh; the model-less one doesn't appear once. So "hide this slot" variants can't tag at all, and I think that's a fairly common way people use DAV. Would it be possible to read variant state from DAV itself rather than inferring it from the skeleton? For example, I want that when i hide slot 52 underwear (from TAWOBA for example) then the player character will hide her bottom, and A.N.D will detect it as exposed bottom. currently, it works perfect on slot 32 Keywords often need a re-equip. After switching a variant the keywords usually don't update until I unequip and re-equip the item. Looks like the node check runs before the 3D rebuild finishes and doesn't retry, so it misses the new node until the next equip event. Like for example I wear iron armor slot 32, then i hide it, i need to re-equip it so that it works okay (A.N.D detect it as topless/naked and PC covers her top or top and bottoms depends if slot 52 is equipped or not) But still, thank you so much again, the slot 32 side is working perfectly I played with something kind of similar(kinda sorta maybe similar) a couple weeks ago reading from keywords rather than the skeleton. I couldn't get it working properly. (mine was trying to figure out a way to basically make all body and facial piercings combined to use one bodyslot, but still be able to be selected individually and hidden or displayed only by their keywords.) I am still working with it, and if I get an idea that might work for that I'll try it out. On the keywords needing a re-equip, can you give me a sample json that you are using? I haven't ran into that issue at all on mine, but my state declarations might not be as intricate. I'll take a look and see what I can do. Likely no result for a few days though. Edited yesterday at 06:31 PM by nagothm
Evanderxx Posted yesterday at 07:21 PM Posted yesterday at 07:21 PM (edited) 53 minutes ago, nagothm said: I played with something kind of similar(kinda sorta maybe similar) a couple weeks ago reading from keywords rather than the skeleton. I couldn't get it working properly. (mine was trying to figure out a way to basically make all body and facial piercings combined to use one bodyslot, but still be able to be selected individually and hidden or displayed only by their keywords.) I am still working with it, and if I get an idea that might work for that I'll try it out. On the keywords needing a re-equip, can you give me a sample json that you are using? I haven't ran into that issue at all on mine, but my state declarations might not be as intricate. I'll take a look and see what I can do. Likely no result for a few days though. Here's my config. Two things that might explain why you haven't hit the re-equip issue: it's entirely replaceBySlot, no replaceByForm anywhere, and I have no states block at all even when I switch everything manually through the DAV menu rather than by conditions. So if you've been testing with form-based variants and state declarations, our setups are pretty different. The re-equip behaviour shows up on DAV_HiddenSlot32 , hide a slot-32 armor from the menu, and the keywords usually dont apply until I unequip and re-equip the piece. but sometimes too it works like normal (i dont need to reequip) Spoiler json: { "$schema": "https://raw.githubusercontent.com/Exit-9B/DynamicArmorVariants/main/docs/DynamicArmorVariants.schema.json", "variants": [ { "name": "DAV_HiddenCirclet", "displayName": "$Hidden", "replaceBySlot": { "42": "DAV_HiddenEquipment.esp|800" } }, { "name": "DAV_HiddenHelmet", "displayName": "$Hidden", "linkTo": "DAV_HiddenCirclet", "overrideHead": "showAll", "replaceBySlot": { "30": "DAV_HiddenEquipment.esp|801", "31": "DAV_HiddenEquipment.esp|801" } }, { "name": "DAV_HiddenBackpack", "displayName": "$Hidden", "replaceBySlot": { "47": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenCloak", "displayName": "$Hidden", "replaceBySlot": { "46": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot32", "displayName": "$Hidden", "replaceBySlot": { "32": "Skyrim.esm|000D67" }, "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra" ] }, { "name": "DAV_HiddenSlot33", "displayName": "$Hidden", "replaceBySlot": { "33": "Skyrim.esm|000D6C" } }, { "name": "DAV_HiddenSlot37", "displayName": "$Hidden", "replaceBySlot": { "37": "Skyrim.esm|000D6E" } }, { "name": "DAV_HiddenSlot34", "displayName": "$Hidden", "replaceBySlot": { "34": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot35", "displayName": "$Hidden", "replaceBySlot": { "35": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot36", "displayName": "$Hidden", "replaceBySlot": { "36": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot38", "displayName": "$Hidden", "replaceBySlot": { "38": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot39", "displayName": "$Hidden", "replaceBySlot": { "39": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot40", "displayName": "$Hidden", "replaceBySlot": { "40": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot41", "displayName": "$Hidden", "replaceBySlot": { "41": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot43", "displayName": "$Hidden", "replaceBySlot": { "43": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot44", "displayName": "$Hidden", "replaceBySlot": { "44": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot45", "displayName": "$Hidden", "replaceBySlot": { "45": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot48", "displayName": "$Hidden", "replaceBySlot": { "48": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot49", "displayName": "$Hidden", "replaceBySlot": { "49": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot52", "displayName": "$Hidden", "replaceBySlot": { "52": "DAV_HiddenEquipment.esp|802" }, "addKeywords": [ "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "DAV_HiddenSlot53", "displayName": "$Hidden", "replaceBySlot": { "53": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot54", "displayName": "$Hidden", "replaceBySlot": { "54": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot55", "displayName": "$Hidden", "replaceBySlot": { "55": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot56", "displayName": "$Hidden", "replaceBySlot": { "56": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot57", "displayName": "$Hidden", "replaceBySlot": { "57": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot58", "displayName": "$Hidden", "replaceBySlot": { "58": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot59", "displayName": "$Hidden", "replaceBySlot": { "59": "DAV_HiddenEquipment.esp|802" } }, { "name": "loosenBra", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra" ] }, { "name": "loosenTop", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra" ] }, { "name": "Unbotton", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra" ] }, { "name": "loosenPanty", "addKeywords": [ "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "LiftSkirt", "addKeywords": [ "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "RipPantyhose", "addKeywords": [ "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "Undress", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover", "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra", "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "loosenDress", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover", "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra", "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] } ] } Edited yesterday at 07:21 PM by Evanderxx
nagothm Posted yesterday at 08:48 PM Author Posted yesterday at 08:48 PM 1 hour ago, Evanderxx said: Here's my config. Two things that might explain why you haven't hit the re-equip issue: it's entirely replaceBySlot, no replaceByForm anywhere, and I have no states block at all even when I switch everything manually through the DAV menu rather than by conditions. So if you've been testing with form-based variants and state declarations, our setups are pretty different. The re-equip behaviour shows up on DAV_HiddenSlot32 , hide a slot-32 armor from the menu, and the keywords usually dont apply until I unequip and re-equip the piece. but sometimes too it works like normal (i dont need to reequip) Reveal hidden contents json: { "$schema": "https://raw.githubusercontent.com/Exit-9B/DynamicArmorVariants/main/docs/DynamicArmorVariants.schema.json", "variants": [ { "name": "DAV_HiddenCirclet", "displayName": "$Hidden", "replaceBySlot": { "42": "DAV_HiddenEquipment.esp|800" } }, { "name": "DAV_HiddenHelmet", "displayName": "$Hidden", "linkTo": "DAV_HiddenCirclet", "overrideHead": "showAll", "replaceBySlot": { "30": "DAV_HiddenEquipment.esp|801", "31": "DAV_HiddenEquipment.esp|801" } }, { "name": "DAV_HiddenBackpack", "displayName": "$Hidden", "replaceBySlot": { "47": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenCloak", "displayName": "$Hidden", "replaceBySlot": { "46": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot32", "displayName": "$Hidden", "replaceBySlot": { "32": "Skyrim.esm|000D67" }, "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra" ] }, { "name": "DAV_HiddenSlot33", "displayName": "$Hidden", "replaceBySlot": { "33": "Skyrim.esm|000D6C" } }, { "name": "DAV_HiddenSlot37", "displayName": "$Hidden", "replaceBySlot": { "37": "Skyrim.esm|000D6E" } }, { "name": "DAV_HiddenSlot34", "displayName": "$Hidden", "replaceBySlot": { "34": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot35", "displayName": "$Hidden", "replaceBySlot": { "35": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot36", "displayName": "$Hidden", "replaceBySlot": { "36": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot38", "displayName": "$Hidden", "replaceBySlot": { "38": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot39", "displayName": "$Hidden", "replaceBySlot": { "39": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot40", "displayName": "$Hidden", "replaceBySlot": { "40": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot41", "displayName": "$Hidden", "replaceBySlot": { "41": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot43", "displayName": "$Hidden", "replaceBySlot": { "43": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot44", "displayName": "$Hidden", "replaceBySlot": { "44": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot45", "displayName": "$Hidden", "replaceBySlot": { "45": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot48", "displayName": "$Hidden", "replaceBySlot": { "48": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot49", "displayName": "$Hidden", "replaceBySlot": { "49": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot52", "displayName": "$Hidden", "replaceBySlot": { "52": "DAV_HiddenEquipment.esp|802" }, "addKeywords": [ "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "DAV_HiddenSlot53", "displayName": "$Hidden", "replaceBySlot": { "53": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot54", "displayName": "$Hidden", "replaceBySlot": { "54": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot55", "displayName": "$Hidden", "replaceBySlot": { "55": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot56", "displayName": "$Hidden", "replaceBySlot": { "56": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot57", "displayName": "$Hidden", "replaceBySlot": { "57": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot58", "displayName": "$Hidden", "replaceBySlot": { "58": "DAV_HiddenEquipment.esp|802" } }, { "name": "DAV_HiddenSlot59", "displayName": "$Hidden", "replaceBySlot": { "59": "DAV_HiddenEquipment.esp|802" } }, { "name": "loosenBra", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra" ] }, { "name": "loosenTop", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra" ] }, { "name": "Unbotton", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra" ] }, { "name": "loosenPanty", "addKeywords": [ "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "LiftSkirt", "addKeywords": [ "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "RipPantyhose", "addKeywords": [ "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "Undress", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover", "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra", "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] }, { "name": "loosenDress", "addKeywords": [ "Modesty", "AND_ArmorTop_NoCover", "TNG_RevealingOnlyWomen", "AND_ArmorBottom_NoCover" ], "removeKeywords": [ "NoModestyTop", "AND_ArmorTop", "AND_CoversAll", "AND_ChestCurtain", "AND_Bra", "NoModestyBottom", "AND_ArmorBottom", "AND_PelvicCurtain", "AND_Underwear", "AND_Thong" ] } ] } I had this envisioned differently, and you are right, I hadn't ever used the replacebyslot (i honestly had forgotten completely about it which is why i bungled the other implementation.) If there is a delay, it is not coming from the json, as your code is pretty frugal. I will take a look when I can and see if I can figure it out. Probably not till end of the week. 1
Evanderxx Posted 18 hours ago Posted 18 hours ago 7 hours ago, nagothm said: I had this envisioned differently, and you are right, I hadn't ever used the replacebyslot (i honestly had forgotten completely about it which is why i bungled the other implementation.) If there is a delay, it is not coming from the json, as your code is pretty frugal. I will take a look when I can and see if I can figure it out. Probably not till end of the week. Yeah don't worry take your time, no rush. And again, thank you for the mod !
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