Jump to content

Recommended Posts

Posted

Also, I found a bug where attempting to set a global variable to an INT forces it to type BOOL, normalizing any INT references to values 0 and 1. So if you attempted to "inc $global.varname" twice, it would start with value 0, go to value 1, and then stay at value 1 (instead of moving on to value 2).

 

I'm also doing some housekeeping so the release won't be as "soon" as previous releases once I have found a bug. Kits and kaboodles are being dealt with. Entire kits. Whole kaboodles. More... um... "eventuasoon" (new word).

Posted (edited)
42 minutes ago, hextun said:

 

Is this what you were looking for?

 

Doesn't seem to be. I tried using the "nio_updatemodelweight $system.player" but nothing happened. While using the "nio_clearbodymorph" command incorrectly i saw in the log that i had missed parameters which i never got while trying to mess with Obody NG functions.

 

Basically OBody NG has an issue (or rather racemenu does) where when you have a preset applied and your weight gets updated (either from manually editing from racemenu or changes applied from mod events) the changes dont show up on the character until either a new preset is applied or the current preset is reapplied.

 

I was looking for a way to somehow force the preset reapplication, not sure what trigger i would use at this point but just getting it to work would be step 1.

My Idea was to look at how the PetCollarAdd script worked since it points to a mod seemingly outside of SLtriggers library to use the petcollar mod event and somehow apply it to Obody NG's Functions to reapply a chosen preset.

 

I like the idea of Obody but not being able to update the PCs weight is a bit of a deal breaker.


These are the 2 blocks of code i was looking at in Obody NG scripts, First block mentions what mod authors should be using which is what i thought i would try to use.
 

Event OnActorGenerated(Actor akActor, string presetName)
    ; Dear mod authors,
    ; This method of preset assignment storage has been obsoleted by OBody's native code.
    ; Please use `OBodyNative.GetPresetAssignedToActor` and `OBodyNative.AssignPresetToActor`
    ; instead of manipulating this key directly.
    ; Thank you.

    if LegacyStorageUtilUsageEnabled
        string actorPresetKey = "obody_" + akActor.GetFormID() + "_preset"
        StorageUtil.SetStringValue(none, actorPresetKey, presetName)
    endif
EndEvent


And this block is what the first block seems to be pointing to which is what i was attempting to use.

; Unlike `ApplyPresetByName` this applies a preset only if a preset with the name
; is found instead of falling back to a random preset.
; Additionally, this can be used to remove the preset assignment from an actor
; by supplying an empty string.
; `a_doNotApplyMorphs` takes precedence over `a_forceImmediateApplicationOfMorphs`.
; This returns whether the preset assignment succeeded or not.
Bool Function AssignPresetToActor(Actor a_actor, String a_presetName, Bool a_forceImmediateApplicationOfMorphs = True, Bool a_doNotApplyMorphs = False) Global Native


From these i tried many variations of it but as an example of a script i tried to make was:
 

util_sendevent "AssignPresetToActor" "Actor" $system.player "string" "(Name of preset i wanted)" "Bool" True

From this the only thing i can see that is an issue in the logs is that the actor part is definitely failing as i see "util_sendevent: unexpected type provided: 'Actor'"

Hope that clears up what i'm looking for. After rereading my last post i think i may have just been burned out from messing with this for too long right before posting.

Now the chance im looking in the wrong place is quite high, ive done a fair share of tinkering with stuff but this is a bit above what im used to.

Edited by thorax339
Posted
On 12/12/2025 at 5:59 PM, hextun said:

Well that's something I'll need to investigate. :/

 

