You must be 18+ to visit this website
The content on this website is AGE RESTRICTED
Please confirm you are at least 18 years old of age. Otherwise leave the website.
I am over 18 years old
michaelpstanich profile
michaelpstanich
18+
michaelpstanich
I work in various mediums and will be releasing content ranging from safe for work to R18+ content including Art, Video Game Mods, Video Games and Dev builds, Technical Articles, Game/Tech related videos, AI Work, and whatever else I fancy and Subscribers request!
Subscribe
Send Message

Subscription Tiers

FREE
Follower

Join for free to receive email notifications about new posts submitted to paid tiers

60 subscribers SubscribeStar $0.00 tier
Unlock
$5
per month
Demi-God

Join and get full access to supporter content and the exclusive supporter role "Demi-God" on our discord!

15 subscribers SubscribeStar $5.00 tier ; Demi-God
Unlock
michaelpstanich
This is a post-to-be-pinned to act as a links post, so you can find stuffs easier!

(Everything is linked in the Discord, so that's the first place to check! ^-^)
Discord - The Broken Chatbox - https://discord.gg/h3vB7S4FEw

Official Website (not always up-to-date >.<) - https://www.michaelpstanich.com/
Public Release Folders :
Public Mods Folder
R18+ Public Mods Folder
AI Related Folder

Media Links
YouTube - https://www.youtube.com/user/michaelpstanich
Pixiv - https://www.pixiv.net/en/users/54955969
DeviantArt - https://www.deviantart.com/michaelstanich
HuggingFace - https://huggingface.co/michaelpstanich

Features

  • Subscribers will help us create awesome content! (We're always up for suggestions too!)
  • Subscribers will get early access to content such as Dev builds and articles!
  • Subscribers will get QOL packages and exclusive content like behind the scenes content, image packs, and future previews!
michaelpstanich
Public post

[New Mod!] Altermatic v0.1 DEV Released! [Palworld Mod]

Ok, so hold on, don't think this is 'completely' horny, alright? I mean, I SWEAR this one can be safe for work... Introducing Altermatic - Runtime Replacer Framework! If you've been watching the Discord (which you totally should ^.-) then you may have already seen me release some TEST versions, but now I'm making a proper public release!

One of the largest pain points for our community regarding mod development has been replacers, or more specifically, replacers that allow gender dimorphism and unique visuals. Altermatic is an attempt to alleviate a lot of these issues while creating a more dynamic and customizable experience for not just modders, but users as well! Altermatic uses JSON config files similar to my other project, Sugar Cake, but instead of dealing with animations, this one is for replacers which swaps assets at runtime! Right now Altermatic is limited to Pal/NPC model replacer functionality with a few parameters to define. The core goal of the framework is to allow easier Gender Dimorphism for Pals, but there's a lot more potential with this mod in the future and the methods I discovered are really flexible!

First, Download links and changelog, then I'll go over the project goals and branding stuffs!

- Altermatic -
- Full Changelog -
Altermatic Version 0.1 DEV [Initial release]

Added :

  • Ability to swap Skeletal Meshes for NPCs, defined by either CharacterID or BPClass (from DataTable), then applied by Gender (None/Male/Female)
  • When multiple SkelMesh are compatible a random one will be selected based on best-match cases
  • Added "MatchQuality" to the randomization, when failing to meet optional requirements the match quality will degrade, when selecting a final SkelMesh to apply only the highest quality grade available will be selected to ensure the best matches are used
  • Added "IsRarePal" option for JSON, when set to "True" then the pal must be rare for the skin to apply
  • Added "Skin Name" option for JSON, when applied the SkinName must match the internal skin name the pal has equipped (this feature is incomplete since it does not apply when applying skins, only when loading a pal that 'should' have a skin)
  • integrations with SCake Additional Genders, also enabled cross-functions which improves Altermatic's performance while SCake is running

Project Goals

As mentioned previously, the main goal of Altermatic was to build an easy to use framework for adding Gender Dimorphism. We also wanted a solution that could potentially work at run-time, something where we could swap assets on-the-fly by choice. Currently this aspect of the framework isn't really utilized but there is a LOT we can do with that! For starters, Altermatic supports SCake's extended genders (while SCake is installed and running at least) which means we could set it up so when genders change in SCake they will dynamically change visually as well! The idea of adding more than just Male/Female gender assignment is something that's been thrown around as well, and Altermatic could very easily hook into that aspect to create a unique experience no other mods are really capable of. The JSON config stuff is also quite flexible and, as long as I can figure out the systems, we could create very granular control over what modders want to hook into in a Game-Version safe way! This includes things like, defining traits, swapping meshes for freshly added pals without needing any updates from Altermatic, support for alternate state models (like maybe damage models on the Player/Pals/NPCs?).

But you also may think my ideas feel a bit jumbled up without any real coherence here, and that's kind of because they are. Honestly, getting this initial version of Altermatic only took a few days to set up! I'm not kidding! I had a basic replacer with JSON parsing/loading and such within a single day! Granted, much of this work was already done with SCake so that all carried directly over, but I wasn't really 'prepared' for it to be this quick and 'easy'! (not easy as in, not logically difficult, but rather not nearly as time consuming to get started) This means I still haven't nailed down all the features I'd like to cram into Altermatic, and I haven't been able to gather interest outside of our relatively small modding community. So that does leave me in a bit of a weird spot, Altermatic 'could' expand to be this crazy framework everyone uses, or it could stay simple and just be a nice tool for our community. We'll just have to see where it goes I guess!

One thing is certain though, Altermatic was specifically pitched as an idea to help development on SCake content, so expect Altermatic to grow parallel to our growing needs over on that front!

Branding

As a creative with a history in Graphic Design, it's no surprise that I really love new branding ideas. So, introducing Altermatic's Logo and Design Style!
I haven't talked about it much, but SCake is also getting a branding shake up and I found Altermatic as a fun way to test some of the more simplistic design goals of the new SCake WIP logo (I'll be posting that one when it's ready >.<). Altermatic's visual goals is to be simple but aggressive with a contrast between stable and alteration. That.. sounds really pretentious... Uhm.. It was inspired by those silly circle things that have arrows, indicating a cycle. I wanted to design to invoke a feeling of circulation or dynamic shifting and I personally love what I ended up with! From the Typographic integration of the circular design to the eye guiding arrows design on the outer edge, it's an overall engaging logo to look at!
Since Altermatic's design goals are to be much more simple I had to find a solution for different platforms with different color profiles. In other words, I needed solutions for 'on white' posting sites and 'on black' posting sites, hence the dual color design. With my other designs I could easily add a drop shadow, but here that somewhat broke the shapes and overall form, detracting from the design, so instead 2 versions were created with opposing color intensity. It was also pushed as a fun idea to use different versions for specific places and see if anyone says anything, a cute idea for sure!
On a personal note, I really didn't like my quick-and-dirty design for SCake's initial logo and design concept. The ideas are cool but I didn't put in the time to really make the concept 'work' in a way I'm happy with. I was ok with it at the time since I always planned on updating it (which is in the works now) but it really has been grating on me this entire time. I didn't want to repeat that same mistake with Altermatic's logo design and aesthetic so I put in the time this.. time. (god, I'm such a great writer...) I'll be working on the SCake branding make-over soon, so if you find this stuff interesting, make sure to follow for more!
I forgot to include the naming inspiration in the first write, so I'm just tacking it to the end here like a pro. "Altermatic" is a combination of "Alter" and "Automatic" since Altermatic will "Automatically Alter Assets"! Shout out to our community in the Discord who helped brainstorm ideas! I didn't end up using any that were suggested (None of them really fit) but they helped me narrow down onto a name that sounds interesting, is catchy, and represents the mod's functions. I really like the name! (Altermatic is also a mathematics term, though I won't pretend that was even remotely part of the inspiration. X.x)

What's Next?

I know we need traits support and I would also like to implement persistence. Initial release doesn't feature persistence because I couldn't decide on what method would work best so instead I wanted to release this early version to the public and see what people suggest in terms of features and flexibility. Initially I just wanted to use GUIDs already saved within Palworld to do persistence (I even made a really cool system which translates a GUID to float and uses division to decide which mesh to choose when there's multiple options). The problem with that system, however, is if you add or remove options then it could affect the already 'selected' meshes and things could change. If I wanted to fix those issues I'd have to make the system more rigid and I'm obviously not a fan of that. So instead I want to see what people want/ask for in this regard to figure out the best data structure and support. Of course with SCake integration I could easily use SCake's stats API to implement all of it, but Altermatic needs to run standalone as well. This probably means I'll be making more save files... (Guess it's not that big of a deal... right? Just a lot of work... Q.Q)

Current Road Map

1 ) Add Traits Support
2 ) Implement Persistence
3 ) ???
Comments  loading...
Like(0)
Sign Up or Log In to comment on this post
michaelpstanich
Public post

