Jump to content

SexLab Framework Development


Recommended Posts

Hi Ashal,

 

the upgrade went fine for me. The overview of registered animations is great.

I started out with

384 character animation and

199 creature animation.

 

After updating to the latest animation collections I am interested in I now end up with:

408 character animation and

212 creature animation

 

that said, considering the output of the numerous amazing animators, it won't be long before hitting the 500 mark, I fear... maybe a level like 700 or 750 would be better. 

But maybe there are technical limitations, I don't know.

Just thoughts from someone who cannot bring myself to deselect individual animations... it's just great to stumble across new and never seen before animations.

 

In any case, thanks for the current limit increase.

So far, no issues found but I haven't tested everything yet.

 

 

Idea (probably already discussed and dismissed):

a third sex to represent futa.

currently you get flagged as male and hence get restricted to animations with male involvement.

 

I use by default skyrimll's Hormones mod. When receiving one of the sex change curses I typically end up as futa, not male.

In addition, I allow SOS to randomly distribute, in low percentage, schlongs to females so they would be affected as well, obviously.

It would be great if, with the third sex, all animations were available (no filter applied).

 

Link to comment

Tested the 1.62 beta. Bug report: Cum textures on NPCs disappear as soon as the player moves to a new cell via a door or equivalent, regardless of the timer setting. This bug occurs in 1.61 as well, but did not occur in 1.60 as far as I can remember.

 

EDIT: It doesn't happen during some minor cell transitions. For example, it doesn't happen when transitioning between Whiterun and the smaller buildings in Whiterun, but it does happen when transitioning between Whiterun and Dragonsreach.

Link to comment

Bug with tags

Log

[05/26/2016 - 11:15:14PM] SEXLAB - Animations[324] Leito_XCross_Doggy - Leito XCross Doggy
[05/26/2016 - 11:15:14PM] SEXLAB - Animations[325] Leito_XCross_Standing - Leito XCross Standing

[05/26/2016 - 11:15:16PM] SEXLAB - GetByTags(ActorCount=2, Tags=XCross, TagsSuppressed=, RequireAll=TRUE)
 

SexLab.GetAnimationsByTags(2,"XCross") returns none

 

If I look into SLAL package for Leito_XCross_Standing I see

"tags": "Leito,Penis,Pussy,Vaginal,Leito,VaginalCum,AnimObject,Furniture,Aggressive,Dirty,XCross"

 

 

Bug with names

Log:

[05/26/2016 - 11:15:14PM] SEXLAB - Animations[325] Leito_XCross_Standing - Leito XCross Standing

 

SexLab.GetAnimationByName("Leito XCross Standing") returns none

 

It could be a SLAL issue - but it worked for SL 1.61 and I have not updated SLAL.

 

And of course I have run FNIS after SL1.62 patch...

 

Link to comment

Another strange issue:

In my script I does:

sslBaseAnimation[] anims = SexLab.GetAnimationsByTags(2,"Pillory")
hasPillorySex = anims != none && anims.Length > 0

In log I see

[05/26/2016 - 11:15:16PM] Error: Cannot cast from None to sslBaseAnimation[]
 

Link to comment

Another strange issue:

In my script I does:

sslBaseAnimation[] anims = SexLab.GetAnimationsByTags(2,"Pillory")
hasPillorySex = anims != none && anims.Length > 0

In log I see

[05/26/2016 - 11:15:16PM] Error: Cannot cast from None to sslBaseAnimation[]

 

 

That is normal.

Change your code to:

 

sslBaseAnimation[] anims = SexLab.GetAnimationsByTags(2,"Pillory")
hasPillorySex = anims && anims.Length > 0
Link to comment

Hey, Ashal, the git repo for SexLab is broken.  This also means people can't access the documentation.  It's really putting a stopper in a mod I'm working on.

 

the documentation is build into the script files, most everything you should need is need is written in SexLabFramework.psc

Link to comment

 

Hey, Ashal, the git repo for SexLab is broken.  This also means people can't access the documentation.  It's really putting a stopper in a mod I'm working on.

 

