Jump to content

Recommended Posts

OSL Aroused - Arousal Reborn (SSE & AE)

View File

OSL Aroused - Arousal Reborn

OSL Aroused is a framework independent, SKSE based Arousal Framework. 

It is meant to be a drop-in replacement for both Sexlab Aroused and OAroused, and is fully backwards compatable with all mods using those frameworks.

This is not a direct port of either mod, but created from the ground up, with an SKSE core with goal of minimizing Papyrus script load, while still being fully compatable with mods using either SL Aroused or OAroused.

You can use OSL Aroused if you run just Sexlab, Just OStim, Both Sexlab and Ostim, or neither. Integration with sex framework is automatically detected and enabled if you have the framework installed.

 

 

Primary Features/Goals

 

  • Performance - The core of the system is written in a native SKSE dll to reduce script load
    • There is no script polling or cloaks, any and all perimeter checks are run within native code.
    • All data is managed within the OSLAroused SKSE cosave, *not* Papyrus Utils. This allows for better state management, and players can clear all data at any point from within MCM. (Ie. Significantly reduces and user can solve co-save bloat that SL Aroused traditionally causes)

 

  • New Arousal Mechanics - Complete redesign of how Arousal is updated over time. Performance improvements allow for a more dynamic and reactive system.
    • A "Baseline Arousal" value tracks what an actors arousal wants to move towards over time. This is impacted by things such as Being Naked, Viewing Naked Actors, Wearing Lewd Clothes, Wearing Devices, Sex Scene Participation, etc... This allows for arousal to be impacted by an actors current "State".
    • "Current Arousal" value tracks an actors overall arousal value. It will want to gradually move towards the actors current Baseline Arousal.
    • "Libido" value represents the minimum baseline arousal. It very slowly moves towards the actors current arousal level.

 

  • Backwards Compatible - Should Work with majority of mods using SL Aroused or OAroused without requiring any patches. (Note: Ive only tested a subset of mods, so especially in this pre-alpha state likely many mods that I will need to make updates to properly support if they use SLAroused in funky ways)

 

  • Minimal Dependencies - All unneccessary dependencies are pruned, and neither sexlab nor Ostim are required to run this mod. The adapters for each framework are loaded at runtime if those mods are installed.

 

  • Cross Framework Arousal - Because this is a replacement for both OAroused and SL Aroused, It acts to bridge the arousal system between both frameworks so they both share the same arousal state.

 

  • Keyword Configuration - Built in support for adding keywords to armor at runtime. Currently just Bakas "EroticArmor" and SLS "Bikini" keywords, but trivial for me to add additional keywords (or ability for users to define there own) if there is desire.

 

 

 

 

Requirements

Address Library for SKSE

SKYUI

 

Installation

Place towards the bottom of your load order, MUST OVERWRITE ALL OTHER MODS (like SLSO)

DO NOT INSTALL SexLab Aroused OR OAroused, THIS IS A REPLACEMENT

Both AE and SSE versions are included in the FOMOD, just select correct version on install

 

If you do not use any mods that use OAroused, you can disable OAroused.esp

 

UnInstallation

Shouldn't require any additional steps beyond removing from your load order

 

Configuration

MCM Menu has lots of options.

Use the show arousal key (RCtrl default) while aiming at npc to edit there stats in mcm

Press while not aiming at npc to be able to edit player stats

 

Credits

 

This mod is built off the shoulders of Giants. All the Mechanics/arousal algorithm is pulled from OAroused/SL Aroused
Anyone who worked on SLA or any variant (redneck2x, fishburger67, Lupine00, Baka and anyone else)
Sairon350 for OAroused
powerof3 whose amazing SKSE mods i used for references in learning SKSE

 

 

How Is It Backwards Compatible

Within the zip there is stubbed out versions of SexlabAroused.esm, OAroused.esp, OArousedScript.pex, slaFrameworkScr.pex, slaUtilScr.pex
The scripts redirect all mod requests to OSL Aroused which quickly pipes them to the native dll. OSL Aroused then keeps certain faction/global state that SexLab Aroused requires populated.
The "Adapter" scripts for sexlab/ostim are only loaded if the given framework is found, and handle managing arousal based off scenes.

 

 

 

