Jump to content

Recommended Posts

Posted (edited)
4 hours ago, LillyxFox said:

I've never actually had to post papyrus logs before lol, lemme know if this isn't right

Papyrus.0.log 283.48 kB · 0 downloads


Is that from a session where you turned on debug mode in the MCM & pressed one of the debug keys to simulate an event? There's none of the usual logging that RTC would generate, which suggests that either the debug functionality wasn't used, or something is seriously messing with RTC's scripts (for reference, if you press the debug key & see notifications popping up in-game, they will also get written to the Papyrus log, and I'm not seeing anything).

 

Just to check - you do have bEnableTrace=1 set in your ini file, right? And there's nothing overwriting RTC's scripts?

Edited by elliesec
Added some questions
Posted
On 4/26/2026 at 12:36 AM, elliesec said:


Is that from a session where you turned on debug mode in the MCM & pressed one of the debug keys to simulate an event? There's none of the usual logging that RTC would generate, which suggests that either the debug functionality wasn't used, or something is seriously messing with RTC's scripts (for reference, if you press the debug key & see notifications popping up in-game, they will also get written to the Papyrus log, and I'm not seeing anything).

 

Just to check - you do have bEnableTrace=1 set in your ini file, right? And there's nothing overwriting RTC's scripts?

You were right, I didn't have bEnableTrace=1 set in my ini file. Hopefully this is right 

Papyrus.0.log

Posted
On 4/28/2026 at 4:32 AM, LillyxFox said:

You were right, I didn't have bEnableTrace=1 set in my ini file. Hopefully this is right 

Papyrus.0.log 2.48 MB · 1 download


Yeah, that's better. So it looks like Rape Tats has gone through its filtering and selected a tattoo, but for whatever reason, SlaveTats has failed to apply it. Unfortunately, there's not really any indicator in the log as to why SlaveTats has reported a failure there, but it could be a number of reasons.

 

The most obvious thing that comes to mind which tends to result in SlaveTats failures like that is that you don't have enough free overlay slots (as determined by the configuration in your skee.ini (see the first spoiler under the "Configuration Tips" section of the mod page) - first thing I'd try doing is cranking up those iNumOverlays values to see if that has any effect (especially on the face).

 

If that doesn't work, I'd probably need more information - specifically, are you using the original SlaveTats, or SlaveTats NG? Nowadays, I'd recommend the latter. The original SlaveTats had some issues, which I think have mostly been ironed out in the NG version (as well as most of the initial problems that it itself had). Anecdotally, I've seen considerably fewer spontaneous failures to apply tattoos from SlaveTats since moving to the NG version.

  • 1 month later...
Posted

Hi friends, I have a problem. After being raped, a tattoo appears and then immediately disappears. The tattoo isn't visible in RaceMenu or Fade. I use AE and P+

  • 4 weeks later...
Posted (edited)

@elliesec I'm using your 2.1.0 preview since ages now without problem. I dont really remember where I got that from as I didnt play or mod much last two years, but I think it was a result from when when ponzi was working on fast tats etc.
Either way I thought it would actually be nice to possibly simply drop in multiple settings.jsons... not only is this convenient to just dump in a new file and update, but also helps the people that are not sure how to merge their settings with a custom one like those I or others provide with their tattoo mods.
With my limited knowledge I tried to figure out a way to do exactly that. 

rTats/settings.json is the base, which is also modified by the MCM and saved back to disk on close. I changed the loader to basically treat rTats/settings.json as the foundation file and then optionally merges additional files, settings1.json, settings2.json ... settings99.json
Any missing files are simply ignored, additional files are treated as import/update files, so they can either update existing entries or add new ones. Later files overwrite earlier entries when the same texture path exists.
So in theory you could also create a "load order" and switch priorities as needed or simply use it to update the main settings.json. After the MCM saves, the merged result is written back into settings.json by the existing mcm function, so one could remove the temporary numbered files if one wants to "bake" the changes into their main library.

I originally considered making the loader automatically scan the rtats folder and merge every JSON file it found. But didnt seem like that works with just papyrus and Jcontainers. Could also just be me.

This is the added code for the rapeTattoos_utils.psc if you think its of use feel free to merge it into your build, works fine for me from the few tests I did.

Spoiler

 

; Returns retained JMap mapping texture paths to a sub-jmap with extra data
; Added support for multiple settings.jsons 1-99 are treated as import/update files.
; If duplicate tattoo paths exist, later files overwrite earlier entries.
; The MCM close function in rapeTattoos_mcm.psc can then save the final combined result back into settings.json so update files can be removed in theory

int function getDataMap() global

    ; Load the main settings library
    int config = getConfigFile("settings.json", "rTatsSettingsTemplate.json")


    ; Load additional tattoo configuration/update files
    int i = 1

    while i <= 99

        mergeConfig(config, "settings" + i + ".json")

        i += 1

    endwhile


    if config != 0
        log("Combined tattoo library contains " + JMap.count(config) + " tattoo mappings")
    else
        log("Failed to create tattoo configuration map")
    endif


    return JValue.retain(config)

endfunction


; Loads and merges an additional tattoo settings file.
;
; If the file does not exist it is skipped.
; Entries from this file overwrite existing entries with the same tattoo path.