@eicosa I recently found myself in a situation where my SLTR was out of sync, having somehow missed a script execution such that running a new script would instead run the previous requested script, and running the next would run this one, etc. So I used the reset feature and everything worked. :(

 

Sorry, could not reproduce the issue.

Posted
On 12/3/2025 at 12:28 AM, Mushano said:

 


I did a thing and read the wiki. This will let you integrate SkyrimNetDirectNarration into sl_triggers. I think I did all the steps correctly. It seems to work fine.

There are two four additional functions, 
SkyrimNetRegisterDialogue
SkyrimNetRegisterDialogueToListener

But they don't actually make a target say those lines audibly in game. It just makes SkyrimNet record it as if they said whatever you put in it.

Also added in:
SkyrimNetUpdateActorDynamicBio

SkyrimNetGenerateDiaryEntry

 

An example to use it would be:

SkyrimNetDirectNarration $"The player just told this NPC that they hate their guts." $system.player $system.partner

raydonn-sl_triggerskyrimnet.7z 1.97 kB · 3 downloads

 

This, by the way, would be *PERFECT* for you to post here: 

 

 

I created that specifically for sharing these sorts of mini projects given how hard it can be to find a random script or .7z file posted in a comment in the support thread.

Posted
1 hour ago, thorax339 said:

 

Doesn't seem to be. I tried using the "nio_updatemodelweight $system.player" but nothing happened. While using the "nio_clearbodymorph" command incorrectly i saw in the log that i had missed parameters which i never got while trying to mess with Obody NG functions.

 

Basically OBody NG has an issue (or rather racemenu does) where when you have a preset applied and your weight gets updated (either from manually editing from racemenu or changes applied from mod events) the changes dont show up on the character until either a new preset is applied or the current preset is reapplied.

 

I was looking for a way to somehow force the preset reapplication, not sure what trigger i would use at this point but just getting it to work would be step 1.

My Idea was to look at how the PetCollarAdd script worked since it points to a mod seemingly outside of SLtriggers library to use the petcollar mod event and somehow apply it to Obody NG's Functions to reapply a chosen preset.

 

I like the idea of Obody but not being able to update the PCs weight is a bit of a deal breaker.


These are the 2 blocks of code i was looking at in Obody NG scripts, First block mentions what mod authors should be using which is what i thought i would try to use.
 

Event OnActorGenerated(Actor akActor, string presetName)
    ; Dear mod authors,
    ; This method of preset assignment storage has been obsoleted by OBody's native code.
    ; Please use `OBodyNative.GetPresetAssignedToActor` and `OBodyNative.AssignPresetToActor`
    ; instead of manipulating this key directly.
    ; Thank you.

    if LegacyStorageUtilUsageEnabled
        string actorPresetKey = "obody_" + akActor.GetFormID() + "_preset"
        StorageUtil.SetStringValue(none, actorPresetKey, presetName)
    endif
EndEvent


And this block is what the first block seems to be pointing to which is what i was attempting to use.

; Unlike `ApplyPresetByName` this applies a preset only if a preset with the name
; is found instead of falling back to a random preset.
; Additionally, this can be used to remove the preset assignment from an actor
; by supplying an empty string.
; `a_doNotApplyMorphs` takes precedence over `a_forceImmediateApplicationOfMorphs`.
; This returns whether the preset assignment succeeded or not.
Bool Function AssignPresetToActor(Actor a_actor, String a_presetName, Bool a_forceImmediateApplicationOfMorphs = True, Bool a_doNotApplyMorphs = False) Global Native


From these i tried many variations of it but as an example of a script i tried to make was:
 

util_sendevent "AssignPresetToActor" "Actor" $system.player "string" "(Name of preset i wanted)" "Bool" True

From this the only thing i can see that is an issue in the logs is that the actor part is definitely failing as i see "util_sendevent: unexpected type provided: 'Actor'"

Hope that clears up what i'm looking for. After rereading my last post i think i may have just been burned out from messing with this for too long right before posting.

Now the chance im looking in the wrong place is quite high, ive done a fair share of tinkering with stuff but this is a bit above what im used to.

 

Okay, so, I have an internal implementation of a handful of OBody functions, including assignpresettoactor and technically it works. Fun fact, neither of my preferred test modlists use anything newer than OBodyNG 4.7.3 and wouldn't you know AssignPresetToActor was added *after* 4.7.3 (i.e. not preset in 4.7.3 or earlier). So that's fun.

 

I say it technically worked because when I took a Masterstroke list, added OBody NG latest to override the existing OBody, and then tested my script to assign presets, the presets were assigned. However at one point when playing around with things I changed body weight (via the SLTScript actor_body function) and followed this up with an OBody preset application and got a big neck seam suddenly. Maybe that's because of the slop job I did to get an updated version of OBody into place (and no idea if the update would cause the problem in the modlist) or if there is something about the API or even body weight changes that cause it.

 

I'll push it out on next release which would give you:

 

obody_assignpresetbyfile
obody_assignpresetbyname
obody_markforreprocess
obody_resetactorobodymorphs
obody_getpresetassignedtoactor
obody_assignpresettoactor

 

Note: I tried obody_markforreprocess and while it gave the neck seam, it did not seem to reweight the nodes and reprocess the preset. obody_resetactorobodymorphs seemed to have no effect.

 

The upshot being that without a weight change, these functions appear to do what one would expect. When I change the player's weight and use one of these functions, I get neck seams and something seems to not quite (dare I say) mesh well. I also tried changing the player's weight (again, using actor_body) and using the OBody preset picker and the neck seam was still present.

 

My suspicion is that Racemenu/NIO (where you would normally use the weight slider) is doing something to make the seam not appear that is not being done when calling actor_body.

 

Anyhow, just figured I would give a little update on this.

Posted
27 minutes ago, hextun said:

 

Okay, so, I have an internal implementation of a handful of OBody functions, including assignpresettoactor and technically it works. Fun fact, neither of my preferred test modlists use anything newer than OBodyNG 4.7.3 and wouldn't you know AssignPresetToActor was added *after* 4.7.3 (i.e. not preset in 4.7.3 or earlier). So that's fun.

 

I say it technically worked because when I took a Masterstroke list, added OBody NG latest to override the existing OBody, and then tested my script to assign presets, the presets were assigned. However at one point when playing around with things I changed body weight (via the SLTScript actor_body function) and followed this up with an OBody preset application and got a big neck seam suddenly. Maybe that's because of the slop job I did to get an updated version of OBody into place (and no idea if the update would cause the problem in the modlist) or if there is something about the API or even body weight changes that cause it.

 

I'll push it out on next release which would give you:

 

obody_assignpresetbyfile
obody_assignpresetbyname
obody_markforreprocess
obody_resetactorobodymorphs
obody_getpresetassignedtoactor
obody_assignpresettoactor

 

Note: I tried obody_markforreprocess and while it gave the neck seam, it did not seem to reweight the nodes and reprocess the preset. obody_resetactorobodymorphs seemed to have no effect.

 

The upshot being that without a weight change, these functions appear to do what one would expect. When I change the player's weight and use one of these functions, I get neck seams and something seems to not quite (dare I say) mesh well. I also tried changing the player's weight (again, using actor_body) and using the OBody preset picker and the neck seam was still present.

 

My suspicion is that Racemenu/NIO (where you would normally use the weight slider) is doing something to make the seam not appear that is not being done when calling actor_body.

 

Anyhow, just figured I would give a little update on this.

Thanks for the update.
I did see a function for reapplying morphs that could possibly work instead of the others in case you may have missed it.
Its in the OBodyNative script

Function ReapplyActorOBodyMorphs(Actor a_actor) Global Native



For future note, when looking at the Petcollar scripts i saw that in petcollar it has a create modevent in the script for the petcollarmanipulation modevent. Does a mod require such a thing in order to interract with the mod? for OBody NG i noticed thers only 1 in the OBodyNGscripts file for an old deprecated event. Im quite interested in the possibilities in this mod to trigger events in other mods but i guess either im blind or i couldn't really understand the current limitations based on the information provided.

 

Ill check out the functions in the next release when its available and see how it goes.

Posted
44 minutes ago, thorax339 said:

Thanks for the update.
I did see a function for reapplying morphs that could possibly work instead of the others in case you may have missed it.
Its in the OBodyNative script

Function ReapplyActorOBodyMorphs(Actor a_actor) Global Native



For future note, when looking at the Petcollar scripts i saw that in petcollar it has a create modevent in the script for the petcollarmanipulation modevent. Does a mod require such a thing in order to interract with the mod? for OBody NG i noticed thers only 1 in the OBodyNGscripts file for an old deprecated event. Im quite interested in the possibilities in this mod to trigger events in other mods but i guess either im blind or i couldn't really understand the current limitations based on the information provided.

 

Ill check out the functions in the next release when its available and see how it goes.

 

Yay! Splanation time!

 

Events (event handlers, really) vs functions.

 

Both are blocks of code with a set of required parameters.

 

Functions (using the "Function" keyword) are typically called from other code that is already compiled to call that function. So FuncA.psc calls a function in FuncB.psc but both must have been compiled before the game is run. (In context of SLTR) unless SLTScript has had a command library added with bindings to FuncB's function, you can't call the FuncB function without writing and compiling Papyrus code to call it.

 

Event handlers are functions that use the "Event" keyword and are not typically called directly from other compiled code. Instead normally the script engine is told to fire an event with a given name and with a set of parameters. Event handlers, registered to event names, would be checked and, if a match found, called with the provided arguments. Note that while the call need not be precompiled, the registration of an event (by name) to its event handler does need to have already been compiled, otherwise the engine will not know where to send the request. In this case, FuncB.psc (with the event handler) must be compiled, and registered for the desired event. Once done, *any* code that requests that event be run, and specifies appropriate event name and parameters, will cause the engine to call the FuncB event handler. This includes SLTScript code using e.g. actor_sendmodevent.

 

Event handlers are called in response to an event being fired. There are a set of standard mod events as well as custom events added by the SKSE framework as well as by mods. Furthermore, events, by default, require adhering to a standard signature. You can create and call custom mod events, with different function signatures, using SKSE custom mod events.

 

So what are you seeing in the PetCollar game code? The PetCollar mod has event handlers for applying and removing both the keyless and standard pet collars onto an actor. As a result, unlike other items of clothing where I might use the standard item_equip/item_unequip/item_add/item_remove calls, I send custom mod events that PetCollar listens for and it handles the item adding/removing/equipping/unequipping.

 

What's nice about using mod events? Well, as you see with the PetCollar game code, if what you want to do can be achieved via mod events, you can already create calls for any custom mod event you want. There would be cases where a mod event requires a parameter that you cannot access via SLTScript (like a special Quest object you can only obtain via an API call, which isn't bound in SLTScript), but for any case involving non-Form values or values you know you can hard code, the sky is already the limit.

 