Project Sugar Cake v0.4.2 DEV Released! (BETA) [Palworld Mod]

Last update wasn't too long ago, but man was it a mess! Not the update itself but rather the situation surrounding it. If you aren't caught up, my last blog post was about Palworld and the packaging changes involving IO Store. This is the first release where I'm actually exporting both versions into the same package and just kinda hoping for the best, but also shortly after this post I do have another mod to reveal related to Palworld! (If you're in the Discord you've potentially already seen it ^.-) Short write up for this update as it's not super major, but it does feature a critical fix!
I'll admit the last update's release was a bit rushed near the end and that lead to a pretty nasty bug residing in some new functionality. I was already planning a small update to coincide with Altermatic but this critical fix made it even more important! AdjustProfiles unfortunately had a memory leak! @.@ It was reported by a community member, and their AdjustProfile reached 17mb!!! I wasn't able to find the source but did confirm it 'could' happen, just didn't know what exactly was causing it. So I did what any reasonable programmer would do... I re-wrote the entire implementation, leaving only tertiary code untouched. Benefit? AdjustProfile code is a lot faster and uses a more complex-to-make but quick-to-process system. Since the profiles would be experiencing bloat I invalidated all previous profiles with a version cut-off, so you'll need to re-adjust your alignment again. >.<

Additionally it was suggested to add another Gender, which we've dubbed "Andro". Andro is a setting for "Vagina Only" definition and is now fully supported within SCake!

- Project Sugar Cake -
- Full Changelog -
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 animation 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)

What's Next?

I... think multiplayer support? Or, rather, at least 'testing' multiplayer support and seeing how far I can get. There's been an increasing number of people interested in multiplayer support, and while I've been saying it's part of the plan I'd not made any major advances on it in a good while. So, I think it's a reasonable time to try and push on that front given the recent big update has given the game a large spike in players. In the immediate future however I have the other Palworld modding project to tend to as well, Altermatic! That mod will have its own post so I won't cover it here, but if you've been in the Discord you may have seen us testing it, and it's exciting! (Well, I'm enthusiastic about it at least >.<)

Current Road Map
1 ) Release Altermatic and work on integrations
2 ) Work on anim packs and try to expand releases
3 ) Test/work on multiplayer support
Comments  loading...
Like(0)
Sign Up or Log In to comment on this post
michaelpstanich
Public post

Palworld Modding Shift : How modding should proceed after IO Store split


(This is a PSA for Palworld Modding Communities which will be posted in a few other places. If you're here from one of said places, Hi! Careful checking out my posts, they may contain NSFW content! =^.-=)

Well this has been a mess...
Over the last 2 days we've had some really confusing changes for Palworld modding, the large Sakurajima update was super exciting but it also came with a surprise! With the update, PocketPair changed the packaging format to use a superior format with something called "IO Store", this newer format allows for fast loading and better streaming for many platforms and is a huge benefit in other categories. The issue? When the game is set to use a different packaging type, other packages become incompatible. This means mods in the older .pak format were no longer compatible with the set of IO Store .pak types, and vice-versa, meaning only one package type can be used at once. This 'broke' all previous mods Palworld had released for it, thankfully updating mods is really easy (it's a tick-box in UE5, then you just re-package and distribute the new pak format) but the community got impatient and vial toward the devs, so they reverted the change in format, but only on Steam.... (aka, Steam on old format, XBox/Gamepass on the new format)

Now, this has been a mess, and it's been really confusing with inconsistent messaging. So I want to make a post here with recommendations for modders on how to properly adapt then go over the situation and try my best to explain things in more detail (like why a switch to io store was even done in the first place, explain how reverting is going to cause us more issues as time goes on, and then explain how you can help improve things as either a modder or user).

--- --- ---

Users/Player - Here's some recommendations on how to proceed from this point forward

