Jump to content

Sexout Modder Support


Recommended Posts

And another question: is there a variable for when sex ends? I want to reference it in the results script so I can unequip a piece of equipment after a sex act.

Link to comment

if Actor.GetItemCount 00SexoutActor == 0

That should do it. By the way' date=' if you need a hand with the scripts, I'm usually sitting in the IRC. I'm by no means the best scripter on the site, but it might be quicker than the forums.

[/quote']

 

That'll just let you know whether they're not having sex, not that they just finished. You'd have to make a quest variable that you can set to 1 when Actor.00SexoutActor >= 1 and then to find out when sex has ended look for Actor.00SexoutActor == 0 while your quest variable is 1 (be sure to set your variable back to 0 when the script determines a sex act ended).

 

I set up a script to make a specific male NPC appear to have sex with his clothes on so I can write you out a full script if there's only one significant actor you're tracking (like the player, or a certain NPC reference). If this is supposed to apply to anyone, it could get trickier.

Link to comment
  • 2 weeks later...

thanks for creating this. i was reading the manual, and found this bit:

 

Important Bugs

This mostly relates to the banned and restricted lists. NVSE adds a number of

functions to FormLists, including the ability to remove things from them. However,

I have recently discovered what seems to be a bug in their code.

Basically, if you remove something from a FormList, you cannot add anything to it

afterward until it has been emptied.

For ex:

ListAddForm FL 1

ListAddForm FL 2

ListAddForm FL 3

ListAddForm FL 4

ListRemoveForm FL 3

ListAddForm FL 5

Your resulting list will be:

12

4

The 5 is ignored. In order to add things to it again, you have to completely empty

the list first. Then you can add things to it again.

 

If it is anything like regular programming, i think you also need to remove 4 and 5 first and once those are removed then you can remove 3, and once 3 is removed you can re-add 4 and 5 in. It's like the push and pop principle. or you will break the script.

 

so if you want re-add 3 again, first remove 4 and 5 then add 3 and then you can complete by adding 4 and 5 in.

 

The lowest one is the only who can be removed then the one above it etc..

Link to comment

Here's Loogie's dumb question for the day!

 

How do I begin a script so I can attach it to a piece of clothing? I've been looking at the scripts attached to clothing and I can't for the life of me figure out what's so different about them that makes them show up in the armor piece drop box.

 

Essentially what I'm doing is trying to make a quest script trigger when the PC wears a certain outfit, and stop triggering when they're not wearing it.

Link to comment

scn someScriptForLoogie
ref container

begin onEquip
set container to getContainer
if(container == playerRef)
	;do stuff.
endif
end

begin onUnequip
set container to getContainer
if(container == playerRef)
	;do more stuff
endif
end

 

I think that there's a function called GetIsReference that's more accurate that comparing them with "==". But I usually skate by like this.

 

EDIT:

Have some variable in the quest script be turned on and off when the clothing is equipped/unequipped to control when the quest script runs. As in:

scn someQuestScript
short doIt

begin GameMode
    if(doIt == 1)
         ;stuff
    endif
end

scn someScriptForLoogie
ref container

begin onEquip
set container to getContainer
if(container == playerRef)
	set someQuest.doIt to 1
endif
end

begin onUnequip
set container to getContainer
if(container == playerRef)
	set someQuest.doIt to 0
endif
end

Link to comment

I'm attempting this now. Is "container" in the above script to be replaced with the clothing I'm using? Despite referencing the correct quest script and variable, the script won't save. Here's what I made:

 

 

 

scn 00SexoutNCROutfitTrigger

ref container

 

begin onEquip

set container to getContainer

if(container == playerRef)

set 00SexoutNCRQuestScriptt.init to 1

endif

end

 

begin onUnequip

set container to getContainer

if(container == playerRef)

set 00SexoutNCRQuestScript.init to 0

endif

end

 

Link to comment

Looks like you had a little typo. An extra "t" in "Script". But I fixed it and optimized the code. It didn't need the "container" ref. I feel silly for including it in the first place.

 

scn 00SexoutNCROutfitTrigger

begin onEquip 
if(getContainer == playerRef)
	set 00SexoutNCRQuestScript.init to 1
endif
end

begin onUnequip
if(getContainer == playerRef)
	set 00SexoutNCRQuestScript.init to 0
endif
end

Link to comment

Ah, so I did have the typo.

 

Thanks for the clarification, now to see if my plan works or if I'll make the mistake from my Fallout Tactics modding days of not being able to do the logic-math that connects the scripts together to make them work.

 

EDIT: GECK is still refusing to save the script.

Link to comment

That's exactly what I'm doing. So let me get the logic loop straight.

 

The outfit references the quest, the quest then references it's script, then quest turns its script off once the armor is unequipped.

 

Hopefully the really stupid questions should stop soon because I just downloaded GECK power up.

Link to comment

Script saved and got added to the outfit. Next step is to work out how the outfit gets to the player (should be easy) then test it. That's for tomorrow - now it's time to watch Tosh.0 then go to bed.

Link to comment

[i originally asked thsi on the Sexout forum, and was told this is the better place.]

 

Also, after looking at the sexout scripts, I have questions about how Sexout works:

 

It appears when I initiate sex with a CIOS SexoutBegin, it takes its time before actually making them local variables in a running script. As far as I can tell, the SexouBegin script actually initiates things by adding the Supervisor object, whose OnAdd script finally uses those variables and assigns them to locals. Do I have this right?

 

If so, then my question is this:

 

Given that an unknown number of scripts can run between the one doing the CIOS SexoutBegin and the actual execution of the SexoutBegin script, and another unknown number can run between the SexoutBegin script and the onAdd script on the Supervisor, what happens if a second script overwrites the vars set by the first one.

 

I.e. what happens if two SexoutBegin effects are initiated before the supervisor script starts? Or someone does a SexoutBegin between the invoking script and the time the supervisor script runs?

 

I would assume that the second 'call' would overwrite the arguments of the first, then the supervisor would null out those args, and subsequent effect scripts would see null actors and so not do anything. I.e. only one sex animation would run, on the two actors set last.

 

So does that also mean that it is impossible (or at least pointless) to do two SexoutBegin effects in the same script, since only the second will run?

 

And finally, if all this is the case, would it make any sense to create an alternative SexoutBegin that gets its arguments from a FormList rather than by from script variables? If args were pushed on a 'call stack' list, then multiple scripts could invoke Sexout without stepping one each other - and best of all, two SexoutBegins could be done from the same script.

 

The reason I ask is that I'm using the same 'CIOS as function call' trick in my mod, and it is desirable that a single script be able to cast the spell on multiple actors. So what I'm thinking of doing is saying that the invocation mechanism is to add the actors to a list, then have the effect pop them off - i.e. using a form list as an argument stack.

 

Does anyone have any experience with or thoughts about that technique? I'm not an expert on FNV scripting, and I'm sure there are lots of little tricks and gotchas that I'm not aware of yet. But I'm certainly learning a lot by looking at the Sexout code...

Link to comment

GalenZ;

Your concerns / observations are spot on.

 

If you call SexoutBegin twice, the second one will effectively override the first one. I'll take a look at FormList support for calling, but I'm not sure how nicely that'd work. For instance, you can't add a number to a FormList (like, if you wanted to set the duration). So a different method for that would have to be used.

Link to comment

GalenZ;

Your concerns / observations are spot on.

 

If you call SexoutBegin twice' date=' the second one will effectively override the first one. I'll take a look at FormList support for calling, but I'm not sure how nicely that'd work. For instance, you can't add a number to a FormList (like, if you wanted to set the duration). So a different method for that would have to be used.

[/quote']

 

The only stuff that can go in a formlist is stuff that exists in the geck. Nothing else has a real reference ID.

 

It's stupid but that's how it works.

Link to comment

UDLR,

 

I've finished a first Beta of my callback support in Sexout.esm, and have it (and a short demo ESP) ready for upload. Need some beta testers and eyes on.

 

Since it's your baby, any objections to posting it up?

 

What it does:

Provides a method to return control to you (the modder) after sex between actors has completed without everyone having to "reinvent the wheel" watching for 00ActorInSex (or whatever it's called), etc.

 

 

How to use:

 

 

Six new vars available to callers using sexout:

For PCs:

Sexout.refFinishingSpellPC

Sexout.refFinishingItemPC

 

For NPCs:

Sexout.refFinishingSpellNPC

Sexout.refFinishingItemNPC

Sexout.refFinishingDialog

Sexout.refFinishingPackage

 

All take refs.

Spell: Will cast a spell on that actor after sex.

Item: Will give an item to that actor after sex.

Dialog: Will start the indicated conversation (topic name) with the player after sex.

Package: Adds that spell package to the NPC after sex.

 

I've only tested the dialogue bit so far, as that's the most interesting part (to me). The item one will pretty certainly work fine. Spell package and Spells need testing.

 

 

 

Implementation:

 

 

12 reference vars (6 public, 6 "private") added to 00SexoutQuestScript, handled in the normal method alongside the other vars like male/female/sextype.

 

6 temp holding vars in 00SexoutSupervisorItemScript and 00SexoutSupervisorItemSoloScript that work the same basic way as the existing vars.

 

1 new scripted token item, SexoutUpdateToken.

 

The caller can set any/all of the 6 public vars before initiating sex, and they are copied into the spell and cleared as normal when it activates.

 

Right at the end of the sex act, if it finished normally (callbacks not performed on cancel/failure), the 6 private vars on the main quest are set (the 6 ending in GO) and the items are handed out to the actors.

 

The items perform similarly to the other sexout tokens, looking for the vars in the main quest, copying them, clearing them, and using them. NPCs will never run the PC callbacks, and PCs will never run the NPC callbacks.

 

 

 

Known issues:

 

 

1. Var stomping.

The normal "don't try to run a bunch of sexouts in the same script" issue remains. This isn't particularly a sexout issue (most/all mods have a similar problem), but it does introduce additional possible issues with the callbacks.

 

 

If two (or more) sex acts are running at once and finish at exactly the same time (i.e. within a single frame), the wrong act might get the callback vars. You'll know this has happened if you have two acts running, one with callbacks, and the callbacks are run by the other act.

 

Likewise if both have callbacks and they finish at exactly the same time, one may run the callbacks for the other, and the other won't run any.

 

2. NPC + NPC sex

 

If two NPCs are engaged in a sexact, it's a toss-up as to which one will get the callbacks, so I'd avoid using the callbacks on NPCvNPC sex for now.

 

This is the same issue as the first one, really, but it can be fixed to an extent. In the next revision the PC/NPC var names will be changd to male and female, so don't go crazy writing scripts for this if you love it, because all your scripts will break. I will have that version out later today.

 

3. No transitions

 

Sexout just doesn't have them at present. When using dialogue the actors will undress, perform sex, and get dressed. The NPC will approach the PC and initiate dialogue, and continue from there.

 

If you don't want them getting dressed/undressed, start them out naked.

 

If you don't want to wait for them to walk to each other after the post-sex collapse/"ragdoll kick", use a scripted item or spell instead that issues a player.moveto or something like that.

 

4. Rape may interfere with dialogue callbacks.

Being raped seems to somehow set the player unconscious, which will prevent dialogue actions from firing. Don't know what is setting player unconscious, nothing stood out. If you want to use a dialogue callback, don't rape the npc.

 

If you really want to rape, go ahead, but use a spell or scripted item callback instead of dialogue -- you can call startconversation from one of those once the player is awake.

 

 

 

FULL list of sex anims. Perhaps copy to OP?

 

 

This is a full list of the sex anims currently assigned to idles in the game. There are more actual anims in the system but I haven't looked through them yet as they aren't assigned to anything. I did not test these out and don't know how well they all line up beyond the ones already used.

 

Feel free to try them and report back working/not.

 

* means could be used for any combo (MF, FF w strapon, MM)

x means non human

MF means M+F (probably should be * really but.. swordfighting)

F+ means MF or FF

# is the anim # to use.

 

These are all guesses based on looking at the anims one at a time, with a single NPC making motions with no partner.

 

* 1 - spoon

* 2 - standing doggy

* 3 - kneeling doggy

MF 4 - oyster (fem legs behind shoulder)

MF 5 - on back slow missionary

* 6 - reverse cowgirl

* 7 - on lap, facing, her arms around his neck

x 8 - centaur

x 9 - supermutant

x 10 - deathclaw

x 11 - dog (broken)

x 12 - ghoul (violentish legs-up missionary)

* 13 - M gives F a footie

* 14 - F rides M cowgirl

* 15 - F rids M reverse cowgirl

* 16 - ?? (mezz) (cumshot kneeling M -> F doggie?)

* 17 - Slow kneeling doggy

* 18 - Laying eat-out. M legs up at knee, F kneeling and leaning back

* 19 - Masturbation (must assign correct sex). Standing jackoff (M), or laying knees up w/ feet flat (F).

* 20 - ???

* 21 - some kind of masturbation

* 22 - Cowgirl

* 23 - [toy] Baton

* 24 - Deathclaw restrained doggy

* 25 - Dog restrained doggy

* 26 - Centaur (upside down actor)

* 27 - [toy] Pipe

* 28 - [toy] wrench

* 29 - [toy] bottle

* 30 - Kissing

* 31 - Cowgirl (two variations, fast or slow. depending on anim stage)

* 32 - Missionary, F legs up over/on M shoulders

* 33 - Doggy, 2stage for male (cumshot?)

* 34 - Laying leat-out. Looks same as 18.

F 35 - Kneeling masturbation

F 36 - Kneeling masturbation (fondling tit with other hand)

F 37 - Squatting masturbation

F 38 - Kneeling masturbation face on ground (doggy position)

F+ 39 - Kneeling eat-out. F legs crossed, pointed back up past head parallel to body

F+ 40 - Kneeling eat-out. F knees up against shoulders

F+ 41 - Kneeling eat-out. F legs start as #40, then #42 in stage 2

F+ 42 - Kneeling eat-out. F legs splayed out in air

F+ 43 - Face sit, 2 stage (leans forward -> leans back)

F+ 44 - Face sit, 1 stage, leaning forward.

F+ 45 - Eat out. F arched back 'presenting', M laying under hunched forward.

F+ 46 - Eat out. Both laying. M in 'reading a book' type pose.

F+ 47 - Eat out. F laying, feet flat knees bent. M laying on chest, legs up at knee.

F+ 48 - Eat out. Same as 47 but F legs are more relaxed/splayed

F+ 49 - Eat out. F kneeling arched back resting on forearms, M laying legs straight.

F+ 50 - Eat out. F legs back past head crossed (same as 39), M on shins diving in.

x 51 - [spore] Doggy. M slow, F shaking & restrained - RAPEISH

x 52 - [spore] looks identical to #51

x 53 - [spore] looks identical to #51

M 54 - Blowjob. M standing, F on knees.

M 55 - Blowjob. M laying, F kneeling over and stroking thigh

MF 56 - 69. M laying on back not participating. F kneeling over blowing.

F 57 - Lick. F on back legs spread, M kneeling over.

M 58 - Throating. F laying on back hands behind head, M doing 'pushups' on face.

* 59 - Doggy. F presenting, face in ground. M 'crab humping'

* 60 - Sitting. F bouncing on M

MF 61 - Missionary. M hands on chest. F legs splayed.

MF 62 - Missionary. M hands on ground by F head, F legs up, knees bent

* 63 - Cowgirl. M legs straight, hands on waist of F. F leaning hands on ground.

* 64 - Cowgirl (rev). F back arched, tits out, hands behind on chest of M.

* 65 - Doggy. M leaning over, hands wrapped arond F waist. F arm up around M neck.

* 66 - Doggy. (looks like it might be broken)

* 67 - Doggy. F laying face down on ground legs straight.

* 68 - Rockstar doggy. M in lunge position.

* 69 - Standing missionary. F on one leg hands over head. M has one arm around.

* 70 - Missionary. F legs straight up, ankles crossed, arms splayed out on ground.

* 71 - Cowgirl. M feet flat, knees up. F leaning forward.

* 72 - Cowgirl (reverse?). M sitting up, one hand doing something.

* 73 - Missionary. F hanging under M, legs out and up. M on knees arms around F.

* 74 - Doggyspoon. F laying on side bent at waist, legs straight. Male kneeling.

* 75 - Spoon

* 76 - Missionary. F hands benhind back, legs up, knees on/over M shoulders. M hands on ground.

* 77 - Missionary. F hands behind back, legs up, parting at knees. M hands on hammies.

 

 

 

Simple included dialog demo:

In sexoutMulti.esp, Veronica has a new topic added that will work for both male and female PCs that performs one act, followed by another, with dialogue in between, just as a demonstration.

 

She must be a companion obviously, and the topic appears under her "What's up?" dialogue, once you've cleared out her initial ramblings.

 

If you don't have / can't get her as a companion, you can remove the greeting from her and add it to cass (or whoever, must be female for dialogue and sex acts to make sense!), and change the VeronicaREF's in the sexoutMulti quest begin/end scripts to Cass.

 

I was short on time, the next demo ESP will have support for both.

 

No word yet and I'm impatient. If you want me to take it down until you look it over, just say so. :)

 

Versions

Current: multi_v2.rar. V2. 27-Oct-2011. 7:55PM Eastern.

 

 

V2:

Somehow an updated token script got saved to the ESP instead of the ESM. Updated script in ESM, removed it from ESP. ESP should no longer be required for things to work. ESM should work right with other ESPs and ESMs(as intended).

V1: multi_v1.rar

 

 

 

 

Link to comment

Ok, there it is.

 

A new sexout.esm, demo sexoutMulti.esp. Needs veronica as a companion for male or female PC (try both! open the console and type "sexchange" without the quotes.)

 

Known issue: Tell her to masturbate, she won't. Not sure why, sexout is saying she's already involved. Maybe NPCs can't do it, I haven't tried before.

Link to comment

In chasing down a bug with the callback version I uploaded, I've found that if a Raper is set (set Sexout.raper to someNPCREF, not rapers/stalkers esp), the player is set unconscious after the rape.

 

I can't figure out (or haven't yet anyway) what is causing this, but it's preventing dialogue callbacks from working since you (and NPCs) can't talk with unconscious actors.

 

Any ideas what's causing the blackout, and how to stop it? Would be nice to leave alone for 'vanilla' rapes, but not do the knockout bit if the dialogue callback is set.

Link to comment

I don't really mind, although I'm not sure how soon I'll get around to adding it into the thread version.

 

Problem right now is I've basically hit the max script size. In order for this project to move forward in a useful way, I'll need to get some way of splitting scripts without sacrificing anything.

Link to comment

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

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