What's the downside to using mod events? Overhead i.e. time and CPU cycles. Say you want to pass three parameters, three integers, an X, Y, Z coordinate, to a function. For a normal function call, your actual Papyrus code would just be something like:

  otherObj.theFunction(x, y, z);

and when the code is reached, the execution would push the three parameters onto the stack and move execution to "theFunction". In just a few lines of byte code, you would already be running "theFunction".

What happens if you do it as an event?

At best, it's a standard event and you have the target object, at which point you call:

  otherObj.SendModEvent("theFunction", x, y, z);

except, the "standard" event handler doesn't take three integers. So you would need to use the SKSE custom event approach, which looks like this:

  int handle = ModEvent.Create("theFunction")

  ModEvent.PushInt(handle, x)

  ModEvent.PushInt(handle, y)

  ModEvent.PushInt(handle, z)

  ModEvent.Send(handle)

and in both cases, this tells the engine to, when it next has a chance, look for the listeners for this event and run the associated handler with the given parameters. Which means, first off, there's the delay involved with marshalling that info into the engine, then the delay until the next execution frame that the engine decides to actually handle your event request, at which point it has to check for any/all registered handlers, of which there may be more than one, and then execute the event handler with the provided parameters. At which point, "theFunction" code has started running. This normally does happen pretty quickly but you can imagine that with enough listeners to the same event, and enough code trying to run, and since the engine does *not* run anything in parallel, there can be a bit of delay between calling an event and its handler running in the worst case.

 

