Altermatic v0.3 DEV Available! [Palworld Mod]

The next Altermatic update is here! This is primarily a 'backend' update but also has some critical fixes. So if you've been using 0.2.x then it's well worth an update!
This update comes with a fully re-done internal data structure which changes how new characters are stored and compared. This 'should' increase the reliability of Altermatic and make it a lot easier to work with on the backend while allowing a lot more advanced features and UI integrations in the future. However, to fix some issues we saw in previous versions I did have to increase the rate at which Altermatic does scans and that could have a negative impact on performance. I think I hit the right balance, but I'll need to hear feedback on this! If you experience sudden performance issues after updating to the new version please let me know! This version also came with the new integrated UniPalUI! Although this version is an unreleased Alpha build it does enable notifications from Altermatic without needing SCake installed, and there's a new keybind, Shift+O, which will try to re-roll a character's mesh if you have more than 1 installed! (Finally, a way to select another skin! Though it currently still uses the Best Match system so it may not always switch to all of the available skins, a UI will be implemented in the future for properly selecting different skins to use >.<)

- Altermatic -
- Full Changelog -
Altermatic Version 0.3 DEV

Notes :
  • This update completely changed the internal Data Structure for Altermatic and updated how newly spawned characters are checked, this new system is much more consistent and easier to work with but may have new unforseen issues
  • Saves from before this version have been invalidated to prevent save errors persisting in future versions and causing confusion, if you'd still like to carry over your persist save then change the "ALTR_MODversion" param in the Altermatic_Persist file to "3000"
  • Attempted to include a fomod for the weirdos still trying to use Vortex, however Vortex has a ton of issues and can break your installation so I don't recommend using it at all (Vortex doesn't install Altermatic correctly by default, no idea if this fomod will help)

Added :
  • Integrated UniPalUI for all UI and Input handling (Integrated version is an unreleased alpha)
  • Standalone now displays notifications with UniPalUI, simply shows Altermatic is running with the version number
  • Input "Shift+O" will now target the looked at character to reroll their current SkelMeshSwap, also added an in-game notification showing the keybind (This function is temporary until a UI system is implemented for this purpose, doesn't currently target summoned pals because of a UI limitation)

Changed
  • Checks and 'OnTick' system is now based on framerate to better capture events that happen within specific frame ranges, this also increases the rate at which Altermatic checks validity and swaps meshes which could affect performance (When calculating based on delta some events became inconsistent based on framerate, using frames will make the checks more frequent at higher framerates resulting in higher weight but will hopefully avoiding the inconsistency issues)
  • Split up mesh swap and memory clearing/validity checks to run on different frames to help alleviate performance issues such as potential stutter on lower end CPUs (Investigating better async and event based methods for validity)
  • Inverted method for storing what should persist, now instead of saying what 'should' persist, Altermatic keeps a list of what 'shouldn't' persist and skips it in the save process (Although this is slightly heavier in the save code it's much lighter in other areas and should be more reliable/easier to work with)

Fixed :
  • Should no longer attempt to re-apply meshes every second which caused wild pals (since they have persistence disabled) to randomly switch skins every second if multiple were available
  • Fixed the Create_Load_List.bat file not working in file paths with spaces in them
  • When paths become invalid (like when a pak updates or is removed) the persist loader will now correctly skip loading that path and re-roll the swap for those characters (was still assigning a path but wasn't aligning with currently loaded mesh paths, meaning it 'could' assign a random SkelMeshSwap and mess things up, if you were affected by this you'll want to delete your persist file)
  • Should now properly detect captured Pals and toggle them for persistence while SCake is installed (Was accidentally skipping this step before >.<)
  • No longer tries to process an empty save if the save file either isn't found or fails to load from the system
  • No longer tries to apply no swap when no matches are found (Just a simple optimization, shouldn't have any gameplay/visual impact)
  • Persist save should no longer replicate morph data over multiple entries that shouldn't have morph data (This bug has happened twice now in the save system and it's caused by a UE5.1.1 JSON handling bug which I keep forgetting about >.<)

What's Next?

This is the point where Altermatic will probably slow down for a while. Currently Altermatic already supports more features than people are taking advantage of and there's really only 2 requests I've seen that make sense for the immediate future, Material/Texture replacement, and an in-game UI for selecting which swap to use. So both of these are in the plans as well as better integrations with SCake, though the SCake integrations will be more on that side than Altermatic's side (primarily dynamic swapping when switching genders, SCake will also be getting more dynamic gender spawning in a future update which Altermatic will need an update to support when that releases). There's also some consideration to enable attachments/accessories/clothing additions through Altermatic, but there's a lot more research required there and I have a lot of stuff to focus on for now so it's going on the back burner for a bit.

Current Road Map
(Unchanged from last time >.<)
1 ) Implement more integrations with SCake and the new dynamic gender assignments
2 ) Investigate direct texture/material replacers without Mesh Swaps
3 ) ???