Jump to content

Project Sugar Cake (SCake) [Animation and Stat Framework] 0.4.2 (Steam + XBox Gamepass)


1 Screenshot

About This File

(_) Project Sugar Cake - Palworld Sex and Stats Framework (_)

 

Created and Maintained by : Michael "Spirit Shard" Stanich

Discord - The Broken Chatbox - https://discord.gg/h3vB7S4FEw
Website - https://www.michaelpstanich.com/
v (Donations! =^-^=) v
SubscribeStar - https://subscribestar.adult/michaelpstanich

 

DisplayCover_BETA.png.ecc6627e595fd1e1c290abfe7cae4c76.png

 

(_) What is Sugar Cake? (SCake for short) (_)

 

Project Sugar Cake is a sex animation and gameplay stats framework for Palworld focused on providing the baseline for adult content in Palworld. SCake allows animators to import their animations into Palworld, then animators and users can use those individual animations to create Animation Events (effectively entire scenes) for customized playback of complex animations. (More on this below) SCake also adds additional stat tracking to create dynamic stats that don't fit within the game's native structure (such as some naughty stats ^.-).

 

 


< - > Self Promotion < - >


I'm never really great at asking for donations, but if you never mention it people may not even know about it! So here I am, letting you know I have a SubscribeStar! - https://subscribestar.adult/michaelpstanich (SCake is completely free with no paywalls, but Subscribers do get a special role on Discord and other benefits regarding other projects of mine!) If you can't help support the project financially, that's ok! I appreciate any little bit of help, whether that's just in giving feedback and bug reports, or by just sending a politely worded message!

 

 

 

(_) Known Critical Issues (_)

 

Triggering animations isn't tested in every possible scenario, so if you start animations in weird conditions stuff may break! If you find something that breaks with anims, please report it so a work-around/fix/validation can be made for it!

 

 

 

(_) Features List (_)

 

 <> Custom Animation Player
 - - > A fully custom Animation Player built with erotic animations in mind. The system allows animators and scene creators to define stages with automatic climax and post climax support. Users get access to various advanced settings to customize their experience with SCake to their preference!

 

 <> Custom JSON importer for Animations
 - - > Project Sugar Cake features a fully customizable and dynamic way to import animations through JSON files which both animators and users can fully customize in any plain text editor! Create either simple Animation Events with easy to understand data, or go full scene master with advanced settings and crazy potential! (You can even share your customized events by sharing your own JSON file with others, all without ever needing to animate!)

 

 <> Custom UI for controlling Animations and Settings
 - - > Simplified set-up and control through a custom UI and input handler built specifically for SCake and SCake Modules! Using the defined keys, this UI is easy and simple to navigate for customizing your SCake experience. During animations this UI is also used for adjusting positioning, moving the camera (in player involved animations), and editing the animations on-the-fly!

 

 <> Pal Stat Tracking
 - - > Tracking for custom stats that can be used either by animations or through external mods using the SCake SDK called modules! SCake handles the rising/lowering and tracking without requiring any input from the user!
 

 <> Additional Genders System
 - - > While Palworld may only have Male/Female internally, with SCake's additional tracking and systems we can register more! Project Sugar Cake allows users to configure custom genders for each character individually and animations are configured with sexual bits in mind, not 'male/female' locks, which allows you to install some lovely futa mods and have them recognize as such within SCake!

 

 <> Preference Settings
 - - > May not sound like a big deal at first, but let's say you're not into a specific kind of animation or combination? Instead of having to sift through all your animations and manually disable/remove them, instead you can change your preference settings to block certain anims from playback!


 <> Full Persistence
 - - > SCake has its own save system for additional data unique to the mod! These saves are in .json format (so you can edit them externally) and save per-world save, so you can have different settings per-world! You can also use "AdjustProfiles" to customize how characters position during animations, and since these save as a JSON file like other saved data, they persist and are share-able!

 

 <> Oh, did I mention this is a Framework? We have an API and SDK!
 - - > Provided along-side SCake is the SCake SDK as well as documentation on the various functions you can call within SCake. This allows you to create modules for SCake through Blueprints with all the powers UE5 provides! (Requires the Palworld Modding Kit for all functions to work properly)

 

 

 

(_) Inputs (_)


SCake has a custom input handler to avoid issues with the game's own input system. SCake defines it's keys as "Up / Down / Left / Right / Menu / Select".

Default Keys and their functions (Use the "Menu" Input to open )
    I : Up
        - In Menus : Moves Up
    K : Down
        - In Menus : Moves Down
    J : Left
        - In Menus : Selects Left
    L : Right
        - In Gameplay : Start solo player animation
        - In Menus : Selects Right
    U : Menu
        - In Gameplay/Menu : Toggles the menu
    O : Select
        - In Gameplay : Opens animation control for the targeted characters
        - In Menus : Selects Center

 

Camera Controls (While in player involved animations only)
    W : Move Camera Inward
    S : Move Camera Outward
    A : Move Camera Left
    D : Move Camera Right
    Q : Move Camera Up
    E : Move Camera Down

 

Debug Inputs (While in Gameplay and 'Allow Debug Inputs' is enabled in settings)
    I : Up : End any animation the target is involved in
    K : Down : Start animation between player and the target, hold down to start animation with summoned pal.
    J : Left : Select 2 targets to start an animation for

 

 

 

(_) How to install the SCake framework (_)

 

Note : When SCake is installed and running, pink text will show up on the left part of the game screen, saying it's either installed (title screen) or running (in-game). Use this to determine if the mod has been installed correctly.

 

- Unzip the archive and from inside the folder for your platform, copy LogicMods and ~mods folder into "[Palworld Install]/Pal/Content/Paks"

 