Rec. 1 : HAVE SOME PATIENCE. Like, holy damn, just wait for mods to be updated before storming PocketPair with pitchforks, alright? (Note, this isn't directed toward my usual NSFW audience, you guys have all been really awesome and patient. This is more targeted toward the casual crowd that lost their minds within minutes of the update)

Rec. 1.1 : Building off that last point, shifts in the modding space for games that are updated over time is extremely common and it's perfectly normal! PocketPair should be making changes that are the best for them and the game and we shouldn't impede their efforts. Modders will get around to updating everything and replacements for older mods will naturally take the place of those that don't. This is all expected, it'll take some time but moving forward is a positive change. (I understand the frustration when stuff stops working, but chill, things'll get fixed ^-^)

Rec. 2 : Take caution when updating from now on. Disable automatic updates for your platform and wait for experienced users to test the waters and see what does/doesn't work if your mod set-up is important to you. If you are an experienced user or modder, make sure to back-up previous versions just in-case something breaks and you need to revert for either play or testing. Even games out of early access can get a random update years down the line that breaks things (Looking at you Capcom, why did you do this to RE? What did we do to deserve such punishment? WAS IT THE BOOBIE MODS??? Q.Q)

Rec. 3 : State your platform when reporting issues and, if a mod doesn't support your platform, kindly ask the modder to release a compatible version. Since we now have to support 2 different formats this means there could be differences between the 2 we're not aware of. It's always best practice to note your platform when reporting issues, but this makes it even more important. Additionally, typically when modders don't release a compatible version for multi-platform it's normally caused by a lack of knowledge or time. So be understanding and link to resources like this one so they can get a track on what's going on and what to do to make a compatible version!

--- --- ---

Modders - Here's some recommendations on how to proceed from this point forward

To ensure the best experience for everyone, we as modders should try to support all of the latest versions of Palworld that we can. Previously that was easy since both PC versions were on the same format, even though they were technically different builds the functions and code between them were still compatible so even script mods had no issue. However, (at least at the time of writing) now we have 2 versions that require different steps to support, Steam's PC release, and then the XBox build that includes the PC Gamepass and MS Store releases. This means we need to supply 2 versions of our mods packaged for each platform from this point forward unless PocketPair decides to revert their revert and moves both platforms to IO Store (or they harm everyone by moving the xbox build back to the old format, I'll explain later why this would be a bad thing). This doesn't apply to Lua or C++ mods since they are loaded by UE4SS in an unpackaged state, but for BP mods and replacers, we'll need 2 versions.

So, here's my recommendations for Palworld modders moving forward.
(Nearly all of these apply even if PocketPair moves to a single format, so consider these 'best practices' of a sort)

Rec. 1 : Backup versions before updating. This applies to both the game version and mod versions! Preferably you'd keep an archive of your mod releases so you can always revert or reference back if something goes wrong. In this specific case it was easy for us to just release the 'previous version' as the Steam compatible version if you had released an IO Store version. Should also be fairly well known that game updates can break mods, if you're not an experienced modder it may be best to wait for others to test the waters and for tools to be updated if required before updating.

Rec. 2 : Modders should move their entire workflow to involve the UE5 editor, preferably using the Palworld Modding Kit ( https://github.com/localcc/PalworldModdingKit ). You can find a guide to setting up the modding kit on the modding wiki ( https://pwmodding.wiki/docs/category/palworld-modding-kit ). It looks daunting at first, but don't worry, once things are set up it's rather simple. The reason for this is reliability and consistency. I've been telling modders in our community to set up and use UE5 for their mods since it allows a lot more advanced workflows and ensures their set-ups survive changes like this. (Also worth noting, UE5 is required for animation importing, which is a bit of a focus for our community...) If you're looking for another guide on this matter, you can check out my SCake animation importing guide (no NSFW images in the guide itself, don't worry - https://www.michaelpstanich.com/article/SCake_HowToMakeAnimsGuide ) For everyone that followed this advice the IO Store change was just a tickbox in the editor and a repackage, it took less than 10 minutes to push a new version out and was fairly painless, everyone should be shifting to workflows like this one to prevent breakage in the future.

Rec. 3 : Package a version for each format/platform which means 1 for Steam with the old format and 1 in the new IO Store format for XBox/Gamepass. If you set up UE5 and start using ChunkIDs to separate your mod packages properly then this should be relatively easily to do (just a pain on the release and docs front). As mentioned in the previous Rec. 2, UE5 has these tools built in and IO Store is just a checkbox within the packaging settings (Go to "Platform" in the top bar, then down to "Packaging Settings" as a quick access to packaging settings. The setting here is called "Use Io Store" which you'll package 1 time with and 1 time without). For my own workflow I separate things into incrementing ChunkIDs (ChunkID determines what pak-# the file goes into), then when you go to Platforms > Windows > Package you'll get an export with each package number, I copy that into a folder then toggle on Io Store and run the process again to copy into a different folder. (Annoying, but not difficult)

Rec. 4 : Include version compatibility in your ReadMe/Download Pages/Filenames. We can't really determine what will be compatible in the future, but for current versions try to ensure users know which version is for which platform. Personally I'm doing this at a file-name level where the archives for Steam will now prefix with (Steam) and XBox/Gamepass prefixes with (XBox-Gamepass), then all version compatible stuff (like, say, lua exclusive mods) will have no prefix. It'll take time to have everyone following these kinds of standards, but try to keep your community/followers posted on where compatibility is if its relevant to you.

Rec. 5 : Adopt open modding and collaboration! One of the major issues I noticed was a lack of communication in the modding community about what was happening and a lot of selfish hostility demanding things that didn't make a whole lot of sense, eventually leading to this worse-than-before situation. We as modders should be working together to get things working instead of pushing against one another and refusing any help, or refusing to help others. If we continue down this path and keep giving PocketPair these mixed signals then modding is going to be completely screwed. Ultimately, in this case, PocketPair listened to less-than-experience 'modders' that refused to adapt and listen to more experienced modders, and has made the modding scene much more complicated as a result. We need to start sharing standards and better knowledge with one another so that things like this are less likely to happen in the future and adaption is quicker. (Our community had already adopted this mentality and we were fully updated without any struggle, and again after the revert. These things matter and can make all of our lives much easier. If you're confused about a change, ask experienced modders about it and be patient, listen in and be ready to adapt. A great modder adapts, a bad modder gives up and refuses to change.)

--- --- ---

Explaining the situation

Ok, now lets actually explain the shift in package types and what's going on.

Why switch to Io Store?
Simple, it improves loading and streaming assets on a wide range of platforms/hardware. While for a lot of modern systems you won't notice a difference (especially if you're not hitting memory limits or have a lot of io bottlenecks) this has massive benefits to console specifically, especially XBox Series S. So the reason PocketPair made this change was to make overall improvements to Palworld for all platforms which should reduce load times and improve performance across the board. Of course there's other things they could do to improve these things, but it's such a massive win on console that there's no reason not to do it.

Ok... so why on PC where it's not as effective?
This most likely comes down to their development pipeline and because the XBox version IS the PC version. Well, for Gamepass/MS Store version at least. The XBox/Gamepass version of Palworld has always been a different build than the Steam version (at first it even had different features/content!). However, PocketPair has synced up their development and now they are most likely just different packaged versions/exports. PC DOES have benefits from IO Store, so it's not like it was a bad call, but in reality PocketPair most likely just synced up their 2 pipelines into a single process so both versions were effectively the same package but with different exports (for platform reasons). So since Io Store is a massive win for console, when they synced up the PC version just switched to the overall better IO Store package type for universal gains and easier development.

Makes sense. So why do we now have 2 versions?
This is where stuff gets complicated, because it has to do with the "have patience" statements I made earlier. In short, changing the package method meant that all older mods needed to be updated, so when people launched the update for the first time none of their mods worked! This lead to casuals and incompetent 'modders' to immediately complain to PocketPair, blaming them for the mods breaking while demanding a revert. And PocketPair caved... probably the best argument for "don't listen to your community" I've seen in quite a long while. As mentioned previously, the IO Store format is a massive win for consoles so they most likely couldn't revert the change on XBox to hit their performance targets and obligations, which directly affects the Gamepass/MS Store versions. So yeah, only the Steam version was reverted, and the community forced this issue onto itself.

Yeah but, at least old mods work, right?
Some do, some don't, really depends what's changed, and this only applies to the STEAM version, XBox/Gamepass is still screwed. The reality is that most mods need to be updated eventually anyways and there's shifts in the scene that would replace a lot of the earlier mods already, so reverting the change really doesn't do much for us in the long-term. This revert is short-sighted, both from the community and PocketPair. But still, it'll be nice to use the older mods that do still work. Keep in mind that only BP mods and replacers needed .pak files anyways, script mods through lua or C++ were never affected and instead all broke because of changes within the game (as they do over patches). The real concern here, however, is that PocketPair could bring back IO Store for Steam since it just makes sense to do so from a development perspective and for the long-term health of the game. When they do, not only will previous mods be broken, but also all those made after this revert, ultimately doing even MORE damage than if we just kept IO Store and modders adapted. In other words, we'll be right were we already were but even worse off.

--- --- ---

And that's what I want to help prevent!
I'm making this PSA to let people know what's happening and help educate users/modders, while also advocating that we start making dual packages now to prevent future issues and help people adapt. There is a silver lining here in that we have the chance to 'get use to' these better practices and packaging for IO Store without mods being 'completely' unusable, but that does only benefit Steam users. So, let's say Steam does switch back to IO Store packages, then we can just transition to using the IO Store versions already packages for XBox/Gamepass! This will help minimize potential loss of mods in the future and ensure everyone gets to access mods to the same capacity, a win-win! Of course, if the community had already adopted better practices to begin with then none of this would have been an issue, but we can't change the past, only work toward a better, more sustainable future!

A reminder to everyone, if you ever need help you can always try either our community, The Broken Chatbox ( https://discord.gg/h3vB7S4FEw ) or The Palworld Modding Discord ( https://discord.gg/qHTZNcvYsv ) to ask for help! (I recommend our community for NSFW stuff) Also, be very careful which guides you follow! There's a lot of bad info out there written by people who have no clue what they're doing/talking about (especially on YouTube, I cringe every time >.<). Hopefully as time progresses we get some better guides with best practices and proper information, and I hope to help on this front when I get the time.

Either way, thanks modding community for intentionally stepping on a rusty nail, now let's work on the anti-biotics!
Comments  loading...
Like(0)
Sign Up or Log In to comment on this post
michaelpstanich
Public post

Project Sugar Cake v0.4 DEV Released! (BETA) [Palworld Mod]


UPDATE 2024-06-28 :
PocketPair reverted their package changes which means the new io store packages are now broken and old packages are working again. I've release a repackaged version of SCake (0.4.1) and the Anim pak, downloadable through the same link as before!
---
Emergency update for SCake!!!
Well, not really an emergency per-say, but critical non-the-less! The large Sakurajima update for Palworld broke mods when they changed their packaging method for the game. This didn't break too much in terms of actual mod compatibility, but it does mean all mods need to be repackaged with 'Io Store' enabled, this includes SCake, Anim Packs, mesh replacers, ect. I was already working on a decently sized update before so there's still some really cool stuff in here, just sucks that a lot of other mods may take a bit to get updated!
Alright, so lets cover the Sakura in the room, what did SCake need for compatibility with the Sakurajima update? Well, 3 things, firstly I just had to re-package ProjectSugarCake with the new format (enabling 'Io Store' in UE5's packaging settings), which was simple enough, then the mod was able to start up. After that however, I quickly noticed after re-building my SCake_BasicsAnimPak into a new Anim Pack (also released along-side this update, called Spirit's Naughty Human Anims, though it's just the same animation with updated info for now X.x) the loader code for SCake no longer worked! This meant I had to build a new loader (wasn't too difficult since I already had the research for other potential methods) then create a translation layer that re-formatted existing file-paths so the JSON formatting didn't need to change.
Simple stuffs! Now, generally everything else 'seems' to work fine, but this update is slightly rushed with not a lot of testing so there could be some new bugs or issues with features, especially new features, but I guess that's why this is a DEV version, right!?
Anyways, other major additions, AdjustProfiles are now a thing! Currently SCake is only set up to have a single profile, but this allows position and camera adjustments between animations to carry over between animations/sessions! (Finally don't need to re-align every single time, it'll save and re-apply it now!). Made some major improvements and finally finished the Validators for registering and playing back animations! This means things should flow much more smoothly and help modders see where their anim-packs are failing better. Restrictions were also added for when animations can play to prevent breakage, along with some minor adjustments to positioning code. Added a ton of additional features for modders within the SDK and exposed a bunch of variables for easy access, this should allow more advanced Modules to be created! Of course there's more, check the Changelog for details!

- Project Sugar Cake -
- Full Changelog -
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


What's Next?

We all expected the Sakurajima update to break stuff, however I don't think we quite expected it to break literally every single mod! So this puts me in a bit of a strange position and has basically forced an immediate shift in focus. After the update was announced I decided to hold out on a couple of things just to see what the update changed and how things progressed, specifically I waited on working with the Lust Module and Model Replacer idea, just doing a bit of internal game research in the mean time while working on SCake itself. This ended up being a double edged sword... I didn't expect all mods to break, I just expected 'aspects' of mods to break, but since they all broke this means the framework our community was using for gender-based model replacers no longer works! This means I'm immediately shifting focus on trying to build the flexible model replacer framework. It would have been nice if I already had a framework rolling, but it's also good to know I don't have to re-build things after a ton of work, especially since Palworld now has a new 'skin' system and.. hats? So I'll be able to freely investigate how those things affect these systems and maybe add support/compatibility directly into the design of the framework!
After that I'd like to work a bit on getting multiplayer working, but I have a feeling the model replacer framework is going to take a good bit of time to get rolling. I do have another 'secret' release coming up though, nothing too interesting, but it 'may' spark some additional interest... maybe?

Current Road Map
1 ) Build Model Replacement Framework
2 ) Work on anim packs and try to expand releases
3 ) Consider/Test multiplayer support
Comments  loading...
Like(0)
Sign Up or Log In to comment on this post
michaelpstanich
Public post

