encall Posted December 13, 2024 Posted December 13, 2024 (edited) When applying Lewdmarks-glow in SlaveTatsNG, the normal Lewdmarks are applied in the overlay instead of the glow versions. This might be due to the tattoo names being too similar. Also, the glow setting doesn’t seem to be showing in RaceMenu. Is this expected? Edited December 13, 2024 by encall
absar107 Posted December 14, 2024 Posted December 14, 2024 (edited) I'm on version 1.6.353 and this cause CTD when loading the game, when disabling the CTD stops, does it run for this version or only the latest version? Edited December 14, 2024 by absar107
nopse0 Posted December 16, 2024 Author Posted December 16, 2024 On 12/14/2024 at 6:54 PM, absar107 said: I'm on version 1.6.353 and this cause CTD when loading the game, when disabling the CTD stops, does it run for this version or only the latest version? I don't have 1.6.353, but I tested it on 1.5.97, and it also runs on VR which is even older, so I guess something else is wrong. Do the logs contain some useful information ?(CrashDump.log, SlaveTatsNG.log, skee.log, skse.log)
nopse0 Posted December 16, 2024 Author Posted December 16, 2024 On 12/12/2024 at 12:01 PM, leakim said: The new version reduces my co-save file by as much as "downgrading" to 1.3.9 did. So it works great. Lol, for me it reduced the size of the .skse co-save from "228.506 KB" to "3.866 KB" !!! (I did a lot of _log_jcontainer calls while developing, lol)
nopse0 Posted December 16, 2024 Author Posted December 16, 2024 On 12/13/2024 at 9:04 PM, encall said: When applying Lewdmarks-glow in SlaveTatsNG, the normal Lewdmarks are applied in the overlay instead of the glow versions. This might be due to the tattoo names being too similar. Also, the glow setting doesn’t seem to be showing in RaceMenu. Is this expected?  Not sure how glowing works. I tested to apply a tattoo with color black ("0"), glow color white ("FFFFFF") and alpha 1.0 to my char, and if I do a "skse dump overrides", everything looks ok, the glow color is in key 0, the tint color in key 7, and alpha is in key 8, everything as it should be, but still the texture doesn't glow at all.   Does the emissive multiplier (key 1) has to be set to something bigger than "1.0" ?  (see https://geek-of-all-trades.neocities.org/programming/skyrim/nioverride-textures-02-key-index :   This is probably the same problem @wareware already mentioned, it must be possible to pass the emissive multiplier into the function.Â
encall Posted December 20, 2024 Posted December 20, 2024 On 12/16/2024 at 12:11 PM, nopse0 said: Not sure how glowing works. I tested to apply a tattoo with color black ("0"), glow color white ("FFFFFF") and alpha 1.0 to my char, and if I do a "skse dump overrides", everything looks ok, the glow color is in key 0, the tint color in key 7, and alpha is in key 8, everything as it should be, but still the texture doesn't glow at all. Lewdmarks have two texture though. You suppose to apply both normal and glow texture. It works fine in Slavetats but in NG it apply same texture twice instead of different version. I also checked it in racemenu.
nopse0 Posted December 20, 2024 Author Posted December 20, 2024 (edited) 33 minutes ago, encall said: Lewdmarks have two texture though. You suppose to apply both normal and glow texture. It works fine in Slavetats but in NG it apply same texture twice instead of different version. I also checked it in racemenu. Just had a look at how Lewdmarks is doing it. They patched the SlaveTats.psc from SlaveTatsSE-1.3.9. The difference is simply this (compared the files with WinMerge): Â So, they simply set the emissive multiplier to 2.5, interesting. Principally they are doing the same as deviouslyaccessible, just that DA is more sophisticated (with the DA "SlaveTats_glowextension" it's possible to pass in different values for the emissive multiplier. Â Would also be nice, if it would be possible to set the glow map (texture index 3) in SlaveTats tattoos besides the diffuse map (index 0) and bump map (index 1), then you wouldn't have to use two different tattoos for that like Lewdmarks does. Â Edited December 20, 2024 by nopse0 1
encall Posted December 20, 2024 Posted December 20, 2024 Oh I thought it was different texture so that what it was. It isn't game breaking anyway.
nopse0 Posted December 20, 2024 Author Posted December 20, 2024 (edited) 2 hours ago, encall said: Oh I thought it was different texture so that what it was. It isn't game breaking anyway. Started to implement this, almost done, testing at the moment.  Besides the functions "simple_add_tattoo" and "apply_overlay", I added two new functions, "complex_add_tattoo" and "complex_apply_overlay", which make it possible to pass in the two new parameters "glowMap" and "emissiveMult". I also made it possible to pass in the parameters "bump", "glow" (emissive color) and "gloss" (before these could only be set in the SlaveTats MCM, not with the "simple_add_tattoo" function). I made two new functions instead of changing the existing ones, because otherwise you get errors like "only 7 parameters but function expects 12 parameters" (or you would have to recompile all scripts which are using "simple_add_tattoo" , but nobody wants to do that, even me ).  The new interface looks like this: bool function simple_add_tattoo(Actor target, string section, string name, int color = 0, bool last = true, bool silent = false, float alpha = 1.0) global native bool function complex_add_tattoo(Actor target, string section, string name, int color = 0, bool last = true, bool silent = false, float alpha = 1.0, int emissiveColor = 0, bool gloss = false, string bump = "", string glowMap = "", float emissiveMult = 1.0) global native bool function apply_overlay(Actor target, bool isFemale, string area, int slot, string path, int color, int glow, bool gloss, string bump = "", float alpha = 1.0) global native bool function complex_apply_overlay(Actor target, bool isFemale, string area, int slot, string path, int color, int glow, bool gloss, string bump = "", float alpha = 1.0, string glowMap = "", float emissiveMult = 1.0) global native      Edited December 20, 2024 by nopse0 2
DocClox Posted December 20, 2024 Posted December 20, 2024 Getting a CTD on orgasm. Tracked the problem to SexLab Hentai Pregnancy, which uses SlaveTats to apply a tattoo by catching OnOrgasmEnd.  Works fine with SlaveTats classic, crashes every time with NG.  I have a CrashLogger report. It's full of cummunity shaders reports, but that looks to be a red herring, since if I take them out the crash still happens.  https://pastebin.com/aKQJhiJm  It's probably faster to point you at the diagnostic thread at this point.  Â
nopse0 Posted December 21, 2024 Author Posted December 21, 2024 (edited) 13 hours ago, DocClox said: I have a CrashLogger report. I had a look at the crash log, and I see this: R14 0xA012EE00 (BSTriShape*) Name: "Feet [SOvl0]" RTTIName: "BSTriShape" Flags: kSelectiveUpdate | kSelectiveUpdateTransforms | kSelectiveUpdateController Name: "Feet [SOvl0]"  "SOvl", that's spell overlays. SlaveTatsNG doesn't apply spell overlays, this must be an external overlay. Do you also get the crash with SlaveTatsSE-1.3.9 ? Principally SlaveTatsNG is doing the same as the Papyrus SlaveTats, should make no difference, except that SlaveTatsNG is much faster.  Edit: Read the thread you linked, you don't get the crash with the Papyrus SlaveTats. Are you using the latest version, 0.6.2 ? What's your "iSpellOverlays" set to in skee.ini ? (Default is 1). Do you have an idea which mod applies the NiOverride SpellOverlays ? I could imagine, that SlaveTats doesn't detect them, and tries to apply tattoos to these slots and that this may lead to inconsistent shader properties. Or maybe this has to do with the transformation nodes of HentaiPregnancy.  I guess spell overlays are overlays rendered by a different kind of shader than normal overlays (maybe a specific renderer for spell effects). In so far, spell overlay slots and normal overlay slots should be totally independent of each other and don't interfer with each other. But still we have that nasty crash, hmm   Theory: SlaveTats calls "NiOverride::ApplyNodeOverrides(anActor)" in "synchronize_tattos". I think this will try to apply _all_ node node overrides, the normal ones ("[Ovl...]") and the spell ones ("[SOvl...]")! Let's assume a Papyrus script begins to add a spell overlay, e.g. "Feet [SOvl0]" with NiOverride functions, but hasn't set all shader properties yet (e.g. the TextureSet form), and while doing so, another mod kicks in and adds a SlaveTats tattoo (or calls "SlaveTats.synchronize_tattoos"), then NiOverride::ApplyNodeOverrides is called, and bang, CTD, because the SOvl isn't completely defined yet. That's a concurrency problem, no idea atm. how to solve this. Maybe add a SlaveTats.suspend/resume function to SlaveTats, so that other mods can suspend SlaveTats while doing critical things with NiOverride ? The idea being, that SlaveTats calls are queued and not executed while suspended. Edit: Just a global lock variable to disable "synchronize_tattoos" (so that it does nothing) would do the job. After you are done, you can unset the variable (and maybe call "synchronize_tattoos", so the SlaveTats changes in the meantime become visible). Edited December 21, 2024 by nopse0
DocClox Posted December 21, 2024 Posted December 21, 2024 2 hours ago, nopse0 said: Are you using the latest version, 0.6.2 ?  Problem occurred with 0.6.1, but tested it with 0.6.2 and it still happens.  2 hours ago, nopse0 said: What's your "iSpellOverlays" set to in skee.ini ?  Still set to 1  2 hours ago, nopse0 said: Do you have an idea which mod applies the NiOverride SpellOverlays ?  Umm. There's quite a lot happening at this point, but if it's not SlaveTats, my best guess would be SexLab adding cum overlays. Everything else I think uses SlaveTats. That said, if it was SexLab, you'd get this reported a lot, so that can't be the whole story.  Could it be a race condition from more than one mod trying to add tats at the same time?   2 hours ago, nopse0 said: Or maybe this has to do with the transformation nodes of HentaiPregnancy.  Unlikely as I have that all disabled in MCM. (I like the idea, but somehow I'm never quite happy with the results).  2 hours ago, nopse0 said: I guess spell overlays are overlays rendered by a different kind of shader than normal overlays (maybe a specific renderer for spell effects). In so far, spell overlay slots and normal overlay slots should be totally independent of each other and don't interfer with each other. But still we have that nasty crash, hmm   I confess, I didn't know spell overlays was a separate thing until just now.
nopse0 Posted December 21, 2024 Author Posted December 21, 2024 1 hour ago, DocClox said: I confess, I didn't know spell overlays was a separate thing until just now. Â I found a bit about the idea behind "spell overlays" from expired6978: https://www.nexusmods.com/skyrim/images/249959/ Â I think I will add a lock/unlock function to SlaveTatsNG to disable/enable synchronize_tattoos, this is very easy to implement, and should fix the problem (you only have to find the locations where NiOverride overlay function calls are made in your *.psc scripts, and surround them with a SlaveTatsNG.lock() ... SlaveTatsNG.unlock()). Preparing a hotfix. 2
Merlin Wizzard Posted December 23, 2024 Posted December 23, 2024 Having to roll back to 0.6.2. Cannot save and applying settings.
nopse0 Posted December 23, 2024 Author Posted December 23, 2024 9 hours ago, Merlin Wizzard said: Having to roll back to 0.6.2. Cannot save and applying settings. I don't understand yet, what cannot be saved and what settings cannot be applied ? Did you try the new lock functionality ? If something locked the actor and didn't release the lock, synchronize_tattoos does nothing, and applied tattoos don't become visible, do you mean that ? What may be helpful, I added some functionality in "NiOverrideClean.pex" to clear the new JContainer actor lock storage, clear the JContainer SlaveTats storage (all applied tattoos of all actors), clear all NiOverride node overrides, and some test functions, e.g. lock/unlock the player, apply and remove a test tattoo and an external overlay. You need the .esp from https://www.nexusmods.com/skyrimspecialedition/mods/125941 for that (it's a MCM script)
Merlin Wizzard Posted December 24, 2024 Posted December 24, 2024 13 hours ago, nopse0 said: I don't understand yet, what cannot be saved and what settings cannot be applied ? Did you try the new lock functionality ? If something locked the actor and didn't release the lock, synchronize_tattoos does nothing, and applied tattoos don't become visible, do you mean that ? What may be helpful, I added some functionality in "NiOverrideClean.pex" to clear the new JContainer actor lock storage, clear the JContainer SlaveTats storage (all applied tattoos of all actors), clear all NiOverride node overrides, and some test functions, e.g. lock/unlock the player, apply and remove a test tattoo and an external overlay. You need the .esp from https://www.nexusmods.com/skyrimspecialedition/mods/125941 for that (it's a MCM script) Seems to be Rape Tattoos Continued that's not saving and updating. I don't recall updating it recently? It won't save any applied tattoos since I updated something. Trying to trouble shoot which recent update caused the tattoos from applying and writing its settings after exit the MCM. I don't used and have never used lock or make permanent.
nopse0 Posted December 24, 2024 Author Posted December 24, 2024 (edited) 8 hours ago, Merlin Wizzard said:  have never used lock or make permanent.  Don't forget, you have to click "Add/remove tattoos" in the SlaveTats MCM after changing the installed tattoo packs (otherwise the data in slavetats_cache.json is wrong).  Just wanted to say, what I meant is not locking tattoos permanently on an actor, but something totally different.  There often are CTD's when multiple mods simultaneously try to apply NiOverride node overrides. This is especially a problem after sex acts, because then a dozen, or so, mods try to apply cum, dirt, blush, rape and who knows what else textures to actors. One of the reasons I made SlaveTatsNG, apart from the Papyrus SlaveTats being incredibly slow, was to solve these problems (and for me it did). But some people are still having problems, so I think the only real solution for this problem is synchronization, i.e. only one mod at a time should be allowed to apply node overrides. So I introduced a lock for this, in the hope other mod authors will use this.  Example usage: bool lockFailed = NiNodeOverrideLock.lock(akTarget, 10, 0.5) if (lockFailed) Debug.MessageBox("Could not get node override lock for player") return EndIf Float Alpha = 1.0 NiOverride.AddOverlays(akTarget) String Node = Area + " [ovl" + OverlaySlot + "]" NiOverride.AddNodeOverrideString(akTarget, Gender, Node, 9, 0, TextureToApply, true) NiOverride.AddNodeOverrideInt(akTarget, Gender, Node, 7, -1, 0, true) ;tint color NiOverride.AddNodeOverrideInt(akTarget, Gender, Node, 0, -1, 0, true) ;color NiOverride.AddNodeOverrideFloat(akTarget, Gender, Node, 1, -1, 1.0, true) NiOverride.AddNodeOverrideFloat(akTarget, Gender, Node, 8, -1, Alpha, true) NiOverride.AddNodeOverrideFloat(akTarget, Gender, Node, 2, -1, 0.0, true);gloss NiOverride.AddNodeOverrideFloat(akTarget, Gender, Node, 3, -1, 0.0, true);SpecStr NiOverride.ApplyNodeOverrides(akTarget) Debug.Trace("ApplyOverlay done") NiNodeOverrideLock.unlock(akTarget)    Edited December 24, 2024 by nopse0
Herowynne Posted December 24, 2024 Posted December 24, 2024 @nopse0 Is it okay to install the patch SlaveTats - Spank That Ass on an existing save game that uses both SlaveTatsNG and Spank That Ass?  Or should I wait for a new game before activating the patch SlaveTats - Spank That Ass?
nopse0 Posted December 25, 2024 Author Posted December 25, 2024 2 hours ago, Herowynne said: @nopse0 Is it okay to install the patch SlaveTats - Spank That Ass on an existing save game that uses both SlaveTatsNG and Spank That Ass?  Or should I wait for a new game before activating the patch SlaveTats - Spank That Ass? Safe, no Properties or so involved, I just replaced NiOverride calls with SlaveTats calls in a Papyrus function. But I would make sure that your STA version is the same as the STA version my patch is based on (Monoman), should be easy to see with WinMerge if this is not the case (great tool!). 1
GregariousGibbon Posted December 26, 2024 Posted December 26, 2024 Small question about the MCM, I read that the MCM will only show up if the original is also installed (mainly for the esp). However during my setup for a new game I forgot about this requirement and adding it to my existing save doesn't seem to cause Slave Tats to pop up in the MCM. Is there any way to force start the MCM to show, or would I need a new game start. (I've already tried setstage ski_configmanagerinstance 1)
nopse0 Posted December 27, 2024 Author Posted December 27, 2024 4 hours ago, GregariousGibbon said: Small question about the MCM, I read that the MCM will only show up if the original is also installed (mainly for the esp). However during my setup for a new game I forgot about this requirement and adding it to my existing save doesn't seem to cause Slave Tats to pop up in the MCM. Is there any way to force start the MCM to show, or would I need a new game start. (I've already tried setstage ski_configmanagerinstance 1) Yes, updating the MCM is really a problem, I also found no way, this almost drove me mad. I finally managed to get it updated by uninstalling my NiOverrideClean mod, making a clean save (without it), and then after installing it again (with the NiOverrideClean.psc from here), finally the changed MCM menu apeared.
eclipsed7774 Posted December 29, 2024 Posted December 29, 2024 Anyone have any idea as to what could be causing overlays to disappear or change colour on Orgasm? I think it has something to do with the drool sexlab adds but as i understand there isnt anyway to turn that off
Loller99 Posted December 30, 2024 Posted December 30, 2024 Uhm, installed it and then i crash when i click on the slavetats mcm menu
nopse0 Posted December 30, 2024 Author Posted December 30, 2024 23 hours ago, eclipsed7774 said: Anyone have any idea as to what could be causing overlays to disappear or change colour on Orgasm? I think it has something to do with the drool sexlab adds but as i understand there isnt anyway to turn that off This sounds like a concurrency problem, too, two mods modifying the same overlay slot at the same time
nopse0 Posted December 30, 2024 Author Posted December 30, 2024 1 hour ago, Loller99 said: Uhm, installed it and then i crash when i click on the slavetats mcm menu One gets this, when on older Skyrim versions address tables for the functions in the NiOverride DLL are used, and the addresses are wrong. On which Skyrim version are you ? Can you install CrashDump and post a CrashDump log ?
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