- In the ~mods folder, enter the "AnimJSON" folder and run the "__Create_Load_List__.bat" file to auto-fill the load list (You'll need to run this any time you install new animation .json files)

 

[ + If the .bat file fails to run or says "Access Denied" you can try moving the entire AnimJSON folder to your desktop, running the .bat file, then placing it back. Remember to check if it actually filled the _LoadList.json with the .json names. If it still failed you'll just have to enter in the .json file name for each animation pack you have installed manually into the _LoadList.json in JSON format (so like "AnimPak1","AnimPak2","","" ect, use https://jsoneditoronline.org/ to help with formatting). ]

 

- Install the proper version of UE4SS (Latest version with updated Palworld) - https://github.com/UE4SS-RE/RE-UE4SS

 

[ + Ensure inside the UE4SS install, inside the "mods" folder, open the "mod.txt" and make sure "BPModLoaderMod" is set to 1 ]

 

[ + If your game starts crashing after installed UE4SS, open the UE4SS-settings.ini file that is within the UE4SS install and set "bUseObjectArrayCache" to false ]

 

[Optional, sort of]
- Must install animation packs (Detailed below)

 

- Remember to run the "__Create_Load_List__.bat" file every time you install new animations with .json files! (If the .bat file doesn't run, you can enter the .json file names for animations you want to load in-game manually into the _LoadList.json file)

 

 

 

(_) How to install animation packs (_)


~ For .json installs ~

- Follow their provided instructions if they say where to install the .pak file, otherwise place this is in "Pal/Content/Paks/~mods"

 

- Place the provided .json file in "Pal/Content/Paks/~mods/AnimJSON/" and run the "__Create_Load_List__.bat" in the same folder (if the .bat isn't working for you, you can enter in the names of the .json files manually instead, can also try moving the AnimJSON folder to the desktop before running the .bat then moving it back)

 

- Now it should load in-game the next time .json animations are registered!

 

 

 

(_) How to add and create animation packs (_)

 

For a full guide you can read it over on my website at https://www.michaelpstanich.com/article/SCake_HowToMakeAnimsGuide.html or follow the links on our Discord!

 

To add more animations you just need to (correctly) import the animations into UE5.1 with the correct file path (Content/Mods/YourModName), convert the animation into an animation montage (right click the animation sequence and it will show up in that list), ensure you do what ever edits are required for your montage/animation to look and function correctly (Remember for looping animations to open your montage, go to the "montage sections" tab, and tickmark where it should loop! If you have no sections, just click the 'default' checkbox and it will loop the full animation.).

 

Once you have the animation montage you can export the .pak file and place it in ~mods, note the file-paths you had in UE5.1 as we'll need these to register the animation properly.


Open the appropriate templates provided in the AnimJSON folder from SCake and enter in the correct metadata for your animation, delete any sections/data you're not using for your animation. (Note: You can check the "Sugar Cake - Metadata.txt" provided with SCake for a description of the parameters, the "_SCake_TemplateWithExplainations.json" has sections explaining each parameter and may be a good place to start reading while using other .json files as a reference to create your own)

 

With your .json file complete, rename it to match your pack name and include it with your .pak when distributing your animation pack! I recommend testing the pack before distribution, so install it like any other pack by placing the .json file to the AnimJSON folder and adding the file name to the "_loadlist.json" file, then load up in-game and trigger the animations.

 

 

 

(_) Want to implement more animations? Feel free to contact me or interact with our Discord! We're a community thriving on creativity and would be really glad to help! (_)

 

 

 

 > - > - > - > - < - < - < - <

 

Some links to Animation Paks on LoversLab! (These are just ones I know about, if more show up please let me know!)

TemTemLover's Animations


Lemonlord's Animation Pack

 

Ferox Animation Pack

 

Spirit's SCake Animations

 

 

 

You may also be interested in the Community Meshes Pack, put together and curated by TemTemLover! (These are models from various creatives and put into a convenient pack for easy compatibility with SCake and animations!)

 

(At this time, the mesh pack doesn't work the newest Xbox/Gamepass version of Palworld since OK Framework no longer works there Q.Q)

 

 

 

You can find more animations over on our Discord! (There's a couple of in-progress animation packs, so they may not have been posted elsewhere yet!)

 

Thank you everyone for being awesome and making great stuff! Hopefully more can join us in our creatively lewd adventure and make more awesome Palworld content!

Edited by Spirit_Shard
Updated info


What's New in Version 0.4.2 (Steam + XBox Gamepass)   See changelog

Released

SCake Version 0.4.2 DEV (Beta)

Note :
    - This update invalidates old AdjustProfiles since fixes were made.

Added :
    - "Andro (Vagina Only)" Sex Equip definition (Can be configured in JSON for compatibility as well)
    - AdjustProfile now records the last SCake_ModVersion it was saved on

Changed :
    - Doubled debug input's trace distance (how far the game scans for selections)

Changed/Fixed :
    - Cam Adjustments are now properly determined by EventID rather than AnimID, this should fix inconsistant behavior when animations events start on different stages (same cam position for the full event)

Fixed :
    - AdjustProfile saving null values ("0.0") in the SaveAdjust JSON
    - Cam Adjustments should now load from the SaveAdjust file properly
    - AdjustProfile save duplicating/not removing redundant entries and vastly improved performance (completely re-wrote large sections to use a new system similar to how I assign custom genders)

----- ----- ----- ----- -----
SCake Version 0.4.1 DEV (Beta)

Changed : 
    - PocketPair reverted the packaging changes noted in the last update, this is a release with the old package format that should be compatible with the newest version of Palworld.

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



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