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

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

16 subscribers SubscribeStar $5.00 tier ; Demi-God
Unlock

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!
Displaying posts with tag Palworld.Reset Filter
michaelpstanich
Public post

Altermatic v0.2 DEV Available! [Palworld Mod]

Update 2024-07-18 : Uploaded v0.2.1DEV with a quick revert to the start delay. There's a bug in SCake that was causing summoned/party pals to not be captured properly with the longer start-up delay so I've reverted this delay and now Altermatic should work as expected with SCake installed. Sorry for any inconvenience this caused!

--- --- ---

The last release of Altermatic was really just a bare minimal release to ensure people could start using their replacers again after the whole IO Store split and to get people on-board with the system. But now that Altermatic has been in the wild for a bit, it's time for a substantial update which makes it truly interesting!

This is a fairly large update for Altermatic that adds a lot of requested features as well as features originally planned before the 0.1DEV release. I didn't originally plan to implement all this in one go, but I think anyone who follows me knows the pattern by now... This update adds persistence through JSON save files, Trait definitions support so swappers can target Pals with specific Traits, MorphTarget randomization for pal models with body morphs or accessory/feature toggles built in via Morph Targets, a fallback system for extended gender support with/without SCake, and many more changes. Overall it makes Altermatic a really compelling replacer that has features not available in any other framework! That said, since Altermatic's release there's been a lot of ideas and requests so development still has a long way to go until we have all the features people have wanted, but overall this is a really good spot for Altermatic to be in since it allows modders to really go wild with their replacers from this point forward and will help to establish some better standards and practices!

- Altermatic -
- Full Changelog -
Altermatic Version 0.2 DEV

