Join for free to receive email notifications about new posts submitted to paid tiers
Join for free to receive email notifications about new posts submitted to paid tiers
Join and get full access to supporter content and the exclusive supporter role "Demi-God" on our discord!
SCake Version 0.4 DEV (Beta)
Notes :
- The Sakurajima 0.3.1 update broke older mods and SCake's old loader function, this means all mods need to be re-packaged to the new format before they will work correctly, this includes Anim Packs. I've created a translation layer within SCake to the new loader format so the old JSON format should continue to work!
- This update works on major improvements to various validators to ensure animations register and playback correctly, if something was incorrectly set in animation pack .json files before but wasn't validated, they may now fail to register or behave differently
Added :
- Made a new Loader and Translation layer for loading animations after the "Sakurajima 0.3.1" Game Update (Old loader stopped working and this new loader won't work on older versions of the game) .. - "ActLocations" has been added to API Function "SCake Get Compat Events" .. - "ActLocations" has been added to API Function "SCake Start Anim Event" .. - API Function "SCake Get Compat Events" now accounts for the input Aggressors and Act Types/Locations input (Note : Animations without Aggressors or ActTypes/Locations configured as expected will not return with these optional parameters) .. - API Function "SCake_GetPalComp" which pulls the associated PalComp for the referenced Pal Character (PalComp stores all tracked data for a character, use this reference to pull that data without a function call)
- Added Variables to the SDK for direct reference, this allows modders to directly reference these variables without any API calls, many of which were not exposed previously by a function call
- ProjectSugarCake Var Exposed : Pal_Player, Pal_PlayerController, SCake_ModVersion, Data_EventCompArray, System_InputState, Data_PalsInAnim, Data_PalCompMap, Key_Menu, Key_Select, Key_Up, Key_Down, Key_Left, Key_Right
- SCake_PalComp Var Exposed : PalReference, InstanceID, CharacterID, SexualPleasure, CloseToOrgasm, SexCount, OrgasmCount, SexHeat, IsAroused
- SCake_EventComp Var Exposed : PalList, EventID, AnimID, NonErotic, Aggressors, AnimRoot, PlayAnimDuration, PalsHaveOrgasmed
- Validator now checks for Mounted/Gliding state for all characters and checks if player characters are currently riding, will invalidate these states for animations to prevent various issues
- SCake's internal version number now shows in the start-up message pop-up
- API Dispatcher "SCake_ED_AnimSwitch" which is called any time an Animation Event switches animations
- Finished all critical validation for the Animation Register, now should check and validate all critical parameters and prevent registering broken animations while also purging some out-of-scope data (note if an anim json file has incorrect data it could still cause playback errors, this validation only prevents incomplete or invalid data passing)
- Finished validation for Animation Event Register, now checks and validates all parameters to ensure they are consistent while setting variables automatically instead of making assumptions (this means stuff like actor count, compatability, NonErotic, ect. all validate and set automatically) .. - "NPCID" and "BPClass" for 'Human' characters can now optionally be used in JSON configuration for animation packs, allowing defining animations for very specific Human NPCs .. - "Player" can now be used in JSON configurations for animation packs, allowing specifically only allowing the Player character (Note "Human" still includes the player)
- Positional Adjustments are now saved for each animation into an AdjustProfile, which is saved as a JSON config file named "_SCake_AdjustProfile_Slot0.json" which stores position adjustments made for each character within an animation, this allows positional adjustments to save across Events/sessions
- Camera position is now saved per-animation and saves with the AdjustProfile (the JSON that stores position adjustments) .. - "Use Global Cam Adjustment" added to Preference Settings, while enabled the cam position reverts to using a global position and ignores the new AdjustProfile system .. - "All HumanIDs Match" added to the System Settings, while enabled "Human NPC" IDs will all be compatible with one another (all considered as "Human" like before this update)
- "Player Matches HumanIDs" added to System Settings, while enabled the player will be compatible with all "Human NPC" IDs, including 'Human' and 'Player', otherwise only the player is only compatible with 'Player' in CharacterID compatibility checks (Enabled as the default behavior but allows future support for Player Unique animations when players use replacers that are non-human or have unique anatomy and wish to configure which anims do/don't work manually or install anim paks dedicated to that replacer)
Changed :
- Re-enabled animation asset validation in the register with new code that reduces redundancy and should be much more efficient (A very small number of users may experience increased load times from this change thanks to a strange UE5 bug, however that increase shouldn't be nearly as long as before, I tried running validation as a batch to work around this issue but then I ran into yet another UE5.1 bug that prevented that method from working so we're just going to have to deal with it)
- SCake's UI should now show through the Loading Screen and in-game menus (Done for debug purposes, this behavior will most likely change again in the future) .. - When registering Animation or Events, Invalid Climax Variants will now cause the Anim/Event fail to register (previously just removed the climax var, to make the experience more straightforward and enable better debugging this has changed, also allows some optimizations during playback)
- Default behavior for camera handling during player involved animation events now uses the new AdjustProfile by default (may need to adjust the camera each time a new animation crops up depending on your preferences, or enable the "Use Global Cam Adjustment" setting)
- API Dispatcher "SCake_ED_AnimStart" now calls after an Animation Event has actually started playing an animation rather than during initialization, this ensures all parameters are set by the time the Dispatcher is sent
Removed :
- API Function "SCake_GetEventCompParams" is no longer in the API since it's made redundant with variables now exposed (removing the function is better for future compatibility)
- "Auto Save Frequency" in Game Settings removed since it's a normal in-game setting now
Fixed :
- Human Sex Equip settings not being switchable in the menu (Caused by mis-named callback variable)
- Added additional validation checks for when an invalid UniqueID is passed, allowing earlier failures with more predictable behavior
- If an animation fails to load during playback, an error is now displayed in the UI and the animation should end. This check also forces the animation to load before attempting playback, which should fix the rare instance of animations refusing to play even if they are installed properly
- Animation Handler should now only try to unequip equipment when an animation is starting and not when an animation ends
- Removed a fail case where the camera could be adjusted if the player bugged out the UI and was able to be in an animation while controlling another animation (This bug was inaccessible without external modules)
- When controlling an animation the menu entries should now properly update if the Animation Event switches to an animation with a different slot order