Jump to content

Recommended Posts

Posted

Thanks for the update.

you updated a couple hours after i had just finished and uploaded some scripts that used a .esl for global variables due to the global variable bug you mentioned a few posts back so that was fun to change xD

 

After updating my scripts i went to try the new obody functions and just using "obody_reapplyactorobodymorphs $system.player" works perfectly for what i was after and removed the only downside i had with that mod. Thank you very much.

Posted
10 hours ago, hextun said:

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.

 

Thanks for this i forgot to check there, so I went and checked the logs and I don't understand everthing there, but every so often it says

 

SLT: [Receive Sperm.sltscript][lineNum:1] unable to resolve ITEM with FormId ("spermalchemyingredients.esp:16779265")

 and

[2026-01-16 10:44:56.826] [log] [warning] [util.cpp:535] GetForm: data(spermalchemyingredients.esp:16779265) appears valid, but dataHandler->LookupForm() returned nullptr
[2026-01-16 10:44:56.826] [log] [error] [util.cpp:600] Form not found (spermalchemyingredients.esp:16779265)
[2026-01-16 10:44:56.859] [log] [error] [sl_triggers.cpp:747] SLTR:(Receive Sperm.sltscript)[1]: Form not found (spermalchemyingredients.esp:16779265)

so i'm guessing either the ID is read wrong by the game, or that mod is inaccessible by the game (i've installed it into the Data folder)

 

btw i know this is isn't your mod not working, so don't worry if you can't or don't wanna help me i fully understand

Posted
1 hour ago, sin-obu said:

 

Thanks for this i forgot to check there, so I went and checked the logs and I don't understand everthing there, but every so often it says

 

SLT: [Receive Sperm.sltscript][lineNum:1] unable to resolve ITEM with FormId ("spermalchemyingredients.esp:16779265")

 and

[2026-01-16 10:44:56.826] [log] [warning] [util.cpp:535] GetForm: data(spermalchemyingredients.esp:16779265) appears valid, but dataHandler->LookupForm() returned nullptr
[2026-01-16 10:44:56.826] [log] [error] [util.cpp:600] Form not found (spermalchemyingredients.esp:16779265)
[2026-01-16 10:44:56.859] [log] [error] [sl_triggers.cpp:747] SLTR:(Receive Sperm.sltscript)[1]: Form not found (spermalchemyingredients.esp:16779265)

so i'm guessing either the ID is read wrong by the game, or that mod is inaccessible by the game (i've installed it into the Data folder)

 

btw i know this is isn't your mod not working, so don't worry if you can't or don't wanna help me i fully understand

 

Not so sure it's not the scripts actually. The .esp is not light flagged, so the Form ID range is different. 16779265 is a decimal; converted to hex it becomes 0x100801 which is SUSPICIOUSLY like a failed hex->int conversion for standard Form IDs (which tend to start with 0x800 for new .esps, don't know why).

 

Sure enough, if you crack open SpermAlchemyIngredients.esp in xedit, you see that e.g. Fresh Sperm has form ID 0xXX61F801. With SLTR we can specify hex values prefixed with 0x in our FormIDs. The attached .7z is updated with FormID values in the range contained in the .esp (which frankly should just be light flagged at this point, with only 4 objects defined in it).

 

Try the updated slt scripts and let me know if it fixes your problem.

 

SpermAlchemyIngredients101-SLTR.7z

Posted
2 hours ago, hextun said:

Try the updated slt scripts and let me know if it fixes your problem.

 

SpermAlchemyIngredients101-SLTR.7z 978 B · 0 downloads

 

Tried with your updated files with no success, went into the log to check and it's the same error with an updated ID now
pasting the whole error this time in case there's smth in there you could need
 