Monthly Update Post – June 2024 – “Woops, I missed one?” Edition


Ok, I sorta, maybe, accidentally skipped last month’s update post, kind of. As a result, I’ve got lots to write about here as it’s been a good while since I’d done one of these. To quickly explain the gap (which, I know, I probably don’t need to but the story is interesting? Maybe?) I was transitioning to doing the posts near the beginning of the month instead of the end as it would be easier to be more flexible with the release, since I could still have it be within the month even if it went over a couple days. I originally planned to write about data structures and stuff I’ve been working on for a game project, but instead of actually getting the update post out I spent time just, well, actually working on the project itself!~ Aaand next thing you know, it’s been 10 days, 20 days, a month… Yeah, just didn’t feel like writing I guess! (I was also trying to decide exactly what to do about a couple of other things, but I’ll talk about that later in the post)
Before we continue, just wanted to say Happy Pride Month! (I always forget when June comes around so no special plans X.x). Now let's color the streets as we stroll over this months update post with 2 months of talk! (Sorry in advance for the length... =^.-=)


Project Overviews


> Project Announcement : Data:EnCryptic <
A long while back I said I'd like to start working on a smaller side game project for a while and after making that announcement I came up with a concept, released an overview of what would be included, then promptly ditched everything I wrote because I came up with more ideas and better direction. Yeah, common theme with me, I know, but now I've started DEV on what will be the 'actually released' version of this small project!
The original small project was called "Crystal Grimoire: Soulless Evolution" which was suppose to be a test bed for concepts I was working on for my main large game project, currently labeled "Crystal Grimoire : Project Soul". However, as I worked on some concepts for it I felt doing something too similar to the main project was not only boring conceptually (who wants to build the same thing twice?) but also just uninteresting as a release plan. So, I merged those concepts back into the main project as I expanded writing on it and instead started taking small side-concepts that didn't work in the main game and started this new small concept.
(Note: Some docs and files that release may reference "Project AI Cards" which was the working title for Data:EnCryptic)
I'm not quite ready to show anything as I'm transitioning to start sharing assets between the 2 titles, to which I have a LOT of polishing to do, and I want to re-build my prototype and actually make a proper early version for supporters to try. But I did feel it was important to announce it here since this will be my primary focus this month with most of my available time sinking into it. The new project will be built using Godot 4.2 with plans to transition to Godot 4.3 when it's ready. Although I've been working with prototyping and learning in Godot 4.x for a good while now, my main project is still in godot 3.5 as many aspects break in the transition. So, with this transition I'm looking to also restart my main project build in 4.3 when that becomes available and use this as a chance to make something 'real' in Godot 4.x. (As a note, I've been using Beta builds for Godot for these experiments and finding bugs/issues a plenty, but since I plan to actually release something here I need to use a stable version which does make me a bit sad inside... Q.Q)
Real quick though, what even IS "Data:EnCryptic" exactly? Here's a quick run-down, though I'm intentionally leaving out details since the game is suppose to be a bit mysterious in its execution.
Game Pitch :
Data:EnCryptic is a sudo-idle RPG management game (with optional R18+ Content) where the player navigates a digital dystopia long dismantled and encrypted by the Master AI System. While exploring this broken realm the player will explore, fight, and decrypt mysterious data artifacts and anomalies while building a team of sentient Simulacrum and Servants to assist in uncovering the broken ties between fiction and reality. Explore these lands of ever-shifting data to build up resources, expand your personal data repertoire, overtake rogue networks for your own gain, and... save the world, as a jpeg?