NEW AROUSAL MECHANICS

 

As of version 2.0.0, the Arousal mechanics has been completely redesigned. These Mechanics should still largely be backwards compatible with sexlab aroused mods.

OSL Aroused uses a robust Arousal Management system, where both "state" and "event" based arousal modification is supported, Baseline Arousal represents the state of arousal the player "wants" to be in. And their Current Arousal will gradually move towards that value. Certain events can directly manipulate your arousal, which will gradually "normalize" back to baseline

 

Many settings are configurable in MCM and can help explain what is impacting what.

 

Historically, Arousal systems primarily drive arousal by a constant increase over time, and increasing arousal by a set amount based off events, or at set intervals if certain conditions are met. Although "Event Based" arousal modification can fit in with those systems rather nicely, there isn't really a mechanism to support "state based" arousal modification beyond just adding to arousal at a set interval. Designing this capability into the fundamental system I believe will  provide for a much more reactive system, and opens up a lot of possibilities for the future.

 

Core Attributes - there are 3 primary values that drive the underlying arousal system.

  • Current Arousal - This value is analogous to the historical Arousal value. It represents an actor's current arousal.
    • This value is modified over time based off Baseline Arousal. Also manipulated based off "Events" (ex. Plug Vibration, Actor Orgasm, Butt Slap, etc... Any "one time" action)
  • Baseline Arousal Represents a "baseline" value that your Current Arousal wants to move towards over time.
    • This Value is determined off of the actors current state. Things like Worn Clothes, Worn Devices, Nearby Naked Actors/Sex Scenes, all impact this value.
  • Libido - Represents actors minimum Baseline Arousal value. It very slowly moves towards actors current arousal value.
    • This is used as a "Longer Term" tracker of arousal state. Remaining at High Arousal will increase your libido, making it easier to remain at high arousal and harder to remain low arousal.
    • Remaining at high arousal will increase your libido towards that arousal value, and to lower libido you need to keep your arousal below your current libido value

 

Raise Current Arousal:

Arousal gains can be triggered from other mods (What SLAroused mods use to manipulate arousal).

OSLAroused will also cause direct arousal gains when a sex scene begins and stage is changed.

Maintaining a Baseline Arousal above Current Arousal will gradually raise your arousal.

 

Lower Current Arousal:

Arousal Loss can also be triggered from other mods (What SLAroused mods use to manipulate arousal).

OSLAroused will also cause direct arousal Loses when an actor orgasms.

Maintaining a Baseline Arousal below Current Arousal will gradually lower your arousal.

 

Raise Baseline Arousal: The following states will increase your Arousal Baseline. See "Baseline Status" MCM menu for breakdown. Values configurable in "Settings"

Actor Nude, or spectating another nude actor

Participating in a sex scene, or spectating a sex scene

Wearing Lewd Clothes (EroticArmor Keyword)

Wearing Devices (Devious Devices and TOYS support) 

 

Lower Baseline Arousal: 

Remove any equipment/states that raise baseline above (ex. clothes, devices etc...)

Baseline is suppressed (lowered) when actor standing in rain [NOTE: Not Implemented yet]

 

 

All the rates and values are configurable via MCM.

 

 

Future Ideas: 

Spells/Potions to manipulate arousal

Vanilla drinks/food? (ale?)

Nearby Dead bodies suppress Baseline Arousal.

Killing Reduces Arousal

???

 

 

Things to be worked on / What I need from you guys

- This is the initial pass at new system. Any feedback on overall design and changes people would like to see are greatly appreciated.

- Feedback on gameplay that people would like and any ideas on things that should manipulate arousal.

- Overall bugs/issues, Let me know if you run into any issues. Or if anything seems off :) 

 

 

What im Currently working on

- Bug Fixes

 

Whats Next?

- A Robust Sex Skill/Addiction framework. Haven't decided whether to bake this into this mod, or have it as a separate optional mod. Ideally I think it should be pretty tightly associated with more robust arousal mechanics mentioned in previous point.

 

Script Source:

https://github.com/ozooma10/OSLAroused

SKSE Source:

https://github.com/ozooma10/OSLAroused-SKSE

 

 

Changelog

 