the documentation is build into the script files, most everything you should need is need is written in SexLabFramework.psc

 

Aww, darn :/

 

I was hoping the github would have more information than the script files.

Link to comment

Strange - now GetByTags("XCross") returns something - but GetByName() still not

 

Is that a ZazAnimation related search? 

 

Previously, the main problem that's gone unfixed with current version of ZazAnimations is that Zaz would forcibly use the raw Tags string[] array while adding it's tags. This conflicted with later changes to SexLab that ALSO used the raw string[] array and concanted onto the first 2 indexes to build the gender tag info on the fly. So if Zaz was adding Tags[0] = "XCross" once SexLab finished with it, would become "Tags[0] = "XCrossFM"

 

This has changed in 1.62, so SexLab now no longer conflicts with Zaz's behavior there.

 

Nothing however, has changed about the handling of names. The only reason I can see for that being an issue before and now is if SLAL was doing something weird I'm not aware of, or because ZazAnimations actually uses translation strings for their names instead of raw strings.

 

Obviously, none of these issues should present themselves with 1.62 UNTIL the animation registry has been reset or a new game started with it. Otherwise none of the changes to animations would be applied.

 

If it's not a ZazAnimation issue, I'd strongly hazard a guess a it has something to with whatever SLAL is doing and no longer jives well with whatever various changes have happened in 1.62. Which I guess really brings me to pointing out one of the main modder feedbacks I was hoping for in this beta:

 

There is one missing feature from this beta; a built in JSON animation loader, similar to the existing SexLab Animation Loader. I have it mostly finished but built into SexLab itself and with a few more customization options. However, since SLAL already exists and is successful, I've been hesitant to spend the time needed to finish it. The major parts of it are all finished, I just need finalize the setup and put it through some testing. However since SLAL has been doing well and already has so many packs released, I'm not sure it's really needed anymore and I don't want to obsolete the hard work that has already been put into that mod. I'm interested in hearing some feedback from the relevant modders and animators on this if possible before I decide to finish it up or not for the final release of 1.62.

Link to comment

Hey Ashal , can you explain abit more about scaling in 1.62?  Will we be able to set scaling on/off par race or per animation?

 

Anytime SexLab uses

ActorRef.SetScale(x.yz)

is now instead

if !Config.DisableScale
    ActorRef.SetScale(x.yz)
endIf 

It's a precautionary option, one that will fix a problem for some people, and if enabled should have no discernible effect for the majority. It has nothing to do with race, creatures, or anything else. It's just a way to remove a sometimes problematic function for people, that is known to cause crashes for certain individuals while it's use is mostly just mildly cosmetic.

Link to comment

that said, considering the output of the numerous amazing animators, it won't be long before hitting the 500 mark, I fear... maybe a level like 700 or 750 would be better. 

But maybe there are technical limitations, I don't know.

Just thoughts from someone who cannot bring myself to deselect individual animations... it's just great to stumble across new and never seen before animations.

 

I'd love nothing more than to increase it more, or make it unlimited for that matter. Both come with various problems though.

 

As the system is now, the more I increase the limit, the more it encourages larges amounts of animations, which is great! Except it's not great - I already find how slow SexLab can be to start an animation painful, and installing more and more animations compounds this problem significantly. 

 

Mods/SexLab were already slow to filter through 375 animations, increasing it to 500 now like I have is only making that slower. Though it is to the benefit of added variety, which is great. It continues to be a tradeoff, and the bigger I make the limit the less positive the tradeoff becomes in my opinion. 

 

The solution should be to remove the usage of sslBaseAnimation entirely, and just move animation storing to C++ handlers in an SKSE plugin. Searching for animations would be near instant then, and the limit would be become practically unlimited. And I've done just that! At least I have partially in test versions at least. I've setup and tested handlers for storing animations in the SexLabUtil.dll plugin, but everytime I go to implement them papyrus side, things fall apart when it comes to trying to support currently existing mods. Making current SexLab mods continue to work without forcing them to fix/update things, while also making such a HUGE change in how sexlab handles animation storage, is no simple task.

 

 

 

 