[2026-01-16 14:52:57.596] [log] [info] [sl_triggers.cpp:751] <DecrementRequestCounter requestId(25): reached (0); sukey prefix (SLTR:request:25); clearing all
[2026-01-16 14:52:57.696] [log] [info] [sl_triggers.cpp:751] <DecrementRequestCounter requestId(29): reached (0); sukey prefix (SLTR:request:29); clearing all
[2026-01-16 14:52:57.730] [log] [warning] [util.cpp:535] GetForm: data(spermalchemyingredients.esp:0x61F801) appears valid, but dataHandler->LookupForm() returned nullptr
[2026-01-16 14:52:57.730] [log] [error] [util.cpp:600] Form not found (spermalchemyingredients.esp:0x61F801)
[2026-01-16 14:52:57.746] [log] [error] [sl_triggers.cpp:747] SLTR:(Receive Sperm.sltscript)[1]: Form not found (spermalchemyingredients.esp:0x61F801)
[2026-01-16 14:52:57.780] [log] [error] [sl_triggers.cpp:747] 

!!!!!!!!!!!!!!!!!

				SLT: [Receive Sperm.sltscript][lineNum:1] unable to resolve ITEM with FormId ("spermalchemyingredients.esp:0x61F801")

 

Posted
12 minutes ago, sin-obu said:

 

Tried with your updated files with no success, went into the log to check and it's the same error with an updated ID now
pasting the whole error this time in case there's smth in there you could need
 

[2026-01-16 14:52:57.596] [log] [info] [sl_triggers.cpp:751] <DecrementRequestCounter requestId(25): reached (0); sukey prefix (SLTR:request:25); clearing all
[2026-01-16 14:52:57.696] [log] [info] [sl_triggers.cpp:751] <DecrementRequestCounter requestId(29): reached (0); sukey prefix (SLTR:request:29); clearing all
[2026-01-16 14:52:57.730] [log] [warning] [util.cpp:535] GetForm: data(spermalchemyingredients.esp:0x61F801) appears valid, but dataHandler->LookupForm() returned nullptr
[2026-01-16 14:52:57.730] [log] [error] [util.cpp:600] Form not found (spermalchemyingredients.esp:0x61F801)
[2026-01-16 14:52:57.746] [log] [error] [sl_triggers.cpp:747] SLTR:(Receive Sperm.sltscript)[1]: Form not found (spermalchemyingredients.esp:0x61F801)
[2026-01-16 14:52:57.780] [log] [error] [sl_triggers.cpp:747] 

!!!!!!!!!!!!!!!!!

				SLT: [Receive Sperm.sltscript][lineNum:1] unable to resolve ITEM with FormId ("spermalchemyingredients.esp:0x61F801")

 

 

Well, the next step is to verify the FormID of of the fresh sperm, given everyone's growing interest in the subject. :)

 

In game, or using xedit, can you find the FormID of Fresh Sperm in your game?

Posted (edited)
18 hours ago, Fraying9981 said:

 

Would be great to force specific tags or animations! 

 

Okay, so... let's talk SexLab animation logic. First question, are you currently targeting SexLab 1.66 or SexLab P+?

 

I've been looking at the thread/animation/stage logic for SexLab 1.66 and wanted to verify some things with your understanding, but if you are on SexLab P+, the animation logic is significantly changed if I understand correctly.

 

ETA: Also, you can currently use sl_startsex and specify tags; what am I missing there? 

Edited by hextun
Posted
19 minutes ago, hextun said:

 

Well, the next step is to verify the FormID of of the fresh sperm, given everyone's growing interest in the subject. :)

 

In game, or using xedit, can you find the FormID of Fresh Sperm in your game?

 

On xEdit (first time using it lol) it says

FreshSperm "Fresh Sperm" [INGR:01000801]

i'm guessing the actual ID is the bracket part

Posted
21 minutes ago, hextun said:

 

Okay, so... let's talk SexLab animation logic. First question, are you currently targeting SexLab 1.66 or SexLab P+?

 

I've been looking at the thread/animation/stage logic for SexLab 1.66 and wanted to verify some things with your understanding, but if you are on SexLab P+, the animation logic is significantly changed if I understand correctly.

 