2.0.3:

  • Able to specify arousal change on scene end (Option for if actor Orgasmed and no-orgasm). "Settings" section of mcm
    • Hopefully this fixes issues people were having with arousal not lowering from scenes.
  • Fixed bug with arousal rising at end of SexLab scene when SLSO not installed.

 

Spoiler

2.0.2:

  • Add Arousal Multiplier Setting for multiplying Arousal manipulation from other mods
    • This is equivalent to Actor ExposureRate in SL Aroused

 

2.0.1:

  • Add SOS Integration - Actor Arousal value updates Schlong Position. Enable in MCM Settings
  • Remove Notification - Removed Notifications from arousal modifications from external mods. (fixes notification spam)

 

2.0.0:

 

  • Complete Arousal Mechanic Overhaul - Complete redesign of how Arousal is updated over time. Performance improvements allow for a more dynamic and reactive system.
    • A "Baseline Arousal" value tracks what an actors arousal wants to move towards over time. This is impacted by things such as Being Naked, Viewing Naked Actors, Wearing Lewd Clothes, Wearing Devices, Sex Scene Participation, etc... This allows for arousal to be impacted by an actors current "State".
    • "Current Arousal" value tracks an actors overall arousal value. It will want to gradually move towards the actors current Baseline Arousal.
    • "Libido" value represents the minimum baseline arousal. It very slowly moves towards the actors current arousal level.

 

0.1.4:

  • Added all Baka SLA / SLAX Keywords/Factions and stubbed anims for SelabAroused.esm.
    • Fixes several issues with integration with Baka family of mods, Creature Framework, and a few other mods
  • Added UI section of MCM to customize Arousal bar behavior
    • Can choose between modes: hide, always show, fade or toggle.
    • Able to change position on screen (X/Y position)

0.1.3:

  • - Fix some bugs with sla stub missing state/functions. Should fix issues occurring with some mods (ex. SL Eager NPCs, Lovers Comfort). Hopefully fixes some of the CTD people were having when loading existing saves with certain mods.

0.1.2: - Fix issue with FOMOD not working in Vortex 

0.1.1:

  • - Created FOMOD to manage installation
  • - Added more Baka keywords (SLA_ArmorPretty, SLA_ArmorHalfNaked, SLA_ArmorSpendex, SLA_HasStockings, EroticArmor)
  • - Added System status page in MCM  for which integrations are loaded. And detection and notification of certain bad installations
  • - Added a patch for Devious Devices to allow Plug/Piercing vibrations to increase arousal
  • - ESL Flagged esp
  • - Few Bug Fixes

0.1.0:

  • Initial Release
  • AE and SE versions

 

 

If you have any feature requests/recommendations PLEASE LET ME KNOW

 

 

 

Thanks for anyone who checks this out. Still Early days but im hoping this becomes pretty awesome.

 

 


  • Submitter
  • Submitted
    02/08/2022
  • Category
  • Requires
    SKSE
  • Regular Edition Compatible
    No

 

Edited by ozooma10
Link to comment

This looks amazing, great work.

 

I think the big thing missing from other arousal implementations is that actor arousal drops to 0 just after orgasm, it really doesn't make a lot of sense. Arousal should increase during sex and after orgasm, but quickly fall after sex, then start increasing more slowly as the actor is "frustrated" or something. This could be done by tracking a rate of change over time for arousal - sex should increase arousal but decrease the rate of change (making it negative). Exposure or time since orgasm should increase the rate of change. Maybe this is easier to do in a more efficient implementation.

 

FYI, if you look in the devious devices source files, you'll see that it actually directly manipulates the internal storageutil data for SLA in some cases because the API is too slow. Unfortunately that probably means your replacement is partially incompatible without a patch to this function in zadLibs.psc.

 

