Jump to content

Project Sugar Cake [Animation and Stat Framework] 0.2.1


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 in some cases can break animations or triggers, causing game errors. Only trigger animations while the player isn't mounted or in another interaction! Validation methods to prevent these errors are in the works for future versions of SCake but we need more testing to find exceptions and when things break. (If you find something that breaks anims or the game, please let me know!)

 

(_) 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!

 

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

 

 <> 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 (_)

- Unzip the archive and place the LogicMods and ~mods folder in "[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)
- Install the proper version of UE4SS (Latest version with updated Palworld) - https://github.com/UE4SS-RE/RE-UE4SS
[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
- 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)
Once you have 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 + Mesh Pack


Lemonlord's Animation Pack

 

 

Spirit Shard's "SCake_BasicsAnimPak"

Should be in the downloads for the mod!

 

 

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

Edited by Spirit_Shard
Updated info


What's New in Version 0.2.1   See changelog

Released

SCake Version 0.2.1 DEV (Beta)

Added : API Function "SCake_TrackReturnAll" which returns all characters currently tracked by SCake (useful for initiating modules that need to apply/check status)
Added : API Function "SCake_CheckStat_SexHeat" which returns a character's Sexual Heat stat and if they currently have enough to be aroused
Added : API Function "SCake_Stat_AddSexHeat" which adds the specified amount to the character's Sexual Heat stat and returns their new value along with if they have enough to be aroused
Added : API Function "SCake_Stat_ArbChangeString" which adds/changes the arbitrary string to the designated character (useful for modules to start tracking their own systems)
Added : API Function "SCake_CheckStat_ArbString" which returns the arbitrary string associated with the given name for the designated character
Added : ArbString element to the Pal Tracking system, this allows modules to input arbitrary strings with a name for their own use cases, these can be set to persist in the save file as well so they can exist between sessions (modders will need to be extremely careful when using persist, only use it when absolutely neccesary)
Added : When Sexual Heat rises or lowers it will now set Sexual Heat to continue naturally in that direction (in other words, if Sexual Heat decreases it will continue to naturally decay until zero, then start going back up, alternatively if it goes up it will continue to increase, I planned this for last update but I forgot to implement it)
Added : API Function for starting animations now check for null and empty arrays, failing faster with proper error code returns (Also a slight optimization)

Changed : If an SCake stat value is zero or null it won't be included in SCake's pal save file anymore, saving space/processing time

Fixed : Stage Order not registering correctly when defined in the animation's .json, messing up animation playback
Fixed : An issue with the .json parser not parsing integers correctly has been fixed (Not aware of all this affected outside Stage Order)
Fixed : A potential soft lock issue if very specific params were passed in an animation .json import
Fixed : Sexual Heat not being included in the save file, thus lacking persistence (I forgot to add it, sorry!)

----- ----- ----- ----- -----
SCake Version 0.2.0 DEV (Beta)

Note : This updated the format and data for .json files, all animation packs must be updated to the new format (I already contacted anim-pack creators, view the new templates to see the changes and format)
Note : This update adds persistence! If the new _SCake_Save_.json files are not saving/loading properly, let me know!
Note : This update adds support for MorphTarget Models to modify 'bodies' dynamically based on the new Sexual Heat system and for animations!