Added :
  • Altermatic now has persistance through a save JSON system, saves as "Altermatic_Persist[worldID].json" (if you want to reset persistance you can delete this file and everything will reset)
  • With the new JSON saves, added internal systems for tracking which pals have changed to which model to enable consistency between loads/sessions/ect, you can delete/modify the JSON save file to reset/change this behavior ('model' being used is tracked by file path, if file paths conflict then this behavior may be inconsistent, if a file path is no longer registered the character's associated model will be reset)
  • "ReqTrait" to SkelMeshSwap, defined Trait Names in this arary are required for the swap to apply to the Pal/NPC
  • "PrefTrait" to SkelMeshSwap, for each of the defined Trait Names in this array the pal doesn't posess the match quality decreases by 5
  • "Disable" to SkelMeshSwap (and future swap types), when setting "Disable":"True" the entry will be skipped (useful for quick testing without clearing data in the JSON, can also be useful for users that don't want to clear JSON data but would like to disable certain skins)
  • Passing Null for SkelMeshPath (specifically "SkelMeshPath":"") now counts as a 'do not swap' entry and adds the default model to the random swap pool (In other words, when a SkelMeshPath is specifically excluded, this will add an entry where the current default model/skin is applied, if multiple skins are set up for the same parameters then the default skin is now added to the randomization, if you're using 'naughty' models and need them to have bits I recommend still setting the default path for the swap so it can be more easily removed if undesired in the future)
  • __Create_Load_List__.bat will now try to scan .json files for SkelMeshSwap to try and predict if the json config actually contains swap data (this param would be required for any swap data to be in the JSON so this will prevent invalid json files from even attempting to load, future checks for different swap types will be added in the future, unless I forget X.x)
  • "MorphTarget" param added for SkelMeshSwap, defined as an array of sets which allows the assignment of Morph Targets on the model
    • "Target" is the name of the Morph Target on the model to alter
    • "Set" is a hard value to apply (clamps to min/max), if excluded then a random value between Min/Max is applied instead
    • "Min" is the lowest value allowed, if excluded then "0.0" is applied
    • "Max" is the highest value allowed, if excluded then "1.0" is applied
    • "Type" allows either "Free" or "Restrict" to be defined, Free means the value can be anything between Min and Max, Restrict means the value will either be Min or Max, if Type is excluded then Free is applied (Free is useful for body morphs, Restrict is good for feature or Accesory On/Off morphs)
  • Non-Persist flagged characters are now also tracked for more advanced features (not really relevant to the average user yet, more just noting some internal changes that allows much more flexibility and could be utilized by external mods in the future, also worth mentioning that because of technical limitations for performance there is a limit and eventually enough matched params will all equate together, though this value shouldn't be reached by normal means)
  • Best Match system now allows requirements to improve match quality (added new offset value to keep/allow optimizations while allowing a dynamic 'perfect match' value)
  • Added 'Fallback' for SkelMeshSwap Gender parameter to allow better compatibility with and without SCake installed, now Gender is allowed to not match but with a degraded match quality under specific conditions (Should only apply mis-matched genders if no gender matching swap is found)

Changed :
  • In SkelMeshSwap, increased Match Quality penalty when not matching to Rare Pal by 4 times (5 > 20)
  • The "Best Match" system now accounts for met requirements such as ReqTrait, ReqTrait improves match quality so meeting multiple requirements will result in a higher match quality at this comparison step (Note that other factors could still increase the Match Quality so just because a swap matches multiple requirements doesn't mean it will always be selected)

Fixed :
  • SkelMeshSwap should now properly apply to NPCs that are not Pals (When testing I had enabled a check for pals only and forgot to disable this check before release, sorry!)
  • SkelMeshPath will now check for full reference paths and assume they are correct without trying to add the reference script values (as in, paths that start with " /Script/Engine.SkeletalMesh' " will be assumed as already formatted correctly for loading in-game and no additional formatting will be applied, this change is technically an add, but given it fixes undesired behavior I'm classifying it as a fix)
  • __Create_Load_List__.bat will now properly run in admin mode for all users regardless of your environment set up (while in windows at least)
  • __Create_Load_List__.bat now properly checks for the .json extension before adding to the list
  • Captured pals/NPCs should now be flagged to Persist, preventing pals switching models after being captured then summoned
  • Pal/NPC validity is now checked before saving to prevent unexpected behavior in save output
  • Optimized Best Match / Random selection system to fail quicker when comparing matches so less data is processed per compare

What's Next?

Altermatic has really been a project that develops as requests come in and that hasn't changed. I'm still gauging how to best approach a lot of problems people are encountering so I don't have any solid plans. I know for SCake there will be more dynamic gender assignments coming in a future update with Altermatic integrations so that's certainly on the list as things progress, but not sure about after that. For requests some have asked about replacers for just textures/materials but there's some issues with that, some users seem to want to just have textures to input but materials in Palworld have their own parameters set up and won't translate directly to a Texture2D replace. Then there's also model inconsistencies where if someone installs a default replacer then there's no way for Altermatic to know and the textures would be broken. The idea for Altermatic was to try and have a nice 'reset' on replacers and promote better practices while also making things as easy for modders as possible, but these 2 things are sometimes in conflict. Sure, it'd be nice to have a simple replace texture option, however it would be better practice to employ the current method for this which is to export and re-import the default model as its own SkelMeshSwap so that the texture is attached to its own model and ensures 100% compatibility, even if the default model is replaced. But even still, there's probably ways to implement an easier method for users who want to do multiple material swaps for a single model, and in that regard I'm looking into adding a texture/material parameter to SkelMeshSwap but I need to do a bit more research to see if that's the best approach or if something else could be better.

Current Road Map

1 ) Implement more integrations with SCake and the new (unreleased) dynamic gender assignments
2 ) Investigate direct texture/material replacers without Mesh Swaps
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

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
michaelpstanich
Public post

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

Yep, I botched the release a little bit. This is what I get for trying to finish up a release while super tired, but hey, only a day later and I have some exciting new stuffs to show anyways! This’ll be a quick one with no write up.

Last patch had a few bugs I didn’t catch and I also forgot to add the new Sexual Heat system into the save file (I was the big dumb Q.Q) so this update fixes those as well as adding some requested features for the SDK. There is a big new feature hidden here though (which is why it gets its own post ^.-), I added the ability for modules using SCake’s SDK to add arbitrary stats that can then save and load with SCake’s systems as well as integrate into the mod directly! I call these “ArbVariables” or Arbitrary Value Variables where modders can register an Name variable with an associated value which can then be seen and modified by any other mod by the name variable! For this first implementation I just added the ArbString which is enough for modders to do whatever they need to do, but in the future I’d like to add a float and int versions as well with more configuration options like automatic decay/buildup/caps/so on. This is not just a “sex” framework, but also a Stats Framework, and here’s the first major step in that!

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

What’s Next?
Same as yesterday… though thinking about it over the day I really do want to start getting more animations going as well as maybe start on the Lusting system? We have the stats for it now so I can probably start getting that going and a lot of people are really interesting in potential breeding mechanics, so I may try to do that before worrying about furniture support.

Current Road Map
1 ) Investigate Breeding and Lusting mechanics
2 ) Work on making some animations
3 ) Introduce a built-in SCake Notif-system for animations to trigger certain effects (like changing arousal meshes or changing eyes/mouth)
4 ) Research sockets system for dynamic attachments and furniture support\

On Hold ) Work on multiplayer support
Comments  loading...
Like(2)
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.

Creator Stats

86 subscribers
31 posts

Goals

$58 of $500
per month
(Monthly Goal) Would ensure part-time work on projects and ensure a constant flow of updates to content without worries of financial strain or burn-out.
$58 of $800
per month
(Monthly Goal) Would provide the potential to go full time, working on projects and producing content as seen fit by subscribers!

Other Creators

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.