nopse0 Posted August 14 Author Posted August 14 11 hours ago, sidfu1 said: @nopse0 wasnt this fixed? i updated from slave tats 1.3.7 to .9 on a new game and instaled the slavetats gui mcp and i get this old spam now that was fixed before. wait scratch that looks like i disabled slavetatsng lol probaly when i wast testing. let me see if that fixes it but with this tought isnt about maybe roll everything into 1 now. Took me a while, until I had the context again, but now I know what you mean. Yes, we got this error a lot, when using FastTats together with Papyrus SlaveTats, because FastTats messed up the SlaveTats JContainer book-keeping. But slavetats gui mcp is written in C++ and uses C++ SlaveTatsNG functions, it doesn't work at all with the old Papyrus SlaveTats. And this error is from Papyrus SlaveTats, errors in SlaveTatsNG look different, and are logged in SlaveTatsNG.log, not in the console. So you are right, you must have had Papyrus SlaveTats active, not NG. But still, that you get this errors, shows that something is wrong with your SlaveTats JContainers data, that's not good. I think, I will add a "Clear all SlavetTats data" to the next version, so you can reset everything, without having to start a new game. If you are in Papyrus programming, you even could do it yourself, just calling "JDB.setObj(".slavetats", 0) should do the thing (and afterwards you would have to remove the orphaned RaceMenu overlays, the easiest way for this, would also be to simply remove all (I made a mod for this, on Nexus, "NiOverrideClean")
nopse0 Posted August 14 Author Posted August 14 I have to apologize, I didn't know (did you?), that you can change in "SKSE Menu Framework" (MCP) the font size and also choose a classic, ImGui like, style. I still think, the font and style used by CatMenu looks a bit better (more crispy), but that's only minor differences, the MCP version is perfectly usable
ShadeStrikes Posted August 14 Posted August 14 Hi! I'm using the latest version of your mod on 1.5.97 and the overlays applied via RaceMenu are removed when I load a save. The mod doesn't seem to detect them because they're not showing up in the SKSE Menu.
nopse0 Posted August 15 Author Posted August 15 15 hours ago, ShadeStrikes said: Hi! I'm using the latest version of your mod on 1.5.97 and the overlays applied via RaceMenu are removed when I load a save. The mod doesn't seem to detect them because they're not showing up in the SKSE Menu. You mean, you apply overlays with RaceMenu, but SlaveTats doesn't detect that the slots are used, and clears the overrides for these slots, because it thinks they are unused ? Yes, if you don't see them in the NiOverride display of the SlaveTats Gui, then SlaveTats really doesn't detect them. What might have to do with this, is RaceMenu, in fact, has two different arrays with overlay slots, one for each gender (because textures may be different for females and males, e.g. hairy or not hairy). Did you do a gender change recently ?
ShadeStrikes Posted August 15 Posted August 15 No, and I also tested it on a brand new character, and the issue persists...
nopse0 Posted August 15 Author Posted August 15 1 hour ago, ShadeStrikes said: No, and I also tested it on a brand new character, and the issue persists... No idea what this can be. Sounds more like a RaceMenu issue to me, that the overrides are not persisted in the savegame. Does 'skee64.log' show something ? The Gui determines, if the actor is female with "actor->GetActorBase()->IsFemale()", and then reads all overrides the actor has with this flag, and displays them. And SlaveTatsNG checks in 'synchronize_tattoos' the sex of the actor with "actor->GetActorBase()->GetSex() == 1" (principally the same), and calls the NiOverride functions for adding and removing nodes with this flag. Don't see what can go wrong with this. And most important, SlaveTatsNG doesn't automatically calls 'synchronize_tattoos' when the game is loaded (but maybe other mods do this), so I guess the actor doesn't have the overrides right from the beginning.
ShadeStrikes Posted August 15 Posted August 15 (edited) There is nothing diagnostic in skee64.log. I don't have much time to look into the code, so I'm taking a heuristic approach. Your mod is incompatible with ShowRaceMenu - NG. When either is disabled, the RaceMenu-applied overlays persist through saved game loading. Don't really know what the specific issue is though... Edited August 15 by ShadeStrikes
nopse0 Posted August 15 Author Posted August 15 (edited) 1 hour ago, ShadeStrikes said: There is nothing diagnostic in skee64.log. I don't have much time to look into the code, so I'm taking a heuristic approach. Your mod is incompatible with ShowRaceMenu - NG. When either is disabled, the RaceMenu-applied overlays persist through saved game loading. Don't really know what the specific issue is though... Ah, ok, this sounds like a good hint, will have a look at what ShowRaceMenu - NG is doing, how this collides. Only problem, this seems to be closed source, at least I see no source link, and Google search Git + ShowRaceMenu - NG also shows nothing. So no chance to find out, what the problem is. Maybe he is re-registering the NiOverride Papyrus functions at the VM to different addresses (and has his own management of overlays), so the address tables used by SlaveTatsNG for skee64.dll's before 1.6.640 (since this version, the function addresses can be queried with a SKSE function, and no tables are needed) are wrong. Can't you update to latest Skyrim/RaceMenu ? If not, you should check if the address offsets for 1.5.97 skee64.dll are still correct, when ShowRaceMenu-NG is also loaded (I documented in this thread, how the address offsets can be calculated). Or, at least, when enabling the VM hook, you would see in the log, if the NiOverride Papyrus functions are registered twice at the VM, once when skee64.dll is loaded, and once when ShowRaceMenuNG.dll is loaded. Edited August 15 by nopse0
ShadeStrikes Posted August 15 Posted August 15 Okay, so the source of the incompatibility and the reason SlaveTatsNG can't detect overlays is the skee64.dll supplied by UBE.
Amrovich Posted August 16 Posted August 16 the pink body bug started happening to me only on slavetats NG 0.8.2 ... downgrading to slavetats NG 0.8.1 fixed it. It is a bug in this specific version I believe
nopse0 Posted August 16 Author Posted August 16 5 hours ago, ShadeStrikes said: Okay, so the source of the incompatibility and the reason SlaveTatsNG can't detect overlays is the skee64.dll supplied by UBE. Strange, SlaveTatsNG has an address table for "Skyrim 1.5.97, UBE 2.0 U.0.7" in skee_addresses.json, so I don't understand, how this makes a difference. But glad, you found the problem.
nopse0 Posted August 16 Author Posted August 16 36 minutes ago, Amrovich said: the pink body bug started happening to me only on slavetats NG 0.8.2 ... downgrading to slavetats NG 0.8.1 fixed it. It is a bug in this specific version I believe No, I don't think, this is a bug (at least not from SlaveTatsNG). It simply doesn't set the diffuse texture property of the shaders of unused overlay slots to "blank.dds" anymore, but to "default.dds" (the same texture you see in RaceMenu for unused slots). This default.dds is a placeholder, I think, and not intended for being rendered. If setting alpha > 0 for a slot with "default.dds", you get pink body. One of your mods is using empty slots, but sets no texture.
Nuascura Posted August 16 Posted August 16 Is there a reason why you put your papyrus source scripts in two different locations, even though both are typically valid? I personally just like to keep them in one spot as that's the expected behavior for most mod setups. I would suggest moving all source scripts to /Source/Scripts.
nopse0 Posted August 16 Author Posted August 16 56 minutes ago, Nuascura said: Is there a reason why you put your papyrus source scripts in two different locations, even though both are typically valid? I personally just like to keep them in one spot as that's the expected behavior for most mod setups. I would suggest moving all source scripts to /Source/Scripts. When I patch something, I put the sources into the same folder as the originals, so it's guaranteed they overwrite the originals (if I remember it right, I once tried to change something in DDNG, but I edited the wrong sources, the DD ones, because they keep their sources in different folders, since then I have a horror about this confusion). While, for my own stuff, I used for a long time scripts/source, because I thought this is standard. But nowadays I use source/scripts, because CK uses this convention, then you can directly edit script fragments in it (without changing the CK configuration).
Nuascura Posted August 16 Posted August 16 Ah gotcha. Yeah, on my end, I manually organize all my installed mods to put the source files into /Source/Scripts, which is why I saw your bisection in the first place. I’m just sick under ‘OCD’ lol
nopse0 Posted August 16 Author Posted August 16 (edited) 11 hours ago, Nuascura said: Ah gotcha. Yeah, on my end, I manually organize all my installed mods to put the source files into /Source/Scripts, which is why I saw your bisection in the first place. I’m just sick under ‘OCD’ lol Yes, manually putting everything into the same source folder is of course the best solution (because having two different source folders is a pain in CK, luckily there is 'pyro' for VS Code), but I am too unorganized, undisciplined and lazy to do this . Would be nice to have a Powershell/Bash script for this, i.e. iterate over the 'mods' folder from MO2, and move all 'scripts/source' folders to 'source/scripts'. Maybe someone already made such a script ? Ps: If not, => Claude Opencode with LMStudio produced this: Script written to MoveScriptSources.ps1. It will: - Find every mod with scripts/source - Skip mods that already have source/scripts - Move scripts/source → source/scripts, creating the source parent if needed - Clean up empty scripts folders after the move - Report a summary of what was moved/skipped (LL doesn't allow to copy scripts into messages, so I added the extender ".txt" to the script) MoveScriptSources.ps1.txt Edited August 17 by nopse0
coyanimefreak Posted August 17 Posted August 17 catmenu is deprecated? can you add support for skse menu framework?
nopse0 Posted August 18 Author Posted August 18 (edited) 7 hours ago, coyanimefreak said: catmenu is deprecated? can you add support for skse menu framework? I have, see files, SlaveTatsGUI-MCP. "MCP" is skse menu framework, "Mod Control Panel". You have to change font size, see second screenshot from description. Edited August 18 by nopse0
no_way Posted August 18 Posted August 18 Getting an error on new game that says "slavetats requires nioverride or racemenu"
nopse0 Posted August 18 Author Posted August 18 (edited) 18 minutes ago, no_way said: Getting an error on new game that says "slavetats requires nioverride or racemenu" Is it literally saying this ? Because I don't find this message in the sources. Probably you don't have SlaveTatsNG installed, or something overwrites SlaveTats.pex from SlaveTatsNG. If NIOverride/RaceMenu is not found, when SlaveTatsNG.dll is loaded, Skyrim won't start at all, because I call 'abort', if I don't find it. So, I guess it isn't loaded at all. std::string dll_name = config->skee_dll_name; if (dll_name.empty()) { std::string default_dll_name; if (GetModuleHandleA("skee64.dll") != NULL) default_dll_name = "skee64.dll"; else if (GetModuleHandleA("skeevr.dll") != NULL) default_dll_name = "skeevr.dll"; else { logger::info("skee dll name undefined"); abort(); } dll_name = default_dll_name; } HMODULE base_module = GetModuleHandleA(dll_name.c_str()); if (!base_module) { logger::info("Module {} is not loaded", dll_name); abort(); } logger::info("NIOverride base address: GetModuleHandleA({}) = {}", dll_name, (uintptr_t)base_module); char* base_addr = (char*)base_module; auto hash = slavetats_ng::utility::System::md5_hash("data/skse/plugins/" + dll_name); logger::info("{} md5 hash = {}", dll_name, hash); if (hash.empty()) { logger::info("Unable to calculate hash for dll {}", dll_name); abort(); } auto table_it = offset_tables.find(hash); if (table_it == offset_tables.end()) { logger::info("Found no skee offset table for dll with hash {}", hash); abort(); } Edited August 18 by nopse0
Spacehaven Posted August 28 Posted August 28 Do you still have to maually add more layers like in the non NG version to get more than 6 tattoo slots? If yes, can somone provide me with a link to a guide or explain it?
overlord115 Posted August 28 Posted August 28 Skyrim just updated to 1.7.104 so SKSE also got updated so this mod needs to be updated for the latest SKSE or the game won't open with it installed
nopse0 Posted August 28 Author Posted August 28 (edited) 40 minutes ago, overlord115 said: Skyrim just updated to 1.7.104 so SKSE also got updated so this mod needs to be updated for the latest SKSE or the game won't open with it installed That's a problem, I am using the vcpkg 'commonlibsse-ng' from the vcpkg-colorglass repository, this hasn't been updated since 2-3 years. Don't want to use a newer commonlibsse version from Git, because those have compatibility problems on Windows8.1/Linux. I am waiting what the Devious Devices NG/Unforgiving Devices people will do, they use same commonlibsse vcpk, as I. Also RaceMenu and JContainers need an update, did they release a new version yet ? { "default-registry": { "kind": "git", "repository": "https://github.com/microsoft/vcpkg", "baseline": "1de2026f28ead93ff1773e6e680387643e914ea1" }, "registries": [ { "kind": "git", "repository": "https://gitlab.com/colorglass/vcpkg-colorglass", "baseline": "6309841a1ce770409708a67a9ba5c26c537d2937", "packages": [ "commonlibsse-ng" ] } ] } Edited August 28 by nopse0
nopse0 Posted August 28 Author Posted August 28 (edited) 7 hours ago, Spacehaven said: Do you still have to maually add more layers like in the non NG version to get more than 6 tattoo slots? If yes, can somone provide me with a link to a guide or explain it? Yes, of course, this is a major setting of RaceMenu, I wouldn't change this in a running game, this gives problems (at least decreasing the number of slots is catastrophal, raising, don't know, maybe). Data/SKSE/Plugins/skee64.ini Edited August 28 by nopse0
Spacehaven Posted August 28 Posted August 28 52 minutes ago, nopse0 said: Yes, of course, this is a major setting of RaceMenu, I wouldn't change this in a running game, this gives problems (at least decreasing the number of slots is catastrophal, raising, don't know, maybe). Data/SKSE/Plugins/skee64.ini And what exsactly do I add there? I found several settings but they were intended for nioverride
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