Addendum for completeness/correctness:

That said... with the aid of a .dll you *can* dynamically call Papyrus functions, but there are lots of caveats and gotchas and is a non-trivial. The core functionality of expandable command libraries uses this feature, but uses .ini files and signature pre-scanning to do so for example.

Posted
On 12/27/2025 at 10:12 PM, Fraying9981 said:

 

you're back! 🤩

I really hope you add it!

 

Thanks :) Haven't been *gone* so much as have been run over by life, spit out, had life change its mind, scrape me back up, chew some more, find a particularly nasty spot, and then spat me out again.

 

As an aside, if anyone's looking for a developer and are okay that they've worked on this *waves hand around a bit*, let me know. ;)

 

I'm in the process of rehosting the SLTR stuff (bad time to realize Submissive Lola: The Resubmissioning already uses this acronym) to a new dedicated github location. It will coincide with any additional updates.

Posted
On 12/27/2025 at 9:45 PM, hextun said:

 

No, though that sounds like a good idea to add assuming the SL API supports it. 

 

Found and implemented for SL and SLP+ for next release.

 

Will be called sl_endthread and accepts one parameter, the actor whose thread you wish to end.

Posted
1 hour ago, hextun said:

 

Found and implemented for SL and SLP+ for next release.

 

Will be called sl_endthread and accepts one parameter, the actor whose thread you wish to end.

 