Function UpdateExposure(actor akRef, float val, bool skipMultiplier=false)
	If (akRef == None)
		Error("UpdateExposure passed none reference.")
		return
	EndIf
	float lastRank = Aroused.GetActorExposure(akRef)
	Log("UpdateExposure("+akRef+","+val+","+skipMultiplier+")")
	if skipMultiplier
		; This function is very slow, and sometimes hangs for multiple seconds (Seen 10+). Directly access internals as a work-around.
		; Aroused.SetActorExposure(akRef, (lastRank + val + 1) as Int)
		float newVal = lastRank + val
		if newVal > 100
			newVal = 100
		EndIf
		StorageUtil.SetFloatValue(akRef, "SLAroused.ActorExposure", newVal)
		StorageUtil.SetFloatValue(akRef, "SLAroused.ActorExposureDate", Utility.GetCurrentGameTime())
	Else
		float rate = Aroused.GetActorExposureRate(akRef)
		int newRank = (lastRank + (val as float) * rate) as int	
		Aroused.SetActorExposure(akRef, newRank)
	EndIf
EndFunction

 

Link to comment
30 minutes ago, modball said:

Very nice. Would definitely like to test an SE build.

 

 

Yeah I figured lots of people are still on SE. Need to add support for SE in build system and get it running locally, but will try and have a version ready in the next day or two

 

21 minutes ago, DayTri said:

This looks amazing, great work.

 

I think the big thing missing from other arousal implementations is that actor arousal drops to 0 just after orgasm, it really doesn't make a lot of sense. Arousal should increase during sex and after orgasm, but quickly fall after sex, then start increasing more slowly as the actor is "frustrated" or something. This could be done by tracking a rate of change over time for arousal - sex should increase arousal but decrease the rate of change (making it negative). Exposure or time since orgasm should increase the rate of change. Maybe this is easier to do in a more efficient implementation.

 

FYI, if you look in the devious devices source files, you'll see that it actually directly manipulates the internal storageutil data for SLA in some cases because the API is too slow. Unfortunately that probably means your replacement is partially incompatible without a patch to this function in zadLibs.psc.

 

 

Interesting Ideas! Yeah definately a lot of potential for improvements to the algorithm. Ive largely been focused on getting the foundation of the system in, but want to start thinking about the overall arousal mechanics and improvements that can be made over existing mechanics.

 

Yikes yeah not sure how i missed that. I saw that SLS and YPS do similar direct StorageUtil manipulation in certain places, but deemed those more "Fringe" features that have low impact. Wanted to try and avoid any explicit patches.

 

zadlibs, and some of the features that make use of that updateexposure method are pretty fundamental, so yeah I think a patch will be necessary. Looks like a lot of the plug/chastity related arousal manipulation wont work until then.  Thanks for catching this!

 

Edited by ozooma10
Link to comment

Waiting for SE to test. In the meantime ...
I assume we only need to install those stubs actually required by our load order (i.e. if I only use SL I only need to SexlabAroused.esm ... and the scripts of course)?

Perhaps it would also be possible to provide two version of the stubs a regular one as drop in for existing games and an esl flagged one for new games to save that slot?
Finally will your version support the Baka keywords?
 

Link to comment
16 minutes ago, Talesien said:

Waiting for SE to test. In the meantime ...
I assume we only need to install those stubs actually required by our load order (i.e. if I only use SL I only need to SexlabAroused.esm ... and the scripts of course)?

Perhaps it would also be possible to provide two version of the stubs a regular one as drop in for existing games and an esl flagged one for new games to save that slot?
Finally will your version support the Baka keywords?
 

 

SE version should land soon. I primarly dev/use AE so not going to be as tested but 99% same code, just different build so hopefully no funky issues.

 

In regards to the stubs, Its definately safest to keep everything enabled, since there is no heavy scripts or anything in them, so if they arent used they just sit completely idle. You should be able to disable the esm/esp if you dont have any mods that use those frameworks. I havent tested that too much so will do some testing and make sure it all works as expected, But the core functionality is all within the OSL Aroused module/scripts, so shouldnt break anything.

 

I currently only support bakas "EroticArmor" keyword which should cover triggering events for those mods. Ill add in additional keywords since there is request for that. 

Link to comment

Uploaded SE version. Only did very rudimentary tests that the core system works since don't have a SSE build running with a robust load order.

Let me know if there is any glaring issues with the SSE build. Thanks!

Link to comment