(Editor note, the original write calls this AI Ult.Clarity, but Clarity AI is an actual company I didn't know about at the time, so I probably need a new name Q.Q)

 > Palworld Mods (Project Sugar Cake) <
I discussed a lot about my plans with SCake and what I want to try to create along side it in the last update post for 0.3 DEV, so I'll keep this relatively short. Made some major progress since the last monthly update post with a ton of game-breaking research going on. I feel like I've torn Palworld inside-out by this point and have a lot of surface level knowledge for nearly every system which has been rather helpful, not just for my own work but also in helping direct others in places to look and suggestions on best practices. There's been a major slowdown in most areas for Palworld modding with everyone seemingly waiting for major updates, but in The Broken Chatbox we've been seeing more people join into the naughty side!
The last major updates to SCake have been focused on feature requests and I've now made the TODO public which I also use as my internal requests tracker (I don't know how interesting my internal doc systems are to read about so I'll skip that for now >.<). We now have animation switching, gender preferences, some cool new API features... Actually, that last bit is the most exciting! Or it's related at least... Because the biggest feature is more modders joining the fray and making content! Aside from models and animations, I've also talked to modders about creating a combat submission mod, a 'fluids' collection mod, a futa mod, and more! We have some exciting stuff in the works! If you're more curious on my personal plans for naughty Palworld mods, I recommend checking out the last SCake update post! - https://subscribestar.adult/posts/1280485

> Skyrim Mods (Succubus Heart) <
I've been ironing out some issues here and there to work on finally getting another Stable Release build out, this time with 'proper' OStim Standalone support! If I remember correctly, I reported in the last major Dev update post that with the help of the community most of the major OStim issues have been solved and I can happily say it's now in a spot where I'm comfortable putting it into a proper Stable release! That said, it's still incomplete with some features that simply won't ever be possible because of OStim's self-imposed limitations. Stuff like creature support and non-con wont ever be working 'officially' through OStim, though there's some reworking for combat submission at least.
But if stuff's ready why haven't I released a new version? That's because I've still got standing bug reports with some being pretty major, but I've not heard back in quite a while from those I was speaking to on the issue and few have responded to my request for additional details. So I'm stuck in a bit of a limbo state. The 3 major issues I'm concerned about potentially missing are... 1 ) The sudden serge in reports that the MCM isn't showing up on all version, no idea what caused this but I've got no meaningful data on this issue, 2 ) Some crashes/lockups are being reported relating to the Sexual Enrage spell, I suspect this is caused by some sort of mod conflict or UI mod (It's confirmed that this spell causes crashes on OStim, so a work-around was put in place but it doesn't always work), and 3 ) I received some reports that Succubus Heart can fail to start properly and scripts can lock up or stop functioning properly, just today I got a report that Orgasms were not being accounted for properly.
All these issues are rather confusing and I haven't been able to find solutions no matter how deep I dive, and given the limited return in bug reports I may just have to let them go for now and push a new release version with hopes that they are caused either by user error or the influx of potential users will give us the details required to fix them.
Either way, I've dedicated to a new release version this month, so that should be out soon!

> Phantasy Star Portable 2i Mod? <
( Era appropriate image sampler )
I got a bit burnt out while working on my usual projects (it also didn't help that I basically scrapped that prototype I talked about earlier and started anew, which always has a bit of a moral hit) so I wanted to work on something unorthodox and different. That's where PSoP2i comes in! I enjoy going back to the PSU style games quite often, and Infinity has been one I go back to regularly. In-fact it's my most played game on my ROG Ally at the moment.. that thing has basically become an oversized PSP at this point... >.>
Either way, I decided to do some texture modding and research! I wasn't initially sure if I'd release anything but my research ended up being rather conclusive and I have some working 'lewd' texture mods I may release as an R18+ mod! The initial mod I just called "Anti-Skirt" as it just removes skirts from some NPCs as a texture mod test, but I also worked on trying to get a working nude mod and replacing other textures. Now, to be clear, my goal wasn't originally to make a lewd mod but it just happened to be something worth trying since the skirt removal was a very easy start (just like re-colors are) but nude textures tackles some of the most difficult challenges in texture modding this specific game.
So... yeah, that'll be releasing once I package stuff up and maybe work a bit more on it to polish up the nude mod aspect. There's some major limitations and a lot of details I'll discuss when I do release the mod as I plan to do a write up about my research. To summarize though, PSoP2i does some really unique things on the PSP because it's the same engine used for PSU, but adapted to work with the PSP's hardware. This create some really interesting problems but honestly it was really cool breaking into the data of the game back when I was making a 60fps patch for PSoP2, so this is a fun prospect for me, honestly! Just don't expect major updates to this mod, it's really just an "I need a distraction" kind of project.
In the future I'd like to attempt a 'graphics restoration' project since it shares many assets from PSU, but most have not been gracefully down-scaled for the PSP. There's already a started restoration texture pack but it never got finished, so I'd love to step in and do a bit more work while also applying some AI+Manual upscale work as more texturing practice.

> Website Redesign (michaelpstanich.com) <
Been a bit slow on this front as I’ve been focusing on other projects since I hit a bit of a road block. Essentially the tools I was using and have been using for my own web stuff for years has really fallen short for me as I try to transition to using new tools and frameworks, which has technically been true for a while but since I did so little web-deb for so long it wasn’t a huge issue. But, that is why my website was so out of date since things were difficult to manage and update, which needs to be fixed. So, I’ve been transitioning to new tools and figuring out better solutions for managing stuff. The most notable transition is that instead of using Brackets for my web coding I’m moving to VS Code while making a set of custom scripts to translate things over quickly and easily. My transition to VS Code has been rather nice but I’m still getting use to the workflow and figuring out more tools which has taken some time (especially since I’m trying to transition the majority of my coding/docs work to VS Code). 
One of the challenges I have is figuring out ways to make translating articles over quick and painless so that I don’t have to spend a bunch of time re-formatting stuff for each platform. Although now I’m transitioning to just releasing my write-ups on 2 platforms instead of 3, I do want to make it simple so I can write things once and be done. To help with this, I’ve started experimenting with various text scanning/replacement scripts and methods while also trying out a really awesome bit of software called “Pandoc”. Pandoc is a universal text file translator which allows you to quickly and automatically translate certain doc types from one file type to another, although it’s not perfect it’s been really useful! Currently my workflow has me writing in .docx as usual, then I run it through Pandoc to translate it into markdown, then using a visual markdown editor I clean up any errors before I translate it directly to HTML which then gets the header/footer stripped and replaced and a few div tags are re-formatted specifically for my site. This is obviously much better than having to either manually edit in tags or translating manually to Markdown, but the process is still rough and requires manual work.
To help with this I’ll most likely start transitioning to markdown for the initial write, which ‘should’ allow me to directly paste to platforms like SubscribeStar, or at the very least ensure that translating the doc type to something else is smooth and doesn’t require additional editing since I can make my own scripts to fill in the gaps. Doing so also means I can just make my own arguments and replacement scripts as well, removing the need for Pandoc in the long-term. The issue is portability and just my own consistency, I’m not use to markdown so it’s going to take a while for me to get use to it, and even this update post still isn’t written in markdown so… yeah… ya know what? Fine. The rest of this doc is being written in markdown on VS Code!
(Note : This doc started being written on June 6th, 2024. If it releases later than that you know I struggled X.x)
(Back from transitioning to VS Code, I have 30 pages of documentation and 14 json files open. Halp Mee!!! =X.x=)
Oh, I almost forgot to add a somewhat important note. I will most likely be releasing a partial site update soon which moves the current site to /old and having a place holder home page so I can start putting up hosting pages for content to DL/preview as well as give easy access to tutorials, updates, and guides I release.

> AI Related Stuffs <
Got a few projects going on in the AI space, but first just wanted to note I've been learning about local LLMs, not just translation LLMs like before but also using LLMs for potential role-play RPG prospects and creative writing assistance to help break writers block and create interesting problems to solve through. I played around with the idea of starting an experimental bot for our Discord - The Broken Chatbox - to play around with as a fun side project, but it's not currently viable with my set-up.
On the image generation front, I've started testing and merging for a follow up release to SpiritMix - Soft and Cutesy, which has been requested for quite a while. The new version will focus on trying to make scenes and body forms more consistent while updating some models in the mix with those found within SpiritMix - Poly Cube to help with anatomy and clarity. I'd also like to expand the NSFW capabilities as some had requested, since multi-character generation with the model in particular poses is really terrible in its current iteration, but that's secondary to actually reducing the 'default' lewdness of adult characters on the model (it really likes to show boobies >.<)
Finally, I've been testing training a new SD1.5 base model with our new "Neuma Source" dataset (WIP Name), a new curated dataset featuring 3.6m anime/toon/3D style images covering several non-real domains. There's a massive amount of work to be done here and I've become the only one working on the dataset for now (previous team disbanded after being threatened by CivitAI) but the goal is to build a future-looking dataset of curated images which removes undesired images/concepts, trims duplicates to ensure only high-quality versions are used, weights validated images more highly in training, and purging images which fall below an aesthetic quality threshold. Currently the process still requires a lot of manual work, so the process is very slow at the moment (given I don't have funding to continue I just work on it between other things when I have low energy.). I plan to release an article after a few months of testing/training on whatever methods we find and hopefully release a usable model.
Also worth noting, I have been paying attention to both SDXL and SD3 advancements, and also looked into other non-SAI models. However, SD1.5 has a lot of research with a lower bar to entry so it's a good testing ground for this sort of thing to start on. Depending on how difficult SD3 ends up being to train, I 'may' jump in if effective methods are found early, but for now it's on the back burner.

Releases


> Palworld Mods <
Project Sugar Cake 0.3 DEV

> Skyrim Mods <
Succubus Heart 5.3.7 DEV

Questions and Answers (and Feedback Responses)


Statement : You're awesome, you're amazing, a true legend, "goated"?
Response :
I don't even know what that last one is suppose to mean, but ok, I guess? Honestly I've been getting a lot of really positive feedback over the last few months and I'm really grateful for that. However, I also want to make a quick statement here as it is something I'm always concerned about. I don't want people to blindly follow what I do/say or just 'accept' anything I do. When I make changes or judgement you disagree with, I want everyone to know you can speak about your reasoning for disagreeing and we can have a discussion! One of my greatest fears in these kinds of situations is someone saying something like, "Oh, so-and-so is perfect" right before reality hits, none of us are perfect and I am prone to error just like anyone else.
Probably feels a bit weird for me to bring this up, but recently I had someone 'defending' some design decisions and some long-standing bugs within Succubus Heart. I never want to see people shut down other people's reasoning, instead I want us to all grow through discussion and reasoning, talk it through, think about what each person is saying, then make judgement based on that reasoning while keeping our responses within reason. I'll be the first to admit there are some failures in Succubus Heart that I wish I was able to fix, and while these kinds of things should never justify attacks or harassment toward creatives, that doesn't mean we should ignore the given issues. More importantly, if we start shutting down discussion that could be considered hostile by a few overly sensitive individuals, it could mean that an increasing number of people become afraid to speak up which acts to the detriment of not only that single project and the community, but to communication in general.
So in short, don't be afraid to speak up about potential issues you may have or see while displaying your reasoning. Always try to be civil and always try to be kind of course (which I know is difficult, we all falter in this aspect at times, especially if an issue goes on for too long and starts to extend beyond reason). But also acknowledge that not all disagreements are between 'right' and 'wrong', and sometimes it's just a difference in perspective. There are certainly harmful disagreements, especially when you start talking about ethics and social issues, but you won't dissuade people in a positive way by being hostile and refusing to even reason.
Sorry, end of my little rant I guess. Kind of became a bit of a soap box for a moment. >.<  
Just know, I don't want us to argue and hate one another, there's just so much of that in this world that we don't need it to infect every aspect of our lives. Instead, let's try to prop each-other up, not just by being kind but also by helping each other improve, and these kinds of discussions can help with that!

Question : Do you have a manager/organizer?
Answer : I felt like it was obvious with how often I fail to do releases properly or miss simple blog release schedules, but it was asked quite a few times. I suppose I must look much more organized from the outside looking in than internally where I'm constantly trying to wade through self-lit flames in the cramped space I call a brain. For real, I've struggled with maintaining organization for a long time but that also means I have a LOT of practice! So no, I don't have a manager/organizer/assistant/whatever.
I mean, firstly, I'm freakin' broke, so paying someone to do my sorting wouldn't really be viable, but also I'm a bit of a weirdo when it comes to self management. I have preferences to how I do things and when I work on projects I like having my own isolated systems to help since I know the ins and outs of said system. There's this issue I have where I really like to fully understand systems I work with, and if I had someone else managing things I would be missing those things, which I would really struggle with! That's not to say I haven't or can't work in teams, but it's so much different when you work in a team where you have specific aspects and duties you focus on and projects where you are the sole creative.
Another aspect is probably the writing stuffs? I was also asked by someone who asked if I had an assistant if I also wrote these articles. I've been practicing writing for a pretty long while, especially as I've done script writing for videos and technical papers, so yeah, I write these! ^-^  
For real though, I think that was a hidden compliment, even though it really just made me confused. I don't feel my writing is particularly good (especially these 1 shot blog write-ups which go out without any major editing, just spell check '@.@) but maybe it's just the quantity? In that regard, the quantity is because I just don't do editing most of the time and throw caution to the wind! (I get bitten by pigeons a lot, like a bread bit thrown off a roof >.>)
Comments  loading...
Like(1)
Sign Up or Log In to comment on this post
michaelpstanich
Public post

