Jump to content

7 Screenshots

About This File

This allows you to have sexual history in the form of stats in your game. It is similar to what SexLab has. You can integrate this to your mods or use as is, it is highly customizable.

 

What it does

 

Tracks actor's "events" history: how many times, with whom, which kind of "event" happened. It allows tracking of all basic sex types + sex positions.

  • Types = "consensual" / "actor was forcing themselves onto .." / "actor was forced by .."
  • Positions = "anal / oral / vaginal / other"
    • + group/rough since v1.13 ("rough" is not the same as "non consensual" unless configured to be so in MCM)
    • + solo/kissing since v1.16 (kissing is treated the same way as anal/oral/vaginal tracking-wise)
  • Locations (since v1.7): last place where the event took place, both actors and their partners
  • First partners (since v 1.7) - i.e. those who "took virginity"
  • Total / per partner "events" duration (since v1.8)
    • Since v1.10 duration is tracked for every dimension AAF History stores

 

It also tracks partners and partner-specific history, i.e. all the stats above will be also visible for specific partner. Starting v1.4 it also will assign some basic proficiency titles according to the count of events with the respective tags. Starting v1.9 you can use MCM to customize what is displayed.

 

Design Ideology

 

This was created with a "normal" way of doing events in mind. This means that for scenes involving 2 human partners it should always work without any issues (gender doesn't matter). Solo is supported, it is tracked as a separate stat and also for solo events any other stat won't be tracked. I added support for group scenes to the best of my ability, but there are different ways to treat such scenes without the "right for all". So expect issues with it. There is also no different races support - the mod will assume it to be human (starting v1.5 the mod will show races names, but that's it, stats won't be accounted differently) and you can check how it works. Or if it doesn't. I actually didn't check. And I honestly won't check it.

 

Installation

  • Install AAF with LLFP!
    • You can also install LLFP separately
  • Install AAF History
  • Done

 

Uninstallation

  • Load game with the mod installed
  • Go to 'MCM' > 'AAF History' > 'Admin' > 'Reset Stats'
  • Save the game
  • Uninstall the mod
  • Load the game, confirm missing plugins
  • Save the game again
  • Done

 

How To See Stats

 

When PC will have first sex after installing the mod, the item "Sex Diary Of <actor name>" will be added. It's a note which you can read to see the stats. Important: the NPC(s) that were involved in the scene will also all get their respective "Sex Diary" items! This means you can loot it by whatever means (openactorcontainer 1 in console as a way to go) and see their stats as well. In this case PC will be listed as one of their partners. Looting isn't lore-friendly, though - in the sense that even after PC loots the diary, it will still be updated should more events with that actors occur.

 

Don't Like The Diary?

 

Welcome to the MCM page. Customize it to your heart's content. You can disable / enable practically any presented information in the diary. You can even change fonts.

 

Limitations

 

  • Can only track up to 128 actors (potentially) for the Papyrus limitations. In reality it will more likely be 64 because every actor creates 2 records (one for itself and one as a partner, it's necessary for retrieving records)
  • For group activities, it will record all involved actors "one to many" as partners.  Example: The activity involved actors P, Q, R. Passive is P, actives are Q, R. This results in P -> [Q, R]; Q -> [P], R -> [P] as partners.
    • There is another way to think about it (as in - record all possible partners for all participants) which also makes sense. However I made a choice in favor of one-to-many instead of many-to-many because the former allows to save actor entries space while the latter also doesn't make sense for non-consensual scenes (in this case group actually does it with only 1 passive actor).
  • For creatures - I honestly do not know what it will do. Likely to work with some minor glitches. I will not fix these. I will not make bestiality patches. Sorry.
  • Relies on AAF's tags and meta, so if that fails - the stats will be wrongly accounted. "Fails" also includes "this mod doesn't know all the ways AAF communicates specific things" (so not to blame AAF for anything)
    • Starting v1.6, this can be somewhat fixed for some animations which report incorrect tags where I was able to clearly get what type they are. Enable tags override feature for this fix. It only affects this mod behavior and not the AAF one (so any other mods will be unaware of this). If you think some animations report wrong stats - I can try to include the fix into this feature.

 

Known Issues

 

  • Capital letters inconsistencies, misaligned text. These are the quirks of the game text replacement, not something I can fix. I'd say I already push the limits of in-game text processing to its limits with this mod.
  • Group "activities" will likely be inaccurately recognized. The count should always be correct, but it is very possible that aggressors (if any) won't be all correctly determined. When the case is ambiguous, the mod assumes "submissive female" PC and sets her passive role / "dominant male" PC and sets him active role.
  • In some rare cases when Papyrus is overloaded, it can fail to replace the text resulting in a "Token.Name=Diary" instead of the text in the diary. 'MCM' > 'AAF History' > 'Admin' > 'Update Diaries' fixes this.

 

How To Use In Mods

Spoiler

 

If you want to use it, I'd recommend first - not to do it (right now). It's because: this is my first AAF mod ever + I'm not a modder + this is the first release. So it would be wise to wait while it's refined. Still, if you insist:




Quest AES_QUST_Kernel = Game.GetFormFromFile(0x00000800, "AAFExtendedStats.esp") as quest
AES:AES_Kernel AESAPI = AES_QUST_Kernel as AES:AES_Kernel
if !AESAPI
	; do something
endif

; AESAPI is now ready to be used

- to get the API. You can then use it as:




AES_Actor_Entry entry = AESAPI.GetRepositoryManager().GetActorEntry(akActor)
; entry will contain the wrapper for requested actor with its stats and partners storage
; see the code to understand what methods are in there
; I recommend going to AES:AES_Util script since it uses all possible AES stats
; You can then check how to retrieve specific stats, albeit the code is self-explanatory

- to operate on the actor entry. I will not provide documentation for it (for now) since: it's likely to be extended with some sort of proper API, and more importantly, documenting things takes a lot of time. SAF case taught me not to do this prior to the first attempt of somebody to integrate with the mod.

 

 

Temporary

 

It was initially part of SAF which I decided to decouple from it since some might want to have history but not SAF. As such, it shares some of the engine with SAF, but does not require it.

 

Credits

 

@twistedtrebla : I extracted the logic of types positions recognition from FPSH

@dagobaking : Wiki for AAF (obviously)


What's New in Version 2.3

Released

This version contains fixes mostly - you can skip it unless you experience the specific issue described here or if you're a modder relying on its events.

 

  • Fixed some asymmetry issues when reporting the animation change events
  • Fixed some stats issues for pre-update events
  • Added the option to configure hardcoded character genders. This appears as two new sections in AAFHistory.ini file:
    • Gender.Male: you can add the actors which you want to be always recognized as males in the format Reference=Plugin
    • Gender.Female: you can add the actors which you want to be always recognized as females in the format Reference=Plugin

 

The config-defined characters genders are optional, the mod should work as earlier even without placing anything there. It's added as a last resort feature in cases when the mod incorrectly determines the character gender (this can happen if you use some of the mods that reset ActorBase gender flag to 0 for example). See the config for examples on how to define the records.

 

The logic of gender determination now works as following:

  1. Check if the actor was found in Gender.Male list. If it was, is it a male
  2. Check if the actor was found in Gender.Female list. If it was, is it a female
  3. If none of the above happened, employ the default gender resolution according to the ActorBase gender flag

 

Therefore, if you define the same actor in both Gender.Male and Gender.Female sections, the male section will take precedence.

 

Update: It's safe to simply update to a new version and let internal self-updater do its job.

 

Older changelog

Spoiler

v2.2

 

Thanks to the ongoing improvements and investigation happening in Lewd Talks mod, this mod gets its share of bugfixes too - as does this version.

  • Fixed the bug with attempting to unregister the scene hash when it does not exist
  • Fixed orphan Fallout Fantasy script references
  • Addressed Papyrus errors and warnings on several empty DS access attempts
  • Optimized the OnAnimationStop event so that it no longer dispatched the event for NPC-NPC interaction when the corresponding MCM setting was not enabled 

 

Update: It's safe to simply update to a new version and let internal self-updater do its job.

 

 

v2.1

his version is a hotfix attempts to fix unintended internal dependency on Fallout Fantasy. I have no guarantee that it's 100% fixed, yet I tested it extensively without FF4 now and it should be running well.

 

Updating: Clean save is absolutely necessary. Prior to updating to 2.1, remove any files that are left from 2.0!

 

v2.0

Due to internal data structures change to support new functions, this is a major update. You cannot rely on the automatic versions update that's build into AAF History (even though it will report it to be successful).

 

Updating

  • Load your game
  • Reset all diaries from the MCM menu
  • Save your game, exit
  • Remove the mod
  • Clean your save from the AAFExtendedstats-related scripts
  • Load your game, confirm missing plugin
  • Save your game, exit
  • Install new version of the mod

 

Changes

 

  • No longer considered beta (at this point the feedback - or lack of thereof - hints it works stable enough)
  • Added new events:
    • OnPreUpdate: Occurs OnAnimationStart and OnAnimationChange. Goal is to provide the API for the mods that want to react during the deed. Note that since none of the AAF History internals are yet invoked, this event contains raw data
    • OnPostUpdate: Occurs OnAnimationStop after stats change. Intended use is to be paired up with pre update for the mods which need termination signal from AAF History. This is sent only if the update actually happened and can be used to determine that fact as well
  • Added possibility to prevent the stats from updating (use the OnPreUpdate for catching that and send the UnregisterSceneHash call) - useful if you don't want the stats to be updated for the event from your mod.
  • Added configurable tags and positions override. You can now define those in AAFHistory.ini (located in the Data/F4SE/Plugins folder)
  • Added new MCM options

 

v1.17-beta

Fixes for the mods which integrate with AAF History. This is a release for supporting Fallout⁴ Fantasy. If you don't have it installed - you can skip this update.

 


Other Files from Operand


×
×
  • 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