Machiavelique Posted February 10 Posted February 10 (edited) SexoutNG '98 BETA 4 View File SexoutNG 2.10.98 Beta 4 This new beta version is based on Sexout 2.10.98 beta 2. Neutron_rus and I reworked certain scripts, fixed certain issues, improved the positioning and synchronisation of actors and fixed some files in meshes folder. AllNarta also fixed some of the Sexout animation that caused crashs. The intention of the Sexout 2.10.98 beta X is not to completely overhaul Sexout, but simply to add major fixes and an up-to-date installation guide until the final version of SexoutNG 2.11 is released. Requirements: - NVSE 6.2.6 - JIP 57.15 - MCM 1.51 I) Installation: For any type of installation I recommend using MO2 as your mod manager Installation with SOFA 2025-04-19 1.5.5.0 (recommanded) First, do not install "SexoutNG 2.10.98 beta 4 - Full Pack" if you want to play with SOFA (Sexout Framework Assortment), You have 2 solutions for installation with SOFA, one clean but not easy, the other less clean but very easy. Cleanest but less easy way (recommanded) Spoiler - Install SOFA 2025-04-19 1.5.5.0 - Manually delete* Sexout.esm, SexoutPosNew.esp, SexoutAnimManagement.esp - Then in meshes\characters\_male\idleanims, manually delete* the following folders: AP BondageAnimations Expressions FNV_Animations_Project HangedLegionRape OldStuff sex SexAnims SexoutAmra SexoutNG XXXAnims XXXAnims2 - Then in meshes\creatures, manually delete* the following folders: nightstalker NVSecuritron - Then install "SexoutNG 2.10.98 beta 4 - SOFA Pack". - "SexoutNG 2.10.98 beta 4 - SOFA Pack" can be loaded before/after SOFA (better before cause it contains sexout.esm). - On the MO2 data tab, click on "refresh" to refresh the data structure, otherwise you also can restart your mod manager. If everything has been done correctly, there should be no conflict between SOFA and SexoutNG 2.10.98 beta4: If you load SexoutNG after SOFA, check "sexout.esm" is loaded before every .esp/.esm from SOFA (Spunk, Pregnancy etc) If you use MO2, it manages load orders very well and you shouldn't get any problems. delete* : How to delete/restore files with MO2 Spoiler Delete: In MO2, right click on your SOFA CORE (left windows) and Open in Explorer. Then delete Sexout.esm, SexoutPosNew.esp, SexoutAnimManagement.esp Then in meshes\characters\_male\idleanims,delete the specified folders Then in meshes\creatures, delete the specified folders Restore: In case of trouble you can easily repair your SOFA installation with right click, "Reinstall Mod", "Manual" Then select only: - In Data (root): Sexout.esm, SexoutPosNew.esp, SexoutAnimManagement.esp - In Data\meshes\characters\_male\idleanims: AP BondageAnimations Expressions FNV_Animations_Project HangedLegionRape OldStuff sex SexAnims SexoutAmra SexoutNG XXXAnims XXXAnims2 - In Data\meshes\creatures: nightstalker NVSecuritron (deselect everything else) Click on "OK", then "Merge" You're SOFA installation has now been repaired Easy but less cleaner way (not recommanded) Spoiler - Install SOFA - Then install "SexoutNG 2.10.98 beta 4 - SOFA Pack". - In your load order, "SexoutNG 2.10.98 - SOFA Pack" need to be loaded after SOFA This method is simpler but less clean because you accept having conflicts between SOFA and SexoutNG 2.10.98 beta4. That's why you will need SexoutNG 2.10.98 beta4 to overwritte SOFA. Note that these installations will be simpler in the future, when sexoutNG 2.11 will be finalized, tested, and recognized stable then all its new contents will be integrated back into SOFA. In the meantime version 2.10.98 beta 4 is the most stable version we currently have. Installation without SOFA If you prefer an old-style installation (with lighter framwork), just follow this: - Disable and uninstall any previous version of SexoutNG (CORE + DATA + BODIES) - Disable and uninstall any version of SexoutPosNew.esp, SexoutAnimManagement.esp, SexoutSlavery.esm, NX NVSE - Install "SexoutNG 2.10.98 beta 4 - Full Pack" if you want to play with SexoutSpunk, download and install the last version of Spunk (1.0109) Custom Installation (Advanced users only) NOT YET UP TO DATE FOR 2.10.98 beta 4 If you prefer a fully customised installation, you can download the CORE and DATA from SexoutNG 2.10.97. Retrieve the 'meshes' folder in SexoutNG - CORE 2.10.97 and place it in SexoutNG - DATA 2.10.97 Delete your SexoutNG - CORE 2.10.97 (zip+folder) cause you no longer need it. Retrieve the sexout.esm from this page (in the "SexoutNG 2.10.98 SOFA Pack" or "Full Pack") and place it in SexoutNG - DATA 2.10.97 Rename your SexoutNG - DATA 2.10.97 in a new name like "SexoutNG - 2.10.98b3 - CUSTOM" In this "SexoutNG - 2.10.98b3 - CUSTOM", you have everything for Sexout to work except nude Male/Female bodies and NX NVSE v.19. But this is a custom installation and you're an advanced user, so it's up to you to complete your customised installation. Then you can add everything you think needed (NX NVSE v.19, meshes & textures for nude bodies, SexoutPosNew.esp, SexoutAnimManagement.esp, SexoutSlavery.esm...) for your Sexout custom installation. Once you have done this, select all files, zip them and install. You can also add nothing more in this folder and just select all files in your "SexoutNG - 2.10.98b3 - CUSTOM", zip them and install. This means you still need nude Male/Female bodies and NX NVSE v.19, but you can install them later. if you have no nude bodies installed, you can download and install SexoutNG - Bodies 1.1.1 from SexoutNG 2.10.97. if you do not have NX NVSE v.19 installed, you will also need to download and install it manually (in DATA/NVSE/plugins). if you want SexoutPosNew, SexoutAnimManagement, SexoutSlavery etc, you will also need to install each of them. II) Downloadable Files Content: SexoutNG 2.10.98 beta 4 - Full Pack Spoiler Sexout required several files which were separated into 3 packages (CORE - DATA - BODIES). This 3 packages are now merged in a unique 'Full Pack'. To be more precise, this 'Full Pack' contains: - CORE: 2.10.97 -- 23-December-2016 - DATA: 2.10.97 -- 23-December-2016 - BODIES: 1.1.1 -- 25-July-2015 - Sexout.esm v2.10.98b4 (overwritte) - SexoutPosNew.esp v2.6 (overwritte) - SexoutAnimManagement.esp v.7 (added) - Sexout-Beta-Change-Log.txt (overwritte) - NX NVSE v.19 (added) - Lastest meshes fix by AllNarta & Neutron_rus (added) SexoutNG 2.10.98 beta 4 - SOFA Pack Spoiler This package only contains: - Sexout.esm 2.10.98b34 - SexoutPosNew.esp v2.6 - SexoutAnimManagement.esp v.7 - Sexout-Beta-Change-Log.txt - Lastest meshes fix by AllNarta & Neutron_rus WIP SexoutNG 2.11.3 beta 2 Spoiler This package is a Work In Progress for the next big update of SexoutNG. Unlike SexoutNG 2.10.98 beta 2 or beta 4 (which are indicated as ‘beta’ just because we don't want to risk indicating them as ‘stable’ ), Versions of SexoutNG 2.11.X beta X will really be beta versions, with possibility to be unstable. Use this version if you want to help test SexoutNG 2.11.X, report bugs and speed up the development process. Many thanks to Neutron_rus for starting this new version of SexoutNG. Requirements: - NVSE 6.3.6 - JIP 57.15 - JohnnyGuitar NVSE 5.12 Installation: You need to install WIP SexoutNG 2.11.3 beta 2 as a patch to overwritte SexoutNG So you need to install any version of SexoutNG first (between 2.10.97 to 2.10.98 beta 4) Then install WIP SexoutNG 2.11.3 beta 2 In your load order, load WIP SexoutNG 2.11.3 beta 2 after SexoutNG (or SOFA if you use SOFA) Known issues - If you use AllNarta animations, you also need to download and install 'WIP_Sexout2.11.2b4_AllnartaSexoutAnimations.zip' - ActorX won't watch the scene and will continue doing their own thing (don't know if it's a thing in regular version) - penis model might not appear if actor was not naked (possibly because not all animations have penis props) - Initial positioning of actors might be off due to bad synchronization and fast code execution (manual positioning or anim switching fixes that) - Sticky Z axis on npc (move npc about 30-50 units up to unstick) - Extra x5 speed added when fastmode is enabled doesn't reset in mcm to show original value (happens only during active positioning) - Some original offsets is not properly converted to new system (need manual adjusting) - In some animations it's impossible to tweak Z pos axis due to havok pushing out character Next step: -add/improve description to new mcm elements -load order for external animation patches -add confirmation message on saving offsets Notes There's no checks on if prop model and/or animation files are exist when animation is called, and if nothing will be found, it will spam some errors in console. (in case of package that includes ini for allnarta's animations, make sure to have files from original mod installed) Since animations are dynamically generated, external plugins doesn't really required to use animations. For now there's no dynamic 'reset' animation, so some animations will consistently result in bugged camera after the act. (may add this function later) Note to Allnarta I removed animation loader code from 'fnSexoutAddAnimToMod', now it's only purpose is to generate ini files. I commented out 'call fnSexoutAddInternalAnimsAllnarta' in 'AllnartasAnimationsQuestScript', to not regenerate ini on load. This call will now be done by sexout itself if main animation folders is empty (and only if plugin is enabled in load order), manual call of commented script in console will regenerate ini files as well (with exception of tentacle prop). Prop parser is in 'fnSexoutParseAnimObjects'. Release history Spoiler WIP 2.11.3 beta 2 (June 30 2025) - Moved animation loader to run after 'sexout is ready' flag is set (should fix problem with first loading of sexout or upgrade from 2.10) Neutron - Added failsafe check to temporary animation array to make sure it's ready to be used Neutron WIP 2.11.3 beta 1 (May 23 2025) - Recoded SexoutNGEffectBaseScriptF, SexoutNGUndressSpellSCRIPT, SexoutNGCleanupEffectSCRIPT to improve reliability and readability (Each script has more autonomy is now able to detect a problem and deal with it itself without requering a ton of NX variables to communicate with other scripts). Also, SexoutNGEffectBaseScriptF no longer need all actors regain consciousness to dispel the SexoutStartSpell (so a concious actor now can start sex again without waiting his/her partner wakeup). Also fixed anything I found to prevent stuck tokens and better ensure that CB stuff will be executed (CBDialogue, CBSpell, CBDispel, CBPackage etc). Machiavelique - Recoded SexoutNGConvCBQuestSCRIPT to significantly improve the way CB dialogues are handled. They will no longer be deleted after a certain number of failures and will now try to trigger another CB dialogue instead. They will no longer be deleted when player is too distant from the actor (or changes cell) or when player changes his/her load order or even when player disables the mod to which the actor belongs. Also Added several additionnals check. Machiavelique - Merged SexoutNGCallSort with fnSexoutActRunFull (This way, when ActRunFull return '1' this means that the anim will really start). Machiavelique - Merged the 3 MCM clothes menu (Player clothes, Male clothes, Female clothes) in 1 clothes setting menu. Machiavelique - Enhanced positioning adjustment to bypass push out by havok physics, especially happens often in npc x npc acts (need to see how good it will work in the long run). Neutron - Enhanced scripts so they'll now handles errors when Player is in a Cell too distant from a sex scene (excepted for SexoutNGUndressSpellSCRIPT which has not been modified for legacy support until the non-WIP version). Theses scripts will no longer crash and keep running as long as the game engine doesn't delete them, but I can't prevent the game engine to dispel theses scripts (This will eventually happen after a certain amount of time, which can range from 0s to a few minutes). Machiavelique - Has taken care to maintain compatibility with SCR, AllNartaSexoutAnimations and A-Lust, as these mods overwrite Sexout (if you use A-Lust.esm, you will need at least A-Lust v1.4.0). Machiavelique - Switched back from fnSexoutReload3D to regular code in SexoutNGEffectBaseScriptF, as it changes how timings are working and in some cases (usually in interiors) may cause player model to disappear. Neutron - Disabled Fast-travel when an animation is running cause it's cause same errors that when Player is too distant (and maybe more again), and it also would be a pity to miss the show, wouldn't it ? Machiavelique - Edited fnSexoutActorCleanup so that's now fully clean the actor (remove all working NX + token). Machiavelique - Edited fnSexoutActorLock/Unlock so that's no longer return the fnSexoutActorValid value when it fail. Now it's just return '0' (fail) or '1' (success). Machiavelique - Edited fnSexoutActorValid to print debug message explaining why actor is invalid. Machiavelique - Fixed dark shading of human characters during acts. Neutron - Fixed situations where offsets may carry over to another animation on swap. Neutron - Fixed mcm menu for synchronization delay setting. Neutron - Fixed fnSexoutSetFlag which didn't work when arg 'iATS' = 1. Machiavelique - Fixed fnSexoutLegacyHookEvent which didn't check whether the actor keys are valid which resulted in errors. Machiavelique - Fixed minor oversight in SexoutNGPlayerControlsQScript and SexoutNGSoundScript. Machiavelique - Fixed fnSexoutUpgrade which not worked well for upgrade from 2.10.x to 2.11. Machiavelique - Fixed bad Sexout values for "pen" array in AnimDef declaration which caused error in Spunk. Neutron - Fixed fnSexoutToggleCreatureModels which loaded the default "penisprop.ini" even when the creature has a prop declared in AnimDef (also, some of creatures prop in AnimDef.ini seem to need reviewing). Machiavelique - Fixed the prop creature which didn't displayed for Anim[1721] by just changing the AnimDef "SecuritronPenisOnly.nif" to "penisprop.nif" (but "SecuritronPenisOnly.nif" works fine for protectron). Machiavelique - Fixed tongue which was on the wrong actor for some anim in AnimDef.ini and also some "pen" definitions. Machiavelique - Fixed the player dying during sex to prevent game to be blocked. Machiavelique - Fixed the 'Anal Chance' which was null when ActorA was blocked for 'oral sex' instead of was blocked for 'wearing chastity belt' (Thanks to AllNarta, I didn't see this issue). Machiavelique - Removed update3d in initial phase for human actors (was breaking allnarta's a-lust). Neutron - Removed fnSexoutActValidity (Not reliable enough to detect and fix issues). Machiavelique - Added Anim Monitoring feature (Check if something wrong, display a debug report, fix the issue). It will also display a "Warning Message" when you're too distant from a sex scene, inviting you to come back. If you don't, actors in sex may permanently disappear (native problem). Machiavelique - Added a MCM option to Enable/Disable Anim Monitoring. Machiavelique - Added the ability to easily cleanup an actor from the console (in case of trouble), just click on the actor and type: Call fnSexoutActorCleanup (of course, don't do it when the actor play a sexout animation). Machiavelique - Added a temporary mutant.ini patch to fix some positions. Neutron WIP 2.11.2 beta 5 (April 27 2025) - Fixed some of legacy code support Neutron - Added npc tfik Neutron 2.11.2 beta 4 (April 26 2025) - Fixed custom creature prop function Neutron - Decreased amount of update3d/updateplayer3d, before only creatures use update3d (removing them makes whole animation setup to look glitchy, but stutter-free) Neutron - Update3d/updateplayer3d remains at the end as is, so there's no need to worry about custom skeletons or stuck face animation Neutron - Added dispatch event when undress starts Neutron - Actrunfull now can fix bad calls if 2 the same actors are placed before other actor ("ActorA"::player, "ActorB"::player, "ActorC"::this) Neutron - A bit more smooth positioning Neutron - Added reset of tilt angle on hotreload for player and npcs Neutron - Fixed crash when sex occurs with NPCs only Machiavelique - Removed AllNartaAnimDef from Sexout Machiavelique - Updated WIP_Sexout2.11.2b4_AllnartaSexoutAnimations to include AllNartaAnimDef Machiavelique 2.11.2 beta 3 (April 21 2025) - A bit refactored positioning Neutron - Fixed crash with creature animation Neutron - Add the x/y axis rotation feature for positioning actors Neutron 2.11.2 beta 2 (April 18 2025) - Fixed initial angle positioning, now it can properly account focus actor's angles Neutron - Fixed x5 to positioning speed bug in mcm, now it shows correct value no matter what Neutron - Fixed 'load defaults' button when user doesn't have global.ini file, now it loads exactly default settings instead of possible preset config files (if they existed before hand) Neutron - Fixed positioning controls where X and Y position buttons were inverted (doesn't affect actual offsets) Neutron 2.11.2 beta 1 (April 15 2025) - Fixed emotion morphs in some .kf files, which was set-up incorrectly and caused crash Allnarta & Neutron - integrated SexoutAnimPositioning code into Sexout. (WIP) Neutron -So SexoutAnimPositioning plugin won't work and probably cause crashes (notification has been added and should work, but had not been tested yet) Neutron - added option to save offsets (per animation or bulk, bulk is mcm only for now) Neutron - added option to save offsets in external patch files to not overwrite global files (load order is not done yet) Neutron - added animation patcher to apply offsets from external patches (patching undefined animations will result in error as there's no extra checks yet) Neutron - reorganized mcm (some elements still doesn't have proper description, elements that's not implemented yet is hidden for now) Neutron - added option to save/load config presets Neutron - added Global config file to share settings between saves (can be disabled in mcm for active save file) Neutron - restored player-only tfik for now Neutron - fixed 'flags' not working correctly Neutron - switched initial actor positioning to local coordinates Neutron - new offset system (old one is not supported now, but ini generator can convert old format to new one) Neutron - refactored initial actor positioning code Neutron - added slope detection before starting an act (settings in mcm doesn't have proper description yet) Neutron - animation loader works 2-4 times faster Neutron - misc fixes and reworks Neutron 2.11.1 beta 1 (March 30 2025) - reorganized most if statement conditions to increase accuracy and to be able to better track errors in code structure Neutron - fixed cbdialogs (at least I haven't noticed anything strange) Neutron - added new method to reset animations and camera (possibly faces too, not tested) Neutron - added experimental option to disable knockdown in mcm KO menu - (delay for walking, redressing and cbdialog is decreased if KO disabled) Neutron - added version check for Johnny Guitar plugin v5.12 (forgot to do so before) Neutron - semi working/broken attempt to fix tfik, by default enabled for all actors, can be changed in mcm General menu -- as I used a bit different way of doing it, even player model will be clipping from time to time (code can be found in SexoutNGEffectBaseScriptF, SexoutNGMain) Neutron - small cleanup of old code Neutron - decreased amount of crashes (gets even more stable with disabled ragdoll) Neutron 2.11.0 beta 1 (March 05 2025) - added animation loader from ini files Neutron - added functions to create dynamic animation (animation information is parsed from ini files, no geck required) Neutron - added functions to create dynamic animated objects (for now supports up to 5 models per actor, zaz ones only uses up to 2, so full functionality is not tested) Neutron - slightly rewrote old code, but overall everything remains the same Neutron III) Integrated Mods Description: SexoutSlavery.esm v1.4.11 Spoiler This mod is a framework which provide to Mod Authors a couple of features to make slavery in FNV. This mod is include in Sexout packages since a while and I don't intend to break this tradition. SexoutPosNew.esp v2.6 Spoiler Requirements: - NVSE 6.2.6 or HIGHER When a SexoutNG sex act begins AND the player is involved, Sexout positioning allows moving actors by using NumPAD keys below 1 - Rotate (-) selected actor 2 - Move selected actor backwards 3 - Move selected actor down 4 - Move selected actor left 5 - Toggle Fast Mode (you can get the actors moving more quickly) 6 - Move selected actor right 7 - Rotate (+) selected actor 8 - Move selected actor forwards 9 - Move selected actor up 0 - Toggle sexout timer on and off / - Change selected actor * - Toggle select ALL actors (keys 1-9 will now move all actors if toggled on, select previous selected actor if toggled off) . - Reset all actor positions to starting position + - Display the offsets position in the console These keys can be configured via the MCM menu Release History Spoiler Version 2.6 (February 02 2025) - Fixed the call to the Sexout Pause function which was no longer working with the new NVSE versions (issue with the Compiler Override). - Fixed the error when you selected many actors and pressed the Console Dump Offsets Key. - Fixed the missing X/Y position when you press the Console Dump OffsetsKey (cause moving X/Y is relative to the Player referential whereas positions diplayed in console are relative to the World referential). - Added a fVersion variable in PosMainScript Version 2.5 (January 31 2016) Working: - From scratch remake of Astymma's plugin, I kept his math at the core, but redesigned the whole system to take advantage of NVSE4 (reducing ~1200 lines of code to 189 ) - Includes all features of previous plugin, including the MCM I added. - Added rotational adjustments on Z-axis. - Added key to toggle between normal/fast movement speed. - Better info messages. Partial.. - Added ability to save and load offsets on a per-animation basis. The save/load scripting works, but I think I have a logic error in the math, so loaded offsets don't always match what you saved. - Rotation on X/Y-axis code present, but requires update on sexout side. Keys are not bindable. Controls - defaults to the num pad, but customizable in MCM: Movement:'Y-axis': Forward (Num 8) / Backward (Num 2)'X-axis': Left (Num 4) / Right (Num 6)'Z-axis': Up (Num 9 'PgUp') / Down (Num 3 'PgDn') Rotation:'Z-axis': Clockwise (Num 7) / Anti (Num 1) Other:'Fast Mode Toggle': (Num 5)'Select Next Actor': (Num /)'Select All Actors': (Num *)'Pause Timer': (Num 0)'Reset All': (Num . 'Del')'Console Dump Offsets': (Num +)'Switch Positon': (Left Alt) SexoutAnimManagement.esp v.7 Spoiler Requirements: NVSE 5.1beta4 or HIGHER JIP 55.10 or HIGHER AnimManagement allow you to block/unblock Sexout animations. This is why you can also test the animation with a right-click (see features below). MCM Key Binding Right / NumPad6 : Display the next plugin (Sexout.esm -->Sexout-Amra --> ZAZ --> etc) Left / NumPad4 : Display the previous plugin (Sexout.esm <-- Sexout-Amra <-- ZAZ <-- etc) Forward / NumPad8 : Display the blocked anims for the current plugin Right click : Play the selected animation Save/Load AnimManagement configuration using an .INI File In the MCM Menu, use your 'Right Key' or Numpad6 until the last page. Select an .INI file, then choose the Import or export option. By defaut AnimManagement creates a empty file 'Anim_Configuration.ini' where you can export your configuration. This file is located in Data\Config\AnimManagement. If you wish to have several configuration files, you will need to create them manually and place them in this directory (simply create an empty text file and rename its extension to .ini). You can add a maximum of 10 files. Of course, you can create more, but MCM will only display the first 10 (sort in alphabetical order). Display / Block animation in real time Conditions : An animation is running and you are involved in this animation Aim / Block : Display the references of this animation (Plugin name and Anim number) Attack : Block / Unblock this animation Compatibility issue: The animation player manager of AnimManagement works with instantiated NPCs that are destroyed at the end of the sex scene. Destroying NPCs will cause script errors with mods that have spotted these NPCs to start doing stuff with them (example: SexAssault, Unethical Deeds, Hook-up, etc) as the reference of these NPCs will become ‘NULL’ when destroyed. To limit these problems in the future, the NX variable "SO:NotNow" is set on all instantiated NPCs. Mods that do not check the value of this variable before using an NPC will be affected by this problem. Information for mod Authors: Spoiler In AnimManagement, NPCs are destroyed using the following code: rCurrentActor.NX_ClrEVFl "SO:NotNow" rCurrentActor.Kill Let rCurrentActor.Disable Let rCurrentActor.MarkForDelete Problem is MarkForDelete may occurs several frame later, which is why the NPC is also killed and disabled. You generally want to check GetDead and/or GetDisable before using an NPC, so checking "SO:NotNow" || GetDead || GetDisabled before using an NPC should prevent any issue Release History Spoiler Version 7 (June 08 2024) - Cleaning up scripts (there was a lot of dead code and things that will no longer be useful following the changes made in v.7) - Support AllNarta animations - Fixed the multiple ‘shows anim’ windows overlaying each other and the issue of plugins being skipped when the relevant key was held down - The ‘arrow Keys’ (for browsing plugins) are replaced by 'Left', 'Right', 'Forward' (And NumPad4, NumPad6, NumPad8). These changes are essential because they prevent the emergence of a bug inherent in MCM. - Added a "Requirements check" function (check NVSE + JIP versions) to enable/disable AnimManagement - Added Sexout Actor Filters information in MCM Menu - Added 'Right click' feature to play the selected animation - Added 'Save/Load .INI' feature. This feature already exists in previous versions but I don't know if it worked properly because the script doesn't compile. It required an old ‘Lutana NVSE’ plugin (supposedly now included in JIP NVSE, but I suppose the new versions of JIP have made the script obsolete...) - Added pretty little arrows to plugin names to indicate that you can switch plugins (it's really so marvellous^^) IV) Framework Function added: (actorsList:array) fnSexoutGetLocalActorsRange iRange:int Works in the same way that fnSexoutGetLocalActors but with a range. I didn't want to set a limit for iRange, however I recommend not exceeding a range of 2. V) Known issues and compatibility: SexoutNGRapeFlagsFix SexoutNG 2.10.98 beta 3 contains all fixes from SexoutNGRapeFlagsFix and more. So Keeping this mod enable will remove certain fixes as the positioning of the actors in the threesome animations. So please disable and uninstall "SexoutNGRapeFlagsFix.esp" SexoutSpunk 1.0108 (and lower versions) If you play with SexoutSpunk with arousal enabled, you can get minor issue when you end the pause animation. So please now use SexoutSpunk 1.0109 or higher If you use SOFA: Make sure to use SOFA 2025-04-19 1.5.5.0 or HIGHER. SexoutAnimPosFix.esp SexoutNG 2.10.98 beta 3 and SexoutPosNew 2.6 definitively fixes the issue with the Sexout's 'Pause' function. Keeping this mod will overwritte some of my additionnals fixes. So please disable and uninstall SexoutAnimPosFix.esp Note that it is not Sexout that is incompatible with SexoutAnimPosFix, but SexoutPosNew.esp v2.6 included in all sexoutNG 2.10.98 beta 3 packages. /!\ Below is a copy/past from "Readme - SexoutNG.txt" (I don't know if this is still the case or even what these mods are) Sexout is INCOMPATABLE with some other popular mods (these first two may not be true since the switch to PlayIdle in '94) - Umpa's dance mod, and any mod based on it or similar to it. See the official NG download thread at lovers lab, first post, to learn how to correct this problem in such mods. - Body by Race. Works for some people, not for others. YMMV. Sexout does nothing 'magical' when it comes to bodies, so BBR *should* work fine, but some people say it doesn't. - Other sex mods. These will work fine, but you will experience side effects in certain cases. The main problem is, being different "engines" for sex, they are oblivious to one another. Individual mods have protections to prevent an actor from engaging in a new sex act while they are already performing one. These protections do not exist "cross-mod" though. Nothing more at this time beyond normal Sexout issues which will likely be a while before they are fixed, such as the player becoming invisible. (I've also looked into this problem and I have to admit I haven't found the slightest clue as to the cause...). VI) Credits and Acknowledgements: A lot of people have worked on Sexout and helped make this mod what it is today. I don't know them, but I'd really like their names to be mentioned so that they can be thanked for their contributions. So I've taken the list of thanks from the "Readme - SexoutNG.txt" and included a special thank to Odessa for all the work she's done. Many people have been instrumental in getting SexoutNG off the ground. In no particular order: Neutron_rus, for starting to develop SexoutNG 2.11.X AllNarta, for fixing some of the sexout animation files. Odessa, for her courage and perseverance in maintaining/fixing SexoutNG (and other mods) for all these years while the original authors left the community. Ashal, for creating lovers lab and hosting all this stuff for us. UDLR, for Sexout. Prideslayer, for SexoutNG, NX, FOMM and too many things to list. Loogie, for the tryouts. Without them, I would have never got interested in sexout to begin with. Donkey for all the wonderful animations he's created. Sexout does use animations from other sources, but it has many that are unique to it, thanks to this gentleman. iron_jack for countless hours testing, bug hunting, and aligning of animations. astymma, for all his work on the skeleton, positioning, sexout related mods, and general programming assistance. jaam for updating NVSE, general programming assistance, et al Johnhead, for some new animations as well. ChancellorKremlin, for being an annoying pain in the ass with a million questions. If he reads this I'm sure he'll be ecstatic at being mentioned. Izumiko, for creating the included female body mesh (Type 6 Modification Body NV) Nagothms, for adding bouncing to the including female body mesh sesom, for creating the included male body mesh and texture ZAZ for ZAZ et al DManXX2 for animations Amra72 for animations AJ for skeleton wizardry (BodyMorph skeleton and Reset animimation) Kendo2 for Amra breeze mesh, et al Tomm434 for bug reporting, code suggestions, et al DoctaSax for all his tutorials, guidance, support and everything else Halstrom for SCR, community guidance and support and everything else BruceWayne for community guidance and support and everything else RitualClarity for community guidance and support and everything probed Imperfection for mesh fixes Garlicred and Jaam for the NVSE extender plugin. Jazz In Paris for his wonderful JIP LN NVSE plugin. The whole NVSE team for their amazing work on NVSE functionalities and for keeping the GECK Wiki up to date. Every one of you players that has downloaded, played, and even bug reported about this mod. Without you, there's no point. Many many others. If I've forgotten to mention you here, it was not intentional. Drop me a line and I'll include you, and don't feel weird about it; I honestly feel worse having left you out. Issues with other mods: - (Major) Old Scr/sop version may cause crashes on undress/redress sometimes. Use at least SCR 20250419.0 and Pregnancy 20250418.0 to fix it Old Sexout problems to work on : - (Average) Fix lock of the game when player dies during sex act. (Fixed in 2.11.3) - (Average) Fix (or at least reduce) stuck token which prevent the animation from starting. (Fixed in 2.11.3) - (Average) Fix NPC often refuse to use TFIK if player is not involved, which leads to them being misplaced or just sink in the ground. (Fixed in 2.11.3) - (Average) Fix the CBDialog functions which can fail to start dialogue if the NPC wake up before the player (Fixed in 2.11.3) - (Average) Reset face animation when sex end. (Fixed in 2.11.1) - (Average) Reworking anim position and Sexout flags for 'Amra' & 'ZAZ' plugins. (Not started yet) - (Average) Fix Offset Param in ActRunFull call, which multiplies every time you change animation. (Fixed in 2.11.1) - (Average) Fix the closure of SexoutNG when something goes wrong (timeStamp in AcValidity, actor turning 'Invalid' during animation...). (Fixed in 2.11.3) - (Minor) adding bodysuit option for females (Not started yet) - (Minor) Allowing disable Ragdoll (via MCM option) and ensure there is no impact on any mod calling Sexout animation. (Fixed in 2.11.1) - (Minor) Add animation stages support (In progress since 2.11.0) - (Minor) Add animation furniture support (In progress since 2.11.0) - (Minor) Add a system to simulate creatures gender and determine which animation to play (Not started yet) - (Minor) Change the way the Sexout blacklist works to totally block anims? (even by direct call?) (Under consideration) - (Minor) Updating the Sexout API (Not started yet) Minor : Needs to be fixed one day but can wait Average : Needs to be fixed reasonably quickly Major : Needs to be fixed very quickly Release History Spoiler Beta 4 (April 23 2025) - Added AllNarta and Neutron_rus fix for many .kf files anim that caused crash without NVAC - Added the Neutron_rus fix for anims with creature props that crashed without NVAC. - Added the Neutron_rus fix to reset the actor face and prevent it from getting stuck. - Fixed SexoutNGSoundScript that could caused Null reference error - Fixed anim [sexout.esm][1801] (Gecko) which caused camera bug (but need to find a better fix) Beta 3 (February 10 2025) - Added variables nVerMajN and nVerMinN to compare with the version of the player's savegame and perform an update. - Fixed the 'Pause Animation' function (a safety measure detected the pause as a freeze in the Sexout scripts and forced the animation to close after 30 seconds). - Fixed the above safety measure which also could lead to the player being blocked. Now it will first try to finish the animation cleanly before applying the old hard close feature. - Reworked some Sexout Animation Flags (as "rape", "oral", "foot") depending on the animations. - Reworked the positioning of actors in the animations (for now, I only reworked all animations of the sexout.esm plugin). - Significantly improves the synchronisation of actors for better rendering of sexual animations. - Added an option (in Misc menu) which applies a configurable delay before forcing synchronisation (cause, depending your machine, synchronising too early will have no effect). Default delay is 25ms. - Reworked the SexoutUpgrade function: Reworked the conditions to execute the upgrade, the beta versions management and the upgrade for versions lower than 2.10.98b3. - Checks that sexoutUpgrade runs completely and disable Sexout if the upgrade failed. - Added a CheckRequirement function to disable Sexout if the necessary plugins (NVSE, NVSE extender, JIP) do not have the right versions or are not installed correctly. - Added a fnSexoutGetLocalActorsRange function to increase the range of the Sexout radar. Scripts edited: - SexoutNGMain - SexoutNGMCMQuest - SexoutNGMCMQuestb - SexoutNGEffectBaseScriptF - fnSexoutUpgrade - fnSexoutGetReady - fnSexoutActValidity - fnSexoutActRunFull - fnSexoutAddInternalAnimsA - fnSexoutAddInternalAnimsB - fnSexoutAddInternalAnimsC - fnSexoutAddInternalAnimsD - fnSexoutAddInternalAnimsE - fnSexoutAddInternalAnimsF - fnSexoutAddInternalAnimsI Scripts added: - fnSexoutRequirementsCheck - fnSexoutGetLocalActorsRange Beta 2 (April 11 2017) - Fix Minor string_var bloat issue in random picker. It is unlikely it would have caused problems until thousands of sexout scenes had been triggered. Beta 1 - Fix for 'sexout stopped working' bug. I encountered this when a sex partner was removed from the cell/game midway through a scene. I suspect this is the same issue others have reported, and I tried to fix previously without success. Now it really is fixed ;). Actors that sexout has stopped working for should get auto-fixed via the scanner after about 30 seconds. Submitter Machiavelique Submitted 02/10/2025 Category Framework & Resources Requirements NVSE 6.2.6, JIP 57.15, MCM 1.51 Edited February 15 by Machiavelique 5
2Dimm Posted February 10 Posted February 10 (edited) finally some new life for sexout! after some testing alignment and IK turning off works everytime now, pause timer actually works and you can switch animations with the timer paused, everything still works after saving and reloading (which caused me a lot of problems before) edit: btw is the ragdoll ending still needed in 2025? my guess is that it was just a way to reset the animations back to default or something and there was no other way before, cause there is no way the goofy tpose falling while flailing the arms around is intentional, definitely my least favorite aspect of sexout... i wish there was a way for the animations to just end Edited February 10 by 2Dimm
Machiavelique Posted February 10 Author Posted February 10 No idea I also wondered about this but didn't want to touch it for fear of breaking things. For example, it seems that Tryout needs the NPC KO timer to be higher than the player KO timer, but I've no idea if this is also linked to Ragdoll's need and why? I can, however, think about adding an MCM option that would replace it with a fade in/out in black (which I think would be more comfortable). 2
Loogie Posted February 10 Posted February 10 Awesome work! Without the ragdoll, the NPC can recover before the PC does and then not fire off dialog packages that are meant to happen after sex.
Allnarta Posted February 11 Posted February 11 Seeing framework update in 2025 is something I for sure didn't expect to experience ever. Thanks! Fixed actors sync souds huge for me as an animator for sure; it was a big thing I had to always keep in mind, making things more sinplified than I should because of that. If you ever going to work on new features, I would suggest taking over Odessa's plans on adding animation stages support, and if it ever possible, to look at native furniture support (probably with types set via flags), as I did begun to make some furniture animations, but their use as for now is very limited.
Machiavelique Posted February 11 Author Posted February 11 (edited) Thank you all for your support! If I understand correctly, the dialog launch fails because the PC is still on the ground and therefore “not available” for a dialog. Today, I think there must be several different ways of solving the problem depending how dialogs are launched from Tryout. The fix could be made in Tryout or Sexout depending case. According to the Odessa API, there are also Sexout functions for launching dialogs after a sex: Spoiler call fnSexoutActRunFull (Ar_Map "ActorA"::TheKingREF, "ActorB"::PlayerREF, "CBDialogA"::MyPostSexDialogTopic) The above will start a random sex act between The King and the player, at the end, Actor A (The King) will start a conversation with the player, starting with the topic 'MyPostSexDialogTopic'. call fnSexoutActRunFull (Ar_Map "ActorA"::TheKingREF, "ActorB"::PlayerREF, "ActorX"::SunnyREF, "CBSpellA"::MySpell, "CBItemB"::MyItem, "CBDialogX"::MyTopic) Starts random sex between The King and the player. ActorX (Sunny) is not part of the animation, but at the end will start 'MyTopic' with the player, whilst MySpell is also cast on ActorA, and MyItem is given to ActorB... You get the idea. If Tryout uses the Sexout framework to launch a dialog after sex and these functions are currently buggy, then the fix must be made on the Sexout side. In both cases, I should be able to help 2 hours ago, Allnarta said: Fixed actors sync souds huge for me as an animator for sure; it was a big thing I had to always keep in mind, making things more sinplified than I should because of that. If you ever going to work on new features, I would suggest taking over Odessa's plans on adding animation stages support, and if it ever possible, to look at native furniture support (probably with types set via flags), as I did begun to make some furniture animations, but their use as for now is very limited. To be honnest, I didn't do much to synchronize the actors. Once the animation of all the actors has started, I just set a delay (default 25 ms) after which I force the restart of the animation for all the actors. This feature must be credited to the JIP update. JohnnyGuitar can do the same, but JIP does it more discreetly, so the animation reset is less noticeable. Animation stages support: I'm not sure to understand. Are you talking about a succession of selected animations without stopping Sexout? Native furniture support: I don't know where you're at, what you've tested, etc. Have you ever tested a furniture as “actorC”? I think I could actually add new flags like “FurnitureA”, “FurnitureB” etc. as you suggest. Edited February 11 by Machiavelique 3
Allnarta Posted February 11 Posted February 11 1 minute ago, Machiavelique said: I don't know where you're at, what you've tested, etc. Sexout natively supports furniture, but only with "SetRefSurface" stringmap, which means if one want to use furniture, it's only possible for one certain encounter and for one named surface reference, i.e. there is no variety and no way to use funiture like F4 AAF does, which is very restricted. As for now, for example, I got one couch animation - I can make game use it by strictly stating anim number and refsurface in API for one certain sex act. But if I would like to start sex on a couch if this type of furniture is avaible nearby (prob need special flags for certain furnitures like AAF has) and be able to randomly pick and switch between couch specific animations - Sexout does not have this functionality. Animation itself does work as is though, when API is said to use specific RefSurface and specific animation number. Spoiler For Fallout 4 AAF, it uses sets of lists for every furniture type - for ex. couch: it has specific list of what baseID's can be treated as couch refsurface for animations that use couch flag (list can be edited of course as it's xml; for Sexout it can probably be .ini file). I'm not sure how ActorC will behave in terms of skeleton rotation (Sexout had bad design decision implemented many years ago by rotating actors towards each other; it sadly can't be fixed now because all existing animations take this in account), but I'm sure when proper rotation in picked in blender by me, it will have no issues for end user. AFAIK Sexout does not care about actors list for RefSurface, it just poses them all (and any animation) on a referenced mesh (I think it may even be not furniture but anything, including statics, which makes me want to make some wall leaning animations and see how it looks, heh). About animation stages: it's common feature for other games frameworks including Lovers with PK for Oblivion (which you can fur sure look into because OBSE in similar to NVSE in many ways), which allows animations to have progression stages (each is separate anim files set), from subtle/foreplay stage to climax one. All Sexout animations do not have it though, of course, so it should be compatible to current sexout animations state (one stage-only).
Loogie Posted February 11 Posted February 11 1 hour ago, Machiavelique said: Thank you all for your support! If I understand correctly, the dialog launch fails because the PC is still on the ground and therefore “not available” for a dialog. Today, I think there must be several different ways of solving the problem depending how dialogs are launched from Tryout. The fix could be made in Tryout or Sexout depending case. According to the Odessa API, there are also Sexout functions for launching dialogs after a sex: Hide contents call fnSexoutActRunFull (Ar_Map "ActorA"::TheKingREF, "ActorB"::PlayerREF, "CBDialogA"::MyPostSexDialogTopic) The above will start a random sex act between The King and the player, at the end, Actor A (The King) will start a conversation with the player, starting with the topic 'MyPostSexDialogTopic'. call fnSexoutActRunFull (Ar_Map "ActorA"::TheKingREF, "ActorB"::PlayerREF, "ActorX"::SunnyREF, "CBSpellA"::MySpell, "CBItemB"::MyItem, "CBDialogX"::MyTopic) Starts random sex between The King and the player. ActorX (Sunny) is not part of the animation, but at the end will start 'MyTopic' with the player, whilst MySpell is also cast on ActorA, and MyItem is given to ActorB... You get the idea. If Tryout uses the Sexout framework to launch a dialog after sex and these functions are currently buggy, then the fix must be made on the Sexout side. In both cases, I should be able to help I am using the CBDialog functions; the NPC still doesn't wait for the PC to wake up. It's been a problem since the beginning of Sexout. Those API calls, so far as I know, execute the script functionality that's been always been in Sexout, it's just a cleaner way of doing it.
Machiavelique Posted February 11 Author Posted February 11 (edited) @Allnarta Ok, now I have a better understanding of the problem and the need. Everything you describe seems feasible. It wasn't my intention to completely overhaul Sexout but there is a real need. There's obviously a lot of work to be done, but above all a lot of reflection before starting anything. The first questions that come to mind: How do we want to manage animation stages when Spunk allows multiple cum? Should we ignore Spunk Arousal and only consider duration progression, or should we consider Spunk Arousal progression instead? In the event of multiple cum, should we go back to the 1st animation or start another series (if available)? Should we use ActorA, ActorB or ActorC as a reference (ActorA seems more logical to me)? Of course, these questions are mainly relative to Spunk but do you intend to add an Arousal feature to A-Lust? If there's a couch behind a wall in a closed room and I'm right next to it, we have to ignore this couch otherwise the player can be locked in. It's a minor problem that shouldn't be difficult to solve, but it's one of the things I'll have to think about before getting started. I'm sure there are lots of issues I haven't considered. I like your idea of adding all these features and I'll keep thinking about all the impacts. If you see other consequences/problems, don't hesitate. I don't know when I'll start working on it. 48 minutes ago, Loogie said: I am using the CBDialog functions; the NPC still doesn't wait for the PC to wake up. It's been a problem since the beginning of Sexout. Those API calls, so far as I know, execute the script functionality that's been always been in Sexout, it's just a cleaner way of doing it. Okay, I'll look into it 😏 Edited February 11 by Machiavelique 1
Allnarta Posted February 11 Posted February 11 19 minutes ago, Machiavelique said: If there's a couch behind a wall in a closed room and I'm right next to it, we have to ignore this couch otherwise the player can be locked in. It's a minor problem that shouldn't be difficult to solve, but it's one of the things I'll have to think about before getting started. I'm sure there are lots of issues I haven't considered. True, though it will only be important when sexout will want to decide if furniture have to be used by itself; if API is used to set certain object as refsurface, it's on mod author's to decide what to use and on author to make it safe. Being able to switch animations with random picker, but with consideration what furniture object is used, sounds most important feature to me. 23 minutes ago, Machiavelique said: Of course, these questions are mainly relative to Spunk but do you intend to add an Arousal feature to A-Lust? At the moment I doubt I want to do it, because system like this is very complicated, and my main goal is to keep things light and simple, mostly focusing on visual/aesthetic improvements of ingame sex (also I'm not really advanced scripter, lol). I may change my ming in future though - we'll see. I did think on implementing some king of sex experience/skill thing though, as one was present in Fallout 2 and I can later use it for a mods I want work on and have some in the works (dialogue sex, prostitution system, etc.).
ChancellorKremlin Posted February 11 Posted February 11 AMazing work @Machiavelique, I will definitely be doing another playthrough of FNV now, can't believe I'm seeing a proper update to Sexout at this point, thank you so much! Do you have any future plans?
Machiavelique Posted February 11 Author Posted February 11 (edited) 3 hours ago, Allnarta said: it's on mod author's to decide what to use and on author to make it safe. Being able to switch animations with random picker, but with consideration what furniture object is used, sounds most important feature to me. I'm agree that it's better to let mod authors manage this part 2 hours ago, ChancellorKremlin said: Do you have any future plans? Nothing more except : - Fix the CBDialog functions which can fail to start a dialogue if the NPC wake up before the player - Allowing disable Ragdoll (via MCM option) and ensure there is no impact on any mod calling Sexout animation. - Add animation stages support - Add animation furniture support - (Edit: And Improve actors positonning for Amra et ZAZ animation too) I started to work on Sexout cause I wanted to fix the Sexout pause function before releasing the next version of SexoutStruggle. And I also need to release the SexoutStruggle update before releasing the SexAssault update. As I started working on Sexout, other fixes became necessary and I couldn't stand the idea of continuing to add other ‘patch.esp’. I thought it was time for a real update and to rid Sexout of all its patches. I remember now that Neutron had also made a patch for the face reset, I'd have to integrate his changes too so that the player doesn't have to go looking for patches everywhere. Unless there is a major bug in beta 3, my priority at the moment is to release the SexoutStruggle and SexAssault updates. I still have some final adjustments to make and to test them with Sexout 2.10.98 b3 + NVSE 6.3.10b + JIP 57.30. Edited February 11 by Machiavelique 2
Allnarta Posted February 11 Posted February 11 5 minutes ago, Machiavelique said: I remember now that Neutron had also made a patch for the face reset, I'd have to integrate his changes too so that the player doesn't have to go looking for patches everywhere. Please keep in mind that A-Lust already has this feature, and while A-Lust also provides universal emotions-during-sex feature, it can clash.
Atreides__ Posted February 11 Posted February 11 Just passing to let you know I appreciate your interest in updating the mod. Thanks for your work and hope you can revive the interest for New vegas modding! 1
Machiavelique Posted February 11 Author Posted February 11 9 minutes ago, Allnarta said: Please keep in mind that A-Lust already has this feature, and while A-Lust also provides universal emotions-during-sex feature, it can clash. I didn't know that, but I've noted it and will take it into account. The idea is really to reset the face once the sex is finished.
Allnarta Posted February 11 Posted February 11 Just now, Machiavelique said: I didn't know that, but I've noted it and will take it into account. The idea is really to reset the face once the sex is finished. For A-Lust, it just plays resetface animation for face specifically in the SexEnded event handler on every involved actor; it use forceplayidle function from kNVSE, which I found to be working the best for player character. 1
Machiavelique Posted February 11 Author Posted February 11 In that case, if I do the same on the Sexout side (just before dispatching the event), it should work for everyone too. Except that A-lust will do it just after. I don't think it'll be a problem, but I'll test what happens if you reset 2 times in a row. 1
DoctaSax Posted February 11 Posted February 11 4 hours ago, Machiavelique said: How do we want to manage animation stages when Spunk allows multiple cum? Should we ignore Spunk Arousal and only consider duration progression, or should we consider Spunk Arousal progression instead? In the event of multiple cum, should we go back to the 1st animation or start another series (if available)? Should we use ActorA, ActorB or ActorC as a reference (ActorA seems more logical to me)? The main thing imo is that the stages somehow make sense, in relation to each other, eg foreplay > sex > faster sex (close to cumming). Ofc, if only duration-based, that means that Spunk's non-simultaneous orgasms and variety in duration will mess that up. Or it could influence it if provided with some events to trigger the next stage and influence what anim to get, ie if a dude comes before a woman, she still wants taking care of but he might not be up to it right that second, so NG could pick something non-penile. Alternatively a foreplay introductory anim could be cut short if arousal rises fast on one of the actors who still wants to have regular sex. From Spunk's POV, changing the anim mid-act also makes a lot of info detected and generated at the start of the act possibly no longer valid - ie progression from BJ to vag sex to anal changes where any cum should end up, as well as any additions to and reading of XP and Enjoyment vars, for instance. Spunk would require NG to send an event that would trigger a re-evaluation of everything going on. And probably recalculate some formulas here & there. Even without all that there's probably some work involved in drawing logical connections between anims. Not that I'm against the exercise - just thinking it's important to temper expectations on how fast and well it can be implemented.
Machiavelique Posted February 11 Author Posted February 11 (edited) I'm sorry for the message below, it may not be easy to read. 3 hours ago, DoctaSax said: Spunk would require NG to send an event that would trigger a re-evaluation of everything going on. And probably recalculate some formulas here & there. I'm agree with that. On the Sexout side, I also need to be able to query Arousal (ideally in the form of the percentage of progress). Does Spunk provide function or NX ? In the case of a threesome, I think that to simplify things, I'd ignore ActorC and just focus on ActorA and ActorB. That way I think I can implement what you're proposing. However, there's one point that's not entirely clear to me. If I define Scene1 = 0 to 33.33% Arousal ; Scene 2 = 33.33 to 66.66% Arousal ; Scene3 = 66.66 to 100%. Now, let's imagine that we're only at 10% of the duration and that Arousal ActorA = 20% and that Arousal ActorB = 2%. In this case, I can consider that Arousal ActorA is rising too quickly and switch to a ‘finger’ type anim for example (I'll provide a formula to measure the difference in speed of progression). Now arousal actorB should rise faster than ActorA, and as soon as one of them reaches 33%, I can switch to a Scene2 type anim. However, if the Arousal rises too quickly compared to ActorB (or vice versa), I'll have to change anims again. Then, as soon as one of them exceeds 66.66% Arousal, I can switch to Scene3. On Scene3, I can let it continue until the cum. Now let's imagine that the cum occurs and we're only at 50% of the time duration defined by the user. At the moment, neither SexoutNG nor Spunk will stop the animation (and if we force the stop, we no longer respect the time defined by the player). The same problem exists if at 90% of the time duration we're still in Scene1. This means that I will also have to take the time duration into account. But if I do, I won't be able to tell Spunk to slow down the arousal for ActorA, ActorB or both. And if I could slow down the arousal, it would contradict SexoutSpunk's role principles and the multiplier Arousal defined by the player. As Spunk and A-Lust are not compatible, I think the first step is to make it on Time Duration only. That way, players who don't use Spunk will be able to access the Animation stages (whether they use A-Lust or not). That way, it gives us time to think about a system for Spunk. Note: Concerning the anim change according to the percentage of Time duration/arousal, the 33% is only an example, I think rather a: ForePlay 0-20% Normal sex 20-90% Fast sex 90-100% Edited February 11 by Machiavelique
DoctaSax Posted February 12 Posted February 12 1 hour ago, Machiavelique said: As Spunk and A-Lust are not compatible, I think the first step is to make it on Time Duration only. That way, players who don't use Spunk will be able to access the Animation stages (whether they use A-Lust or not). That way, it gives us time to think about a system for Spunk. Of course, I in no way mean to imply that the whole thing should be set up primarily in function of Spunk. As for your other comments, you'll find a lot of interesting EVFLs used in SpunkSpArousalScpt - I'd be happy to go over them with you, as well as brainstorm a general approach. 1
Machiavelique Posted February 12 Author Posted February 12 (edited) Indeed, this script contains all the NX I need. Any help would be appreciated, both to analyse Spunk script (if needed) or brainstorm a general approach. I don't think it's possible to reconcile Time Duration and Arousal with 1 single cum. Today, with 1 single sex anim, Spunk already allows multiple cum (and I don't think that's a bad thing). So I think it's necessary to keep the possibility of cumming several times. Regarding the framework for animations stages, I think it should be to the Mod Author and not Sexout that decides which anims should be used: anim1, anim2 and anim3. The anims should be sent to NG in the form of a list [‘Anim1’], [‘Anim2’], [‘Anim3’], each containing their own associated Sexout flags. This way, if one of them contains a ‘couch’ flag, I can change the reference surface (behind a fade to black). If Spunk is not present the animation stage will be based on "Time Duration" If Spunk is present, the animation stage will be base on "Arousal" and at the end of the 3 animations, maybe we could just go back to animation 2? Since Sexout currently lets you launch a random animation, we could also plan (with a "Random Animation Stage" option) to launch a series of 3 random animations with the associated flags. If it's not possible to have 3 animations (because there are too many flags, for example), we'll just run 1. Edited February 12 by Machiavelique
Allnarta Posted February 12 Posted February 12 (edited) I think it may be useful to look into Lovers with PK to see how stages are implemented there; also Skyrim and F4's Sexlab/AAF have them too, you can look into how it behaves in game to see how exactly staged animation should look. In general, for LPK it's like this: -All animations are staged, so every animation number contains few animation files, with an ini file that sets order of animation files for each stage (SNG use internal scripts instead, as LPK have all animations in external ini, a bit different approach because FNV didn't have proper ini functions when SNG appeared but Oblivion already had them when LPK was developed). -Same animation files can be re-used for different animation number set-ups, of course. -It's framework (ini in LPK case) decides, whch anim files are for which animation set and every stage. -So, every animation is technically set of idles for every stage, unlike current SNG state where single idle is a whole animation set technically. -Considering that SNG have all animations as single idles now, not sets, everything that is present in scripts can appear in random picker (and it's most picky part, actually). -So, staged animations have still be single animation set in script, with idles set for every stage (or some universal naming, like SNG666st1, SNG666St1 for ex.), because adding them as loose animations will make random picker pick them, and for animations that were designed to be stages of one set, we don't want it. -Last animation set is always climax/orgasm stage, with animation files properly representing it. So, I see best decition to be able to add staged animations to AddInternalAnims scripts, with some set of parameters. There can be some additional params or variable that will inform SNG if certain animation is staged, and if yes, it will scroll stages according to idle animations tree (must be set-up properly just like it's now for animations when it aknowledges a/b actor idles inside an idles tree). To make things easier, amount of stages can be static: for ex, all staged animations have to have three stages (in LPK it is static, IIRC 4 stages, but for SNG three would be enough I think), and child trees for staged animation set can have SNG451-st1/SNG451-st2/SNG451-st3 names that SNG will read as strings. It is important to understand that staged animation goal is to have one or very similar sequence/pose/sex type, but having progression stages from subtle friction to intence/climax. It is not about playing totally different animations conceptually, but having one to be not just single pose/intensity. "Stage" is progression of a same act here, not different animation type or style. Another important thing that compatibility to non-progressive animations and avaibility to add them as before should be preserved, because all existing animations are not progression-designed at the moment and, to be honest, I don't want to make all my new animations as progressive - making 6 animation files for every anim IDX instead of two is really tedious. About timing: In LPK, you can decide if stages will be progressed automatically, or with a hotkey (can be set also separately for cons and forced sex in settings) in options. About firniture: I think furniture support should be implemented via new parameters map that can be set in SNG call API. For ex. ["Furn"::Couch/"Furn"::Bed]: call fnSexoutActRunFull (Ar_Map "ActorA"::TheKingREF, "ActorB"::PlayerREF, "Furn"::Couch, "CBDialogA"::MyPostSexDialogTopic) Or something like that. After that, there is a way to just set refsurface to be used in API, or allow player to manually choose piece from avaible in some scanner radius (for that, list with base ID's included for each avaible parameter should be created, best way to implement it is ini files I assume). If none found - SNG just switches to normal non-furniture animation and starts it normally in actorB position. For ini, it may be set as something like that: Config/Sexout/Furniture/Modname.ini [Mod] Modname.esp [Furniture] Couch = MyEditorIDCoach1 Couch = MyEditorIDCoach2 Bed = MyEditorIDBed1 Bed = MyEditorIDBed1 And some script inside SNG will return those ini values to respective Furn:: stringmap lists (during GetGameRestarted for example). Edited February 12 by Allnarta 1
DoctaSax Posted February 12 Posted February 12 I think the two approaches could both work and be accounted for: - one where the staging is a simple progression between slight variations on the same anim, increasing in intensity. To most intents and purposes, this is really treated as a single anim; Spunk for instance doesn't need to refactor what's going on. A particular set like this can be picked directly by the calling mod by selecting the first anim's id, or the first anim's id is picked randomly by sexout, and in both cases sexout detects it as being multi-part because the anim id is simply parked in a list of such. - one where the staging is a progression of more substantial difference, basically constituting a scene. The calling mod can ask for this by either specifically detailing the anim-ids, or perhaps more generically by eg going bj-vag-vag, and sexout picks something suitable. A scene progression like this shouldn't be picked randomly by sexout itself when asked to just start any anim. Any change of stage requires that sexout sends out an event to signal it. Keeping staging order for anims (type a at least) - and perhaps even other intel too - in external files is probably a good idea - it gives players a chance to tinker with things and would make adding new anims to the system easier if NG itself is at an impasse in the dev cycle. I imagine the intel would need reading at game start though - doing it at anim start with several other scripts doing different things may throw a spanner in the works because i/o stuff is somewhat slow at times. Perhaps some of JIP's functions there are more flexible to use than the .ini functions. 1
Machiavelique Posted February 13 Author Posted February 13 (edited) On 2/12/2025 at 1:33 PM, Allnarta said: It is important to understand that staged animation goal is to have one or very similar sequence/pose/sex type, but having progression stages from subtle friction to intence/climax. It is not about playing totally different animations conceptually, but having one to be not just single pose/intensity. "Stage" is progression of a same act here, not different animation type or style. OK, now I really understand what you're getting at. As you said all existing animations are not progression-designed at the moment, which means we need 2 approaches as DoctaSax suggests. 1) The 1st approach will really be designed for stage animations as you describe them. 2) The 2nd will focus more on the execution of 2 to 3 animations (forePlay + Normal sex + eventualy faster sex) in order to have an ‘scene animations' for Sexout's current animations. This will allow players to enjoy this ‘scene animations' in all the mods they use without having to modify them. We just need to draw up lists of animations that can go together and probably in an .ini file as everyone suggests. In this way, the community can also help to draw up these lists (AnimManagement v.7 can be used for that). We will therefore dissociate ‘Stage Animations’ from ‘Scene Animations’ (I don't know if the names suit you) Regarding .ini Files, we could put them in: DATA/Config/Sexout/StageAnimations (for Stage Animations) DATA/Config/Sexout/SceneAnimations (for Scene Animations) +Sexout +StageAnimations +Sexout.esm +Sexout-Amra.esp +ZAZ +Pregnancy +AllNartaSexoutAnimations.esp 102.ini 103.ini 104.ini 450.ini (etc) +AllTentacles 124.ini 125.ini 126.ini 127.ini +SceneAnimations +Sexout.esm 101.ini 111.ini (etc) +Sexout-Amra.esp +ZAZ +Pregnancy +AllNartaSexoutAnimations.esp +AllTentacles Obviously this is only an example to show the structure, I do not claim that animation 102 of AllNartaSexoutAnimation.esp will be an Animation Stages. It will be up to Mod Authors to place .ini files with their mod if they want to specify that this animation is an ‘Stage Animations’ or a ‘Scene Animations’. On the Sexout side, when a specific animation request is made, I check whether this anim has an ‘Stage Animations’, if not I check whether it has an ‘Scene Animations’, if not I launch it in the same way as Sexout does today. This means that if this animation is in both 'Stage Animations' and 'Scene Animations', it will always be launched as stage animations and cannot be played alone either (I think that's precisely what you were asking for). Note: As DoctaSax pointed out, the ini files will be read when the save is loaded and the contents put into arrays. I hadn't thought of that and I think it's a good idea. For ‘Scene Animation’, it will be different. They will be run as scene animations if an .ini exists and if the player activates an MCM option, eg: ‘Allow Scene Animation' . If this option is unchecked, the animation will be played alone, as Sexout does today. Regarding the content of the .ini files, I'm not sure I understand everything you want to be allowed to do and what you want to forbid. So here is just an example but the content of the ini and the structure above can also be revised. Now let's suppose Anims 124, 125, 126, 127 from AllTentacles plugins are a "Stage Animations" Inside DATA/Config/Sexout/StageAnimations/AllTentacles/124.ini we got: [1] Idx = 124 duration = 7 furniture = MyEditorIDCoach1, MyEditorIDCoach2, MyEditorIDBed1, MyEditorIDBed2 [2] Idx = 125 duration = 7 [3] Idx = 126 duration = 7 [4] Idx = 127 duration = 7 When anim 124 is requested, the anims will be run in order from [1] to [4]. Stage Animations: If anim 125 is requested and anim 125 has no ini or its ini is empty/invalid, then it will be treated as a normal animation and run alone. Either the Author mod knows what it's doing and doesn't ask Sexout to run anim 125 knowing that it's part of an animation set, or simply copy/paste 124.ini into 125.ini 126.ini and 127.ini. And in this case, no matter whether you ask for anim 124, 125, 126 or 127, you'll always have 124 to 127 in order. The advantage of this method is that you can say that : - anim 124 launches anim 125, 126, 127 - anim 126 launches anim 127, 128 - anim 125 launches 124, 125, 126 This gives you a lot of flexibility with a minimum of rigor. Duration: I would treat the durations as weights on the Sexout 'Time Duration'. What I mean is that if player sets the Time Duration to '60', each Anim will last 15s (cause they have the same duration). This way, even if a player puts '0' everywhere, it won't break anything. Furniture: In 'furniture', you'll need to indicate the BaseFormID compatible with the animation. fnSexoutActRunFull will require you send the reference of the furniture you want to use (the "Furn" you suggests looks good to me. As you said earlier, it will be up to the mod authors to check that the couch/bed is not in an inaccessible place. Sexout will check various things, including whether the reference is an instance of one of the supported BaseFormIDs. I don't think it's necessary to fill in the furniture for [2] [3] and [4] as the ‘Stage Animations’ have similar sequence/pose/sex type. But this feature can be interesting for ‘Scene Animations’. I don't know if you're happy with this plan, if we're getting closer to our goal, if there are elements missing or if there are points that don't fit. Edited February 13 by Machiavelique 1
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