Jump to content

Poll for current and future users of SES  

2,409 members have voted

  1. 1. Which version of Skyrim do you typically use?

    • LE - Legacy Edition (v1.9.32)
      169
    • SE - Special Edition (v1.5.97)
      944
    • AE - Anniversary Edition (v1.6+)
      1262
    • VR - Virtual Reality Edition (v1.4+)
      34


Recommended Posts

Well, I've got ~150 ESPs in the load order. Not sure offhand how many script instances, but it's going to be quite a few.

Frankly though, you're completely missing my entire point. Whether the issues stem from the base interpteter & SKSE itself (and the changes between versions) or just from the lack of coherant documentation and partially OO nature of the thing, it's an unbridled mess.

 

Can you show me somewhere that the number parsing behaviour of JsonUtil is actually properly documented, without linking to some random post in the depths of the SKSE thread?

It sure isn't on Github, which basically refers you to the script itself. That just has an external function call to the SKSE DLL, and I sure CBA to go digging through someone else's C++ to figure out exactly what rules are in use......

 

---

 

Back somewhat on topic, attached is a marginally better version of the follower stripper. (This assumes that if the follower is in the SlaveFaction, we don't need to change the outfit)

It's nowhere close to right, but at least avoids the constant outfit changes glitch.

 

A second observation is that slavers can trigger the 'good' smuggle the PC out of the city path if she is found clothed.

This should probably be locked out behind a slaver faction check.

 

I think this should do the trick (untested):

SLV_EventHandler.psc, line 841 onwards:

if MCMMenu.NudityRescue && !NPCActor.IsInfaction(SLV_SlaverFaction)
    if violate == 1
        SLV_PunishmentRunning.setValue(1)
        rescueer.ForceRefTo(NPCActor)    
        return
    else
        violate = violate - 1
    endif
endif

 

Scripts.zip

Edited by gollum007
Link to comment

@gollum007 Thanks a heap ton! That confirms the issue for LE and empty outfits.

Without your help I was considering dropping support for LE. Not because I want to but because I can't test.

Your change for follower outfits would unfortunately cause some issues of its own. That function has to do deal with a tricky bit of state. Took ages to think it all through. I will have to craft my own solution. But I like your idea for the SLV_EventHandler file. Do not currently override that. But I might have to to include your idea.

@Leoosp Thank you too for the keen-eyed observation. Without you I am not sure we would have gotten on to the number format being the root cause.

@alex77r4 I enjoy it when you come around dropping knowledge bombs. To be honest I already knew what a number is. And the various ways they are stored ? . But the backhistory on when PapyrusUtils changed the format is quite helpful. A while ago I had seen those entries in the PapyrusUtils changelog. Started to suspect they were the cause. But since they are so vaguely worded I did not know what they changed. Just sounded ominous.

Your points about how other plugins store IDs is not super relevant here. The important part is how PapyrusUtils stores form IDs. That changed. When you import a JSON prepared for SE into LE the old version can't read it.

One thing is not clear to me however. Is there a drawback to storing all forms in the legacy decimal format? I could update the xEdit script used to export forms to JSON. Have it export decimal instead. Probably include the hex ID in the JSON comment so maintainers have a better idea of what it is.

You mentioned the issues with plugins >128 and and GetFormID(). But as you note a signed int is not really an issue assuming the DLL (PapyrusUtils) knows how to handle it. Further I'm assuming PapyrusUtils is using GetFormFromFile() instead. Which would mean the integer passed would never exceed the signed limits. It won't wrap around. I don't think this will be an issue. Not even with .esl files. But I am more than willing to be wrong. If somebody finds a flaw in my reasoning say so. If not I will switch all of the JSONs and xEdit scripts over to decimal. Then even old PapyrusUtils can read it.

Edited by kaxat
Link to comment
21 minutes ago, kaxat said:

@gollum007 Thanks a heap ton! That confirms the issue for LE and empty outfits.

Honestly without your help I was considering dropping support for LE. Not because I want to but because I can't test.

Your change for follower outfits would unfortunately cause some issues of its own. That function has to do deal with a tricky bit of state. Took ages to think it all through. I will have to craft my own solution. But I like your idea for the SLV_EventHandler file. Do not currently override that. But I might have to to include your idea.

@Leoosp Thank you too for the keen-eyed observation. Without you I am not sure we would have gotten on to the number format being the root cause.

@alex77r4 I always enjoy it when you come around dropping knowledge bombs. I got to be honest I already knew what a number was and the various ways it gets stored ? . But the backhistory on when PapyrusUtils changed the format is quite helpful. A while ago I had seen those entries in the changelog. Started to suspect they were the cause. But since they are so vaguely worded I did not know what they changed. Just sounded ominous.

Your points about how other plugins store IDs is honestly not super relevant here. The important part is how PapyrusUtils stores form IDs. That changed. When you import a JSON prepared for SE into LE the old version can't read it.

One thing is not clear to me however. Is there a drawback to storing all forms in the legacy decimal format? I could update the xEdit script used to export forms to JSON. Have it export decimal instead. Probably include the hex ID in the JSON comment so maintainers have a better idea of what it is.

You mentioned the issues with plugins >128 and and GetFormID(). But as you note a signed int is not really an issue assuming the DLL (PapyrusUtils) knows how to handle it. Further I'm assuming PapyrusUtils is using GetFormFromFile() instead. Which would mean the integer passed would never exceed 6 bytes (48 bits). I don't think this will be an issue. Not even with .esl files. But I am more than willing to be wrong. If somebody finds a flaw in my reasoning say so. If not I will switch all of the JSONs and xEdit scripts over to decimal. Then even old PapyrusUtils can read it.

 

You're welcome, the reason I noticed this was because during Sixth Form College, one of the courses I was on was about ICT and was a vocational BTEC Level 3. One of the things taught was machine code (low level language of computers). As such learned about binary, decimal, octal and hexadecimal as well as programming etc.

Edited by Leoosp
Link to comment

The only issue I can foresee is that the SexlabNostrip keyword changed form IDs. Which is a bit frustrating.

I could do special logic for it. I could include both. Or I could do separate themes for LE and SE. I would like to avoid the latter. Huge pain to maintain 2 different things. More likely for stuff to break in LE without me knowing it. But technically another mod might also not be a straight conversion. And reorder its forms. I suspect this is exceedingly rare.

Link to comment
32 minutes ago, Leoosp said:

 

It depends on whether the recent updates for PapyrusUtil SE can convert automatically it into hexadecimal from decimal in order work with it in json, if it can then it may not be an issue. Though if can't doesn't then the issue will then be doing it in the reverse direction, so in which case a set of jsons for SE and LE will be necessary. So may be an idea to develop some kind of script tool which can by command line, be used with xedit and Python (or Powershell) scripting to automate this, process when preparing new releases.

Yeah I am just assuming it works given the decimal based files that were shared. The DD Equip one is a PapyrusUtils file. It evidently loads in SE as well as LE.

I will not know until I test. But I am guessing newer versions of Util support the old format. If they did not people would have had big issues updating.

Edited by kaxat
Link to comment

Sure :)