ETA: Also, you can currently use sl_startsex and specify tags; what am I missing there? 

 

Thx! Im on slp+

So yes there is startsex but according to this thread (older posts) it doesnt change the scene once its started.

 

Im just looking for a solution to immediately override tag or animation on start.

For example:

Trigger logic:

Location: inn

Non consensual

Event: start

 

Slt code:

Override to tag groping (because we want groping in inns)

Posted

I looked a little more at SexLab P+ and I think it's the same relationships, with different (presumably more representative) naming of members and more opaque access. As a result, I think discussion can work along SexLab terminology without losing too much in an SLP+ translation.

 

When a SexLab scene starts, it creates an sslThreadController, an instance of an object that can track and control a single SexLab scene/thread. So a solo masturbation session, gentle lovemaking with Lydia, or a 4 way with Balgruuf and his court, each will have a single sslThreadController. If Scrappie's or some other mod is making NPCs have sex without you, each of those get their own sslThreadController.

 

Each sslThreadController appears to be launched with a set of up to 128 animations. Think stuff like "Billlllyyyyyyy's Backward Dog Flex 1" and so on. If you crack open the associated files for those you will see how each of those animations has definitions for:

  - tags associated with that animation sequence/scene (i.e. dog flex might be oral, but you the opening animation might not actually have oral; so the animation gets the "oral" tag even if that specific moment may not have oral going on)

  - who gets cum and when

  - how many actors

  - what animation they have during each stage

and so on. So "BillLlLyyYyyYz Backward Dog Flex 1" might have the "oral" tag as well as the "anal" and, say, "MMF" tag.

 