the documentation is build into the script files, most everything you should need is need is written in SexLabFramework.psc

 

Aww, darn :/

 

I was hoping the github would have more information than the script files.

 

What specifically were you looking for there? The SexLabFramework script docs are pretty full as far as I can consider. The only thing really missing I think are some animation/voice/expression registration guides on the gitlab, which were were pretty out of date and have plenty of existing mods to download and learn from if really necessary. 

 

If you have a question not covered in the docs in the script (or gitlab, whenever it's back up) you're perfectly free to ask. Asking such questions is half the reason this thread exists to begin with, and are one of the few tech support related private messages I respond to.

Link to comment

 

Hey Ashal , can you explain abit more about scaling in 1.62?  Will we be able to set scaling on/off par race or per animation?

 

Anytime SexLab uses

ActorRef.SetScale(x.yz)

is now instead

if !Config.DisableScale
    ActorRef.SetScale(x.yz)
endIf 

It's a precautionary option, one that will fix a problem for some people, and if enabled should have no discernible effect for the majority. It has nothing to do with race, creatures, or anything else. It's just a way to remove a sometimes problematic function for people, that is known to cause crashes for certain individuals while it's use is mostly just mildly cosmetic.

 

 

In that case i implore you to reconsider again adding option to set scaling on/off for race or per animation. Especially if you will move onto FO4.

Atm we have to choose between having human actors scaled right and suffer gigantinc spiders/chaurses/chaurus flyers/chaurs hoppers, or having no scaling whatsoever wich makes aligining human races almost impossible. Those are easily the most requested races for me to animate and ones that i personally want to animate aswell. Its something ive been waiting for from the day i discovered sexlab. I beg you, please make them usable.

Link to comment

 

 

Hey Ashal , can you explain abit more about scaling in 1.62?  Will we be able to set scaling on/off par race or per animation?

 

Anytime SexLab uses

ActorRef.SetScale(x.yz)
is now instead

if !Config.DisableScale
    ActorRef.SetScale(x.yz)
endIf 
It's a precautionary option, one that will fix a problem for some people, and if enabled should have no discernible effect for the majority. It has nothing to do with race, creatures, or anything else. It's just a way to remove a sometimes problematic function for people, that is known to cause crashes for certain individuals while it's use is mostly just mildly cosmetic.

 

 

In that case i implore you to reconsider again adding option to set scaling on/off for race or per animation. Especially if you will move onto FO4.

Atm we have to choose between having human actors scaled right and suffer gigantinc spiders/chaurses/chaurus flyers/chaurs hoppers, or having no scaling whatsoever wich makes aligining human races almost impossible. Those are easily the most requested races for me to animate and ones that i personally want to animate aswell. Its something ive been waiting for from the day i discovered sexlab. I beg you, please make them usable.

 

 

Sorry, but it's too niche of a problem, and not the absolute solution you think it is. There are too many variables to account for any one solutions to be the one and only solution.  And even then, it's not a problem I think is solved as easily as adding race specific scales. Scales don't work as simply in Skyrim as many people seem to think. There are odd vanilla differences, on top of the added 3rd party differences from different mods altering skeletons, races, and meshes. "solving" the problem will just as likely break it for another major faction of users.

 

This is the exact sort of issue I think is solvable best by a separate mod that plugs into SexLab, so it can be configured and fixed by the few people who are affected by it. It wouldn't be hard for separate mod to hook into the start and end of a creature animation and alter the actor scales by whatever configuration they have figured out to solve it or let the user set.

 

As an example, I can almost guarantee that if you find several charus or spiders in game, and apply to them via spell a simple "Creature.SetScale(Creature.GetScale())" which you logically would think just make them set to their current scale as is and do absolutely nothing, but instead probably make them all very different sizes. Scales are simply fucked between papyrus and gamebryo as far as I can tell...

 

For the main framework, it's simply not something I'm personally invested enough in to investigate further than I already have, and don't believe it's as easily solvable as setting custom race scales. If somebody can clearly prove me wrong and provide an easy solution. Great! I'll include it in the framework asap. Otherwise it's time spent I'd rather put into other problems.

 

Not trying to dismiss the problem, I recognize it IS in fact an issue, and I honestly tried putting in my due diligence on this problem to fix it. I came out empty handed after so much time spent, and it just doesn't feel like enough of a major problem to me to continue putting more time into.

 

 

That said. Knowing what I know now of the game engine from my Skyrim experience. I can promise this sort of problem is exactly the sort of thing I plan to strongly keep in mind while building a Fallout 4 version from the ground up.

Link to comment

There is one missing feature from this beta; a built in JSON animation loader, similar to the existing SexLab Animation Loader. I have it mostly finished but built into SexLab itself and with a few more customization options. However, since SLAL already exists and is successful, I've been hesitant to spend the time needed to finish it. The major parts of it are all finished, I just need finalize the setup and put it through some testing. However since SLAL has been doing well and already has so many packs released, I'm not sure it's really needed anymore and I don't want to obsolete the hard work that has already been put into that mod. I'm interested in hearing some feedback from the relevant modders and animators on this if possible before I decide to finish it up or not for the final release of 1.62.

I would like to see that built in just to reduce the number of mods in the load order but with the new mod merging tool that's not nearly as big a deal.

Link to comment

From my P.O.V.  SLAL integration is the one and only major missing feature - it would most likely speed up startup because it reduces the inter-mod-communication a lot - however - I would definitely prefer a Sexlab Framework for Fallout 4...

Link to comment

 

 

 

-snip-

 

What specifically were you looking for there? The SexLabFramework script docs are pretty full as far as I can consider. The only thing really missing I think are some animation/voice/expression registration guides on the gitlab, which were were pretty out of date and have plenty of existing mods to download and learn from if really necessary. 

 

If you have a question not covered in the docs in the script (or gitlab, whenever it's back up) you're perfectly free to ask. Asking such questions is half the reason this thread exists to begin with, and are one of the few tech support related private messages I respond to.

 

 

Hey, thanks!  I'm responding to an animation end event using SexLab's track actor function.  That part works perfectly.  But now I want to apply a spell to all actors involved in the event, and I can't find any way to access a list of participants.

 

I've found several functions and properties that would do the job in sslThreadModel.psc but, frustrating, they're all marked as hidden.  I can't find any public members that can let find out which actors are in the thread.

 

The only public thing I've found is sslThreadModel.PositionAlias(), but it returns a sslActorAlias, not an Actor.  I've searched through sslActorAlias, thinking there would be a way to get the Actor it's pointing to, and found sslActorAlias.ActorRef.  But, as fate would have it, that's also hidden.

 

EDIT: Here's a snippet of my code, so you can see what I'm trying to do.

 

 

 

Scriptname BCMFUT_SapSchlongEffectScript extends activemagiceffect  

	BCMFUT_QuestScript Property bcmFut auto
	BCMFUT_MCMScript Property mcm auto
	
	Event OnEffectStart(Actor akTarget, Actor akCaster)
		
		;--snip--
		
		bcmFut.sexlab.TrackActor(akTarget, "SapSchlongOrgasm")
		RegisterForModEvent("SapSchlongOrgasm_End", "OnAnimationEnd")
		
	EndEvent
	
	Event OnEffectFinish(Actor akTarget, Actor akCaster)
	
		;Untrack and unregister for any events
		bcmFut.sexlab.UntrackActor(akTarget, "SapSchlongOrgasm")
		UnregisterForAllModEvents()
		
	EndEvent
	
	Event OnAnimationEnd(Form formRef, int tid)
		BCMFUT_Debug.Print("Animation end event detected")
		
		;Find a partner
		Actor akPartner = None
		bool break = false
		int i = 0
		int actorCount = thread.ActorCount    ;This is NOT private
        
		while (i < actorCount && !break)
			if (thread.Positions[i] != GetTargetActor())	;This IS private.
				akPartner = thread.Positions[i]
				break = true
			endif
		
			i += 1
		endwhile
		
		OrgasmStuff(akPartner)
	
	EndEvent
	
	
	;Misc functions
	
	Function OrgasmStuff(Actor akPartner)

		;--snip
		
	EndFunction
	
	Function GrowPartnerSchlong(Actor akPartner, int amount)
		;--snip
		
	EndFunction 

 

 

 

That's what I would do, if Positions[] weren't hidden.  I'm sure there's a correct way to do this, but I can't find it by only reading the comments and ctrl+f'ing through the scripts.

Link to comment

 

that said, considering the output of the numerous amazing animators, it won't be long before hitting the 500 mark, I fear... maybe a level like 700 or 750 would be better. 

But maybe there are technical limitations, I don't know.

Just thoughts from someone who cannot bring myself to deselect individual animations... it's just great to stumble across new and never seen before animations.

 

I'd love nothing more than to increase it more, or make it unlimited for that matter. Both come with various problems though.

 

As the system is now, the more I increase the limit, the more it encourages larges amounts of animations, which is great! Except it's not great - I already find how slow SexLab can be to start an animation painful, and installing more and more animations compounds this problem significantly. 

 

Mods/SexLab were already slow to filter through 375 animations, increasing it to 500 now like I have is only making that slower. Though it is to the benefit of added variety, which is great. It continues to be a tradeoff, and the bigger I make the limit the less positive the tradeoff becomes in my opinion. 

 

The solution should be to remove the usage of sslBaseAnimation entirely, and just move animation storing to C++ handlers in an SKSE plugin. Searching for animations would be near instant then, and the limit would be become practically unlimited. And I've done just that! At least I have partially in test versions at least. I've setup and tested handlers for storing animations in the SexLabUtil.dll plugin, but everytime I go to implement them papyrus side, things fall apart when it comes to trying to support currently existing mods. Making current SexLab mods continue to work without forcing them to fix/update things, while also making such a HUGE change in how sexlab handles animation storage, is no simple task.

 

[snip]

...

 

Thanks for elaborating. And I get the scope of this endeavour and maybe not worth the trouble that will come in its wake. It is what it is and what it is, is already great. Having SexLab Framework in the first place is already more that anyone could have ever hoped for.

I suppose I never realized part of the slowness of my current Skyrim configuration could be related to this, then again, I am bad (*understatement of the year*) at restraining myself with all these amazing mods available that I manage to kill papyrus through overload on a regular base anyway :)

 

cheers

Link to comment

I've found several functions and properties that would do the job in sslThreadModel.psc but, frustrating, they're all marked as hidden.  I can't find any public members that can let find out which actors are in the thread.

 

The only public thing I've found is sslThreadModel.PositionAlias(), but it returns a sslActorAlias, not an Actor.  I've searched through sslActorAlias, thinking there would be a way to get the Actor it's pointing to, and found sslActorAlias.ActorRef.  But, as fate would have it, that's also hidden.

 

EDIT: Here's a snippet of my code, so you can see what I'm trying to do.

 

 

 

Scriptname BCMFUT_SapSchlongEffectScript extends activemagiceffect  

	BCMFUT_QuestScript Property bcmFut auto
	BCMFUT_MCMScript Property mcm auto
	
	Event OnEffectStart(Actor akTarget, Actor akCaster)
		
		;--snip--
		
		bcmFut.sexlab.TrackActor(akTarget, "SapSchlongOrgasm")
		RegisterForModEvent("SapSchlongOrgasm_End", "OnAnimationEnd")
		
	EndEvent
	
	Event OnEffectFinish(Actor akTarget, Actor akCaster)
	
		;Untrack and unregister for any events
		bcmFut.sexlab.UntrackActor(akTarget, "SapSchlongOrgasm")
		UnregisterForAllModEvents()
		
	EndEvent
	
	Event OnAnimationEnd(Form formRef, int tid)
		BCMFUT_Debug.Print("Animation end event detected")
		
		;Find a partner
		Actor akPartner = None
		bool break = false
		int i = 0
		int actorCount = thread.ActorCount    ;This is NOT private
        
		while (i < actorCount && !break)
			if (thread.Positions[i] != GetTargetActor())	;This IS private.
				akPartner = thread.Positions[i]
				break = true
			endif
		
			i += 1
		endwhile
		
		OrgasmStuff(akPartner)
	
	EndEvent
	
	
	;Misc functions
	
	Function OrgasmStuff(Actor akPartner)

		;--snip
		
	EndFunction
	
	Function GrowPartnerSchlong(Actor akPartner, int amount)
		;--snip
		
	EndFunction 

 

 

What you want is something like

	Event OnAnimationEnd(Form formRef, int tid)
		; // tid contains the id of the scene the tracked actor is in
		; // use GetController to get the thread instance with it.
		sslThreadController Thread = bcmFut.sexlab.GetController(tid)
		if Thread
			; // Get the list of actors that were in the scene and loop through them
			Actor[] Positions = Thread.Positions
			int i = Positions.Length
			while i
				i -= 1
				Actor kPartner = Positions[i]
				; // (optional) Only do something with them if they AREN'T the one who was tracked
				if kPartner && kPartner != formRef
					; // Do stuff with kPartner
				endIf
			endwhile
		endIf
	EndEvent

That's what I would do, if Positions[] weren't hidden. I'm sure there's a correct way to do this, but I can't find it by only reading the comments and ctrl+f'ing through the scripts.

Positions[] being hidden just means it's not viewable from the properties window in the Creation Kit., you can still access it via scripts just fine.

 

 


 

Bug with tags

Log

[05/26/2016 - 11:15:14PM] SEXLAB - Animations[324] Leito_XCross_Doggy - Leito XCross Doggy

[05/26/2016 - 11:15:14PM] SEXLAB - Animations[325] Leito_XCross_Standing - Leito XCross Standing

[05/26/2016 - 11:15:16PM] SEXLAB - GetByTags(ActorCount=2, Tags=XCross, TagsSuppressed=, RequireAll=TRUE)

 

SexLab.GetAnimationsByTags(2,"XCross") returns none

 

If I look into SLAL package for Leito_XCross_Standing I see

"tags": "Leito,Penis,Pussy,Vaginal,Leito,VaginalCum,AnimObject,Furniture,Aggressive,Dirty,XCross"

 

 

Bug with names

Log:

[05/26/2016 - 11:15:14PM] SEXLAB - Animations[325] Leito_XCross_Standing - Leito XCross Standing

 

SexLab.GetAnimationByName("Leito XCross Standing") returns none

 

It could be a SLAL issue - but it worked for SL 1.61 and I have not updated SLAL.

 

And of course I have run FNIS after SL1.62 patch...

Anymore details you can give on this? Working on finishing up the final version but want to make sure this is fixed first if possible.

Link to comment

 

Bug with tags

Log

[05/26/2016 - 11:15:14PM] SEXLAB - Animations[324] Leito_XCross_Doggy - Leito XCross Doggy

[05/26/2016 - 11:15:14PM] SEXLAB - Animations[325] Leito_XCross_Standing - Leito XCross Standing

[05/26/2016 - 11:15:16PM] SEXLAB - GetByTags(ActorCount=2, Tags=XCross, TagsSuppressed=, RequireAll=TRUE)

 

SexLab.GetAnimationsByTags(2,"XCross") returns none

 

If I look into SLAL package for Leito_XCross_Standing I see

"tags": "Leito,Penis,Pussy,Vaginal,Leito,VaginalCum,AnimObject,Furniture,Aggressive,Dirty,XCross"

 

 

Bug with names

Log:

[05/26/2016 - 11:15:14PM] SEXLAB - Animations[325] Leito_XCross_Standing - Leito XCross Standing

 

SexLab.GetAnimationByName("Leito XCross Standing") returns none

 

It could be a SLAL issue - but it worked for SL 1.61 and I have not updated SLAL.

 

And of course I have run FNIS after SL1.62 patch...

Anymore details you can give on this? Working on finishing up the final version but want to make sure this is fixed first if possible.

 

I believe this issue is somehow related to Devious Devices Integration (Newest version only). I had the same issue until i downgraded it. 

Link to comment

Continued with adding SLAL type functionality to the framework instead of finishing up 1.62, and am nearly done so the actual final 1.62 should hopefully follow in a couple days.

  • Json loaded animations are pulled from a list of 2 default folder, so any 3rd partY mod can simply add their needed json files to this folder and be read.
    • /data/SKSE/Plugins/SexLab/AnimationsCharacter/<registryname>.json
    • /data/SKSE/Plugins/SexLab/AnimationsCreature/<registryname>.json
  • 3rd party mods can also define a custom folder to load animation files from, via SexLab.LoadJsonAnimations(string Folder)
  • Existing sslBaseAnimation objects have a ExportJSON() function that will output its current settings to a specified (or default) folder.
  • Should be tracking and allow for multiple animation and stage specific settings that SLAL currently does not as far as I'm aware. Such as stage specific SFX, cum settings, multiple race type+gender support.
  • I originally planned this feature partially as an excuse for myself to learn nodejs by making a app/parser that helps animators auto generate their needed json files or final package that would fit with the needed syntax for this style of animation loading. Since I'm now more limited on time and hoping to move onto Fallout 4 sooner rather than later, the status of such a parser is currently unknown. 
  • Uses all PapyrusUtil/JsonUtil functions, not JContainers. Previous release of PapyrusUtil included undocumented JsonUtil functions for handling the setting/getting of custom formatted json files instead of just the rigid structure it previously had.
  • This is what an animations json file looks like:
    FILENAME: ArrokDoggyStyle.json
{
	"enabled" : 1,
	"name" : "Arrok DoggyStyle",
	"sfx" : [ "416305|SexLab.esm" ],
	"tags" : [ "FM", "MF", "Creampie", "Beds", "Reverse", "Doggy", "DoggyStyle", "Vaginal", "Penis", "sex", "BBP", "Arrok" ],
	"positions" : 
	[
		{
			"gender" : 1,
			"stages" : 
			[
				{
					"animation" : "Arrok_DoggyStyle_A1_S1",
					"flags" : [ 0, 0, 1, 0, 3, -1 ],
					"offsets" : [ 0, 0, 0, 0 ]
				},
				{
					"animation" : "Arrok_DoggyStyle_A1_S2",
					"flags" : [ 0, 0, 1, 0, 3, -1 ],
					"offsets" : [ 0, 0, 0, 0 ]
				},
				{
					"animation" : "Arrok_DoggyStyle_A1_S3",
					"flags" : [ 0, 0, 1, 0, 3, -1 ],
					"offsets" : [ 0, 0, 0, 0 ]
				},
				{
					"animation" : "Arrok_DoggyStyle_A1_S4",
					"flags" : [ 0, 0, 1, 0, 3, -1 ],
					"offsets" : [ 0, 0, 0, 0 ]
				}
			]
		},
		{
			"gender" : 0,
			"stages" : 
			[
				{
					"animation" : "Arrok_DoggyStyle_A2_S1",
					"flags" : [ 0, 0, 1, -2, -1, -1 ],
					"offsets" : [ -100, 0, 0, 0 ]
				},
				{
					"animation" : "Arrok_DoggyStyle_A2_S2",
					"flags" : [ 0, 0, 1, -2, -1, -1 ],
					"offsets" : [ -100, 0, 0, 0 ]
				},
				{
					"animation" : "Arrok_DoggyStyle_A2_S3",
					"flags" : [ 0, 0, 1, -2, -1, -1 ],
					"offsets" : [ -100, 0, 0, 0 ]
				},
				{
					"animation" : "Arrok_DoggyStyle_A2_S4",
					"flags" : [ 0, 0, 1, -2, -1, -1 ],
					"offsets" : [ -100, 0, 0, 0 ]
				}
			]
		}
	]
}

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