Well done! Over time I'm hoping for similar improvements to the arousal system as SLAX. Namely a setting for minimum time rate and simulation for NPC sexual activity (random orgasm history is generated when they load in based on time passed). The vanilla SLA algorithm is badly designed in regards to NPCs and will over time result in many permanently 0 arousal NPCs and maximum arousal for both the player and those who they bone.

Link to comment
17 minutes ago, Someone92 said:

Do I need both OAroused and OSLAroused if I only use SexLab?

 

You only need OSL Aroused. 
Do not install SL Aroused or OAroused.

 

This mod is a replacement for SL Aroused (and OAroused)

This mod has no dependencies on SexLab, OStim, or any other arousal mod. 

If SL/OStim is not installed, the adapter for the given framework is not loaded and will not run any relevant integration. 

 

Simply by having sexlab installed, OSL Aroused will detect it and automatically enable its Sexlab Integration. (And same for OStim)

 

So for example, your load order can be any of the following:

OSL Aroused
Sexlab, OSL Aroused
OStim, OSL Aroused
Sexlab, OStim, OSL Aroused

 

Link to comment
15 minutes ago, Someone92 said:

I mean the two .esp it comes with, OAroused.esp and OSLAroused.esp.

Yes, in that case you should be able to disable OAroused.esp

 

OSLAroused.esp is required as that is the core of this mod (SexlabAroused.esm is just a stub that redirects external mod requests to OSLAroused.esp)

Link to comment

This sounds fantastic. Sadly I won't have much time for playing the next few weeks. I hope you will stick with this mod and find some good feedback. I would really like a modern version of SLA/X and bringing different frameworks closer together is always a good thing. 

Link to comment
11 hours ago, DayTri said:

I think the big thing missing from other arousal implementations is that actor arousal drops to 0 just after orgasm, it really doesn't make a lot of sense. Arousal should increase during sex and after orgasm, but quickly fall after sex

Hmm interesting, at first I thought if I were having sex and achieved orgasm would I still be aroused? The answer is probably not but what if I was 100 years younger? Then maybe I would still be aroused enough for "another round". So I'd say that older peeps arousal will decrease after orgasm to green levels or 0 , exception to this is if they are a sex maniac/high libido (younger virile peeps would decrease more slowly rather than dropping to zero). If that makes sense?

 

 

 

Link to comment

I gave this a short drive on 1.5.97, only using the Aroused .esm.  Installed in mid-game and that game loaded.  SLEN and SLAC worked as expected.  MME also worked.  I haven't had an Approach event happen yet.  I'll keep using this to see if anything comes up and keep an eye on script latency using Elephant's latence checker.

 

Good work so far.

Link to comment

Just tested for about an hour on SE, seemed to work well enough. The keyword management seems a bit strange though. I expected to be able to mark worn/carried armors for the provided erotic armor and sls_bikiniarmor, the search seems to find only jewelry though, like the Gold Diamond Necklace, but fails to turn up any of the armor I'm wearing or carrying.

Also it overrides two scripts from Radiant Prostitution. Didn't get to check if that makes a discernible difference to that mods function, might be worth investigating though as it's a fairly common mod.


Last but not least any reason you did not ESL flag the oslaroused.esp?

Link to comment
1 hour ago, Nosimo said:

New game required? tried to replace SLAX with this and immediate CTD when trying to load a save (AE)

 

New game isnt strictly required, but i would advise it since the way the underlying arousal data stored is completely different, the save will still have any clutter from the old install of SL Aroused. You can try cleaning from SLA before switching over but i'm not sure how reliable that is.

 

I think safest way would be to do clean/uninstall from old SLA MCM if available. 
Remove old SLA, then clean save (To ensure that none of the old SLA scripts are still running / in bad state)

then install OSLAroused.

 

In regard to crash:  Do you get a crash when starting new game?

Do you mind sending me over Papyrus.log?

 

Also do you mind trying:

Keep OSL Aroused Enabled

Keep SLAX enabled (And overwritting all of osl) 

See if still crashes

Purpose of this is to see if its potentially related to the SexLabAroused.esm stub missing something that your save is trying to load.

 

 

 

 

 

42 minutes ago, perrymwt said:

I haven't had an Approach event happen yet. 

 

Are you using the Keyword Assignment feature, or did you previously add keywords to form? You can check keywords section of OSLAroused MCM to double check the EroticArmor keyword is assigned (assuming thats the keyword you use for approach events)

 

