github deafdudecomputers/PalworldSaveTools v2.2.1

latest releases: v2.4.3, v2.4.2, v2.4.1...
one month ago

🚀 PalworldSaveTools v2.2.1

🛠️ Compatibility

  • App Version: 2.2.1
  • Game Version: 1.0.1

📦 Downloads

Platform File
🪟 Windows PST_standalone_v2.2.1.7z
🐧 Linux PalworldSaveTools-V2.2.1-linux.AppImage
🍎 macOS PalworldSaveTools-V2.2.1-macos.dmg

📥 Full release: https://github.com/deafdudecomputers/PalworldSaveTools/releases/tag/v2.2.1


📝 Changelog

  • Map generator now shows all bases — the world map renderer was using sav_to_map_by_z() with a z-threshold of 5000, silently dropping island/tree-map bases from the generated image. Now uses sav_to_map(x, y, new=True) directly (matching the interactive map viewer) and removes the z-threshold filter so every base camp appears regardless of elevation.
  • Base radius ring scaling fixed — ring size was using an additive +5 pixel offset in the scene-space formula, breaking proportionality. At 200% the ring was only 42% larger instead of 100% larger. Replaced with a purely linear formula so doubling the radius value doubles the displayed ring.
  • Fixed hard crash when editing inventory or tech tree — the app could terminate abruptly (segfault) when adding items, changing quantities, or toggling tech unlocks. Three related issues fixed: widget layout cleanup during _rebuild() was leaving orphaned items that could be painted after their C++ objects were destroyed; inventory grid slot deletion had the same use-after-free pattern; tech tree button click handlers were calling super().mousePressEvent() on frames already scheduled for deferred deletion. Widgets are now fully detached from their parent layout before being deleted.
  • Repair All Structures no longer resets max durability to default — the function was reading HP values from game data and overwriting each structure's max HP with the game's default, discarding custom durability set via server config. Structures with millions of HP were silently downgraded. Now it only sets current HP equal to the existing max HP, leaving whatever durability the server or mod has configured.
  • Import/Clone Base and Replace Structures also preserve custom HP — same game-data HP override was present in base import and structure replacement. Both now leave existing max HP untouched and only set current to max.
  • Results widget resets on save reload — the player/guild/base picker labels in the right panel previously showed stale selections from the previous save after reloading. Now cleared to default.
  • Tab picker selections reset on save load — inventory, pal editor, and base inventory tabs were re-selecting the previously chosen player/guild/base after loading a new save. Now all picker buttons reset to their default state on load.
  • Tech tree toggle fixed — the _click handler for tech buttons had inverted logic (not in instead of in), causing single-click to lock an unlocked tech and vice versa. Also no longer calls super().mousePressEvent() on a frame already scheduled for deferred deletion.
  • Base inventory add-item crash fixed — adding an item to a container called _refresh_container_ui() (which mutates the widget tree) inside dialog.exec()'s signal handler, causing a segfault from deferred delete processing in the nested event loop. UI refresh now happens after dialog.exec() returns.
  • Bumped version to 2.2.1

🤝 Support

Thank you for using PalworldSaveTools! 🙏

Don't miss a new PalworldSaveTools release

NewReleases is sending notifications on new releases.