Jump to content

SL Triggers(v12) [2022-06-05]


Recommended Posts

Posted

I've been a casual user of Triggers for some time and I was wondering, are there freely accessible modules for it? I saw in the forums people appear to be coding for new triggers, some dot files for download but I'm not sure if I should use them or how. I know there's a guide in the .txt files to make your own triggers.

 

beyond that, I'm also trying to find a way to strip the player when a scene occurred, as in remove an equipped clothing item from their inventory. I figured Triggers might be able to do that.

Posted (edited)

Does anyone have a sample .json config for npc race (nords, orcs, etc.) specific trigger that gives one item? I cannot make heads or tails of the documentation.

 

I do not understand the add item script. It says here that parameter 2 is the item ID, which in the example is "skyrim.esm:15". I know that gold's Form ID is "F" but where does the "15" come from? If "Item ID" is different from Form ID how do I know the Item IDs of items?

 

item_add: add item into actors inventory
    - parameter 1: targets actor ID
    - parameter 2: item ID
    - parameter 3: count, how many
    - parameter 4: "0", display msg on screen, "1" do it without msg on screen
    
    Example:
        ["item_add", "$self", "skyrim.esm:15", "10", "0"]
        
    add 10 gold.

Edited by kamoewarrior
  • 2 weeks later...
Posted
On 8/9/2024 at 12:05 PM, kamoewarrior said:

Does anyone have a sample .json config for npc race (nords, orcs, etc.) specific trigger that gives one item? I cannot make heads or tails of the documentation.

 

I do not understand the add item script. It says here that parameter 2 is the item ID, which in the example is "skyrim.esm:15". I know that gold's Form ID is "F" but where does the "15" come from? If "Item ID" is different from Form ID how do I know the Item IDs of items?

 

item_add: add item into actors inventory
    - parameter 1: targets actor ID
    - parameter 2: item ID
    - parameter 3: count, how many
    - parameter 4: "0", display msg on screen, "1" do it without msg on screen
    
    Example:
        ["item_add", "$self", "skyrim.esm:15", "10", "0"]
        
    add 10 gold.

there are 2 types of itemIDs that skyrim uses: Hex and Decimal

 

when you are using the in-game console, you are using Hex.

the Hex itemID for Gold is [ F ]

 

the sample.json uses the Decimal version of the itemID

the Decimal conversion of [ F ] is [ 15 ]

thus [ "skyrim.esm:15" ]

 

just google any Hex to Decimal converter to get equivalent itemIDs

 

alternatively, this mod does allow you to use Hex itemIDs

but you need to add [ 0 ] at the start of the Hex itemIDs

 

so:

 ["item_add", "$self", "skyrim.esm:15", "10", "0"]

becomes:

 ["item_add", "$self", "skyrim.esm:0F", "10", "0"]

and both will work

  • 3 weeks later...
Posted (edited)

Feature request:

 

Expand the "IF ACTOR" condition to include "IS ACTOR 1" and "IS NOT ACTOR 1".

 

Right now the if-actor condition only allows testing for victim/aggressor in aggressive animations. The above two options would allow testing if an actor is the "receiver" or "giver" in an animation, regardless of aggressive or consensual. Yes, testing for actor slot 1 is not perfect for this, but it should work for 95% of cases, and it's super simple. Frankly, i'm not sure why this doesn't exist yet.

Edited by libertyordeath
Posted

Is there a way to do a keypress? I want to trigger a defeat surrender at the end of a scene. util_waitforkbd >> util_kbd? maybe?

 

I want to do something like 50% to surrender into defeat or 50% into naked defeat. By pressing their respective surrender keys.

 

I can do it right now but it requires scripting a magic effect and assigning that to a food or something else. I would like to do it directly with this mod, skipping the ingestion.

Posted
4 minutes ago, RoninDog said:

When using an item or casting a spell from a mod that isn't Skyrim.esm, does it need the two first digits of the form id?

 No, it only needs meaningfull digits. First two relate to order of plugins loading, wich is irrelevant, you only ever need last six, possibly less as you skip 3rd if its zero, same for foruth and so on. So, a spell with an ID: FE00080B has meaningfull part of 80b. Now, i believe i saw something about sl_triggers changelogs about accepting HEX as well as decimal, but im not sure. I still convert it to decimal for the habit sake, wich would equate to 2059 in this case.

So a spell from PluginName.esp with an ID: FE00080B would be refered to in Sl_triggers as PluginName.esp:2059.

 

Posted (edited)
4 hours ago, nilead said:

 No, it only needs meaningfull digits. First two relate to order of plugins loading, wich is irrelevant, you only ever need last six, possibly less as you skip 3rd if its zero, same for foruth and so on. So, a spell with an ID: FE00080B has meaningfull part of 80b. Now, i believe i saw something about sl_triggers changelogs about accepting HEX as well as decimal, but im not sure. I still convert it to decimal for the habit sake, wich would equate to 2059 in this case.

So a spell from PluginName.esp with an ID: FE00080B would be refered to in Sl_triggers as PluginName.esp:2059.

 

 

 

Okay, so I tried to make a spell that boosts the players magicka after sex for a limited time. I used the alchemy effect for this since it is similar to what I'm looking for. The meaningfull id of the spell I made is 2DDB, which is 11739 converted to decimal.

Spoiler

{
    "cmd" :
    [
        ["spell_cast", "sl_triggers.esp:11739", "$self"]
    ]
}

 

But for some reason it has no effect. Any idea why?
 

Same for adding and drinking a potion with an id of 2DDD:

Spoiler

{
    "cmd" :
    [
        ["rnd_list", "sl_triggers.esp:11741" ],
        ["set", "$1", "$$"],
        ["item_adduse", "$self", "$1", "1", "0"]
    ]
}

 

Tried to use an edited version of "stats good" instead:

 

Spoiler

"cmd" :
    [
        ["rnd_int", "0", "0"],
        ["av_mod", "$self", "Health", "$$"],
        ["rnd_int", "1", "25"],
        ["av_mod", "$self", "Magicka", "$$"],
        ["rnd_int", "0", "0"],
        ["av_mod", "$self", "Stamina", "$$"],
        ["rnd_int", "0", "10"],
        ["msg_notify", "$$", ": attributes increased"]
    ]

 

Not even that worked, but tbh I don't think the original version worked either. There is a difference between the code for bad and good stats that doesn't make sense. The bad stats json doesn't have the last ["rnd_int", "0", "10"], so is it the numbers before or after the attribute that determines the number to add?

Edited by RoninDog
Posted (edited)
9 hours ago, RoninDog said:

But for some reason it has no effect. Any idea why?

Spells with SL triggers are fiddly, my understanding limited me to trial and error. 

Depending on exact type of the spell, their implementation varies. For example, stat modification  via ability spell looks like this: ["spell_add", "NileadSLUtilities.esp:35180", "$self"], however a different spell from ScocLB will only works using cast option ["spell_cast", "ScocLB.esm:33562017", "$player"]. There is a third way, for specific spells that are on-hit basicly, never touched that. Id recommend skipping randomization and conditions,  and try straight up apllication first, like your first option, wich honestly looks good to me. Try replacing spell_cast with spell_add in the same command? One of those should work.

 There is some info in script description txt that ships with SL triggers to use as reference.

 

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

Spells with SL triggers are fiddly, my understanding limited me to trial and error. 

Depending on exact type of the spell, their implementation varies. For example, stat modification  via ability spell looks like this: ["spell_add", "NileadSLUtilities.esp:35180", "$self"], however a different spell from ScocLB will only works using cast option ["spell_cast", "ScocLB.esm:33562017", "$player"]. There is a third way, for specific spells that are on-hit basicly, never touched that. Id recommend skipping randomization and conditions,  and try straight up apllication first, like your first option, wich honestly looks good to me. Try replacing spell_cast with spell_add in the same command? One of those should work.

 There is some info in script description txt that ships with SL triggers to use as reference.

 

 