Project Sugar Cake v0.3 DEV Released! (BETA) [Palworld Mod]

I think I’ve just settled into doing large updates for SCake, honestly. Wasn’t really the plan but, honestly, there hasn’t been enough movement in lewd Palworld modding to really justify more intense releases or pressing features. But you’re not here for the preamble, so let’s get sweet!

Alright, so this is another big version release similar to SCake 0.2 DEV, though there’s no ‘breaking’ compatibility like last time (those JSON changes were necessary though >.<). This update focused on getting some validation working properly, implementing preferences and gender options, as well as requested feature additions like animation selection/switching. My personal favorite additions this update is the custom gender settings and the new expressions settings for animations. With custom gender settings you can define how a M/F character will actually be recognized by SCake, this allows you to make all pals, regardless of the in-game gender, be recognized as a single gender, swapped genders, futa types, ect! This will be super helpful if you use replacers which replace both in-game genders, or if you want some futa body goodness. Expression settings (FaceExpress/Climax) allows animators to set the facial animation of characters in an animation, which should help make some animations more expressive and interesting!
Download Links!
GDrive Folder : https://drive.google.com/drive/folders/1vYfgMom7UJs2OmJ5B4FGQTMYEOR0n9Vr?usp=drive_link
Mega Folder : https://mega.nz/folder/9hZQ2IIR#Ou77tq4qQxw9UBQsozh6zg