awesome! can't wait.

 

2 hours ago, hextun said:

Thanks :) Haven't been *gone* so much as have been run over by life, spit out, had life change its mind, scrape me back up, chew some more, find a particularly nasty spot, and then spat me out again.

 

I hope you are fine!

Posted

Your explanation really helped me understand, Thanks.

 

After reading it i decided to try out a more basic script and made a couple for the Being a Cow mod to have the auto loot / consume features to be a bit more to what i would like. They are working quite well and ive posted them up in the SL Triggers club. Would love any feedback on possible improvements in speed as i noticed the autoloot would take a couple seconds before looting which is putting me off adding more features without making multiple variation scripts so people can choose what features they would want.

Posted (edited)

every ten times the autosaver saves the game, there are eight times my PC is in an animation.

sometimes sexlab stopcombat does not work

now i use this mod to replace them

 

thx!

Edited by Orthopter
Posted

After playing around with some script making just had a couple ideas for events / triggers and some of their filters.

 

New Triggers:

Daily: Triggers each game day at a specified time, Probably just uses the same filters as Top of the Hour.

When Opening Players Inventory: similar to opening containers but works on the players inventory (could even just be added as a filter to the opening containers trigger? not sure how that works tbh)

Waking up / after waiting: Triggers after sleeping / waiting for a set period of time. possibly useful for well rested like effects.

 

Filters:

Location: A location exclusion option to triggers that have the location filter. for example being able to choose any location EXCEPT "Safe" (this would be useful for one of my scripts as some player homes do not set ownership of all containers inside to the player.

Containers: An option to ignore player owned containers. (this one i suggest just because checking ownership during the script seems to take quite long in comparison to the rest of the script.

 

Other things:

Slow functions, i noticed that some functions seemed to be the slowest part of my scripts. Mostly seems like just trying to get outside information to use in the script takes quite a bit more time than other functions which in order to speed up scripts unfortunately requires losing flavour. for example in my auto loot blended lactacid from BAC script i can add flavour depending on how many bottles were found but that requires taking a count of items first and slows down the script quite a bit.

 

Slow functions:

set $owner resultfrom objectreference_dogetter $request.core.activatedContainer GetActorOwner
set $count resultfrom objectreference_dofunction $request.core.activatedContainer GetItemCount "(ITEM)"
set $count resultfrom objectreference_dofunction $system.player GetItemCount "(ITEM)"

 

Using the "move" function of item_remove doesn't play the item pickup sound like item_add would do when the item is given to the player. Not sure if this could be considered a bug or normal behaviour.

example: adding $system.player at the end would add the removed items from the container to the players inventory instead of just deleting them

 

item_remove $request.core.activatedContainer "(ITEM)" $count false $system.player

 

Posted
On 12/29/2025 at 9:54 PM, hextun said:

Sorry, could not reproduce the issue.

 

Actually, neither could I! 
At some point SLT started behaving normally again and I just don't know why 🤣

Posted (edited)
15 hours ago, Fraying9981 said:

Is there a function to get tng schlong size?

 

Not bound via sltscript, no.

 

But TNG does offer TNG_PapyrusUtil, which has some global native calls:

Int Function CanModifyActor(Actor akActor) Global Native
String[] Function GetActorAddons(Actor akActor) Global Native
Armor Function GetActorAddon(Actor akActor) Global Native ;Returns None if there is no addon or another error happens
Int Function SetActorAddon(Actor akActor, Int aiChoice) Global Native
Int Function GetActorSize(Actor akActor) Global Native ;Returns -1 if there is an issue
Int Function SetActorSize(Actor akActor, Int aiSizeCat) Global Native
String[] Function ActorItemsInfo(Actor akActor) Global Native
Bool Function SwapRevealing(Actor akActor, Int aiChoice) Global Native

String[] Function GetSlot52Mods() Global Native
;Behavior value: -1 -> Get behavior, 0 -> Set to Normal, 1 -> Set to Revealing
Bool Function Slot52ModBehavior(String asModName, Int aiBehavior) Global Native 

Int Function UpdateLogLvl(Int aiLogLevel) Global Native
String Function ShowLogLocation() Global Native
String Function GetErrDscr(Int aiErrCode) Global Native

String Function WhyProblem(Actor akActor, Int aiIssueID) Global Native

(included here because I like copying and pasting; it reminds me of kindergarten)

 

And I gotta say, "WhyProblem" is probably one of my favorite new function names.

 

Anyhow, I'll look into adding bindings for some of these (I don't think you need ShowLogLocation, do you?). :)

 