My changes were pure hackery from a quick and dirty POV to resolve a couple of immediate issues, nothing more.

 

---

 

 

If you wanted to introduce some better logic into the 'action' tree with nudity consequences to reflect roles, I'd postulate something like this:

1. Base chance of action roll. Increase this roll by say 50% for slavers.

2. If action roll passes, a second roll to determine action type. Draw this from 3 action pools (good, neutral, bad). Slavers only roll between neutral / bad, free females roll between good / neutral (??)

3. Final roll to pull a random action from the selected pool.

 

Sugested actions:

Good:

Just undress you

Spirits you out

I'll ignore it *this* time warning

 

Neutral:

Undress + sex, per the existing gate guard

Add bounty

Kick out of city + bounty

 

Bad:

Sex

Sex + bounty

Enslavement

 

 

All of that would be relatively simple to add (I know lol)

Link to comment
2 hours ago, kaxat said:

The only issue I can foresee is that the SexlabNostrip keyword changed form IDs. Which is a bit frustrating.

I could do special logic for it. I could include both. Or I could do separate themes for LE and SE. I would like to avoid the latter. Huge pain to maintain 2 different things. More likely for stuff to break in LE without me knowing it. But technically another mod might also not be a straight conversion. And reorder its forms. I suspect this is exceedingly rare.

 