function mergeConfig(int target, string filename) global

    string userConfigPath = JContainers.userDirectory() + "rTats/" + filename


    if JContainers.fileExistsAtPath(userConfigPath)

        log("Loading additional tattoo config: " + filename)

        int source = JValue.readFromFile(userConfigPath)


        if source != 0

            int keys = JMap.allKeys(source)
            int i = 0


            while i < JArray.count(keys)

                string tattooPath = JArray.getStr(keys, i)

                JMap.setObj(target, tattooPath, JMap.getObj(source, tattooPath))

                i += 1

            endwhile


            log("Merged " + filename + " - " + JMap.count(source) + " mappings")


            JValue.release(source)

        else

            log("Failed to read " + filename)

        endif

    endif

endfunction


; Returns retained JMap with weighted tattoo color configuration settings

int function getColorConfig() global

    return getConfigFile("colorConfig.json", "rTatsColorConfigTemplate.json")

endfunction


int function getConfigFile(string userFilename, string templateFilename) global

    int config = 0



 

(With a settings file that contains 2 entries of settings1 and 2 of settings2, but not all to see if the existing and new entries would correctly resolve into a updated settings.json with the intended 9 entries in this case)
[07/16/2026 - 09:12:19PM] [ Rape Tattoos ] Attempting to read user config file at "rTats/Settings.json"
[07/16/2026 - 09:12:19PM] [ Rape Tattoos ] Config file loaded - 4 tattoo mappings found
[07/16/2026 - 09:12:19PM] [ Rape Tattoos ] Loading additional tattoo config: Settings1.json
[07/16/2026 - 09:12:19PM] [ Rape Tattoos ] Merged Settings1.json - 4 mappings
[07/16/2026 - 09:12:19PM] [ Rape Tattoos ] Loading additional tattoo config: Settings2.json
[07/16/2026 - 09:12:19PM] [ Rape Tattoos ] Merged Settings2.json - 5 mappings
[07/16/2026 - 09:12:19PM] [ Rape Tattoos ] Combined tattoo library contains 9 tattoo mappings

 

Edited by Alpia
Posted

@Alpia - thanks! That is actually pretty close to what I've been intending on doing for the next release of this, but I've not really worked on modding Skyrim for a while. I have a half-finished branch that I was planning on coming back to at some point which also does proper directory scanning (believe I added Papyrus Util for that - as you say, I don't think you can achieve it with just JContainers) and conflict resolution stuff (if multiple files define different groups for the same tattoo etc.).

My general intent was to offload the config burden onto the individual tattoo mods (and provide some preset configs for those that are unlikely to get updates) rather than the player. so you get more of a "1-click install" experience rather than having to spend hours trawling through the MCM to configure stuff or manually munging together JSON files that you've downloaded from various mod pages.

 

If I get a chance I might see if I can finish that off at some point. I think the last time I picked up Skyrim, I ended up ragequitting over some random persistent CTD that I couldn't diagnose whilst in pursuit of my perfect mod setup 😅. In the meantime, feel free to share the compiled .pex here if you want, and people can give it a spin if they want to try it.

Posted
3 hours ago, elliesec said:

@Alpia - thanks! That is actually pretty close to what I've been intending on doing for the next release of this, but I've not really worked on modding Skyrim for a while. I have a half-finished branch that I was planning on coming back to at some point which also does proper directory scanning (believe I added Papyrus Util for that - as you say, I don't think you can achieve it with just JContainers) and conflict resolution stuff (if multiple files define different groups for the same tattoo etc.).

My general intent was to offload the config burden onto the individual tattoo mods (and provide some preset configs for those that are unlikely to get updates) rather than the player. so you get more of a "1-click install" experience rather than having to spend hours trawling through the MCM to configure stuff or manually munging together JSON files that you've downloaded from various mod pages.

 

If I get a chance I might see if I can finish that off at some point. I think the last time I picked up Skyrim, I ended up ragequitting over some random persistent CTD that I couldn't diagnose whilst in pursuit of my perfect mod setup 😅. In the meantime, feel free to share the compiled .pex here if you want, and people can give it a spin if they want to try it.

Sounds good to me, thanks.
I'll probably drop it on my mod page to together with the settings.jsons that way people (hopefully) cant miss it
 


 

Rtats Continued 2.1.0-preview-1 (Patch):
This is based on the preview version I use, but notepad++ compare reports the edited script from 2.0.3 and 2.1.0 are 1:1 the same so should work for both.
Install as patch, this is only the edited script so you need the original mod. 

You can now use additional numbered settings files (settings1.jsonsettings99.json) alongside your normal settings.json. They'll be merged automatically when the game loads. Feel free to give it a try. More details are a few posts above

How to use:

  1. Leave your existing rTats/settings.json as it is.
  2. Drop any additional settings files into the same folder, naming them settings1.json, settings2.json, etc. up to 99
  3. Start the game the files will be merged automatically.
  4. If multiple files contain the same entry, the higher-numbered file takes priority.
  5. (Optional) If you open and close the rtats MCM by default saves the MCM to write all merged changes into your main settings.json. After that, you could delete the numbered files if you no longer need them. Alternatively you can keep them and rearrange them to create different setups like a load order.

    Rtats Continued 2.1.0-preview-1 Patch.7z

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...