Added : New "__Create_Load_List__.bat" file in AnimJSON which updates the _LoadList.json when activated (May only work on Windows, skips files starting with an underscore)
Added : API Function "SCake_AdjustAnimCamPos" which adjusts the camera postion for the player while in an animation
Added : API Function "SCake_TraceForPal" which uses the camera position and rotation to scan for pals, useful for debug code (Not always accurate so other methods are recommended for proper selections or interactions with pals)
Added : API Dispatcher "SCake_ED_EventOrgasm" and "SCake_ED_PalOrgasm" which trigger when an Animation Event / Character triggers climax/orgasm
Added : API Dispatcher "SCake_ED_PalAroused" which triggers when a character reaches enough 'Heat' to become properly aroused (Horny status ^.-)
Added : API Dispatcher "SCake_ED_TrackPalEnabled" and "SCake_ED_TrackPalDisabled" which trigger when a pal is either enabled or disabled in the new tracking system (Note : Pals do not instantly start tracking or instantly stop tracking when they become valid/invalid, do not use this for validity checks! Use 'IsValid' through UE naively instead!)
Added : Holding the camera control keys during animations now repeats, making adjustments easier
Added : Report for failed JSON load now shows the json entry that failed to load
Added : Setting "Invulnerable During Anims" which makes characters unable to be harmed during Animation Events until the end, enabled by default
Added : Automatic CharacterID conversions for compatible pals (This means animation compatibiltiy can now define the base pal CharacterID and all variables that are compatible should be detected, input CharacterIDs for variants can still be registered with default size detection)
Added : When animations are started characters will now move to the ground
Added : Register now also shows fail count similar to success counts
Added : Settings will now save into a .json file within the ~mods folder allowing them to be saved and loaded between sessions (The file name should be _SCake_SaveSystem.json)
Added : Global camera adjustment to save file so it persists between sessions (individual camera adjustments will be added in the future when persistence/cache is set up for it)
Added : Character Stats now track Sexual Encounter counts (Increases if there are more than 1 characters in an erotic animation)
Added : Character Stats now track Orgasm counts (increases every time the character has an orgasm)
Added : New dynamic pal stat tracking, all active pals should now be captured and have SCake's stats applied (Mostly just Sexual Pleasure and Heat for now)
Added : Pal SCake Stats will now save into a .json file within the ~mods folder, enabling persistence (should save as _SCake_SavePal.json, the amount of memory this system takes over long play sessions will need to be monitored, but shouldn't be too bad)
Added : Sexual Heat system, this affects the desire and sensitivity to sexual activity (slowly increases until orgasm is eventually reached or a heat reduction event occurs, then decreases rapidly to 0 then begins rising again with values over 100% increasing much slower)
Added : "Aroused" Morph Target to framework, the "Aroused" morph increases as Heat increases, and sets to 100% when in erotic animations, useful for erections or arousal based body modifiers (morphtarget names could potentially become editable in the future)
Added : Sexual Pleasure gained in erotic animations is now affected by Heat (Heat acts as a multiplier with an offset, at 0% Heat gain is at 80%, 100% = 100%, 200% = 120%, 300% = 140%)
Added : Facial expression control to Animation Player, changes expression for supported characters while animations play (Currently sets a static expression but will be configurable by animations in future versions)
Added : "Pleasure Stage Progression" SCake Setting, while enabled stages will also progress through average sexual pleasure from all participants based on duration weight
Added : "Pleasure Progression Mode" to the Animation Player and SCake Settings, when enabled stages in animations are allowed to progress when the average Sexual Pleasure reaches a threshold calculated from duration weight of each stage (defaults on, only tries to progress looping animations, Max Event Duration is still respected and will progress regardless of this setting)

Changed : The Animation UI should now show the player's display name instead of "Player"
Changed : The Animation UI should now show all players as "Player" instead of "Character" (useful in multiplayer)
Changed : The Animation UI should now attempt to find the proper in-game name to display if no nickname is set for a pal
Changed : Made major changes to the .json structure for easier creation, optimize parsing, and removing some variables that will go unused, old .json files will fail to register (Simplified the structure to run off order dependent arrays, so params still require slot specifications if they can contain multiple entries per-slot, check included templates to adjust your own .json files)
Changed : JSON parser improvements/optimizations, let me know of any weirdness or fails when it shouldn't
Changed : Limited the number of json registers per frame (will only try to load and pass 10 json sets per frame, this will slow down the register but ensures HDD users won't experience stutter when we start loading thousands of animations, register still only processes 1 animation/event per frame, this only affects sending to the register when we load the .json files)
Changed : Register automatic start time reduced to 3 seconds (was 8 before, can be changed in the _SCake_SaveSystem_.json)
Changed : Animation Events that fail to start animations will now immediately destroy themselves instead of waiting (optimization)
Changed : Overhauled stats handling backend, now runs based on game time and defaults were updated to reflect this
Changed : Pals now start with random Sexual Pleasure (No more than 20%)
Changed : Animation Player now uses the new stats tracking system to apply and track stats like pleasure, this makes effects based on Game-Time just like other stats, Sexual Pleasure defaults was adjusted for this
Changed : Adjusted some setting descriptions and displays to better align with systems and changes
Changed : "Event Duration" is now "Max Event Duration", though the behavior is effectively the same but will make more sense as more features are added

Removed : "ByName" variables when registering animations (The intended system didn't work and using CharacterID instead just makes a lot more sense)

Fixed : "Hold Down (K key) to start anim with summoned pal" now properly disables when disabling Debug Input
Fixed : Characters in animations should no longer become eligible for another animation if multiple start anim events are triggered on them
Fixed : Instances where animations took too long to process their start function and would fail to set all parameters properly
Fixed : JSON loader failing to load files from the LoadList if they had .json in the entry
Fixed : Menu scrolling offset being slightly off allowing a slow drift downward
Fixed : Report text that shows up should now properly wrap when the text extends too far
Fixed : Project Sugar Cake should no longer run any logic while in the Main Menu or outside a saved game (Only starts up the UI, though the API should be accessible)
Fixed : Characters who orgasm once will not properly have their sexual pleasure checked in subsequent orgasm checks
Fixed : Animation Player getting stuck in an orgasm loop if pleasure gain was set too high
Fixed : FootIK interrupting normal animation flow when animating certain sections of certain characters (FootIK should be disabled during anims now)
Fixed : Slopes causing characters to tilt while animating, causing alignment issues (Looks a bit odd given characters will now float a bit more in some situations, but much better than alignment not working)
Fixed : Stages "Speed Mod" value should now properly affect the duration of non-looping animations
Fixed : Climaxes not adjusting duration properly if no climax variant was included with the animation
Fixed : General optimizations across most systems


Other Files from Spirit_Shard


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