ETA: Note that when dealing with sizes, it appears that the API for TNG deals with the size category, not the actual size. So if your first size category is, say 0.95, you wouldn't expect to get back 0.95 when calling GetActorSize, you would get back 0 and have to know that that is 0.95, or your smallest category, or whatever. Similarly, when setting size, you wouldn't set it to 0.95, you would set it to 0 which translates to the actual 0.95 size. So remember to think in terms of "size category" rather than explicitly "size".

Edited by hextun
Posted
6 hours ago, hextun said:

 

Not bound via sltscript, no.

 

But TNG does offer TNG_PapyrusUtil, which has some global native calls:

Int Function CanModifyActor(Actor akActor) Global Native
String[] Function GetActorAddons(Actor akActor) Global Native
Armor Function GetActorAddon(Actor akActor) Global Native ;Returns None if there is no addon or another error happens
Int Function SetActorAddon(Actor akActor, Int aiChoice) Global Native
Int Function GetActorSize(Actor akActor) Global Native ;Returns -1 if there is an issue
Int Function SetActorSize(Actor akActor, Int aiSizeCat) Global Native
String[] Function ActorItemsInfo(Actor akActor) Global Native
Bool Function SwapRevealing(Actor akActor, Int aiChoice) Global Native

String[] Function GetSlot52Mods() Global Native
;Behavior value: -1 -> Get behavior, 0 -> Set to Normal, 1 -> Set to Revealing
Bool Function Slot52ModBehavior(String asModName, Int aiBehavior) Global Native 

Int Function UpdateLogLvl(Int aiLogLevel) Global Native
String Function ShowLogLocation() Global Native
String Function GetErrDscr(Int aiErrCode) Global Native

String Function WhyProblem(Actor akActor, Int aiIssueID) Global Native

(included here because I like copying and pasting; it reminds me of kindergarten)

 

And I gotta say, "WhyProblem" is probably one of my favorite new function names.

 

Anyhow, I'll look into adding bindings for some of these (I don't think you need ShowLogLocation, do you?). :)

 

ETA: Note that when dealing with sizes, it appears that the API for TNG deals with the size category, not the actual size. So if your first size category is, say 0.95, you wouldn't expect to get back 0.95 when calling GetActorSize, you would get back 0 and have to know that that is 0.95, or your smallest category, or whatever. Similarly, when setting size, you wouldn't set it to 0.95, you would set it to 0 which translates to the actual 0.95 size. So remember to think in terms of "size category" rather than explicitly "size".

 

Thanks! I was looking for base tng size => to impact enjoyment of partner based on actor's overall/average tng size

Would be a great addition!

 

Also hoping you can add the end scene call function

And the "switch to this specific tag or animation name" function! :D

 

 

Posted
5 hours ago, Fraying9981 said:

 

Thanks! I was looking for base tng size => to impact enjoyment of partner based on actor's overall/average tng size

Would be a great addition!

 

Also hoping you can add the end scene call function

And the "switch to this specific tag or animation name" function! :D

 

 

 

"sl_endthread <actor>" is, in fact, part of this commit :)

 

Posted

Hello, hello and welcome to the show. Today we have a new episode, v0.973. We've got a bugfix (global int values being treated like boolean true/false? naughty! and how tf did I miss that one for so long?) or two, plus some OBody and TNG bindings, as well as your new SexLab binding, sl_endthread <actor>, which I will let you guess what that does.

 

