Jump to content

Creation Kit SexLab Papyrus Scripts help.


Recommended Posts

Does anyone know the correct papyrus script commands (preferably papryus fragment format) for the the following... or can someone direct me to the right page. I've checked SexLab Wiki, but it's incomplete.

 

  • NPC/NPC: Lesbian.
  • NPC/NPC: Threeway.
  • NPC: Solo Masterbation.
  • Choosing Animations.
Link to comment

Actor actor1 = ....

Actor actor2 = ....

Actor actor3 = ....

 

 

SexLab.QuickStart(actor1, actor2, AnimationTags="Lesbian")

 

SexLab.QuickStart(actor1, actor2, actor3, AnimationTags="Threeway")

 

SexLab.QuickStart(actor1, AnimationTags="M,Masturbation")

or

SexLab.QuickStart(actor1, AnimationTags="F,Masturbation")

 
 
sslAnimationBase[] anims = SexLab.GetAnimationsByTags(2, "Oral,Anal", "Vaginal")
-> this will get you the animations for 2 actors that have Oral and Anal,  and do not have Vaginal.

 

Link to comment

 

Actor actor1 = ....

Actor actor2 = ....

Actor actor3 = ....

 

 

SexLab.QuickStart(actor1, actor2, AnimationTags="Lesbian")

 

SexLab.QuickStart(actor1, actor2, actor3, AnimationTags="Threeway")

 

SexLab.QuickStart(actor1, AnimationTags="M,Masturbation")

or

SexLab.QuickStart(actor1, AnimationTags="F,Masturbation")

 
 
sslAnimationBase[] anims = SexLab.GetAnimationsByTags(2, "Oral,Anal", "Vaginal")
-> this will get you the animations for 2 actors that have Oral and Anal,  and do not have Vaginal.

 

 

Thanks that worked! Do you also know how to setup rape animations?

Link to comment
  • 2 months later...

The framework is commented in its own code.

 

Just edit SexLabFramework.psc and you will see all functions commented.

A couple of examples are in my Papyrus for Skyrim guide (inside my downloads.)

Link to comment

The framework is commented in its own code.

 

Just edit SexLabFramework.psc and you will see all functions commented.

A couple of examples are in my Papyrus for Skyrim guide (inside my downloads.)

Yes, I saw it. It's hard for me to understand because English is not my first language. But it would be better if there were examples. Thanks, I'll check your downloads.

Link to comment
  • 1 month later...

The framework is commented in its own code.

 

Just edit SexLabFramework.psc and you will see all functions commented.

A couple of examples are in my Papyrus for Skyrim guide (inside my downloads.)

 

Thanks for this heads up.  I do not, and will probably never, have access to the external documentation website used for the official Sexlab tutorials.

 

This, and the information in other parts of this thread, at least gets me started.

 

I'm now playing sexlab animation scenes, and scoring my NPC chars responses to those scenes, and the details of the action in them, Thanks to threads like this.

 

I expect that my mod, which is a kind of Display Model/Submit/Romance/Sexlife combination, centered around the player playing an Incubus Race, will be ready for initial trials in about two months.

 

 

-

Link to comment

Here is a script used on a Magic Effect, of a one handed weapon, which initiates a selected sex scene, at the time when the player has delivered enough bolts, which also slowly increase arousal:

 

 

Scriptname SINT_Ball extends activemagiceffect  
{Stimulates target arousal, strips & poses, and starts a selected animation sex scene.}

SexLabFramework property SexLab auto

slaFrameworkScr Property sla_Framework Auto

Idle Property PoseIdle Auto    ; ZazAPCAO302
Idle Property IdleStop_Loose Auto; end using pose

GlobalVariable Property _SIS__Flag_BallCount Auto;
GlobalVariable Property _SIS__Flag_MaxBallCount Auto;
GlobalVariable Property _SIS__Flag_MaxBallImproved Auto;

Message Property _IC21_BallSelect Auto;

int BallCount;
int BallReady;
int MaxBallCount;
int MaxBallImproved;
int ArouseInc; Amount of Arousal to be gained for this casting.
int Arousal; The current value of Arousal
int ArousalNew; The new Arousal value
String strName; Name of the Target

float fIncFactor;  How much this spell iteration is going to increase arousal
float fArouseFactor = 0.2;
 
int Choice;  Which Animation to play

; =========================================================================================================
 