This may be unfortunately unavoidable as another reason beyond number format in PapyrusUtil across Skyrim LE vs SE, that cases exist which have different FormIDs in and of itself between both games. In such that the plugin file name is the same and the modification is available on both Skyrim LE and SE, but each have different FormIDs referring to the same item in each game.

 

So, the FormID used by the game must match the one which it is being asked to look for via PapyrusUtil in order to find it. Though this part won't be too hard to handle, when the Papyrus scripts and xEdit script has been updated to export and/or import decimal json.

 

Though it is exceedingly rare it is worth watching out for and warning about, depending on how said modification(s) were brought to SE from LE, especially whether they required a complete rebuild from scratch. If said modification did require a rebuild from scratch; then they would definitely have different FormIDs.

Edited by Leoosp
Link to comment
2 hours ago, gollum007 said:

Sure :)

My changes were pure hackery from a quick and dirty POV to resolve a couple of immediate issues, nothing more.

 

---

 

 

If you wanted to introduce some better logic into the 'action' tree with nudity consequences to reflect roles, I'd postulate something like this:

1. Base chance of action roll. Increase this roll by say 50% for slavers.

2. If action roll passes, a second roll to determine action type. Draw this from 3 action pools (good, neutral, bad). Slavers only roll between neutral / bad, free females roll between good / neutral (??)

3. Final roll to pull a random action from the selected pool.

 

Sugested actions:

Good:

Just undress you

Spirits you out

I'll ignore it *this* time warning

 

Neutral:

Undress + sex, per the existing gate guard

Add bounty

Kick out of city + bounty

 

Bad:

Sex

Sex + bounty

Enslavement

 

 

All of that would be relatively simple to add (I know lol)

 

Unless the morality of the "free females" causes them to lean more towards evil without being a slaver, thus they may go one of the bad category items. Also may I postulate having additionally since it is a random action, from the pool adding "Sex + Enslavement" to the bad category? Thus there would be sex and also there would be enslavement happening as well, causing a "nasty" surprise if unlucky in the bad category action roll.

Link to comment

@gollum007 Great ideas. I think you should build them. ? Seriously though I would love to include those ideas. Currently my main focus is on making this mod independent of Reloaded. It will be a while before I start adding features like that. But if you built it I would love to link to your mod from the download page. Or include your work in this mod if given permission.

 

If you do build it could you make the "I'll ignore it *this* time warning" a notification instead of dialogue. Dialogue requires a plugin. Until this mod is more of a standalone I have to limit new dialogue.

 

My next big feature is moving the Enforcer MCM options to its own menu. Exciting I know. After that I can start adding the mini scenes I have been planning. Brief and varied conversation between NPCs before sex. Not only will that be great for immersion it allows me to start replacing some Reloaded dialogue with lines from this mod. Once I have replaced all of the Enforcer dialogue I will have removed another Reloaded dependency.

Link to comment
24 minutes ago, kaxat said:

@gollum007 Great ideas. I think you should build them. ? Seriously though I would love to include those ideas. Currently my main focus is on making this mod independent of Reloaded. It will be a while before I start adding features like that. But if you built it I would love to link to your mod from the download page. Or include your work in this mod if given permission.

 

If you do build it could you make the "I'll ignore it *this* time warning" a notification instead of dialogue. Dialogue requires a plugin. Until this mod is more of a standalone I have to limit new dialogue.

 

My next big feature is moving the Enforcer MCM options to its own menu. Exciting I know. After that I can start adding the mini scenes I have been planning. Brief and varied conversation between NPCs before sex. Not only will that be great for immersion it allows me to start replacing some Reloaded dialogue with lines from this mod. Once I have replaced all of the Enforcer dialogue I will have removed another Reloaded dependency.

 

Anyway, as a follow on from our conversation Yesterday, I would like to mention that I have both LE and SE of Skyrim. Additionally, my system has enough storage to be able to store both titles. Also currently are waiting for mods to catch up with GOG Skyrim as are planning on switching to it, when enough have compatibility with it. Being able to install it without having to be online to do so, after downloading the offline installer is great, also allows you to have control over version which gets installed.