When you use the core StartSex function of SexLab, it actually requires the list of animations/scenes you want to be able to pick from. It will do validation against the actors (like, if you choose a bunch of MMF scenes but only provide two actors, it won't be able to do anything) and then pick one of the scenes and start playing it.

 

The sl_startsex binding I created, confusingly, has you provide an optional set of tags. I should rename that to something like sl_quickstart_with_tags. 

 

That said, that's the same logic as the actual SexLab QuickStart; it's a wrapper around "search for animations/scenes by tag, start a thread with them" functionality. 

 

If I actually expose the more granular logic and let you specify your own custom set of animations, ensuring their validity then, of course, would fall on you. But this would presumably be the same approach that other mods use when they want to start up specific animations/scenes with specific actors.

 

Why Did I Explain How SexLab Threads Handle Available Animations?

I explained that because it factors into how to respond to requests for "changing the animation in a scene" as well as "run a specific animation or tag".

 

The "specific tag" aspect is basically already available; when you use the current sl_startsex, you're doing a tag search, finding suitable animations/scenes for the provided list of actors, and then starting play. If you need something different, let me know.

 

The "specific animation" aspect will require changing sl_startsex to better represent the actual SexLab StartSex() function, letting you specify the specific animations/scenes you want. There are validation functions for checking to make sure the actors and scenes/animations you want to use are compatible, so it will require exposing those as well. Or finding some suitable middle ground anyway.

 

But once the thread has started, the notion of "changing the animation" isn't as flexible as you might expect. sslThreadController does expose a SetAnimation(int aid = -1 ) function, but what that does is change the currently running animation/scene (e.g. "BILLLLLY'S VAPID DOG BUMP 1") to the animation/scene at the provided index, chosen from the list given to the sslThreadController at startup. So if you want to change to a scene/animation that wasn't in the initial list, even if the count and gender of the actors match, you can't, not without just ending the current thread and starting a new one.

 

Say you have two actors. You started the thread having requested the "anal" tag, with a male and female as actors. The thread starts and is given a set of animations/scenes that match for the given actors and tags. It's currently playing "MF Anal 1" and you want to change to "MF Oral 2". Unless "MF Oral 2" is also tagged with "anal", it will not have been in the list of available scenes/animations for the thread and you won't be able to just switch to it.

 

But hextun, I Don't Want To Have To Script Out A Loop Over The Animation List, Check Each Name For My Target, Remember The Index, And Call SetAnimation()

I agree. I mean, you would have to either do something like that or know that in your flow, you have guaranteed that your desired animation is available.

 

As a result, if an "sl_set_animation <actor> <name>" function still seems like something folks would want, and assuming you don't instead want:

  sl_thread_get_animations -> string[]

  sl_thread_set_animation <actor> <int index>

where you are going to have a few more lines of sltscript plus those two calls in order to actually change to something valid, then I could have it do the loop and call SetAnimation(int aid) for you.

 

Then, assuming my simple sl_set_animation wrapper returns something like an int, the id used or something, you could check the result; if it seems like the animation couldn't be set, you could then perhaps choose to sl_endthread and try to start a new scene.

 

But then, of course, I need to also expose functions to query parameters of an existing thread, like the actors, positions, perhaps tags and so on. 

 

 

Posted
18 minutes ago, Fraying9981 said:

 

Thx! Im on slp+

So yes there is startsex but according to this thread (older posts) it doesnt change the scene once its started.

 

Im just looking for a solution to immediately override tag or animation on start.

For example:

Trigger logic:

Location: inn

Non consensual

Event: start

 

Slt code:

Override to tag groping (because we want groping in inns)

 

Okay, so yeah, in SLP+ they have purposefully made the animation interface more opaque. I'll have a look again but I think the same logic still holds. 

 

In your example, you say you want to enforce "groping" tags for scenes started in an Inn. And you are using SLTR to catch any scene started by any mod, some of which won't know to use the tag "groping". 

 

So, sticking with how the framework appears to work, it's a set problem. The thread starts with a subset of animation, not necessarily tagged "groping", so depending on what was used to fetch available animations, none of them might have the "groping" tag or all of them might. So when you want to switch to a "groping" tagged animation, you are limited to what is available in the pool of animations the thread was started with.

 

Even if you looped through the animations and found one that was tagged for "groping" and happened to be in the initialized animation list, and switched to it, if for some reason the mod chooses to change the animation on you, you might once again end up on a non-"groping" animation set.

 

In your particular case, assuming I exposed the functionality to get the tags for the current animation (i.e. the tags used to determine the available animations), the best I could imagine would be something like OnStart->if tags lack "groping"->sl_endthread->sl_startsex "groping" or something along those lines. 

 

Essentially, you're wanting to enforce a global set of tag restrictions during a period of time, and the thread design doesn't appear (to me at least) to support that.

 

Does that make sense?

Posted
7 minutes ago, hextun said:

But once the thread has started, the notion of "changing the animation" isn't as flexible as you might expect.

 

Thank you for the detailed explanation. I understand.

Wondering if you could have a look at how slp+ handles animation changes?

You know, you can "play random scene" or select from a list while sl is already on. Perhaps it handles the thread logic itself. So perhaps slt could call whatever slp+ function that does this directly?

Posted
1 minute ago, hextun said:

 

Okay, so yeah, in SLP+ they have purposefully made the animation interface more opaque. I'll have a look again but I think the same logic still holds. 

 

In your example, you say you want to enforce "groping" tags for scenes started in an Inn. And you are using SLTR to catch any scene started by any mod, some of which won't know to use the tag "groping". 

 

So, sticking with how the framework appears to work, it's a set problem. The thread starts with a subset of animation, not necessarily tagged "groping", so depending on what was used to fetch available animations, none of them might have the "groping" tag or all of them might. So when you want to switch to a "groping" tagged animation, you are limited to what is available in the pool of animations the thread was started with.

 

Even if you looped through the animations and found one that was tagged for "groping" and happened to be in the initialized animation list, and switched to it, if for some reason the mod chooses to change the animation on you, you might once again end up on a non-"groping" animation set.

 

In your particular case, assuming I exposed the functionality to get the tags for the current animation (i.e. the tags used to determine the available animations), the best I could imagine would be something like OnStart->if tags lack "groping"->sl_endthread->sl_startsex "groping" or something along those lines. 

 

Essentially, you're wanting to enforce a global set of tag restrictions during a period of time, and the thread design doesn't appear (to me at least) to support that.

 

Does that make sense?

 

Yes, ultimately i would want most non consensual to start with groping then use a timer then switch to another tag like vaginal.

 

Reason is i love Scrappies matchmaker but its a bit raw: there are no transitions to the scene unlike practical defeat, slhh, battle fuck. But perhaps smm can override tags, i will look into it when i get my computer

Posted
1 hour ago, sin-obu said:

 

On xEdit (first time using it lol) it says

FreshSperm "Fresh Sperm" [INGR:01000801]

i'm guessing the actual ID is the bracket part

 

Okay, try this version. It uses the editorIDs instead of FormID based lookups.

 

SpermAlchemyIngredients101-SLTR.7z

Posted
1 hour ago, Fraying9981 said:

 

Thank you for the detailed explanation. I understand.

Wondering if you could have a look at how slp+ handles animation changes?

You know, you can "play random scene" or select from a list while sl is already on. Perhaps it handles the thread logic itself. So perhaps slt could call whatever slp+ function that does this directly?

 

I believe it's doing the same thing basically. There is some rearchitecting they've done, moving away from carrying around actual sslAnimationBase objects and instead just carrying around string ids, and as a result reducing access to functions that you previously had access to (because you had actual objects not handles). But the same concept of a thread being pre-configured with the animations/scenes (that's why I kept using that slash terminology; SexLab/SexLabP+) that the thread will be aware of appears to be in play in both the old and new versions.

 

Put another way, next time you are in an SLP+ scene, say with an open chastity belt, which should allow anal but prevent vaginal, open the scene selection and there shouldn't be any vaginal tagged scenes, even though the actor set aligns. The set of available animations was restricted when the mod looked at you, saw you had a device that prevented vaginal, and restricted those animations. 

Posted
1 hour ago, Fraying9981 said:

 

Yes, ultimately i would want most non consensual to start with groping then use a timer then switch to another tag like vaginal.

 

Reason is i love Scrappies matchmaker but its a bit raw: there are no transitions to the scene unlike practical defeat, slhh, battle fuck. But perhaps smm can override tags, i will look into it when i get my computer

 

I gotta be honest, I don't think SLTR is going to get you over this particular finish line.

 

So first off, this exists: https://slp-community.github.io/SexLab-Wiki/slp/api-reference/, which is nice. Looking it over, looking at code, checking the belly navel, I don't see a good way to tell SexLab to:

- for a specified actor, always require a given tag for any scene involving them, regardless of requesting mod

- for a given running thread, regardless of the animations it was initialized with, specify a (potentially and likely) completely new set of animations and start over

 

I'm either not seeing it and it's there, or else it's something you would need to dig into the guts to accomplish which leads nowhere good very quickly. :(

 

You can specify tags and suppressed tags (i.e. "oral, no anal" kind of thing) for a given request, but no way to register something so as to intercept any call.

 

There *is* the concept of blocking hooks, using SexLabThreadHook, and perhaps one could hook OnAnimationStarting and try to... do something. But that starts stepping into "this shiny new mod lets you intercept sexlab scene starts and alter them via these nifty rules" and beyond the scope of "look what I added to SLTriggers Redux", you know? Not to mention I'm still not sure it would actually *work*; like does it run too late to let you refetch an animation list (though I suppose maybe you might be able to cache that at mod startup).

Posted (edited)
1 hour ago, hextun said:

 

I gotta be honest, I don't think SLTR is going to get you over this particular finish line.

 

So first off, this exists: https://slp-community.github.io/SexLab-Wiki/slp/api-reference/, which is nice. Looking it over, looking at code, checking the belly navel, I don't see a good way to tell SexLab to:

- for a specified actor, always require a given tag for any scene involving them, regardless of requesting mod

- for a given running thread, regardless of the animations it was initialized with, specify a (potentially and likely) completely new set of animations and start over

 

I'm either not seeing it and it's there, or else it's something you would need to dig into the guts to accomplish which leads nowhere good very quickly. :(

 

You can specify tags and suppressed tags (i.e. "oral, no anal" kind of thing) for a given request, but no way to register something so as to intercept any call.

 

There *is* the concept of blocking hooks, using SexLabThreadHook, and perhaps one could hook OnAnimationStarting and try to... do something. But that starts stepping into "this shiny new mod lets you intercept sexlab scene starts and alter them via these nifty rules" and beyond the scope of "look what I added to SLTriggers Redux", you know? Not to mention I'm still not sure it would actually *work*; like does it run too late to let you refetch an animation list (though I suppose maybe you might be able to cache that at mod startup).

 

Thanks! So how about this then:

- Smm triggers the scene -> use a tag in smm mcm to filter animations e.g. groping (i need to check but i think its possible)

- slt trigger to keep the animation running for lets say 60s. Slt trigger stores actor names/ids

- then slt trigger ends the scene (with your latest update)

- then slt trigger starts a new scene with stored actors immediately

 

So from there my new questions are:

1. How easy is it to add tag "abc" to sl animations? Since slp+ doesnt have slal. Is it as simple as editing json files?

2. Is it doable to end and start a new scene immediately with a certain tag, sith sl trigger? And is it possible to flag victim aggressor when doing so?

3. [Not directly related to what we discussed] is it possible to have a loop inside a slt that periodically checks a condition while the animation is running? E.g. chance to escape, check every 5 sec

 

Edited by Fraying9981
Posted
2 hours ago, Fraying9981 said:

 

Thanks! So how about this then:

- Smm triggers the scene -> use a tag in smm mcm to filter animations e.g. groping (i need to check but i think its possible)

- slt trigger to keep the animation running for lets say 60s. Slt trigger stores actor names/ids

- then slt trigger ends the scene (with your latest update)

- then slt trigger starts a new scene with stored actors immediately

 

So from there my new questions are:

1. How easy is it to add tag "abc" to sl animations? Since slp+ doesnt have slal. Is it as simple as editing json files?

2. Is it doable to end and start a new scene immediately with a certain tag, sith sl trigger? And is it possible to flag victim aggressor when doing so?

3. [Not directly related to what we discussed] is it possible to have a loop inside a slt that periodically checks a condition while the animation is running? E.g. chance to escape, check every 5 sec

 

 

1. The SLP+ team is way ahead of you. https://slp-community.github.io/SexLab-Wiki/slp/tagging-reference/ plus https://slp-community.github.io/SexLab-Wiki/slsb/introduction/ I take to mean they have tooling to make it easier to manage and if not, the file format/structure appears to be well documented. 

2. Easy enough. The "Chain Sex" setup I ... did I drop that? I did not... okay, I gave someone on a Discord channel a "chain sex scenes" script that would be triggered on sex start, and would wait until scene end. If you did not press the "stop the chain" key (configurable), then on scene end it takes the participants of the scene and performs a start sex call. It's very rudimentary however, so would be more useful if/when I bind more ways to get more details about currently running threads.

3. Yes. trigger: sex start, script: put a reasonably timed util_wait call inside a loop with a check for sl_isin to make sure you are still in a scene. During each loop, perform your conditional checks and take any necessary actions, up to and including ending the running thread via sl_endthread.

 

Here is the ChainSex.sltscript I mentioned. Again, with more language features it could be made more immersive.

 

; remove this block if you want to chain masturbation scenes too
if $system.partner1 == none
    msg_console "Chain Sex Handler - enabled: false - disabled for solo scenes (i.e. partner1 is none)"
endif
; end block for chain masturbation
set $key_stop 10    ; '9' - https://gist.github.com/arithex/3e953d1eb096afe58ce05ba6846493e4
; event: SexLab - Start
; player relationship: player
; limitations:
;   currently does not capture the actor list as it exists at scene end
;      current solution captures the actor list at sequence start as it is unavailable in the "end" event
;      given the interpetive nature of sltscript, it's too risky trying to obtain it closer to when needed
;   currently no way to determine if player is in submissive/victim role
;      current solution assumes no submissive actors
;   currently no way to capture current tag
;      current solution uses empty string, no tag filter
;   currently no way to capture current furniture use flag
;      current solution assumes false/0
Form[] $actor_list
set $actor_list[0] = $system.player
if $system.partner1 != none
    listadd $actor_list $system.partner1
endif
if $system.partner2 != none
    listadd $actor_list $system.partner2
endif
if $system.partner3 != none
    listadd $actor_list $system.partner3
endif
if $system.partner4 != none
    listadd $actor_list $system.partner4
endif
msg_console "Chain Sex Handler - enabled - press '9' to stop the chain"
set $key resultfrom sl_waitforkbd $key_stop
if $key == $key_stop
    msg_console "Chain Sex Handler - disabled - the chain has been stopped"
    return
else
    msg_console "Chain Sex Handler - enabled - reached end of scene without pressing ']' - the chain continues"
    ; start scene, use the created actor list, none of them are submissive, no tags, do not allow bed use
    sl_startsex $actor_list none "" false
endif

 

Posted

Upcoming next release: new "Adult General" extension; a catch-all for triggers related to mods that aren't SexLab or OStim but are still adult themed.

 

And the first mod getting a trigger in this category is ... *drumroll* .. Autonomous Sex Framework (ASF) which is part of the SES2 Slaverun NPC Enforcer 2 stack.

 

ASF is a matchmaking mod that relies on keyword distribution to efficiently set up couplings. The MCM is pretty straightforward, with the relevant part, for this discussion, surrounding the prompt feature.

 

When ASF determines you, the player, are a target for a match, you'll by default be presented with a prompt with options 'Accept', 'Refuse', 'Cancel'. Selecting 'Accept' triggers the scene, all other options do nothing. The MCM lets you add two more options: 'Acquiesce' and 'Decline', more "nuanced" options. 'Acquiesce' also leads to sex and 'Decline' does not.

 

The important part here is that when the player makes a selection, an event is fired containing the text chosen (i.e. 'Accept', 'Acquiesce', 'Decline', 'Refuse', or 'Cancel'), a bool of whether the player consented (i.e. 'Accept' or 'Acquiesce'), a bool of whether it is a potential orgy (part of the popup says whether the requestor is suggesting more participants), as well as a Form (Actor) pointing to the requestor.

 

So now you have the option of running an SLTScript in response. Filter options include some you know (e.g. 'Is Clothed', 'Is Armed', 'Is Weapon Drawn', 'Location', 'Daytime') and some specific to ASF (e.g. response text, player consent). With the SES2 stack by default you currently just get prompted, with no repercussion for refusal. You could add to bounty, trigger a pet collar or SLS action, or whatever.

 

If/When I find something from a non Adult themed mod to add I will introduce a similar "General" extension or something along those lines.

Posted (edited)

Also, I wanted to cross-post here: if you use SexLab Disparity, I just posted what I think is an interesting update. 

 

 

It adds 5 GLOB records, scaling 0-100, that can be used to apply SLD buffs/debuffs. These are GLOB records included now in the SLD .esp; so for example, you could create SLTScripts to modify these variables and get SLD buffs/debuffs that would live alongside others (meaning caps are applied etc). You could even set the GLOB directly from the console if you choose to.

 

If you are considering using SLTR as part of a framework for buff/debuff or other types of monitoring, check out this SLD update and see if it fits.

 

Update: At @Hex Bolt's suggestion, I added the same functionality but targeting some StorageUtil global float keys. A more compatible approach.

Edited by hextun
Posted

 

I posted it to the "club"; I posted a 14.5 release for SexLab Disparity. I added 5 GLOB records and 5 StorageUtil keys it will monitor (10 total new values) and give out buffs/debuffs based on. 

 

This lets any script that updates those values be used to manipulate 10 sets of buffs/debuffs if they chose to.

 

And since SLTscript has "global_getvalue", "global_setvalue", "storageutil set", and "storageutil get", your SLTScripts, along with SLD, open up a whole new set of options for you to easily manipulate a variety of player states just with a few lines of sltscript code. And how's that for ways to capitalize sltScript?

 

 

Posted

Ollo Hex, if I may bother you for some new trigger events:

 

1. I'd love to have a keymapping event for the SexLab side of things as well, so I can use $system.partner1-4 and also run the script itself on other actors in the player's SexLab scene according to my conditions.

 

2. And a Core event reacting to player Health/Magicka/Stamina(/other?) hitting a specified %, whether it should react on gain or loss (to prevent stuff meant for hitting low health triggering again once health is regained and passes the threshold) and a cooldown before it can trigger again.

Posted
20 hours ago, MannySauce said:

Ollo Hex, if I may bother you for some new trigger events:

 

1. I'd love to have a keymapping event for the SexLab side of things as well, so I can use $system.partner1-4 and also run the script itself on other actors in the player's SexLab scene according to my conditions.

 

2. And a Core event reacting to player Health/Magicka/Stamina(/other?) hitting a specified %, whether it should react on gain or loss (to prevent stuff meant for hitting low health triggering again once health is regained and passes the threshold) and a cooldown before it can trigger again.

 

1. So, like, a "keymapping" that is only live during SexLab events? And instead of the keymapping always using the player as self, you would want a drop down at the filter level to determine who in the player's scene the script would target (i.e. who is self)?

 

2. I'm not opposed to this: as you say, such a trigger would need the following filters at minimum: target value or percentage, rising or falling, cooldown in seconds. And don't think I didn't notice you slide "other" in there. :) Carry weight, armor rating.. maybe warmth, hunger, and thirst values. GLOB records? StorageUtil keys from other mods? That said, if you're just wanting to create scripts to adjust *these* actor values in response to changes in *those* actor values, consider SexLab Disparity. In spite of its reputation for making modlists harder (because obviously you can create penalties for wearing a variety of bondage items), it can also just as easily be used to add buffs to make life easier, to encourage bondage activity, and is generally pretty effective. I probably ought to consider taking on active development for it at this point, but yeah, depending on your intent it may be a better fit for this specific case.

Posted
52 minutes ago, hextun said:

1. So, like, a "keymapping" that is only live during SexLab events? And instead of the keymapping always using the player as self, you would want a drop down at the filter level to determine who in the player's scene the script would target (i.e. who is self)?

 

Yeah, sounds about right, so all the SexLab trigger filters like Relationship and Position can be used to determine who self is, grab stuff like $system.partner and use sl_* functions now that it is SexLab scene aware.

 

52 minutes ago, hextun said:

2. I'm not opposed to this: as you say, such a trigger would need the following filters at minimum: target value or percentage, rising or falling, cooldown in seconds. And don't think I didn't notice you slide "other" in there. :) Carry weight, armor rating.. maybe warmth, hunger, and thirst values. GLOB records? StorageUtil keys from other mods? That said, if you're just wanting to create scripts to adjust *these* actor values in response to changes in *those* actor values, consider SexLab Disparity. In spite of its reputation for making modlists harder (because obviously you can create penalties for wearing a variety of bondage items), it can also just as easily be used to add buffs to make life easier, to encourage bondage activity, and is generally pretty effective. I probably ought to consider taking on active development for it at this point, but yeah, depending on your intent it may be a better fit for this specific case.

 

Hmmm I did mean to give that mod a try. Dug up these requests from my notes and must've forgotten about it in the process. I'll give it a go.👍

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