function OnEffectStart(actor akTarget, actor akCaster)

    BallCount =_SIS__Flag_BallCount.getvalue() as int
    MaxBallCount =_SIS__Flag_MaxBallCount.getvalue() as int

    ; Increment the count and save it to the globals
    BallCount = BallCount + 1;    
    _SIS__Flag_BallCount.setvalue( BallCount ); Amount of Arousal increase goes up with each casting.

    ArouseInc = BallCount*2; Amount of Arousal increase goes up with each casting.
 
    ; Strip off everything
    if(BallCount== 1)
        akTarget.unequipall()
    endif

    ; Set into Ball Pose
    akTarget.PlayIdle(PoseIdle)

    ; Raise the target's arousal
     if (akTarget)
              strName = akTarget.GetLeveledActorBase().GetName()
                  Arousal = sla_Framework.GetActorExposure(akTarget)
            fIncFactor = (1.0 + (fArouseFactor * ArouseInc as float))
            ArousalNew =  ((Arousal *fIncFactor as float) ) as int                   ;     
            sla_Framework.SetActorExposure(akTarget,ArousalNew)

             Debug.Notification("Ball bolt: " + BallCount + "  Arousal Increased for "+ strName+ " from " + (Arousal As String) + " by " +  (fIncFactor as String) + " to " + (ArousalNew As String) )
            
                  Debug.Trace("Ball bolt: " + BallCount + "  Arousal Increased for "+ strName+ " from " + (Arousal As String) + " by " +  (fIncFactor as String) + " to " + (ArousalNew As String) )

    endif


    if (BallCount >= MaxBallCount )

        Debug.Notification("Ball Ready")

        ; Increment the Ball Skill
        MaxBallImproved =_SIS__Flag_MaxBallImproved.getvalue() as int

        MaxBallCount = MaxBallCount + 1;            
        if (MaxBallCount > MaxBallImproved )
            MaxBallCount = MaxBallImproved         
        endif    
        _SIS__Flag_BallCount.setvalue(MaxBallCount); Improve the skill


        ; Reset the Ball
        _SIS__Flag_BallCount.setvalue(0); Reset counter to zero


        ; Switch to waiting Idle
        akTarget.PlayIdle(IdleStop_Loose)

        ; Get the Player's choice of Sex Animation
        Choice = -1;    

        Choice =  _IC21_BallSelect .show();  On Activate: 0-Status, 1-Claim, 2-Abandon, 3-BreakBond, 4-Do Nothing

            Utility.Wait(1.0) ; Give SexLab a moment to catch up.

        ; Setup the Sex Scene
                actor[] sexActors = new actor[2]
                sexActors[0] = akTarget  
                sexActors[1] = akCaster   

        sslThreadModel AnimationObject = SexLab.NewThread()
        AnimationObject.AddActor(akCaster, isVictim = false)  
        AnimationObject.AddActor(akTarget, isVictim = true)
        sslBaseAnimation[] anims
        anims = new sslBaseAnimation[1]

        if (Choice == 0)

             anims[0] = SexLab.GetAnimationByName("Leito Anal Missionary")   

        elseif (Choice == 1)

            anims[0] = SexLab.GetAnimationByName("Leito Blowjob")   

        elseif (Choice == 2)

            anims[0] = SexLab.GetAnimationByName("Leito Anal Reverse Cowgirl")   

        elseif (Choice == 3)

            anims[0] = SexLab.GetAnimationByName("Leito Powerbomb")   

        elseif (Choice == 4)

            anims[0] = SexLab.GetAnimationByName("Arrok Rape")   

        elseif (Choice == 5)

            anims[0] = SexLab.GetAnimationByName("Latino Loli Punishment")   

        elseif (Choice == 6)

            anims[0] = SexLab.GetAnimationByName("Latino Loli Raped Prone")   

        elseif (Choice == 7)

            anims[0] = SexLab.GetAnimationByName("Rough Missionary")   

        elseif (Choice == 8)

            anims[0] = SexLab.GetAnimationByName("Rough Doggy Style")   

        else    

            anims[0] = SexLab.GetAnimationByName("Latino Loli Extreme Doggy Variant")   

        endif

        AnimationObject.DisableLeadIn(false)
        AnimationObject.SetAnimations(anims)
        AnimationObject.SetBedding(0)
        AnimationObject.SetHook("TestingFoo")
        RegisterForModEvent("AnimationStart_" + "TestingFoo", "TestingFoo")
        AnimationObject.StartThread()

    endif

endfunction

;=== End Script =============================================================================================================

 

 

On the SexCrop version, the idle pose is Zaz hanging by chains. 

 

I will later add more themed driven requirements, including a chance for the "Victim" to avoid the spell, and the back lash to cause the player "Skill Level" with the tool to reset back to the minimum level.

 

There also needs to be validation checks for appropriate characters, such as no children, added to this script, as well as options to spit out synthetic dialog from the characters in response to the actions, and sound fx of their responses, such as moans of pleasure, or yelps.

 

This version, the Ball, is designed for "Romantic Cutie"  (Loli or Hentai is a bad word choice, because of loaded, underage, connotations) characters, and the sex scenes that would be appropriate to them.

 

In this spell, you're firing bolts of "Cuteness Appreciation" which greatly pleases a particular type of themed NPC who makes her way through the world being constantly the "Cutest" thing in the room. ( No! it is not age, it is a kind of feminine style! A woman can be a 40 year old "Cutie". )

 