Edited by Leoosp
Link to comment

I did not know there was a GOG edition. That is great news. Almost worth rebuying. I will wait for a sale.

I hope Starfield is a day 1 release on GOG. GOG does not force you to update the game. That is a pretty big deal if you are installing the Script Extender.

Link to comment
37 minutes ago, kaxat said:

I did not know there was a GOG edition. That is great news. Almost worth rebuying. I will wait for a sale.

I hope Starfield is a day 1 release on GOG. GOG does not force you to update the game. That is a pretty big deal if you are installing the Script Extender.

 

You still need to wait for modifications to be updated as well for either a FNIS update or Nemesis (Rewrite) to see if the rewrite includes support for GOG Skyrim and creature animations. 

Edited by Leoosp
Link to comment

Actually, *most* of it is near enough do-able within the current code of the consequences function without too much real effort, as this already makes sex, stripping calls etc.- The existing one really just heads straight down a linear chance roll for each of them (hence the slaver spirit out glitch- it's the last option before the function exits ignoring them) :)

 

Not really planning on heading down the Skyrim mod rabbit hole at the minute, not got enough time maintaining what I do already.

[This is the username I use on NFSW stuff; I'm the sole maintainer for a quite large C# engine in the 'rest' of my spare time]

 

Certainly happy to make (un)helpful suggestions and do a little digging from time to time though.

Link to comment

OK, a quickly cooked up version of my suggested consequences function:

Event OnViolateSlaverLaw(Form sender)

Actor NPCActor= sender as Actor

int goodChance = 33
int neutralChance = 66

if NPCActor.IsInFaction(SLV_SlaverFaction)
    ; A slaver can never trigger a 'good' event, and has a higher chance of bad
    goodChance = -1    
    neutralChance = 50
elseif NPCActor.GetSex() == 1
    ; Assume that a female is more sympathetic to our plight
    goodChance = 50
    neutralChance = 100
endif

; Roll to determine the type of action
int actionTypeRoll = Utility.RandomInt(0,100)

if actionTypeRoll <= goodChance
    int goodRoll = Utility.RandomInt(0,3)
    if goodRoll == 0
        Debug.notification(NPCActor.GetLeveledActorBase().getName() + " is looking at me suspiciously. I'd better strip off quickly before he calls the guards!")
        return
    eliseif goodRoll == 1
        SLV_PunishmentRunning.setValue(1)
        rescueer.ForceRefTo(NPCActor)    
        return
    else
        ; ignores completely
        return
    endif
elseif actionTypeRoll <= neutralChance
    Debug.notification(NPCActor.GetLeveledActorBase().getName() + " rips your clothes off for violating the slaverun laws.")
    myScripts.SLV_SexlabStripNPC(Game.GetPlayer())
    myScripts.SLV_StripBothHands(Game.GetPlayer())
    int neutralRoll = Utility.RandomInt(0,3)
    if neutralRoll == 0
        SLV_PunishmentRunning.setValue(1)
        punisher.ForceRefTo(NPCActor)    
        return
    elseif neutralRoll == 1
        CrimeFactionWhiterun.ModCrimeGold(MCMMenu.NudityCrimeAmount,true)
        SLV_PunishmentRunning.setValue(1)
        punisher.ForceRefTo(NPCActor)    
        return
    else
        CrimeFactionWhiterun.ModCrimeGold(MCMMenu.NudityCrimeAmount,true)
        SLV_PunishmentRunning.setValue(1)
        rescueer.ForceRefTo(NPCActor)    
        return
    endif
else
    Debug.notification(NPCActor.GetLeveledActorBase().getName() + " rips your clothes off for violating the slaverun laws.")
    myScripts.SLV_SexlabStripNPC(Game.GetPlayer())
    myScripts.SLV_StripBothHands(Game.GetPlayer())
    int badRoll = Utility.RandomInt(0,2)
    if badRoll == 0
        CrimeFactionWhiterun.ModCrimeGold(MCMMenu.NudityCrimeAmount,true)
        SLV_PunishmentRunning.setValue(1)
        punisher.ForceRefTo(NPCActor)    
        return
    else
        if SLV_Main.getstage() >= 1000 && !Game.getplayer().IsInfaction(SLV_SlaveFaction) && !Game.getplayer().IsInfaction(SLV_SlaverFaction)
            SLV_PunishmentRunning.setValue(1)
            enslaver.ForceRefTo(NPCActor)
        else
            Debug.notification("Some slavers knock you down.")
            sendModEvent("SlaverunReloaded_ForceEnslavement")
        return
    else
    endif
endif

EndEvent

 

Not tested or compiled (but should work), and I'm afraid it'll ignore the MCM toggles for available punishment types.

I can compile this and add support for the MCM toggles if there's interest, I suppose would want something like a notification message, e.g. Alvor would have fined you 1000 gold, but that's disabled- Lucky you!

Link to comment

Hi im on LE and have been struggling for a bit, kept getting an error saying "missing value in [outfits_apply], im assuming i just need too set an outfit in the slaverunoutfitsfree file right? So how do i set outfit themes?

 

Also when i boot a new save with both slaverun reloaded and enforcers the message "updating slaverun mcm has started" and nothing happens, can't see a menu for slaverun.

i get around it by launching slaverun first, let it throw a temper tantrum for a bit about dd 5.0, save, then enable enforcers and boot. but this is where i get the error message from the begining.

 

You can tell me if im a dumbass and i've been doing it all wrong, appreciate the help!

Link to comment

@kinkeag It's not you it's me. ?

 

Version 0.5 has that JSON bug on LE. It also dislikes it when you start a new game instead of upgrading. My mistake!

I have been working on fixes. The attached file contains a preview of version 0.6. It's not the final 0.6 but it does contain a fix for both the issues you encountered. And so far my testing shows no new issues.

 

If you would not mind downloading and seeing if it works for you I would be grateful. I do not actually have LE installed. Which is why I did not catch the JSON bug. This should fix the JSON issue but I can not verify without help.

Slaverun Enforcer - Standsalone v0_6 Preview.7z

Link to comment
3 hours ago, kaxat said:

@kinkeag It's not you it's me. ?

 

Version 0.5 has that JSON bug on LE. It also dislikes it when you start a new game instead of upgrading. My mistake!

I have been working on fixes. The attached file contains a preview of version 0.6. It's not the final 0.6 but it does contain a fix for both the issues you encountered. And so far my testing shows no new issues.

 

If you would not mind downloading and seeing if it works for you I would be grateful. I do not actually have LE installed. Which is why I did not catch the JSON bug. This should fix the JSON issue but I can not verify without help.

Slaverun Enforcer - Standsalone v0_6 Preview.7z 199.97 kB · 5 downloads

Ohhh, no sweat, i'll test it in bit, thanks for the clarification and update! From what i could get working, its a lovely enhancement to an already great mod!

Link to comment

@kaxat Brilliant, works fantastically, im still unsure as to how to apply outfit themes to freed women, the only box im given to tick is "strip free woman". Do i have to download my own outfit mods or are some provided with this mod? And if i have to download them, anyone got any recommendations?

Thanks so much for the update, really appreciate it!

Link to comment

Bugs:

The Bannered Mare appears to be outside the enforcer zone of control.

 

----

 

Scripting:

Fixed the papyrus errors so the thing compiles, and made it work OK with the MCM toggles.

Compiled version attached :)

 

Have also added some reasonably appropriate text for when things are disabled. Did consider adding a reference to the MCM, but that just gets irritating after a few minutes.

I suppose that you could probably use a once only bool flag to add a MCM note, but meh.

 


Event OnViolateSlaverLaw(Form sender)

Actor NPCActor= sender as Actor

int goodChance = 33
int neutralChance = 66

if NPCActor.IsInFaction(SLV_SlaverFaction)
    ; A slaver can never trigger a 'good' event, and has a higher chance of bad
    goodChance = -1    
    neutralChance = 50
elseif NPCActor.GetLeveledActorBase().getSex() == 0
    if NPCActor.IsInFaction(SLV_SlaveFaction)
        ; A slave has a small chance of ignoring / spiriting out and a bad end, but will likely be neutral
        goodChance = 10
        neutralChance = 90
    else
        ; Assume that a free female is more sympathetic to our plight
        goodChance = 50
        neutralChance = 100
    endif
    
endif

; Roll to determine the type of action
int actionTypeRoll = Utility.RandomInt(0,100)

if actionTypeRoll <= goodChance
    int goodRoll = Utility.RandomInt(0,3)
    if goodRoll == 0
        Debug.notification(NPCActor.GetLeveledActorBase().getName() + " is looking at me suspiciously. I'd better strip off quickly before he calls the guards!")
        return
    elseif goodRoll == 1
        if MCMMenu.NudityRescue
            SLV_PunishmentRunning.setValue(1)
            rescueer.ForceRefTo(NPCActor)
        else
            Debug.notification(NPCActor.GetLeveledActorBase().getName() + " is sympathetic with your plight, but can't be bothered to rescue you.....")
        endif
        return
    else
        ; ignores completely
        return
    endif
elseif actionTypeRoll <= neutralChance
    Debug.notification(NPCActor.GetLeveledActorBase().getName() + " rips your clothes off for violating the slaverun laws.")
    myScripts.SLV_SexlabStripNPC(Game.GetPlayer())
    myScripts.SLV_StripBothHands(Game.GetPlayer())
    int neutralRoll = Utility.RandomInt(0,3)
    if neutralRoll == 0
        if MCMMenu.NudityPunishment
            SLV_PunishmentRunning.setValue(1)
            punisher.ForceRefTo(NPCActor)
        else
            Debug.notification(NPCActor.GetLeveledActorBase().getName() + " doesn't seem inclined to do anything else. A lucky escape.....")
        endif
        return
    elseif neutralRoll == 1
        if MCMMenu.NudityCrime
            CrimeFactionWhiterun.ModCrimeGold(MCMMenu.NudityCrimeAmount,true)
        endif
        
        if MCMMenu.NudityPunishment
            SLV_PunishmentRunning.setValue(1)
            punisher.ForceRefTo(NPCActor)
        else
            Debug.notification(NPCActor.GetLeveledActorBase().getName() + " doesn't seem inclined to do anything else. A lucky escape.....")
        endif
        return
    else
        if MCMMenu.NudityCrime
            CrimeFactionWhiterun.ModCrimeGold(MCMMenu.NudityCrimeAmount,true)
        endif
        
        if MCMMenu.NudityRescue
            SLV_PunishmentRunning.setValue(1)
            rescueer.ForceRefTo(NPCActor)
        else
            Debug.notification(NPCActor.GetLeveledActorBase().getName() + " is sympathetic with your plight, but not enough to fail to report it to the guards.....")
        endif
        return
    endif
else
    Debug.notification(NPCActor.GetLeveledActorBase().getName() + " rips your clothes off for violating the slaverun laws.")
    myScripts.SLV_SexlabStripNPC(Game.GetPlayer())
    myScripts.SLV_StripBothHands(Game.GetPlayer())
    int badRoll = Utility.RandomInt(0,3)
    if badRoll == 0
        if MCMMenu.NudityCrime
            CrimeFactionWhiterun.ModCrimeGold(MCMMenu.NudityCrimeAmount,true)
        endif
        
        if MCMMenu.NudityPunishment
            SLV_PunishmentRunning.setValue(1)
            punisher.ForceRefTo(NPCActor)
        else
            Debug.notification(NPCActor.GetLeveledActorBase().getName() + " doesn't seem inclined to do anything else. A lucky escape.....")
        endif
        return
    elseif badRoll == 1
        if MCMMenu.NudityCrime
            CrimeFactionWhiterun.ModCrimeGold(MCMMenu.NudityCrimeAmount,true)
        endif
        
        if MCMMenu.NudityEnslavement
            if SLV_Main.getstage() >= 1000 && !Game.getplayer().IsInfaction(SLV_SlaveFaction) && !Game.getplayer().IsInfaction(SLV_SlaverFaction)
                SLV_PunishmentRunning.setValue(1)
                enslaver.ForceRefTo(NPCActor)
            else
                Debug.notification("Some slavers knock you down.")
                sendModEvent("SlaverunReloaded_ForceEnslavement")
            endif
        else
            Debug.notification(NPCActor.GetLeveledActorBase().getName() + " doesn't seem inclined to do anything else. A lucky escape.....")
        endif
        return
    else
        if MCMMenu.NudityEnslavement
            if SLV_Main.getstage() >= 1000 && !Game.getplayer().IsInfaction(SLV_SlaveFaction) && !Game.getplayer().IsInfaction(SLV_SlaverFaction)
                SLV_PunishmentRunning.setValue(1)
                enslaver.ForceRefTo(NPCActor)
            else
                Debug.notification("Some slavers knock you down.")
                sendModEvent("SlaverunReloaded_ForceEnslavement")
            endif
        else
            Debug.notification(NPCActor.GetLeveledActorBase().getName() + " doesn't seem inclined to do anything. You've been lucky, this time....")
        endif
    endif
endif

EndEvent

 

You're more than welcome to this if it suits, no strings attached.

EventHandler.zip

Link to comment

@gollum007 Bugs: 

The Bannered Mare appears to be outside the enforcer zone of control.

 

No, it's normal. It has been said in the thread earlier that the Bannered Mare stays free at first, but apparently there is a quest later in slaverun to enslave it. :) 

 

I also thought at first that it was a forgotten area.... looks like nobody bothers to play the whole quest haha

Edited by Cleave
Link to comment

That's interesting, but shows one of the rather inconsitant parts of Slaverun itself.

 

The slavers have picked up several cities in other holds, but not the tavern in Whiterun :/

Probably makes sense if playing the quest inline, but not using the enforcer standalone as per this mod intends.

 

MCM toggle?

Link to comment

No moar MCM options! If you lot had your way there would be an MCM option for closing your eyes when you sneeze. And separate sliders for how far to close each eye.

I am kidding. I love the fans of these mods. And the MCM options helped make Reloaded awesome. But I am thoughtfully adding MCM options. They delay new features and introduce  room for bugs. I keep adding them anyways. But only when they seem unlikely to introduce branches that require lots of separate testing.

Once the Enforcer has a standalone location checker the Bannered Mare will be included regardless of story progression.

Speaking of MCM options thank you for adding support for those to your script @gollum007. That was the main thing that made me hesitant to include it in the previous version. People love options. I hope to include your new work in the next update. Seems as you already gave permission. I want to confirm. Do you mind if I include the script and give credit?

@kinkeag We are still waiting on people skilled with xEdit to add more outfit themes. At present the only outfit themes for Free woman do not give them interesting new clothes. Just prevent stripping of old ones. Sad face. But hopefully with a few bug fixes we can attract more people will to help build those themes in xEdit. I can do it but I do not have as many clothing mods as some. I think others are in a better position to help add themes. Then I can keep working on new behaviors. If we do not get any community themes though I will probably build a couple.

Link to comment
10 minutes ago, kaxat said:

 We are still waiting on people skilled with xEdit to add more outfit themes. At present the only outfit themes for Free woman do not give them interesting new clothes. Just prevent stripping of old ones. Sad face. But hopefully with a few bug fixes we can attract more people will to help build those themes in xEdit. I can do it but I do not have as many clothing mods as some. I think others are in a better position to help add themes. Then I can keep working on new behaviors. If we do not get any community themes though I will probably build a couple.

 

Yeah, yeah, I get the hint but I almost didn't notice since you were being so subtle.

 

I've just started the process of updating and remaking my SSE modlist so I'll probably be available to support outfit themes in a few weeks. Before that I have a large backlog of stuff to do, and I was putting it all off until I had the mental energy to commit to doing it all.

 

Note that if anyone else tries it then they should know that adding many DDs to many NPCs has a script overload problem so I don't recommend it. It's why I switched to non-DDs. But if you want to do that then you should start by using my DD patches from LE as a base because they contain a large set of predefined DD outfits. There are also outfit sets for the DDequip mod by Inte, I think maybe Nymra has uploaded a DDequip outfit list on his Naked Defeat modpage. Non-DD by contrast has far fewer outfits available because a lot of DDs just don't really work without scripts (petsuits and suchlike) because they require custom animations. It gets a lot more interesting if you use mostly non-DDs as a base and then add a few DDs but I haven't got around to doing that yet. Also DAR can potentially handle the custom animations so maybe it can be done without scripts.

Link to comment

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...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more information, see our Privacy Policy & Terms of Use