Jump to content

Recommended Posts

Posted

Hello, I’m a player from a non-English-speaking country.
I’ve really enjoyed using the original SL triggers, so I’ve been very interested in the Redux version as well.
However, since so many things have changed—and even after reading the Github wiki there are still a lot of unclear parts—I decided to write this post.

I’m currently looking for a trigger that does the following:

 

1. Targets the partner (or Player)
2. Equips a specific piece of equipment when the scene starts
3. Removes that equipment when the scene ends

 

If anyone has written a similar sltyscript file, I would sincerely appreciate it if you could kindly share it.

Posted
3 hours ago, rokypukes said:

Hello, I’m a player from a non-English-speaking country.
I’ve really enjoyed using the original SL triggers, so I’ve been very interested in the Redux version as well.
However, since so many things have changed—and even after reading the Github wiki there are still a lot of unclear parts—I decided to write this post.

I’m currently looking for a trigger that does the following:

 

1. Targets the partner (or Player)
2. Equips a specific piece of equipment when the scene starts
3. Removes that equipment when the scene ends

 

If anyone has written a similar sltyscript file, I would sincerely appreciate it if you could kindly share it.

 

Created a template for SLTScript to equip item to player, wait for SL end, and unequip item from player

Posted (edited)
5 hours ago, hextun said:

 

Thank you very much for providing the template.
I tried adjusting various parts based on what you shared, but since my framework is OStimSA rather than SexLab, it unfortunately doesn’t function as intended.

For testing purposes, I replaced the item in your shared template with the Amulet of Mara from Skyrim.esm, so that anyone could easily test or modify it.

Please note that the code I’m sharing here does not actually work in the OStimSA environment.
The purpose of posting it is to show “this is what I tried, but it didn’t work”—in hopes that it might help others avoid the same mistake, or that someone might find a way to fix or improve it.

If you think this post could cause confusion or mislead others, please don’t hesitate to let me know.
I’ll gladly take it down right away.

 

; change this to something other than $system.player (e.g. $system.partner) to target a different actor for some reason
; To designate the player = set $target_actor $system.player
; To designate the partner = set $target_actor $system.partner
set $target_actor $system.partner

; If the framework used is Sexlab = sl_isin $target_actor
; If the framework used is Ostim SA = ostim_isin $target_actor
ostim_isin $target_actor
if $$ == false
  return
endif

; change these two values appropriately to the formid and armor slot of the item to add/equip/unequip/remove
; I am trying to create an example where the Amulet of Mara is equipped during a Sexlab or Ostim scene and removed when the scene ends
; The Base ID of Amulet of Mara is 000C891B, so convert the hexadecimal C891B to decimal and use 821531
; Even without converting hexadecimal to decimal, it seems you can use Skyrim.esm:0xc891b
; The item slot for Amulet is generally as follows, Slot = 35 (Amulet)
set $item_to_equip "Skyrim.esm:0xc891b"
set $item_slot 35

; add and equip
item_addex $target_actor $item_to_equip 1 true
item_equipex $target_actor $item_to_equip $item_slot false false

; wait til done
util_waitforend $target_actor

; unequip and remove
item_unequipex $target_actor $item_to_equip $item_slot
item_remove $target_actor $item_to_equip 1 true

 

 

(Not Work) Equip Mara Amulet Scene.zip

Edited by rokypukes
Posted (edited)
7 hours ago, rokypukes said:

 

Thank you very much for providing the template.
I tried adjusting various parts based on what you shared, but since my framework is OStimSA rather than SexLab, it unfortunately doesn’t function as intended.

For testing purposes, I replaced the item in your shared template with the Amulet of Mara from Skyrim.esm, so that anyone could easily test or modify it.

Please note that the code I’m sharing here does not actually work in the OStimSA environment.
The purpose of posting it is to show “this is what I tried, but it didn’t work”—in hopes that it might help others avoid the same mistake, or that someone might find a way to fix or improve it.

If you think this post could cause confusion or mislead others, please don’t hesitate to let me know.
I’ll gladly take it down right away.

 

; change this to something other than $system.player (e.g. $system.partner) to target a different actor for some reason
; To designate the player = set $target_actor $system.player
; To designate the partner = set $target_actor $system.partner
set $target_actor $system.partner

; If the framework used is Sexlab = sl_isin $target_actor
; If the framework used is Ostim SA = ostim_isin $target_actor
ostim_isin $target_actor
if $$ == false
  return