I see. So is this correct for the potion script?

 

Spoiler

{
    "cmd" :
    [
         ["item_adduse", "$self", "sl_triggers.esp:11741", "1", "0"]
    ]
}

 

Regarding the spell I made. It doesn't work if I add it with player.addspell in the console. I've tried a few options but haven't succeeded in making a spell that has a visible effect by adding it this way.

Edited by RoninDog
Posted
1 hour ago, RoninDog said:

Regarding the spell I made. It doesn't work if I add it with player.addspell in the console. I've tried a few options but haven't succeeded in making a spell that has a visible effect by adding it this way.

 I see, then you have to fix the spell first. 

Yep, that looks about right for using an item. 

  • 4 weeks later...
  • 2 weeks later...
Posted (edited)

I am trying to make a very basic command where the PC loses a bar of soap, and I can’t get it to work. The forum Id of the item I am trying to remove is “A9000D63” I am under the impression that the first two digits and the leading zeros don’t count which leaves me with “D63”. I converted “D63” into “3427”.

I then tried two different commands and neither worked they are

 

 

{
    "cmd" :
    [
        ["set", "$1", "Bathing in Skyrim - Main.esp:3427"],
        ["item_remove", "$self", "$1", "1", "0"]
    ]
}

 

For my second attempt I did

 

{
    "cmd" :
    [
         ["item_remove", "$self", "Bathing in Skyrim - Main.esp:3427", "5", "0"]
    ]
}

 

 

Anybody know why these commands are not working?

Edited by aslab
Posted (edited)

 

On 10/23/2024 at 4:04 PM, aslab said:

I am trying to make a very basic command where the PC loses a bar of soap, and I can’t get it to work. The forum Id of the item I am trying to remove is “A9000D63” I am under the impression that the first two digits and the leading zeros don’t count which leaves me with “D63”. I converted “D63” into “3427”.

I then tried two different commands and neither worked they are

 

 

{
    "cmd" :
    [
        ["set", "$1", "Bathing in Skyrim - Main.esp:3427"],
        ["item_remove", "$self", "$1", "1", "0"]
    ]
}

 

For my second attempt I did

 

{
    "cmd" :
    [
         ["item_remove", "$self", "Bathing in Skyrim - Main.esp:3427", "5", "0"]
    ]
}

 

 

Anybody know why these commands are not working?

 

$self isn't neccessarily the player, try $player instead. Have a look at slTriggersMain.psc, sl triggers traverts pairs of actors involved in a sex scene. $self is the one at the current index, and the second actor is the one at index+1 (the "partner") in the race conditions.

 

What I am missing, is, that you can define two race conditions for the self actor.

 

E.g.:

 

condition 1: Partner is player

condition 2: Self is race Humanoid

 

Command:

  

"cmd" : 
[
	["item_add", "$player", "spermalchemyingredients.esp:16779265", "1", "0"]
]