Also, and of note, I have migrated everything to a new github repo at https://github.com/sltriggersredux/sltriggersredux including the wiki at https://github.com/sltriggersredux/sltriggersredux/wiki. I have updated the links on the main page but haven't gone back through and updated comments, so, there's that. Also the original repo is marked private now.

 

Those of you obtaining the downloads here, no problem, you can keep doing so. If you were hitting up the wiki, or downloading from github, you'll need to switch to the new location.

 

Here's the happy little changelog. :)

 

Savegame compatible
Reminder: Note that logging output is all sent to <My Documents>\My Games\Skyrim Special Edition\SKSE\sl-triggers.log 
    (or whichever folder you have your SKSE logs directed to)
bugfix: global variables set to INT values were being set to type BOOL instead, normalizing values to 0 and 1
bugfix: fixed comment block typo of 'stlname' to 'sltname' for docgen; functions existed but were not displayed in the documentation e.g. sl_adjustenjoyment
enhancement: added OBody bindings
    obody_assignpresetbyfile
    obody_assignpresetbyname
    obody_assignpresettoactor
    obody_getpresetassignedtoactor
    obody_markforreprocess
    obody_reapplyactorobodymorphs
    obody_resetactorobodymorphs
enhancement: sl_endthread <target actor> ; ends any running SexLab thread the target actor may be participating in
enhancement: added TNG bindings
    tng_can_modify_actor
    tng_get_actor_size
    tng_set_actor_size

 

Posted

Is there a way to set up a trigger for animation scene tag? I think it'd be fun to add a trigger to add one handed experience to handjob scenes (or two handed for doubles), speech for blowjob, or other applicable skills.

There's mods that kinda do that, but they require a mod that changes the leveling to only provide exp on quest completion instead of the default of just using the skill.

Posted
1 hour ago, CG2424 said:

Is there a way to set up a trigger for animation scene tag? I think it'd be fun to add a trigger to add one handed experience to handjob scenes (or two handed for doubles), speech for blowjob, or other applicable skills.

There's mods that kinda do that, but they require a mod that changes the leveling to only provide exp on quest completion instead of the default of just using the skill.

 

Not yet. It's becoming increasingly clear there is a swathe of SexLab functionality that needs to be bound (heh) including gathering more info about currently running threads and interaction with them. I just haven't felt inspired yet to tackle it. 

Posted
17 minutes ago, hextun said:

 

Not yet. It's becoming increasingly clear there is a swathe of SexLab functionality that needs to be bound (heh) including gathering more info about currently running threads and interaction with them. I just haven't felt inspired yet to tackle it. 

 

Would be great to force specific tags or animations! 

Posted

Hi,


I've been trying to use your mod in addition to the sperm alchemy one (your version of the files uploaded on that topic) but it isn't working.
I've tried a different set of parameters, and your mod seem to work, as i can have the light spell casted on SL scene end
does it have to do with a newer version of your mod that doesn't match these old files ? I've also made sure i had all the requirements i could've been missing (like Console Util Extended)

thank you :)

Posted
2 hours ago, sin-obu said:

Hi,


I've been trying to use your mod in addition to the sperm alchemy one (your version of the files uploaded on that topic) but it isn't working.
I've tried a different set of parameters, and your mod seem to work, as i can have the light spell casted on SL scene end
does it have to do with a newer version of your mod that doesn't match these old files ? I've also made sure i had all the requirements i could've been missing (like Console Util Extended)

thank you :)

 

If you're referring to this post: 

 as far as I know, those scripts should still work with current versions of SLTriggers Redux. At least to the extent that syntax hasn't changed and things like that. If things outside SLTR changed (e.g. FormIDs in the target mods) the script might fail even though it's being processed correctly by SLTR. The .7z includes the SpermAlchemyIngredients.esp that was in the original version by Heinzelman for sl_triggers, so I can't speak to that.

 

When you say "it isn't working", what are you doing, what are you expecting, and what is happening instead?

 

Also, check sl-triggers.log to see if any error messages show up. You can enable some of the debug flags in the MCM to check on whether scripts are being run and such.

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