Each of the different tools will be themed to fit a particular kind of woman, and player:

 

Bone - Necro, Crop - Bondage, Ball - Cutie, ColarLeash - Slaver Pirate, FlowerWand - Sprigans and Dryads, DragonBone for Dragon slayer Groupie Girls etc.

 

If the player tries to use a Bondage oriented Crop on a Cutie Romantic type of girl, she will be hurt and outraged, and likely break the spell sequence before the sex scene is started.

 

Use the Bondage Oriented Crop on a Masochism / Bondage interested girl.  Gothic Necro Girl, use the Bone... and be a Necromancy kind of character!  (The script will check for which spells you have and your skill level at using them.)

 

Don't Talk to the girl to show her what kind of sex partner you might be, rely upon your reputation and achievements! 

 

The idea was to avoid the already overloaded dialog system as the primary means of initiating sex scenes and selecting the type of sex.

 

I've plans for 32 different themed Sex-Tools.

 

Each will have their own quests to get the recipe to craft them and cast the enchantment that makes them functional.

 

Like the Mod SexLife, the women are given a script which assigns and tracks their likes and dislikes, as well as adjusts the disposition toward the player.  Those assignments of her preferences are fluid!  So, a Cutie Girl, initially appoached by romantic means, can be slowly swayed into liking Bondage and Pain.

 

Like the conversion of Lilly, to the gothic dark side, in the movie Legend.

 

It is a way to accessing the SexLab scenes without getting all confused in the diaglog system, which is already loaded with follower command options, and lots of other mod changes.

 

-

Link to comment

Better if you get the animations by tags. Or at least by ID, and not by name.

 

Thanks for the feed back.

 

I was thinking that when I saw your post, but I had not yet found a reference to the tag mechanism. 

 

Also, I wanted to play specific animations, rather than one of a tag collection, because I wanted to make a list of which animation showed what, for plot and character interaction updates.

 

If the animation shows a forplay of cunnilingus, and that is the star emphasis preference for a particular NPC girl, yet the animation ends in rough anal... it still will cause her to build affection/loyalty/disposition for the player, as long as she isn't an anal and/or rough hater.  If repeated enough, it might also teach her to enjoy rough anal. That's how the dynamic changing settings of the sexual act preferences system functions.

 

As long as exposure ends in intense orgasm, calclulated by her preferences, your characteristics, Money, Social Status, Occupation, Faction standing, Height, Weight, etc, then the Orgasm causes those stimuli used to create the orgasm to gain slightly in preference.

 

If there is sex, but she never reaches orgasm, then those stimuli areas, anal, oral, swallow, etc, get relatively large negatives.

 

To Convert or Mold the preferences of the female, you have to make her orgasm, preferably multiple times.

 

So, I have to review each sex scene, to make Notes on the stimulus/sex experiences to create the update script entrees.

 

 

Anyhoo...

 

Question, is there a way, to pull which exact sex scene, by name or ID, is being played, after one has been tag selected?

 

-

Link to comment

sslBaseAnimation anim = SexLab.GetAnimationByRegistry("IDOfTheAnimation")

 

 

sslBaseAnimation[] anims = SexLab.GetAnimationByTags(2, "Lesbian,Cunnilingus", "Anal", true) ; Gets the anim with tags "Lesbian" AND "Cunnilingus", and avoids the anims with the tag "Anal". Anims for 2 actors.

 
Link to comment

sslBaseAnimation anim = SexLab.GetAnimationByRegistry("IDOfTheAnimation")

 

 

sslBaseAnimation[] anims = SexLab.GetAnimationByTags(2, "Lesbian,Cunnilingus", "Anal", true) ; Gets the anim with tags "Lesbian" AND "Cunnilingus", and avoids the anims with the tag "Anal". Anims for 2 actors.

 

Thanks!

 

It will take me a few hours to attempt to implement a new system based on tags and ID feed back.

 

Of coarse, I'm falling into the very trap that I wanted to avoid.

 

I know coding, worked for years as a professional nuclear event analysis programer in C and C++.

 

But when I pull open the papyrus script of a mod like Display Model, the code is spigetti mass of work arounds, sneeky tricks, complex database / container look ups and obscure formlists.

 

It works, quite well! Amazing actually, and I can tell the coder is very clever...

 

But, It cannot be easily read, adapted, and modified by anyone other than the original coder.

 

And its so complex, that it is very hard to T.S. when something breaks.

 

That's the whole problem with dialog based SL scene selection and init as well.

 

The concept behind the Sex Tools, is a way to get Sex into Skyrim, with reliability, stability, and clairity, so that anyone can add sex to a Skyrim play through without allot of unknowns, maintenence, and fuss.

 

So, I have to be careful just how far I deviate from my current designs, lest I ruin the one thing that sets this approach and module apart from all the others.

 

-

Link to comment

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

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