(bottle of "FreshSperm" from

 

Has perhaps someone already extended the conditions in "SL Triggers" ? (would save a lot of work)

 

Edit:

 

Ok, quick hack, added the options 11-13:

 

	triggerIfRaceNames = new string[14]
	triggerIfRaceNames[ 0] = "Any"
	triggerIfRaceNames[ 1] = "Humanoid"
	triggerIfRaceNames[ 2] = "Creature"
	triggerIfRaceNames[ 3] = "Player"
	triggerIfRaceNames[ 4] = "Not Player"
	triggerIfRaceNames[ 5] = "Undead"
	triggerIfRaceNames[ 6] = "Partner Humanoid"
	triggerIfRaceNames[ 7] = "Partner Creature"
	triggerIfRaceNames[ 8] = "Partner Player"
	triggerIfRaceNames[ 9] = "Partner Not Player"
	triggerIfRaceNames[10] = "Partner Undead"
	triggerIfRaceNames[11] = "Partner Player, Self Humanoid"
	triggerIfRaceNames[12] = "Partner Player, Self Creature"
	triggerIfRaceNames[13] = "Partner Player, Self Undead"

 

That's sufficient for me. Uploaded a patch. But it's a pain to force the MCM to update the choices (=> reinstall).

 

 

 

MyChanges - SL Triggers.7z

 

Edited by nopse0
  • 2 weeks later...
Posted

Is there a relatively easy way to trigger a time limited Magic Effect on the PC after sex or aggressive sex (rape), using SL triggers?

 

Basically I'd like to use OAR to apply some animation variations to the PC after sex, and I think (but am no expert) that using the OAR condition HasMagicEffect would be the way to do this.

 

Any ideas?

Posted
4 hours ago, Anunya said:

Is there a relatively easy way to trigger a time limited Magic Effect on the PC after sex or aggressive sex (rape), using SL triggers?

 

Basically I'd like to use OAR to apply some animation variations to the PC after sex, and I think (but am no expert) that using the OAR condition HasMagicEffect would be the way to do this.

 

Any ideas?

You can use the spell_cast command to cast a spell on the PC that applies the magic effect. The spell can define the duration. Something like the following

{
    "cmd" : 
    [
        ["spell_cast", "somemod.esp:###", "$player"]
    ]
}

 

Posted (edited)
On 10/26/2024 at 5:52 AM, nopse0 said:

 

 

$self isn't neccessarily the player, try $player instead. Have a look at slTriggersMain.psc, sl triggers traverts pairs of actors involved in a sex scene. $self is the one at the current index, and the second actor is the one at index+1 (the "partner") in the race conditions.

 

What I am missing, is, that you can define two race conditions for the self actor.

 

E.g.:

 

condition 1: Partner is player

condition 2: Self is race Humanoid

 

Command:

  

"cmd" : 
[
	["item_add", "$player", "spermalchemyingredients.esp:16779265", "1", "0"]
]

(bottle of "FreshSperm" from

 

Has perhaps someone already extended the conditions in "SL Triggers" ? (would save a lot of work)

 

Edit:

 

Ok, quick hack, added the options 11-13:

 

	triggerIfRaceNames = new string[14]
	triggerIfRaceNames[ 0] = "Any"
	triggerIfRaceNames[ 1] = "Humanoid"
	triggerIfRaceNames[ 2] = "Creature"
	triggerIfRaceNames[ 3] = "Player"
	triggerIfRaceNames[ 4] = "Not Player"
	triggerIfRaceNames[ 5] = "Undead"
	triggerIfRaceNames[ 6] = "Partner Humanoid"
	triggerIfRaceNames[ 7] = "Partner Creature"
	triggerIfRaceNames[ 8] = "Partner Player"
	triggerIfRaceNames[ 9] = "Partner Not Player"
	triggerIfRaceNames[10] = "Partner Undead"
	triggerIfRaceNames[11] = "Partner Player, Self Humanoid"
	triggerIfRaceNames[12] = "Partner Player, Self Creature"
	triggerIfRaceNames[13] = "Partner Player, Self Undead"

 

That's sufficient for me. Uploaded a patch. But it's a pain to force the MCM to update the choices (=> reinstall).

 

 

 

MyChanges - SL Triggers.7z 11.58 kB · 1 download

 

Can you do the inverse?

 

I.e.

"Self Player, Partner Humanoid"

"Self Player, Partner Undead"

"Self Player, Partner Creature"

 

For example if I wanted to have an effect that was applied to the player, when involved with undead, but not have it apply to anyone else but the player. If i set it to "player", then I cannot also set "undead". If I used "Partner Player, Self Undead" it would apply the effect to the undead, not the player.

 

Or should i format my commands to be like $player instead of $self and then I can use your tweak.

Edited by bandetlol
Posted
2 hours ago, bandetlol said:

Can you do the inverse?

 

I.e.

"Self Player, Partner Humanoid"

"Self Player, Partner Undead"

"Self Player, Partner Creature"

 

For example if I wanted to have an effect that was applied to the player, when involved with undead, but not have it apply to anyone else but the player. If i set it to "player", then I cannot also set "undead". If I used "Partner Player, Self Undead" it would apply the effect to the undead, not the player.

 

Or should i format my commands to be like $player instead of $self and then I can use your tweak.

Yes, exactly, the latter, that's what I did. I changed the commands from "sperm alchemy ingredients" to use $player instead $self, and then used e.g. "Partner Player, Self Creature" so that a bottle of creature sperm is given to the player, not to the creature. I did this this way, because all the other conditions in SL Triggers, actor (any, aggressor, victim) and gender (any, male, female) are checked on $self. So for example, I can define a rule, that a bottle of creature sperm is given to the player, if the player is raped by a male creature (actor=aggressor, gender=male)

Posted

If I make a trigger, e.g. "eat sweets", with orgasm SLSO condition and actor partner XX, who actually gonna eat sweets, me or my partner? And whose orgasm counts as trigger?

I'd like to create a situation where PC (and PC only) eats a snack when partner orgasms 😃 

  • 1 month later...
Posted
On 9/13/2019 at 12:44 PM, SomeDragonbornGuy said:

Got it to work with 2 spells. One to give you more warmth for 3mins (For friendly encounter scenes) so you dont die, and gives a small cold heal and then a last spell that gives a cold buff for 20mins (Lesser than the first) and heals your cold effects more than the first. You will not top off from really low cold health, but will help you not to die in most cases.

 

Thank you for your help Warlock3000 & nanashi50

 

I'll test it more then post it.

Did this end up working? If so could you share it?

  • 1 month later...
Posted

Is there some sort of command we can add to custom item_adduse jsons to not actually see lines of message dialogue text for the add/use of the item in-game?

  • 1 month later...
Posted

Hello! I got here by searching a way to let Sexlab orgasm (using SLSO too) give a character a small food/drink satiation for INeed.

But honestly after reading the description, i am not sure how to make that happen... I mean, if i just make her drink something then usually a drinking animation would start. So i guess i would need to aim for the actual effect...

 

Did anyone figured out already how to use that for ineed satiation?

 

 

(If there is already an SL-ineed-integration patch somewhere, then please let me know. I did not find any.)

  • 2 weeks later...
Posted

Hi folks,

 

First time contributing here. I'm throwing a few things over the wall here. To begin with, this is all focused on the Pet Collar mod and providing a way for your followers to put on and take off the keyless pet collar without the player's intervention. It relies on two things, though. One is a modification to the sl_triggersCmd.psc script to add an "actor_iswearing" function which does what you would expect. The other is the use of https://www.nexusmods.com/skyrimspecialedition/mods/84743 (Actor Value Generator) to create a custom AV, "PetCollarTime", to store an incrementing integer value to count the number of times the script has processed the check since the last status change (i.e. collar added or removed).

 

I target this script for "Partner Player" and "Begin" but feel free to play with the numbers and events. Each time it runs it compares a random(1,100) to "PetCollarTime". If the result is greater, "PetCollarTime" gets incremented. If not, "PetCollarTime" is set to zero and the collar status is reversed. So the keyless pet collar would be applied if not worn or removed if worn.

SLT_PetCollar_Game.7z

Posted

It occurs to me that more events than just the four SLSO events could be used. Imagine a Daily or Hourly event. Or an Add Follower event. Or a Location Change event. I'm not opposed to doing the work if there's interest.

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