Link to comment
10 minutes ago, Talesien said:

Just tested for about an hour on SE, seemed to work well enough. The keyword management seems a bit strange though. I expected to be able to mark worn/carried armors for the provided erotic armor and sls_bikiniarmor, the search seems to find only jewelry though, like the Gold Diamond Necklace, but fails to turn up any of the armor I'm wearing or carrying.

Also it overrides two scripts from Radiant Prostitution. Didn't get to check if that makes a discernible difference to that mods function, might be worth investigating though as it's a fairly common mod.


Last but not least any reason you did not ESL flag the oslaroused.esp?

 

RE: Keywords: How many items do you have in your inventory? How many armors? Way logic works is loops through items on player and generates list of up to 128 armor. If you have more armor pieces then that will likely cause issues. Ill do some testing with different inventory states, but if you can describe some of the armors that arnt showing i can take a look.

That being said im not thrilled with how the list works now so going to revisit it at some point.

 

Thanks for the heads up about Radiant Prostitution, I'll take a look at what changes radiant makes and make sure those are accounted for if it makes sense.

 

No reason I can think of, So likely can make it an ESL.

Edited by ozooma10
Link to comment
38 minutes ago, ozooma10 said:

RE: Keywords: How many items do you have in your inventory? How many armors? Way logic works is loops through items on player and generates list of up to 128 armor. If you have more armor pieces then that will likely cause issues. Ill do some testing with different inventory states, but if you can describe some of the armors that arnt showing i can take a look.

Nowhere close to that, but I got it to work now. For some odd reason a broken* DD collar seems to have blocked recognition of almost all items. After removing the collar from my inventory, the search works fine now.
*Broken in as far as it was forcefully unequipped by Sky UI, since I had it still set to unequip armor before equipping a new set. DD items do not react well to that.

Link to comment

Just getting started with testing SE version but have not had any luck with existing saves, even after c;leaning/purging old SLA. Even those neglected PC's still awaiting a life outside the abandoned prison, all old saves CTD or freeze on black screen. Can provide NetScriptFramework log if you think it might be useful.

 

New game loads up fine with the same MO2 mod profile. ABBA. ABMM, BWA, DWA and SLSO seem to be working great but SLEN (a must) and Further Lovers Comfort (not sure I even use this) are failing as their MCM menu entries do not populate and papyrus output shows a lot of "Unable to link type of variable" and "Unable to link types associated with function" errors.

 

Particularly with ABBA, it's easy to see the improvement in response times to arousal changes.

 

Very promising mod you have here!

 

Link to comment
11 minutes ago, modball said:

Just getting started with testing SE version but have not had any luck with existing saves, even after c;leaning/purging old SLA. Even those neglected PC's still awaiting a life outside the abandoned prison, all old saves CTD or freeze on black screen. Can provide NetScriptFramework log if you think it might be useful.

 

New game loads up fine with the same MO2 mod profile. ABBA. ABMM, BWA, DWA and SLSO seem to be working great but SLEN (a must) and Further Lovers Comfort (not sure I even use this) are failing as their MCM menu entries do not populate and papyrus output shows a lot of "Unable to link type of variable" and "Unable to link types associated with function" errors.

 

Particularly with ABBA, it's easy to see the improvement in response times to arousal changes.

 

Very promising mod you have here!

 

 

Do you mind sending over papyrus/netscriptframework logs for when you try and load an existing save that CTD?

 

 

I will check out SLEN and Further Lovers and see whats up. What mod is ABBA?

Link to comment
15 minutes ago, ozooma10 said:

 

Do you mind sending over papyrus/netscriptframework logs for when you try and load an existing save that CTD?

 

 

I will check out SLEN and Further Lovers and see whats up. What mod is ABBA?

 

I think SLEN was my problem on the other save, if doesn't seem to be hooking into your version of arousal.    Resaver  says 2 script instances whose data is missing SLENAnimationFactory and SLENMCMScript, doesn't CTD on a new save but SLEN just doesn't properly startup.    Can get you logs tomorrow night if you still need them.  I believe abba is arousal based breast adjuster

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