- Project Sugar Cake -
- Full Changelog -
SCake Version 0.3 DEV (Beta)
(Note : This version temporarily removes the Animation Montage validation when registering animations. If you're making anim packs, ensure the animations play properly in-game before releasing your pack if possible.)

Added : Whether Sexual Heat is rising or lowering is now recorded by the save file (was just defaulting to always increase)
Added : API Function "SCake_StartAnimEvent" which gives access to all animation options at once with defaults (Passing no EventID will scan for a random animation to play, similar to other start anim functions)
Added : API Function "SCake_ValidForAnim" which checks if a character is valid to start an Animation Event (I'm transitioning validity checks into these kinds of functions for more general use and reduce redundancy)
Added : API Function "SCake_GetCompatEvents" which returns the EventID for compatible animations for the passed params
Added : FaceExpress and FaceExpressClimax to JSON for animations while allows setting the facial expression for while the animation is playing and for orgasms respectively (check the templates for possible settings)
Added : A hidden setting "Set_ReportRegFails" was added to the SaveSystem file, switch this to true and a long string will be sent to the report output covering all failed Anim/Event Register returns, may be useful if animations fail to register and you need to debug which failed (Note : The parser wasn't designed with these returns in mind so it may not always return useful data, to enable you must edit the SaveSystem JSON for the save you are testing on)
Added : Compatibility checker now checks the Size parameter registered with Animation Events
Added : "Excluded Tags" is now functional when starting animations through the API
Added : "Preference Settings" submenu to SCake's main menu (Note : Most preference settings will be checked with the compatibility checker, if a mod starts anims while bypassing compatibility checks these may not function as intended)
Added : "Block Female Only Anims" to Preference Settings, attempts to block/invalidate anims with 'Female on Female' intentions
Added : "Block Male Penetrated Anims" to Preference Settings, attempts to block/invalidate anims with 'Male on Male' intentions
Added : "Block Straight Anims" to Preference Settings, attempts to block/invalidate anims with 'Male on Female' or 'Female on Male' intentions (This also blocks all futa animations if futa flags are set)
Added : SCake's UI now supports menu pages, can navigate between pages through a defined count
Added : Animations should now fail to start with characters that are knocked out/dead (Technically a fix for characters partially reviving when triggering SCake animations as well)
Added : Animations will now fail to start with characters that are in a sleeping state (Technically also a fix for sleep animation issues, if you want to start animations with sleeping characters try waking them up first)
Added : Animations now end when a character involved takes damage
Added : SCake now has the ability to assign arbitrary genders separate from the game's assignment, only used when specifically checking gender through SCake
Added : "Change Gender Assignments" to the Preference Settings which 'should' list all possible CharacterIDs and allows manual assignment of SCake genders, which should save into the SaveSystem JSON file. (Note : All 'human' characters share the same ID within SCake, which includes the player as human)
Added : "Game Settings" submenu to SCake's Main Menu which covers Palworld native settings
Added : "Auto Save Frequency" to the Game Settings menu which alter's the in-game auto save frequency (In effect also changes SCake's auto save frequency since SCake saves alongside the game's normal save)
Added : When animations switch during playback (like when switching stages) compatibility will be re-checked and slots re-assigned (allows dynamic Animation Event switching and arbitrary animation playback, as well as fixes slots not aligning properly through events)
Added : Human NPCs (well, non-pals at least) now show their BP_Class when their name is displayed for easier finding/editing in SCake's settings (This change will most likely be temporary until better solutions are found, most notable place this shows up is in the control animation menu)
Added : If no facial expression is set for an animation, default behavior will now take over with 'HalfClose' defaulting for animation playback and "Close" defaulting for orgasms
Added : The Animation Control menu now shows the currently playing animation event
Added : Placed an example LoadList in the AnimJSON folder, "_LoadList_Example.json" which shows how to build the load list and includes all currently known released anim packs

Changed : SCake now loads animations synchronysly instead of async like before, this will cause the loading screen to stall and take a bit longer. (Discovered some odities and people kept complaining about the async loading, so we're just going to do it all in a single frame for now)
Changed : SCake's default loading method for spawning the "ProjectSugarCake" actor (Using a new Subsystem Injection method which should have SCake load sooner than before but also load more reliably in multiplayer by bypassing UE4SS's injection method, UE4SS is still required and the old method is used as a fallback should subsystem injection fail)
Changed : Sexual Heat is now gained during Erotic Animations independant of natural Sexual Heat gain, this rate is x25 stronger than natural generation and stacks
Changed : Moved validity checks outside of the Animation Player so it runs before an animation even tries to start (this is an optimization, if you bypass the API and try to start an animation directly from the EventComp, it may now fail to start/play correctly, if there's a valid reason not to use the API ensure you are validating everything is compatible beforehand)
Changed : "Valid For Animation" checks and systems overhauled for better modularity and additions (should also perform faster in situations where multiple compatibility checks must take place within reasonable actor limits, however large numbers of actors (more than 4) in a single scene may perform worse in some situations but will not suffer from random failures)
Changed : Character arrays passed for animation playback should now act in a deterministic way (Compatibility is now done in a non-random way, previously while the functions were linear in comparing compatibility they were passed as TMaps, which do not resolve into a deterministic array meaning outcomes where seemingly random, the Pal Character Array is now passed directly and not altered through-out the process.)
Changed : "Settings" are now "System Settings" to help differenciate between other new settings menus
Changed : Animation List and Animation Event List in the menu now divides into pages with 20 entries per-page (Should be much easier to navigate, note the page sorting is not consistent because of how UE5 handles hashing)
Changed : In instances where the game doesn't assign a gender, 'Male' will now be used by default (Only affects like, 2 human NPCs at the time of writing, felt this was the best option to make compatibility settings work closer to expectation but may still cause some strangeness. More advanced methods/exceptions will need to be implemented in the future.)
Changed/Fixed : Minor UI related things (spacing, readability, typo fixes, ect)
Changed/Fixed : While in an Erotic Animation, characters who orgasm will now continue decreasing in Sex Heat and no longer gain the increase for being in the animation itself until reaching zero or triggering an increase in Sex Heat from another source to trigger Sex Heat back into a rising state.

Removed (Techincally?) : Removed multiplier to Natural Sexual Heat generated while in Erotic Animations (Was technically broken in 0.2.1 since I had incomplete changes left in there)
Removed : API Function "SCake_StartAnimEvent_Advanced" is no longer available, use the new "SCake_StartAnimEvent" API Function which includes all the same variables and more
Removed : Register no longer validates if Animation Montage paths are valid (This validation step will become a debug option in the future, the current validator causes some issues for some players and extends loading time as it calls the Asset Registry, no idea why)
Removed : Characters no longer play the "Happy" action after anims (This also added SAN and affected AI behavior, may replace with a more dynamic system)

Fixed : Sexual Heat triggering a decrease when values were too close to 0.0 (Float percision error I didn't account for, now fixed)
Fixed : Natural Sexual Heat progression should now properly increase instead of constantly causing a decrease. (was caused by float percision error)
Fixed : "Valid For Animation" checks should no longer suffer from sporadic behavior/failures when comparing actor counts above 3
Fixed : After checking the Animation Event List, closing the menu without backing out first, then entering a player involved animation should no longer get the description box stuck on-screen with the details of the last viewed Event item
Fixed : Animation Events should now properly cull duplicate tags (worked before, but some variable changes broke the function somehow)
Fixed : Player should no longer have duplicate references within the tracker, fixing a number of issues (May not be fixed for mulitplayer, was caused by extra IDs being coded to point toward players when loading a game, current fix makes an exception and ignores these IDs)
Fixed : Aroused morph for the player should no longer act unpredictibly or 'flicker' (caused by duplicate reference fix)
Fixed : "SCake_ED_PalAroused" will now only call if a character went from not aroused to aroused as intended (Was calling any time Sex Heat changed before)
Fixed : Sex Heat getting stuck increasing after a character had been in an Erotic Animation
Fixed : The animation player now calculates its on-tick/per-frame functions after physics have applied, preventing a couple of issues (Fixes some odd positional flicker when playing at high framerates, fixes expressions not always applying correctly, fixes some logic interfering with other functions which tick during physics)
Fixed : CharacterID should no longer parse incorrectly within SCake's logic code fixing strange inconsistencies and lucky/alpha pal compatibility (For example, 'JetDragon' should not register as compatible with other other IDs that end with 'Dragon')
Fixed : Automatic compatibiltiy checker for CharacterIDs should now work for Lucky/Boss/Variants properly (Fixed with internal CharacterID processing fix)
Fixed : SCake should no longer run as if it's in-game when entering a game then heading back to the title screen (implemented a better title screen detection method)
Fixed : Animation Events now correct slots while switching animations/stages so Events that don't have slots aligned through-out should now correct themselves during playback (as-in, if slot 1 switches to slot 0 from stage 1-2, the animation should correct itself rather than breaking or stopping the animation)
Fixed : Animation Events not starting with proper offsets configured on an animation's start (was only applying offsets after the first stage had started, should now load properly on the first stage as well)
Fixed : Animation Player should now properly track how many characters have orgasmed and how many times
Fixed : Expressions not applying to all characters in an animation at all times, also fixed expressions applying too rapidly causing some strangeness (Most notice-able on the player if their expression was forcefully changed)
Fixed : Animation Player calculating character positions multiple times per-frame
Fixed : Animation Player causing some AI weirdness (SCake's Action Override had some flags set that could change AI behavior in some rare cases)

What’s Next?
Ok, so I’m going to talk a lot on ‘what I would like to do’ but can’t guarantee any of this will actually become a reality soon or anything. My goals from last week didn’t end up happening as priorities shifted as requests for the same few features did show up a lot, so in regards to SCake itself I’m effectively on the same goals as last release. However, there’s some other things I’d like to work on besides just SCake, specifically I want to actually get some animations out (I’ve been really slow about it X.x) and introduce breeding/lusting. Breeding may end up being part of SCake itself as an integrated feature, which would make sense, but for Lusting this would be a gameplay module where different pals would automatically ‘lust’ after other characters automatically as their Sexual Heat rises higher and higher while also introducing random sexual encounters. We’re still lacking a lot of animation compatibility so one feature I was looking at implementing was a system for “animation sets”, TemTemLover has been making animations that are cross compatible with each-other to cover a large number of pals all in one go. While I had talked about this type of things in the past and started my own system for it, I think integrating this kind of thing for automatic configuration in SCake would be a great idea as well, but I don’t know how complicated this would be to implement in a user friendly way so I’m still not sure if I want to officially add this to the plans quite yet.
Additionally, I spent a rather embarrassing amount of time researching and reverse engineering Palworld to learn more about its internal systems beyond what I needed to just see what was possible and, man, there’s a LOT that’s possible. One of the more interesting things I investigated related to SCake however, is the idea of making a more dynamic and SCake compatible model replacer mod framework. There is currently 2 frameworks that sort of do this kind of thing, one is for player textures and another is for pals and their models, however both of these are limited in ways I don’t really like and may not be sufficient in the long-term should Palworld lewd mods ever really take a strong hold. So, I’ve been discussing the possibility of shifting some focus on making a model/texture replacer framework that is much more dynamic with json configuration and SCake integrations with additional unique features like supporting additional genders (SCake integration exclusive) or configuring body morphs and clothing set-ups. This would, of course, be another massive project so I’m not promising anything, but the more I think about it the more interesting it sounds, so I may take a stab at it to see where it leads!
Current Road Map
1 ) Create Lust Module
2 ) Work on making some animations (seriously)
3 ) Research sockets system for dynamic attachments and furniture support
4 ) Investigate/prototype model replacer framework
On Hold ) Work on multiplayer support
On Hold ) Introduce a built-in SCake Notif-system for animations to trigger certain effects (like changing arousal meshes or changing eyes/mouth)
Comments  loading...
Like(1)
Sign Up or Log In to comment on this post

The subscription gives you:
  • Access to Creator's profile content.
  • Ability to support your Creator by contributing – one-time or recurring.
  • Means to reaching out to the Creator directly via Instant Messenger.
This website uses cookies to improve your experience while you navigate through this website. Continue to use this website as normal if you agree to the use of cookies. View our Privacy Policy for the details. By choosing "I Accept", you consent to our use of cookies.