adle Posted June 13, 2024 Posted June 13, 2024 Hi Folks, couldnt find anything useful on LL yet. But is there a tutorial to script sex scenes? I mean, i can do a simple sex script like this one: actor[] sexActors = new actor[2] sexActors[0] = Game.GetPlayer() sexActors[1] = akspeaker sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Vaginal", "Rape", tagSuppress="Femdom") SexLab.StartSex(sexActors, anims) but dont understand how to set player to victim for example. Or Hook into Animationstages and how to use specific Object References (Beds) I know there is a function "CenterOn" for using ObjectRef's, but compiling doesnt work. A small tutorial for some functions, or example scripts with more functions then above would be very helpful. If anyone can help me, i would be very grateful. Greetings AD
Ashal Posted June 14, 2024 Posted June 14, 2024 Everything is pretty much documented in the SexLabFramework.psc script file, including an explanation of using hooks. 6 hours ago, adle said: I know there is a function "CenterOn" for using ObjectRef's, but compiling doesnt work. This is usually the result of localization issues on your computer language settings; functions with decimal points in their default arguments break when your computer's region settings are different. You can either edit the function the errors complaining about to use 0,0 instead of 0.0, or you can change your computer's number formatting in your region setting to use periods instead of commas and it'll compile fine after that.
adle Posted June 14, 2024 Author Posted June 14, 2024 4 hours ago, Ashal said: Everything is pretty much documented in the SexLabFramework.psc script file, including an explanation of using hooks. This is usually the result of localization issues on your computer language settings; functions with decimal points in their default arguments break when your computer's region settings are different. You can either edit the function the errors complaining about to use 0,0 instead of 0.0, or you can change your computer's number formatting in your region setting to use periods instead of commas and it'll compile fine after that. i already found the PSC file, but it doesnt show where to put for example the "CenterOn" function. Do you have an example sexlab script for me? With all functions. the language is a good hint. i will give it a try. Thanks
Gristle Posted June 14, 2024 Posted June 14, 2024 (edited) 17 hours ago, adle said: Hi Folks, couldnt find anything useful on LL yet. But is there a tutorial to script sex scenes? I mean, i can do a simple sex script like this one: actor[] sexActors = new actor[2] sexActors[0] = Game.GetPlayer() sexActors[1] = akspeaker sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Vaginal", "Rape", tagSuppress="Femdom") SexLab.StartSex(sexActors, anims) but dont understand how to set player to victim for example. Or Hook into Animationstages and how to use specific Object References (Beds) I know there is a function "CenterOn" for using ObjectRef's, but compiling doesnt work. A small tutorial for some functions, or example scripts with more functions then above would be very helpful. If anyone can help me, i would be very grateful. Greetings AD Modified to show how to set player to victim and how to use CenterOn: ObjectReference Property SexSpot Auto ;<--- You'll need to fill this property actor[] sexActors = new actor[2] sexActors[0] = Game.GetPlayer() sexActors[1] = akspeaker sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Vaginal", "Rape", tagSuppress="Femdom") SexLab.StartSex(sexActors, anims, Victim = Game.GetPlayer(), CenterOn = SexSpot) If SexSpot is a bed, the actors will have sex on the bed. If it is an Xmarker on the floor, they'll have sex on the floor. Also, I know how to set a hook for the end of the sex animation, but haven't figured out animation stages yet. Edited June 14, 2024 by Gristle
Guest Posted June 14, 2024 Posted June 14, 2024 (edited) For using hooks here is an example, Function StartPlayerSolo() actor[] sexActors = new actor[1] Sexactors[0] = PlayerRef sslBaseAnimation[] anims Anims = SexLab.GetAnimationsByTag(1, "Solo, M", TagSuppress = "4D, 4uDIK", RequireAll=true) RegisterForModEvent("HookAnimationStart_Player", "OnPlayerStart") RegisterforModEvent("HookAnimationEnd_Player", "OnPlayerStop") Sexlab.StartSex(Sexactors, Anims, Allowbed = True, Hook = "Player") Endfunction Event OnPlayerStart(int threadID, bool hasPlayer) UnregisterForModEvent("HookAnimationStart_Player") Debug.Notification("Player is about to start animation") ;Your Code Here Endevent Event OnPlayerStop(int threadID, bool hasPlayer) UnregisterForModEvent("HookAnimationEnd_Player") Debug.Notification("Player just finished the animation") ;Your Code Here Endevent Hope it helps.... Edited June 18, 2024 by KatDrop Wartime i guess.....Just changed the HookAnimationEnd_Father to HookAnimationEnd_Player
adle Posted June 18, 2024 Author Posted June 18, 2024 (edited) On 6/14/2024 at 11:29 PM, KatDrop said: For using hooks here is an example, Function StartPlayerSolo() actor[] sexActors = new actor[1] Sexactors[0] = PlayerRef sslBaseAnimation[] anims Anims = SexLab.GetAnimationsByTag(1, "Solo, M", TagSuppress = "4D, 4uDIK", RequireAll=true) RegisterForModEvent("HookAnimationStart_Player", "OnPlayerStart") RegisterforModEvent("HookAnimationEnd_Player", "OnPlayerStop") Sexlab.StartSex(Sexactors, Anims, Allowbed = True, Hook = "Player") Endfunction Event OnPlayerStart(int threadID, bool hasPlayer) UnregisterForModEvent("HookAnimationStart_Player") Debug.Notification("Player is about to start animation") ;Your Code Here Endevent Event OnPlayerStop(int threadID, bool hasPlayer) UnregisterForModEvent("HookAnimationEnd_Father") Debug.Notification("Player just finished the animation") ;Your Code Here Endevent Hope it helps.... i tried now, and compiling also worked flawless. Spoiler Function pchsCustomerOral(actor akactor) actor[] sexActors = new actor[2] sexActors[0] = PlayerRef sexActors[1] = akactor sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Oral", TagSuppress = "Femdom") RegisterForModEvent("AnimationEnd_AfterOralSexEvent", "OnAfterOralSexEvent") SexLab.StartSex(sexActors, anims, hook="AfterOralSexEvent") EndFunction Event OnAfterOralSexEvent(string eventName, string argString, float argNum, form sender) PlayerRef = SexLab.HookActors(argString)[0] Int pchsChance = Utility.RandomInt(1,4) If pchsChance==1 Debug.sendanimationevent(PlayerRef, "Babo_DefeatPanting") ElseIf pchsChance==2 Debug.sendanimationevent(PlayerRef, "Babo_DefeatTraumaLie") ElseIf pchsChance==3 Debug.sendanimationevent(PlayerRef, "BaboWomanPanting01") ElseIf pchsChance==4 Debug.sendanimationevent(PlayerRef, "BaboFaintFLoop") EndIf EndEvent in the dialogue script (TIF), i call the funtion afterwards like this: (compiling works, but SL scene wont start ingame) (Getowningquest() as pchsCustomSLScript).pchsCustomerOral(akspeaker) what do i do wrong? Edited June 18, 2024 by adle
traison Posted June 18, 2024 Posted June 18, 2024 (edited) 1 hour ago, adle said: what do i do wrong? Check Papyrus log. Consider adding Debug.Notification calls into pchsCustomerOral. Also, be careful when calling RegisterForModEvent in every call to pchsCustomerOral. Its possible the game does not stack event handlers, but if it does you'll end up with OnAfterOralSexEvent getting called multiple times. SKSE restores modevent handlers so you only need to register them once. Typically this is done in a quest OnInit event. Edited June 18, 2024 by traison
Guest Posted June 18, 2024 Posted June 18, 2024 59 minutes ago, adle said: i tried now, and compiling also worked flawless. Hide contents Function pchsCustomerOral(actor akactor) actor[] sexActors = new actor[2] sexActors[0] = PlayerRef sexActors[1] = akactor sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Oral", TagSuppress = "Femdom") RegisterForModEvent("AnimationEnd_AfterOralSexEvent", "OnAfterOralSexEvent") SexLab.StartSex(sexActors, anims, hook="AfterOralSexEvent") EndFunction Event OnAfterOralSexEvent(string eventName, string argString, float argNum, form sender) PlayerRef = SexLab.HookActors(argString)[0] Int pchsChance = Utility.RandomInt(1,4) If pchsChance==1 Debug.sendanimationevent(PlayerRef, "Babo_DefeatPanting") ElseIf pchsChance==2 Debug.sendanimationevent(PlayerRef, "Babo_DefeatTraumaLie") ElseIf pchsChance==3 Debug.sendanimationevent(PlayerRef, "BaboWomanPanting01") ElseIf pchsChance==4 Debug.sendanimationevent(PlayerRef, "BaboFaintFLoop") EndIf EndEvent in the dialogue script (TIF), i call the funtion afterwards like this: (compiling works, but SL scene wont start ingame) (Getowningquest() as pchsCustomSLScript).pchsCustomerOral(akspeaker) what do i do wrong? well there is some mistakes, first add the properties of the actors in your script and not sure but you do have to register for animation start try this Actor Property ThisActor Auto ;Customer1 in your case Actor Property PlayerRef Auto Function pchsCustomerOral() actor[] sexActors = new actor[2] sexActors[0] = PlayerRef sexActors[1] = ThisActor sslBaseAnimation[] anims anims = SexLab.GetAnimationsByTag(2, "Oral", TagSuppress = "Femdom") RegisterForModEvent("HookAnimationStart_Player", "OnOralSex") RegisterForModEvent("HookAnimationStart_Player", "AfterOralSex") Debug.Notification("Registered for events") Utility.Wait(2.0) SexLab.StartSex(sexActors, anims, hook="Player") EndFunction Event OnOralSex(int threadID, bool hasPlayer) UnregisterForModEvent("HookAnimationStart_OnOralSexEvent") Debug.Notification("Starting animation") EndEvent Event AfterOralSex(int threadID, bool hasPlayer) UnregisterForModEvent("AfterOralSex") Debug.Notification("About to end Animation") Utility.Wait(2.0) Anim() EndEvent Function Anim() Int Random = Utility.RandomInt(0,4) If Random == 1 Debug.Notification("1") Debug.SendAnimationEvent(PlayerRef,"Babo_DefeatPanting") Elseif Random == 2 Debug.Notification("2") Debug.SendAnimationEvent(PlayerRef,"Babo_DefeatTraumaLie") Elseif Random == 3 Debug.Notification("3") Debug.SendAnimationEvent(PlayerRef,"BaboWomanPanting01") Elseif Random == 4 Debug.Notification("4") Debug.SendAnimationEvent(PlayerRef,"BaboFaintFLoop") Endif EndFunction You have to call this function pchsCustomerOral() to trigger the scene.... lemme know if it works
adle Posted June 18, 2024 Author Posted June 18, 2024 14 minutes ago, KatDrop said: well there is some mistakes, first add the properties of the actors in your script and not sure but you do have to register for animation start try this Actor Property ThisActor Auto ;Customer1 in your case Actor Property PlayerRef Auto Function pchsCustomerOral() actor[] sexActors = new actor[2] sexActors[0] = PlayerRef sexActors[1] = ThisActor sslBaseAnimation[] anims anims = SexLab.GetAnimationsByTag(2, "Oral", TagSuppress = "Femdom") RegisterForModEvent("HookAnimationStart_Player", "OnOralSex") RegisterForModEvent("HookAnimationStart_Player", "AfterOralSex") Debug.Notification("Registered for events") Utility.Wait(2.0) SexLab.StartSex(sexActors, anims, hook="Player") EndFunction Event OnOralSex(int threadID, bool hasPlayer) UnregisterForModEvent("HookAnimationStart_OnOralSexEvent") Debug.Notification("Starting animation") EndEvent Event AfterOralSex(int threadID, bool hasPlayer) UnregisterForModEvent("AfterOralSex") Debug.Notification("About to end Animation") Utility.Wait(2.0) Anim() EndEvent Function Anim() Int Random = Utility.RandomInt(0,4) If Random == 1 Debug.Notification("1") Debug.SendAnimationEvent(PlayerRef,"Babo_DefeatPanting") Elseif Random == 2 Debug.Notification("2") Debug.SendAnimationEvent(PlayerRef,"Babo_DefeatTraumaLie") Elseif Random == 3 Debug.Notification("3") Debug.SendAnimationEvent(PlayerRef,"BaboWomanPanting01") Elseif Random == 4 Debug.Notification("4") Debug.SendAnimationEvent(PlayerRef,"BaboFaintFLoop") Endif EndFunction You have to call this function pchsCustomerOral() to trigger the scene.... lemme know if it works I did. PlayerRef propeties are set. For the Second actor, i do have different possible actors for it, depending on which alias they have right now. So i thought it would be easiest to set them as akspeaker, or something. Would this be possible?
Guest Posted June 18, 2024 Posted June 18, 2024 3 minutes ago, adle said: I did. PlayerRef propeties are set. For the Second actor, i do have different possible actors for it, depending on which alias they have right now. So i thought it would be easiest to set them as akspeaker, or something. Would this be possible? Well you can either use global or getstage command also there is magic effect. Since you are mainly working with quest getstage will be much more useful GlobalVariable Propert CustomerCount_Global Auto ;Example for getstage Quest Property YourQuest Auto Actor Property Customer1 Auto Actor Property Customer2 Auto Actor Property Customer3 Auto Actor Property Customer4 Auto If YourQuest.GetStage() == 10 Sexactors[0] = Customer1 Elseif YourQuest.GetStage() == 20 Sexactors[0] = Customer2 Elseif YourQuest.GetStage() == 30 Sexactors[0] = Customer3 Elseif YourQuest.GetStage() == 40 Sexactors[0] = Customer4 Endif ;Example of Global If CustomerCount_Global.GetValue() == 1.0 Sexactors[0] = Customer1 Elseif CustomerCount_Global.GetValue() == 2.0 Sexactors[0] = Customer2 Elseif CustomerCount_Global.GetValue() == 3.0 Sexactors[0] = Customer3 Elseif CustomerCount_Global.GetValue() == 4.0 Sexactors[0] = Customer4 Endif
adle Posted June 18, 2024 Author Posted June 18, 2024 5 hours ago, KatDrop said: Well you can either use global or getstage command also there is magic effect. Since you are mainly working with quest getstage will be much more useful GlobalVariable Propert CustomerCount_Global Auto ;Example for getstage Quest Property YourQuest Auto Actor Property Customer1 Auto Actor Property Customer2 Auto Actor Property Customer3 Auto Actor Property Customer4 Auto If YourQuest.GetStage() == 10 Sexactors[0] = Customer1 Elseif YourQuest.GetStage() == 20 Sexactors[0] = Customer2 Elseif YourQuest.GetStage() == 30 Sexactors[0] = Customer3 Elseif YourQuest.GetStage() == 40 Sexactors[0] = Customer4 Endif ;Example of Global If CustomerCount_Global.GetValue() == 1.0 Sexactors[0] = Customer1 Elseif CustomerCount_Global.GetValue() == 2.0 Sexactors[0] = Customer2 Elseif CustomerCount_Global.GetValue() == 3.0 Sexactors[0] = Customer3 Elseif CustomerCount_Global.GetValue() == 4.0 Sexactors[0] = Customer4 Endif I already have a function for that in my script. I think it has something to do with the actor property. Still try to figure out how to get it to run, but will keep you updated. another question regarding akSpeaker and akActor. I asked BakaFactory for help, since i want to use his idle motions for my sex scripts. in the Files attached you can see that in the SL Script, he uses akActor. In the TIF File then, he calls for akSpeaker. Can you explain me how both work? TIF__BaboTestPlugin01.psc BaboTestQuestScript.psc
Guest Posted June 19, 2024 Posted June 19, 2024 11 hours ago, adle said: I already have a function for that in my script. I think it has something to do with the actor property. Still try to figure out how to get it to run, but will keep you updated. another question regarding akSpeaker and akActor. I asked BakaFactory for help, since i want to use his idle motions for my sex scripts. in the Files attached you can see that in the SL Script, he uses akActor. In the TIF File then, he calls for akSpeaker. Can you explain me how both work? TIF__BaboTestPlugin01.psc 491 B · 1 download BaboTestQuestScript.psc 835 B · 1 download Ok, So i would say that since akactor is not defined as anyone in BaboTestQuestScript it's basically empty to fill that up he uses Function Fragment_1(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor and then he calls the function BTQS.RapeFemalePlayer(akspeaker) ;akSpeaker is the npc ? Where BTQS is the Quest and RapeFemalePlayer(akSpeaker) is the function and so on ;Try if you want Create a dialogue to start the scene don't add getisid so that everyone has the dialogue then try talking to them check if the scene gets triggers with everyone. Modify your script Function abcd(Actor akSpeaker) actor[] sexActors = new actor[2] sexActors[0] = PlayerREF sexActors[1] = akSpeaker as Actor ;xyz EndFunction And to trigger just call the function YourQuestName.abcd(Actor akSpeaker)
adle Posted June 19, 2024 Author Posted June 19, 2024 6 hours ago, KatDrop said: Ok, So i would say that since akactor is not defined as anyone in BaboTestQuestScript it's basically empty to fill that up he uses Function Fragment_1(ObjectReference akSpeakerRef) Actor akSpeaker = akSpeakerRef as Actor and then he calls the function BTQS.RapeFemalePlayer(akspeaker) ;akSpeaker is the npc ? Where BTQS is the Quest and RapeFemalePlayer(akSpeaker) is the function and so on ;Try if you want Create a dialogue to start the scene don't add getisid so that everyone has the dialogue then try talking to them check if the scene gets triggers with everyone. Modify your script Function abcd(Actor akSpeaker) actor[] sexActors = new actor[2] sexActors[0] = PlayerREF sexActors[1] = akSpeaker as Actor ;xyz EndFunction And to trigger just call the function YourQuestName.abcd(Actor akSpeaker) Got the SL Scene to work now. But animations wont play. The whole event wont trigger sadly. This is my script Spoiler Function pchsCustomerOral1(actor akActor) actor[] sexActors = new actor[2] sexActors[0] = PlayerRef sexActors[1] = akActor sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Oral", "Blowjob", TagSuppress = "Femdom") RegisterForModEvent("AnimationEnd_AfterOralSexEvent", "OnAfterOralSexEvent") SexLab.StartSex(sexActors, anims) EndFunction Event AnimationEnd_AfterOralSexEvent(string eventName, string argString, float argNum, form sender) PlayerRef = SexLab.HookActors(argString)[0] Int pchsChance = Utility.RandomInt(1,4) If pchsChance==1 Debug.sendanimationevent(PlayerRef, "Babo_DefeatPanting") ElseIf pchsChance==2 Debug.sendanimationevent(PlayerRef, "Babo_DefeatTraumaLie") ElseIf pchsChance==3 Debug.sendanimationevent(PlayerRef, "BaboWomanPanting01") ElseIf pchsChance==4 Debug.sendanimationevent(PlayerRef, "BaboFaintFLoop") EndIf Debug.Notification("Animation should play") pchsProstitutionQuest001.setstage(35) EndEvent Added the debug not, to check if the event works. But sadly it doesnt. Also the next stage would not proceed. so i guess the whole event doesnt work i call it like that in the TIF. Spoiler pchsCustomerOral1(akspeaker)
Guest Posted June 19, 2024 Posted June 19, 2024 (edited) 2 hours ago, adle said: Got the SL Scene to work now. But animations wont play. The whole event wont trigger sadly. This is my script Reveal hidden contents Function pchsCustomerOral1(actor akActor) actor[] sexActors = new actor[2] sexActors[0] = PlayerRef sexActors[1] = akActor sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Oral", "Blowjob", TagSuppress = "Femdom") RegisterForModEvent("AnimationEnd_AfterOralSexEvent", "OnAfterOralSexEvent") SexLab.StartSex(sexActors, anims) EndFunction Event AnimationEnd_AfterOralSexEvent(string eventName, string argString, float argNum, form sender) PlayerRef = SexLab.HookActors(argString)[0] Int pchsChance = Utility.RandomInt(1,4) If pchsChance==1 Debug.sendanimationevent(PlayerRef, "Babo_DefeatPanting") ElseIf pchsChance==2 Debug.sendanimationevent(PlayerRef, "Babo_DefeatTraumaLie") ElseIf pchsChance==3 Debug.sendanimationevent(PlayerRef, "BaboWomanPanting01") ElseIf pchsChance==4 Debug.sendanimationevent(PlayerRef, "BaboFaintFLoop") EndIf Debug.Notification("Animation should play") pchsProstitutionQuest001.setstage(35) EndEvent Added the debug not, to check if the event works. But sadly it doesnt. Also the next stage would not proceed. so i guess the whole event doesnt work i call it like that in the TIF. Reveal hidden contents pchsCustomerOral1(akspeaker) 1. When you register for a modevent first thing you have to do is unregister it Event AnimationEnd_AfterOralSexEvent(string eventName, string argString, float argNum, form sender) UnRegisterForModEvent("AnimationEnd_AfterOralSexEvent") ;Your code EndEvent 2. you don't have to hook playerRef to SexLab.HookActors(argString)[0] (don't know what you are trying to do here) 3. you have to register for animationstart (not sure but registering for start works in my case) Edited Script Spoiler Actor Property PlayerRef Auto SexLabFramework property SexLab auto Function pchsCustomerOral1(Actor akSpeaker) actor[] sexActors = new actor[2] sexActors[0] = PlayerRef sexActors[1] = akSpeaker sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Oral", "Blowjob", TagSuppress = "Femdom") RegisterForModEvent("HookAnimationStart_OralSex", "OralStart") RegisterForModEvent("HookAnimationEnd_OralSex", "OralEnd") SexLab.StartSex(sexActors, anims, Hook = "OralSex") EndFunction Event OralStart(int tid, bool HasPlayer) UnregisterForModEvent("HookAnimationStart_OralSex") Debug.Notification("Animation is about to start") EndEvent Event OralEnd(int tid, bool HasPlayer) UnregisterForModEvent("HookAnimationEnd_OralSex") Debug.Notification("Animation is about to finish") Int pchsChance = Utility.RandomInt(1,4) If pchsChance==1 Debug.sendanimationevent(PlayerRef, "Babo_DefeatPanting") Debug.Notification("Playing Babo_DefeatPanting") ElseIf pchsChance==2 Debug.sendanimationevent(PlayerRef, "Babo_DefeatTraumaLie") Debug.Notification("Playing Babo_DefeatTraumaLie") ElseIf pchsChance==3 Debug.sendanimationevent(PlayerRef, "BaboWomanPanting01") Debug.Notification("Playing BaboWomanPanting01") ElseIf pchsChance==4 Debug.sendanimationevent(PlayerRef, "BaboFaintFLoop") Debug.Notification("Playing BaboFaintFLoop") EndIf pchsProstitutionQuest001.setstage(35) EndEvent Edited June 19, 2024 by KatDrop
adle Posted June 19, 2024 Author Posted June 19, 2024 1 hour ago, KatDrop said: 1. When you register for a modevent first thing you have to do is unregister it Event AnimationEnd_AfterOralSexEvent(string eventName, string argString, float argNum, form sender) UnRegisterForModEvent("AnimationEnd_AfterOralSexEvent") ;Your code EndEvent 2. you don't have to hook playerRef to SexLab.HookActors(argString)[0] (don't know what you are trying to do here) 3. you have to register for animationstart (not sure but registering for start works in my case) Edited Script Hide contents Actor Property PlayerRef Auto SexLabFramework property SexLab auto Function pchsCustomerOral1(Actor akSpeaker) actor[] sexActors = new actor[2] sexActors[0] = PlayerRef sexActors[1] = akSpeaker sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims = SexLab.GetAnimationsByTag(2, "Oral", "Blowjob", TagSuppress = "Femdom") RegisterForModEvent("HookAnimationStart_OralSex", "OralStart") RegisterForModEvent("HookAnimationEnd_OralSex", "OralEnd") SexLab.StartSex(sexActors, anims, Hook = "OralSex") EndFunction Event OralStart(int tid, bool HasPlayer) UnregisterForModEvent("HookAnimationStart_OralSex") Debug.Notification("Animation is about to start") EndEvent Event OralEnd(int tid, bool HasPlayer) UnregisterForModEvent("HookAnimationEnd_OralSex") Debug.Notification("Animation is about to finish") Int pchsChance = Utility.RandomInt(1,4) If pchsChance==1 Debug.sendanimationevent(PlayerRef, "Babo_DefeatPanting") Debug.Notification("Playing Babo_DefeatPanting") ElseIf pchsChance==2 Debug.sendanimationevent(PlayerRef, "Babo_DefeatTraumaLie") Debug.Notification("Playing Babo_DefeatTraumaLie") ElseIf pchsChance==3 Debug.sendanimationevent(PlayerRef, "BaboWomanPanting01") Debug.Notification("Playing BaboWomanPanting01") ElseIf pchsChance==4 Debug.sendanimationevent(PlayerRef, "BaboFaintFLoop") Debug.Notification("Playing BaboFaintFLoop") EndIf pchsProstitutionQuest001.setstage(35) EndEvent alright. Thank you very much. I didnt know that i have to register both. So i tried your script. SL scene works, idle animations sadly not. Thus no debug notifi. for playing these and no setstage 35 dont understand why tbh. the whole event wont play
Guest Posted June 19, 2024 Posted June 19, 2024 59 minutes ago, adle said: alright. Thank you very much. I didnt know that i have to register both. So i tried your script. SL scene works, idle animations sadly not. Thus no debug notifi. for playing these and no setstage 35 dont understand why tbh. the whole event wont play Did you get the notification "Debug.Notification("Animation is about to finish")" and "Debug.Notification("Animation is about to start")" ? and is the script linked as quest script or dialogue ? also setstage has nothing to do with the idle play animation since there is no if statements so it should trigger the stage try using console and type sqv yourquestname what does it show? for the sendanimation event you can try it with a fire and forget spell just to check if it works Event OnEffectStart(actor akTarget, actor akCaster) Utility.Wait(3.0) Debug.SendAnimationEvent(akTarget, "idlelockpick") ;if it works then try changing it with babo ids EndEvent
adle Posted June 19, 2024 Author Posted June 19, 2024 2 minutes ago, wynston said: Did you get the notification "Debug.Notification("Animation is about to finish")" and "Debug.Notification("Animation is about to start")" ? and is the script linked as quest script or dialogue ? also setstage has nothing to do with the idle play animation since there is no if statements so it should trigger the stage try using console and type sqv yourquestname what does it show? for the sendanimation event you can try it with a fire and forget spell just to check if it works Event OnEffectStart(actor akTarget, actor akCaster) Utility.Wait(3.0) Debug.SendAnimationEvent(akTarget, "idlelockpick") ;if it works then try changing it with babo ids EndEvent I dont get the debug.Notifications sadly. And the script is inside of an dialogue (TIF File) if i use Debug.SendAnimationEvent, alone, the animation plays. So this must be right. Must have something to do with the event will try your script
adle Posted June 19, 2024 Author Posted June 19, 2024 @wynston this actually fixed it for me! It was Utility.wait 😄 i guess without, the script would move forward way to fast. Added Utility.wait(1.0), and now everything works like a charm. Thank you all for your support! now i can proceed with my questline
Guest Posted June 19, 2024 Posted June 19, 2024 @adle happy to help.....Actually i am working on something similar you can say addon for wartime lol....
adle Posted June 19, 2024 Author Posted June 19, 2024 7 minutes ago, wynston said: @adle happy to help.....Actually i am working on something similar you can say addon for wartime lol.... Wait really? tell me 😄 maybe we could work together?
adle Posted June 20, 2024 Author Posted June 20, 2024 (edited) 28 minutes ago, KatDrop said: Well mainly some side quest might remove some of them what do you think? Hide contents Midnight -> wake up and find father next to you has some solo sl scenes and custom animations.... Belethor delivery -> Intro -> (Meet Belethor outside whiterun watchtower at midnight ) Get Hired by Belethor -> Random delivery -> shady customers -> (Jail/SL/Drugs) Drugs -> Alchemist -> Temporary Cure -> Wrong Treatment (Blurry Vision -> ? ) Invited to a party -> (Shopping -> New Clothes) Meet new people (father introduces you to his....) Get hired as a maid -> (maid outfit) branches into different scenarios Invite Customer -> (Same as buying brutus quest intro where father will guide you at first) -> (random chance) Homevisit (Gifts if demands fulfilled) (PC invites Customer requires father's approval) Father Invites Customer -> Homevisit at night -> Their Demands xyz (if fulfilled gold collect from father or else -favour) Gifts -> (toys/clothes/etc which will apply mgef "xyz") Uncle Ben -> Hardcore Slavery -> (Ref Slaverun) idk lol this is what i am currently working on my todo list is cluttered.... Ya I don't mind working together here my discord -> shannon2053 sounds great. here are my ideas atm: Spoiler Marriage Quest: Custom Marriage. No vanilla interference 1. after Pregnancy Quest - Father Force Greet 2. Teleport to Riften - Temple of Mara. Automate change to wedding dress. (setable via MCM?) 3. Guests: - Mother in cage (if she is back) - Uncle Benjamin - Father Friends - Skulvar - Brumbar - Jazeem - ? 4. Priest Marriage Dialogue - Slave Wife Contract 5. Gangbang Scene with all Guests 6. Teleport back to home 7. new Slave Wife Tasks? 8. no ending until Quest finish Goblin Slave Quest: Uncle Benjamin Quest: Option 1: 1. After find Mother, flee to Uncle Benjamin and ask for help. 2. Uncle Benjamin visit Father. After comeback - Rape. 3. Brings back PC to Father. 4. Punishment - Sex with Uncle regularly. Uncle visits every 14 days for one whole day. 5. Gangbang with Father? 6. Uncle Son also join later? 7. Uncle will join Partys 8. Dialogue if Mother is back 9. No ending until Quest finish Option 2: 1. After PC gave Rough, Uncle benjamin Visits while father is outside at the bar 2. short dialogue between PC and Uncle. Dialogue 1: - PC plays nice and doesnt say anything (more favour, depravity and submission) Dialogue 2: - Tell Uncle whole story and get interrupted by father coming into the house. Uncle reveals that he is on father side and already know. Player - punishment 3. both option leads to Uncle regular sex quest 4. after 3 times uncle visit, Uncle Son (PC cousin) joins. Leading to 3 or 4 way (with father) 5. never ending. Regular sex quest. All other quests are blocked during that time. (No supply run, no fashion, no party) 6. Uncle will join Partys. 7. Dialogue if Mother is back 8. No ending until Quest finish Prostitution Quest: 1. After PC gave Vaginal sex and Room change - Force Greet Father. Will announce a day before. (so that all tasks for next day can be set) 2. requires PC for Sex Training (adjustable 7 - 14 Days). Starting with blowjob, to Vaginal, Anal, Rough, Gangbang. - if final stage done, PC can choose via Dialogue which training 3. Father collects money everytime. All other Task will be blocked during the Training which last one day (no Firewood, no supply run, no fashion, no party, no cleaning) 4. no ending until quest finish 5. refuse option, leads into player locked in the room and be raped by customers the whole day. - max 8 men staning in line in the lobby and waiting for their turn. Gangbang scene, everybody will be in the room with comments for those who wait. - skip scene option after at least 1 intercourse. If not Skip, max customers 8 for the whole day Jarl Quest: no timestamp. triggered by PC 1. new job for PC. First time after Prositution Quest stage Gangbang Done. Father Force Greet 2. Father sends to Jarl Quarters at night for Sex. Random sex, no restrictions. Jarl will use player. After that, Payment and coc back to home 3. Repeatable after timeout of one day. Toilette cleaning: 1. new daily task for PC cleaning the outdoor toilette Milking cows quest: 1. new daily task. Milk cows quest to sell milk at belathor Fathers Friends: 1. new repeatable job after first time party guests sex. 2. first time, father sends player to Guests home, where PC have to stay overnight. Gets teleported after Father dialogue at 10pm (result in no sleep gain) 3. PC used and send back to house at 6am. 4. repeatable with various Father Friend and houses. 5. Story with Guests Daughter, Wife, Son. Different stories and dialogues Party Quest: 1. after PC gave Vaginal, Father demands Blowjob during Party to show Guests, PCs skills 2. one time event, non repeatable. 3. After that, father explains to PC, that she needs to service Guests as well if they ask to. 4. After PC prostitution gangbang scene, Father forcegreet during Party start. Leads to gangbang. After that, normal party tasks Guard Quest: 1. if player only want to cook after first sex scene with Guard already complete, result in gangrape. repeatable. Guard Random Approaches: 1. after slavewife? Guards Whiterun, random approaches for service. if not, jailtime. Stormcloak Punishment: 1. PC will be sent to Stormcloak camp. Will be raped 1 whole day. 2. coc to camp, after finish, will coc back. Laying on ground, exhausted before PC Home on the streets Orc Camp Quest: 1. Father needs to pay debt with Orc Stronghold. PC will be send to it for a week. (after Prostitution gangbang stage) 2. All tasks are locked, Mother survival will be locked. 3. not repeatable Giant Camp Punishment: 1. Father sends PC as a sacrifice for Giants. 2. Player will be tattooed and have to walk to Camp (with quest mark) 3. PC have to offer herself to them. will be used 4 times, before can go back. Player cant leave camp. 4. Go back to Home. 5. If quest not done, mother death. 6. If Mother already dead, sold into simple slavery More random Comments for: - NPC Reaction after Slave Wife - NPC Reaction after Prositution - NPC Reaction after Horse Barn Sex - NPC Reaction Outfit worn Message Boxes: - for Player mental state and thoughts, after different stages - breakdown animations? Father Dialogue: - Dialogue after all Sex Stages - After Marriage - asking for baby after birth Inflate Potion: 1. Random Force Greet for Sexlab Survival Inflate Potion 2. First Dialogue Variant and for repetive Water: 1. New daily task for get water. Put it in barrel? Food swap: 1. change food options from normal food, to food scraps, to cum. currently working on the Player prostitution in her room. After that, either the wedding or the uncle quest. btw. sent you friend invite via discord Edited June 20, 2024 by adle
CyberQueen Posted July 16, 2024 Posted July 16, 2024 There's some helpful stuff in this thread and I was hoping you guys could help me out with some scripting. I'm trying to do two things... First: I'm trying to advance to a new stage at the end of a sexlab animation with my player. The code I use is... sslThreadModel AnimationObject = SexLab.NewThread() AnimationObject.AddActor(Game.GetPlayer(), isVictim = false) AnimationObject.AddActor(akSpeaker, isVictim = false) sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims[0] = SexLab.GetAnimationByName("Animation Name") AnimationObject.DisableLeadIn(true) AnimationObject.SetAnimations(anims) AnimationObject.SetBedding(0) AnimationObject.SetHook("TestingFoo") RegisterForModEvent("AnimationStart_" + "TestingFoo", "TestingFoo") AnimationObject.StartThread() I place it inside the dialogue fragment which in this case is what I'm trying to do and it works fine. What code do I need to change to set a new stage after the animation ends? Second: I'm trying to figure out the code for multiple sex scenes happening at once. For example me and three other girls are having sex with guys / wolves but each with our own animations going that all start at once, so four different sex animations with specific tags. And let's say I'd want to place this inside the dialogue fragment as well. Any help would be appreciated:)
MTB Posted July 18, 2024 Posted July 18, 2024 (edited) On 7/16/2024 at 11:01 PM, CyberQueen said: There's some helpful stuff in this thread and I was hoping you guys could help me out with some scripting. I'm trying to do two things... First: I'm trying to advance to a new stage at the end of a sexlab animation with my player. The code I use is... sslThreadModel AnimationObject = SexLab.NewThread() AnimationObject.AddActor(Game.GetPlayer(), isVictim = false) AnimationObject.AddActor(akSpeaker, isVictim = false) sslBaseAnimation[] anims anims = new sslBaseAnimation[1] anims[0] = SexLab.GetAnimationByName("Animation Name") AnimationObject.DisableLeadIn(true) AnimationObject.SetAnimations(anims) AnimationObject.SetBedding(0) AnimationObject.SetHook("TestingFoo") RegisterForModEvent("AnimationStart_" + "TestingFoo", "TestingFoo") AnimationObject.StartThread() I place it inside the dialogue fragment which in this case is what I'm trying to do and it works fine. What code do I need to change to set a new stage after the animation ends? Second: I'm trying to figure out the code for multiple sex scenes happening at once. For example me and three other girls are having sex with guys / wolves but each with our own animations going that all start at once, so four different sex animations with specific tags. And let's say I'd want to place this inside the dialogue fragment as well. Any help would be appreciated:) You could consider setting it after starting the scene as the player won't be able to do anything until the scene ends anyways. If it really needs to be after the scene you can listen for a hook, say `myhook' (or TestingFoo in your code), e.g.: ;... (defines listeningQuest and actors a1,a2, a3) ;>> Essential thing to add: ListeningQuest.RegisterForModEvent( "HookAnimationEnd_MyHook", "OnAnimationEnd" ) ;<< then start the scene(s) as you do or eg: If bAggressiveAnim SexLab.QuickStart( a1, a2, a3, victim = a1, hook = "MyHook", AnimationTags="Aggressive") else Actor[] Positions = SexLab.MakeActorArray(a1, a2, a3) SexLab.StartSex(Positions, SexLab.GetAnimationsByTags(Positions.Length, "Vaginal,Anal,Oral", "Aggressive", false), none, none, false, "MyHook" ) endif ;>> and then to listen for the event in some quest>> Scriptname ListeningQuestType extends Quest Quest property QuestToAdvance auto Event OnAnimationEnd(int tid, bool HasPlayer) { Set Stage to 123 when the hooked animation finishes. } UnRegisterForModEvent( "HookAnimationEnd_MyHook" ) QuestToAdvance.SetStage( 123 ) EndEvent You don't need a separate quest; you can put this in the quest-to-advance itself, just has to be running for the entire period (from registerformodevent till animation end...) To start multiple scenes at once just call startSex multiple times with different actors. (Each tread takes care of one scene so you will need separate threads for each different scene.) You'd need hooks on each if you want to wait for all of them to finish. Edited July 18, 2024 by MTB
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now