endif

; change these two values appropriately to the formid and armor slot of the item to add/equip/unequip/remove
; I am trying to create an example where the Amulet of Mara is equipped during a Sexlab or Ostim scene and removed when the scene ends
; The Base ID of Amulet of Mara is 000C891B, so convert the hexadecimal C891B to decimal and use 821531
; Even without converting hexadecimal to decimal, it seems you can use Skyrim.esm:0xc891b
; The item slot for Amulet is generally as follows, Slot = 35 (Amulet)
set $item_to_equip "Skyrim.esm:0xc891b"
set $item_slot 35

; add and equip
item_addex $target_actor $item_to_equip 1 true
item_equipex $target_actor $item_to_equip $item_slot false false

; wait til done
util_waitforend $target_actor

; unequip and remove
item_unequipex $target_actor $item_to_equip $item_slot
item_remove $target_actor $item_to_equip 1 true

 

 

(Not Work) Equip Mara Amulet Scene.zip 774 B · 0 downloads

 

There are some ostim_* variants for SL functions, including ostim_isin and ostim_waitforend, so I whipped up quick OStim template for equipping an item, waiting for end, and unequipping the item.

Edited by hextun
Posted

Hey, I'm trying to find a trigger that would make it so I can press a hotkey and the player or target does not receive pleasure, for example if my character is giving head to someone it doesn't make sense that she's getting off and is about to orgasm. Does anyone have any ideas on how I could accomplish this?


Thanks.

Posted
On 10/28/2025 at 5:53 AM, jakenbake said:

Hey, I'm trying to find a trigger that would make it so I can press a hotkey and the player or target does not receive pleasure, for example if my character is giving head to someone it doesn't make sense that she's getting off and is about to orgasm. Does anyone have any ideas on how I could accomplish this?


Thanks.

 

Option 1: The Direct Answer

To directly answer your question, if you wish to have a hotkey that will disable the player's ability to have a natural SL orgasm (some mods or effects can force one), just create a hotkey trigger mapped to whichever key you want and target the following script:

 

sl_disableorgasm $system.player true

 

That's it. During a scene, when you would then press that hotkey, orgasms would be disabled.

 

----

But wait, there's more. :) 

 

Option 2: Tag-based filter

If, on the other hand, you know simply that you want to disable orgasms specifically for oral, you could create a trigger for "SexLab - Start" using filters:

- Tag: Oral

- Player Relationship: Player

with the same script as above. Then when an oral scene starts, the script will run and orgasms would be disabled without requiring a keystroke. I feel this is less immersion breaking, but of course you may disagree.

Posted

I've been beating my head on this for over an hour and I've searched this forum, but I still can't get it to work the way I want. I need a bit of help.

 

I must have this configured wrong. Is there something I can change to do what I want? Screenshot from the UI is in the spoiler to save page space.

 

Goal:

  • Player is in scene
  • Male player partner orgasms
  • Animation is Oral
  • Scripts run
    • Player heals script
    • Player eats sweets script
    • Player eats alcohol script
    • Player learns Mage skill script

 

Spoiler

image.png.7fb2ad17d0d1dff675bef4c90c532353.png

 

Posted

Good afternoon.
I really don't like the situation when GG was raped 10 times, but she stood up as if nothing had happened.
You can come up with a script so that after the rape scenes, she would lie or sit for a while, with a loss of strength.

Or just an animation that would start, or the indicators (life, endurance) would drop.

I don't understand anything about it at all, if someone knows how, give me a sample.

Thank you.

Posted
On 10/30/2025 at 11:55 AM, NicholasJMoore said:

I've been beating my head on this for over an hour and I've searched this forum, but I still can't get it to work the way I want. I need a bit of help.

 

I must have this configured wrong. Is there something I can change to do what I want? Screenshot from the UI is in the spoiler to save page space.

 

Goal:

  • Player is in scene
  • Male player partner orgasms
  • Animation is Oral
  • Scripts run
    • Player heals script
    • Player eats sweets script
    • Player eats alcohol script
    • Player learns Mage skill script

 

  Hide contents

image.png.7fb2ad17d0d1dff675bef4c90c532353.png

 

 

Link to the trigger/event/filter docs: https://github.com/lynnpye/sl_triggers/wiki/Events,-Triggers,-and-Filters

(if anyone looks them over and has suggestions for improvement, please let me know)

 

Correct configuration

I believe the configuration you want is:

Trigger: SexLab, Orgasm, Separate

Player Relationship: Partner Player

Sex: Male

SL Tag: Oral

 

 

This says,

"When a separate orgasm happens..."

"... for a partner of the player..."

"... where the actor is male..."

"... and the scene is tagged Oral."

 

vs. Current Configuration

The configuration in the screenshot says,

"When a separate orgasm happens..."

"... for a partner of the player..."

"... where the actor's partner is male..."   <-- key difference: would only work if the player (who is the actor's partner in this case due to the player relationship setting) is male, which is atypical for these mods

"... and the scene is tagged Oral."

 

 

Posted
22 hours ago, tatkaa4 said:

Good afternoon.
I really don't like the situation when GG was raped 10 times, but she stood up as if nothing had happened.
You can come up with a script so that after the rape scenes, she would lie or sit for a while, with a loss of strength.

Or just an animation that would start, or the indicators (life, endurance) would drop.

I don't understand anything about it at all, if someone knows how, give me a sample.

Thank you.

 

It sounds like you're looking for something that:

 

- on SL end

- for the player only

- either knock down the player or trigger a lie down or sit animation

- reduce "strength" (i.e. maybe modifying the health/stamina/magicka actor values to reduce them)

- with presumably a timer to remove the strength reduction after a bit

 

Is that correct?

Posted (edited)
5 hours ago, hextun said:

 

Link to the trigger/event/filter docs: https://github.com/lynnpye/sl_triggers/wiki/Events,-Triggers,-and-Filters

(if anyone looks them over and has suggestions for improvement, please let me know)

 

Correct configuration

I believe the configuration you want is:

Trigger: SexLab, Orgasm, Separate

Player Relationship: Partner Player

Sex: Male

SL Tag: Oral

 

 

This says,

"When a separate orgasm happens..."

"... for a partner of the player..."

"... where the actor is male..."

"... and the scene is tagged Oral."

 

vs. Current Configuration

The configuration in the screenshot says,

"When a separate orgasm happens..."

"... for a partner of the player..."

"... where the actor's partner is male..."   <-- key difference: would only work if the player (who is the actor's partner in this case due to the player relationship setting) is male, which is atypical for these mods

"... and the scene is tagged Oral."

 

 

 

Thanks for the reply and help. There's nothing wrong with your documentation. It's very good; better than a lot of APIs I have to work with.

 

I believe that I'm trying to be more specific than the UI filters will allow. Based on the documentation, I believe that the scripts are targeting the actor specified by "Player Relationship." So when the script that gets fired off uses "$system.self" it's healing the targeted Actor that orgasmed and not the player.

 

Maybe a new filter "Player Relationship Script Target" could be in the stars down the road?

 

I ended up making some custom scripts that assume the script target is the player ($system.player) vs. what is being sent to them ($system.self). Between what you clarified above (Sex: Male, as the Actor is "Player Relationship") and the assumption scripts, I think I can get what I want.

Edited by NicholasJMoore
Posted
On 10/30/2025 at 4:46 AM, hextun said:

 

Option 1: The Direct Answer

To directly answer your question, if you wish to have a hotkey that will disable the player's ability to have a natural SL orgasm (some mods or effects can force one), just create a hotkey trigger mapped to whichever key you want and target the following script:

 

sl_disableorgasm $system.player true

 

That's it. During a scene, when you would then press that hotkey, orgasms would be disabled.

 

----

But wait, there's more. :) 

 

Option 2: Tag-based filter

If, on the other hand, you know simply that you want to disable orgasms specifically for oral, you could create a trigger for "SexLab - Start" using filters:

- Tag: Oral

- Player Relationship: Player

with the same script as above. Then when an oral scene starts, the script will run and orgasms would be disabled without requiring a keystroke. I feel this is less immersion breaking, but of course you may disagree.

Awesome, thanks so much!!

Posted
On 10/21/2025 at 12:05 PM, hextun said:

 

Let's see:

- key handling is per key press (i.e. key down), and while the original papyrus script does support press duration, it's not exposed in SLTScript. So for multiple hits you would need multiple taps.
- key handling is also on a 0.5 second window, meaning it's more of a "were any of the relevant keys pressed in the last half second" because of how it is implemented, in a loop with a half second wait timer, checking for key presses or end of scene
- so as currently implemented, you could do a "you have a 0.5 second cooldown per enjoyment change attempt" but the ability to spam the key for multiple rapid hits is not currently implemented
- sounds need to exist, which is to say, SLTR has no way to just be pointed at e.g. an .ogg and have it play. See the "Heart beat(A).sltscript" script for an example.
- I only have a limited subset of the animation functions bound for SexLab/SexLab P+


I'll do a little more digging, because I like the track you're laying down. :) I too think an SLTR/SLSO game is possible and just haven't put the time in on the animation bindings.

set $key_increase_enjoyment 72 ; no idea which one this is
set $key_advance_anim 80 ; you said keys A, B, and C so I'm assuming you will need multiple, just list them here

listadd $listen_keys $key_increase_enjoyment $key_advance_anim

[waitloop]
; I'm assuming this is SL related, so use sl_waitforkbd instead of util_waitforkbd
sl_waitforkbd $system.player $listen_keys
set $key_found $$

if $key_found == $key_increase_enjoyment
    ; more SLTScript bindings needed for SexLab scene enjoyment
    ; I have some for SLSO, which is obviously missing the point
    ; It's not really exposed in SLP+ as I recall, but again, warrants investigation
elseif $key_found == $key_advance_anim
    ; believe it or not, more SLTScript bindings needed for SexLab animation related functionality
endif

; verify scene ended and if so, exit the script
sl_isin $system.player
if $$ == false
    goto [waitloop]
endif

; you could print a message here if you wanted, like a summary of what they did here?
return


 

 

 

I am lacking required bindings here. For example, while I did create the sl_startsex functions, which return, as I recall, the thread id, it now seems reasonable to see about creating sl_endsex functions if possible. Or just exposing more SL thread related functions generally. There's definitely interest here but I'm a little beat at the moment. :/

 

Same thing with animation cycling. I created some rudimentary animation related functions, and even went so far as to implement SLTScript Aliases to handle ReferenceAliases returned as part of the SL animation frameworks, but never actually implemented the bound functions intended to use them. :P  If those get created (doesn't have to be by me) then it would open up exactly the scripts you're talking about.

 

 

Thanks for your reply!

 

Regarding my other script, I did notice that the actor doesn't unequip their older outfit before the script prompts them to equip a new one.
What should I do to make sure they clear their outfit?

 

Spoiler
; option 1
; kimahri closed black
; mouth mask black
 
; option 2
; kimahri open black
; mouth mask black
 
; option 3
; kimahri open black
 
; Debug: Function start
msg_notify "equipveil: script started (v8)"
 
; Check if actor is in DOMPlayerSlaveFaction - if yes, exit script
actor_infaction $system.self "DOMPlayerSlaveFaction"
set $isInDOMPlayerSlaveFaction $$
msg_notify "equipveil: Is in DOMPlayerSlaveFaction: " $isInDOMPlayerSlaveFaction
 
if $isInDOMPlayerSlaveFaction == 1
    msg_notify "equipveil: Actor is in DOMPlayerSlaveFaction, script will not execute"
    return
endif
 
; Check if actor is in DOMNotPlayerSlaveFaction - if yes, exit script
actor_infaction $system.self "DOMNotPlayerSlaveFaction"
set $isInDOMNotPlayerSlaveFaction $$
msg_notify "equipveil: Is in DOMNotPlayerSlaveFaction: " $isInDOMNotPlayerSlaveFaction
 
if $isInDOMNotPlayerSlaveFaction == 1
    msg_notify "equipveil: Actor is in DOMNotPlayerSlaveFaction, script will not execute"
    return
endif
 
msg_notify "equipveil: Actor is not in any DOM slave factions, proceeding with script"
 
; Debug: Get and display gender
actor_getgender $system.self
set $gender $$
msg_notify "equipveil: Target actor gender: " $gender
 
; Generate random number 1-3 for equal probability
rnd_int 1 3
set $option $$
 
; Debug: Display chosen option
msg_notify "equipveil: Chosen option: " $option
 
if $option == 1
    ; Option 1: kimahri closed black + mouth mask black + DE dress sofia black
    set $formId "KimahriShadowMan.esp:0x806"
    gosub equipitem
    set $formId "KimahriShadowMan.esp:0x804"
    gosub equipitem
    set $formId "Apache_DivineEleganceStore.esm:0x04D552"
    gosub equipitem
elseif $option == 2
    ; Option 2: kimahri open black + mouth mask black + DE dress sofia black
    set $formId "KimahriShadowMan.esp:0x805"
    gosub equipitem
    set $formId "KimahriShadowMan.esp:0x804"
    gosub equipitem
    set $formId "Apache_DivineEleganceStore.esm:0x04D552"
    gosub equipitem
else
    ; Option 3: kimahri open black + DE dress sofia black
    set $formId "KimahriShadowMan.esp:0x805"
    gosub equipitem
    set $formId "Apache_DivineEleganceStore.esm:0x04D552"
    gosub equipitem
endif
 
return
 
beginsub equipitem
    msg_notify "equipveil: Trying to equip FormID: " $formId
   
    actor_iswearing $system.self $formId
    set $iswearing $$
    msg_notify "equipveil: Already wearing? " $iswearing
   
    if $iswearing == false ; i.e. not wearing
        item_getcount $system.self $formId
        msg_notify "equipveil: Item count in inventory: " $$
       
        if $$ < 1
            msg_notify "equipveil: Adding item"
           
            item_addex $system.self $formId 1 1
        endif
       
        msg_notify "equipveil: Equipping item"
        item_equip $system.self $formId 0 1
    endif
endsub

 

Posted

How would I set a trigger to play a specific animation? I have a .hkx file from another mod that I want to set on a trigger. I tried using the Cry.sltscript as a template but when I set the trigger nothing happens. Is there a specific place I need to put the .hkx file? Any help would be appreciated.

Posted
13 minutes ago, Sage Of The Seventh Dab said:

How would I set a trigger to play a specific animation? I have a .hkx file from another mod that I want to set on a trigger. I tried using the Cry.sltscript as a template but when I set the trigger nothing happens. Is there a specific place I need to put the .hkx file? Any help would be appreciated.

 

Damn that would be sick

Posted
On 01.11.2025 at 16:02, hextun said:

 

Похоже, вы ищете что-то, что:

 

- на конце SL

- только для игрока

— либо сбивает игрока с ног, либо запускает анимацию лежания или сидения

— уменьшить «силу» (например, изменить значения здоровья/выносливости/магии персонажа, чтобы уменьшить их)

— предположительно, с таймером, который через некоторое время отключит снижение силы

 

Это правильно?

Thank you so much for your attention.

Yes, you got it right.

Posted

Hi, i am trying to make a script when at the start of SexLab scene, the script will check if the targeted actor is wearing that specific clothing, if it is true, it will equip another clothing.

I have searched through the wiki and kept testing for quite some time and can't seem to figure out what is wrong with my code. 

 

Spoiler
set $buttonshirt = "[Caenarvon] Cosplay Pack Schooldays.esp:2311"
set $pencilskirt = "[Caenarvon] Cosplay Pack Schooldays.esp:2320"
set $maidblouse = "[Caenarvon] Cosplay Pack Maid.esp:3648"
set $buttonshirtlewd = "[Caenarvon] Cosplay Pack Schooldays.esp:3833"
set $pencilskirtlewd = "[Caenarvon] Cosplay Pack Schooldays.esp:3930"
set $maidblouselewd = "[Caenarvon] Cosplay Pack Maid.esp:3698"
set $test = "[Caenarvon] Cosplay Pack Schooldays.esp:3830"
set $test2 = "[Caenarvon] Cosplay Pack Schooldays.esp:3832"

;testing 1
if actor_iswearing $system.self $buttonshirt 
    msg_console "1st if showing"
else
    msg_console "1nw"
endif

;testing 2
if $system.self $request.core.equipped_item.base_form == $buttonshirt 
    msg_console "1st if showing"
else
    msg_console "1nw"
endif

;option 1
if actor_iswearing $system.self $buttonshirt 
    item_equip $system.self $buttonshirtlewd false true
if actor_iswearing $system.self $pencilskirt 
    item_equip $system.self $pencilskirtlewd false true
if actor_iswearing $system.self $maidblouse 
    item_equip $system.self $maidblouselewd false true
   
;option 2
if $request.core.equipped_item.base_form == $buttonshirt
    item_equip $system.self $buttonshirtlewd false true
if $request.core.equipped_item.base_form == $pencilskirt
    item_equip $system.self $pencilskirtlewd false true
if $request.core.equipped_item.base_form == $maidblouse
    item_equip $system.self $maidblouselewd false true
    
;option 1.1
if actor_iswearing $system.self $buttonshirt 
    item_equip $system.self $buttonshirtlewd false true
elseif actor_iswearing $system.self $pencilskirt 
    item_equip $system.self $pencilskirtlewd false true
elseif actor_iswearing $system.self $maidblouse 
    item_equip $system.self $maidblouselewd false true
else
    
endif

 

 

When i test using "testing 1", the script outputs "1nw" twice so that means the script is detecting both the player and the targeted actor?
it is also showing an error:

Spoiler
[2025-11-08 13:51:31.021] [log] [error] [sl_triggers.cpp:747] SLTR:(ClothingEquip.sltscript)[11]: unexpected operator(-16771711), this is likely an error in the SLT script

 

 

Testing 2 code outputs "1st if showing" and "1nw" twice, and it is showing these errors:

Spoiler
[2025-11-08 13:45:20.984] [log] [error] [sl_triggers.cpp:747] SLTR:(ClothingEquip.sltscript)[18]: unexpected operator, this is likely an error in the SLT script
[2025-11-08 13:45:21.084] [log] [error] [sl_triggers.cpp:747] SLTR:(ClothingEquip.sltscript)[20]: 'else' encountered outside of if-block; ignoring
[2025-11-08 13:45:21.218] [log] [error] [sl_triggers.cpp:747] SLTR:(ClothingEquip.sltscript)[22]: 'endif' encountered outside of if-block; ignoring

 

 

So i set the "player relationship" in the SLtrigger mod menu to "not player" which fixes the outputting twice issue.

Regardless of whether the actor is wearing the same clothing or not, the output is the same. 

I am still confused on the if/else/elseif/endif statement format. 

Posted
9 hours ago, BREADPIG said:

Hi, i am trying to make a script when at the start of SexLab scene, the script will check if the targeted actor is wearing that specific clothing, if it is true, it will equip another clothing.

I have searched through the wiki and kept testing for quite some time and can't seem to figure out what is wrong with my code. 

 

  Reveal hidden contents
set $buttonshirt = "[Caenarvon] Cosplay Pack Schooldays.esp:2311"
set $pencilskirt = "[Caenarvon] Cosplay Pack Schooldays.esp:2320"
set $maidblouse = "[Caenarvon] Cosplay Pack Maid.esp:3648"
set $buttonshirtlewd = "[Caenarvon] Cosplay Pack Schooldays.esp:3833"
set $pencilskirtlewd = "[Caenarvon] Cosplay Pack Schooldays.esp:3930"
set $maidblouselewd = "[Caenarvon] Cosplay Pack Maid.esp:3698"
set $test = "[Caenarvon] Cosplay Pack Schooldays.esp:3830"
set $test2 = "[Caenarvon] Cosplay Pack Schooldays.esp:3832"

;testing 1
if actor_iswearing $system.self $buttonshirt 
    msg_console "1st if showing"
else
    msg_console "1nw"
endif

;testing 2
if $system.self $request.core.equipped_item.base_form == $buttonshirt 
    msg_console "1st if showing"
else
    msg_console "1nw"
endif

;option 1
if actor_iswearing $system.self $buttonshirt 
    item_equip $system.self $buttonshirtlewd false true
if actor_iswearing $system.self $pencilskirt 
    item_equip $system.self $pencilskirtlewd false true
if actor_iswearing $system.self $maidblouse 
    item_equip $system.self $maidblouselewd false true
   
;option 2
if $request.core.equipped_item.base_form == $buttonshirt
    item_equip $system.self $buttonshirtlewd false true
if $request.core.equipped_item.base_form == $pencilskirt
    item_equip $system.self $pencilskirtlewd false true
if $request.core.equipped_item.base_form == $maidblouse
    item_equip $system.self $maidblouselewd false true
    
;option 1.1
if actor_iswearing $system.self $buttonshirt 
    item_equip $system.self $buttonshirtlewd false true
elseif actor_iswearing $system.self $pencilskirt 
    item_equip $system.self $pencilskirtlewd false true
elseif actor_iswearing $system.self $maidblouse 
    item_equip $system.self $maidblouselewd false true
else
    
endif

 

 

When i test using "testing 1", the script outputs "1nw" twice so that means the script is detecting both the player and the targeted actor?
it is also showing an error:

  Hide contents
[2025-11-08 13:51:31.021] [log] [error] [sl_triggers.cpp:747] SLTR:(ClothingEquip.sltscript)[11]: unexpected operator(-16771711), this is likely an error in the SLT script

 

 

Testing 2 code outputs "1st if showing" and "1nw" twice, and it is showing these errors:

  Reveal hidden contents
[2025-11-08 13:45:20.984] [log] [error] [sl_triggers.cpp:747] SLTR:(ClothingEquip.sltscript)[18]: unexpected operator, this is likely an error in the SLT script
[2025-11-08 13:45:21.084] [log] [error] [sl_triggers.cpp:747] SLTR:(ClothingEquip.sltscript)[20]: 'else' encountered outside of if-block; ignoring
[2025-11-08 13:45:21.218] [log] [error] [sl_triggers.cpp:747] SLTR:(ClothingEquip.sltscript)[22]: 'endif' encountered outside of if-block; ignoring

 

 

So i set the "player relationship" in the SLtrigger mod menu to "not player" which fixes the outputting twice issue.

Regardless of whether the actor is wearing the same clothing or not, the output is the same. 

I am still confused on the if/else/elseif/endif statement format. 

 

Unless something about the syntax changed in the last month or so, I think I can help here. (Doing this off memory, apologies in advance.)

 

First, I don't believe "set" needs =, so for example;

set $buttonshirt = "[Caenarvon] Cosplay Pack Schooldays.esp:2311"

Becomes;

set $buttonshirt "[Caenarvon] Cosplay Pack Schooldays.esp:2311"

 

Then with "if" - I'd love for this to be possible (it just feels right), but you cannot do;

if actor_iswearing $system.self $buttonshirt

So you either need to "set" your result into a variable and then use that in your "if" check;

set $buttonshirttest1 resultfrom actor_iswearing $system.self $buttonshirt
if $buttonshirttest1 == true

Or use your most recent result with $$;

actor_iswearing $system.self $buttonshirt
if $$ == true

 

And with your "if" blocks line 25 and beyond, only "option 1.1" is "if/endif" wrapped correctly besides the unnecesary "else" at the end and the faulty "if/elseif" checks as shown above, but that doesn't seem to matter because of the 2 other "options" above it breaking the "if/endif" flow.

Here's an "option 1.1" before and after;

if actor_iswearing $system.self $buttonshirt 
    item_equip $system.self $buttonshirtlewd false true
elseif actor_iswearing $system.self $pencilskirt 
    item_equip $system.self $pencilskirtlewd false true
elseif actor_iswearing $system.self $maidblouse 
    item_equip $system.self $maidblouselewd false true
else
    
endif

 

set $buttonshirtworn resultfrom actor_iswearing $system.self $buttonshirt
set $pencilskirtworn resultfrom actor_iswearing $system.self $pencilskirt
set $maidblouseworn resultfrom actor_iswearing $system.self $maidblouse
if $buttonshirtworn == true
    item_equip $system.self $buttonshirtlewd false true
elseif $pencilskirtworn == true
    item_equip $system.self $pencilskirtlewd false true
elseif $maidblouseworn == true
    item_equip $system.self $maidblouselewd false true
endif

 

Could probably trim down on the bulk "set" in my example here by nesting them inside the relevant "if" checks or redoing this completely with subroutines, but I just wanted to untangle this for you.

Regardless, hope this fixes (most of) your issues here. 👍

Posted

@MannySauce Thank you for your help! Now it works but to a degree... out of the 3 clothing that was suppose to change if worn, one of them seems to not work. The work around again is to use only if & endif statements for each object. Elseif doesn't really work for all 3 clothing.....

 

 

Posted
1 hour ago, BREADPIG said:

@MannySauce Thank you for your help! Now it works but to a degree... out of the 3 clothing that was suppose to change if worn, one of them seems to not work. The work around again is to use only if & endif statements for each object. Elseif doesn't really work for all 3 clothing.....

 

 

 

Can you share the current state of the script?

Posted (edited)

@MannySauce This is the current working code for me

Spoiler
set $buttonshirt "[Caenarvon] Cosplay Pack Schooldays.esp:2311"
set $pencilskirt "[Caenarvon] Cosplay Pack Schooldays.esp:2320"
set $maidblouse "[Caenarvon] Cosplay Pack Maid.esp:3648"
set $buttonshirtlewd "[Caenarvon] Cosplay Pack Schooldays.esp:3833"
set $pencilskirtlewd "[Caenarvon] Cosplay Pack Schooldays.esp:3930"
set $maidblouselewd "[Caenarvon] Cosplay Pack Maid.esp:3698"
;set $test "[Caenarvon] Cosplay Pack Schooldays.esp:3830"
;set $test2 "[Caenarvon] Cosplay Pack Schooldays.esp:3832"

set $buttonshirtworn resultfrom actor_iswearing $system.self $buttonshirt
set $pencilskirtworn resultfrom actor_iswearing $system.self $pencilskirt
set $maidblouseworn resultfrom actor_iswearing $system.self $maidblouse
if $buttonshirtworn == true
    item_equip $system.self $buttonshirtlewd false true
endif
if $pencilskirtworn == true
    item_equip $system.self $pencilskirtlewd false true
endif
if $maidblouseworn == true
    item_equip $system.self $maidblouselewd false true
endif

 

 

Edited by BREADPIG
Posted
On 11/7/2025 at 11:37 PM, HugzSX said:

How to add more tags to the available MCM options?

 

Hi @HugzSX,

 

Are you referring to the ability to configure which OStim actions map to one of Anal/Oral/Vaginal?

 

If so, when you install the OStim extension, it should also install <mod install folder>/SKSE/Plugins/sl_triggers/ostim-configuration.json, which, by default, looks like:

 

{
    "stringList": {
        "actions_vaginal": ["vaginalsex", "vaginal"],
        "actions_oral": ["blowjob", "deepthroat", "cunnilingus", "lickingvagina", "lickingpenis"],
        "actions_anal": ["analsex", "analnsex", "anal"]
    }
}

 

Either modify that copy in place (easy, not recommended) or do something like use MO2 to create an empty mod with the same file structure, but overriding that one file, and add any actions you want to associate with the given tag.

Posted
On 11/5/2025 at 6:59 AM, tatkaa4 said:

Thank you so much for your attention.

Yes, you got it right.

 

Trigger: SexLab End
Filters:
- Player Relationship: Player
- Script 1: SexAfterEffect.sltscript

 

SexAfterEffect.sltscript:
 

; runs a console command to push the player away from themself for 0 meters which should just knock them down
console $system.player "player.pushactoraway 14 0"

; lots of options here; you could change the randon number range or just set them to a specific value or even just make them all the same
set $mod_health resultfrom rnd_int -10 -1
set $mod_magicka resultfrom rnd_int -10 -1
set $mod_stamina resultfrom rnd_int -10 -1

av_mod $system.player Health $mod_health
av_mod $system.player Magicka $mod_magicka
av_mod $system.player Stamina $mod_stamina

; change this to however many seconds you want to wait
util_wait 60.0

; obviously the following lines might change depending on what you changed above (i.e. if you consolidated to a single variable)
set $mod_health -1 * $mod_health
set $mod_magicka -1 * $mod_magicka
set $mod_stamina -1 * $mod_stamina

av_mod $system.player Health $mod_health
av_mod $system.player Magicka $mod_magicka
av_mod $system.player Stamina $mod_stamina

 

Posted
On 11/4/2025 at 3:51 PM, Sage Of The Seventh Dab said:

How would I set a trigger to play a specific animation? I have a .hkx file from another mod that I want to set on a trigger. I tried using the Cry.sltscript as a template but when I set the trigger nothing happens. Is there a specific place I need to put the .hkx file? Any help would be appreciated.

 

Cry.sltscript uses, among other things, "actor_playanim", which is a wrapper around Papyrus's Debug.SendAnimationEvent(). https://ck.uesp.net/w/index.php?title=SendAnimationEvent_-_Debug

 

That function takes an ObjectReference (in this case the PlayerRef) and an "event name".

 

Per the UESP docs: SendAnimationEvent uses "Anim Events" under the Idle Manager, not the IDs. For example, to make an actor play the animation of attacking left, you must use "AttackStartLeftHand", not "LeftHandAttack" (its ID).

 

This means two things for you:

- You must link your .hkx file via an IDLE record in an .esp in order for Skyrim's Havok implementation to get a shot at running your animation
- You must reference the animation event, not the editorID. For IDLE records it is often found in the ENAM attribute of the IDLE record and I'm given to understand the canonical version of the data is stored within the .hkx itself

 

Note: the UESP docs have several interesting things of note, including this lovely gem: This bypasses the check on ObjectReference that prevents sending events to actors. If you use it to send an event to actors, you will most likely mess up the actor permanently as the internal actor data may no longer match their animation state.

 

So, be careful. :)

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