Skip to content

v2.2.5

Choose a tag to compare

@github-actions github-actions released this 27 Jul 22:35
· 133 commits to main since this release

πŸš€ PalworldSaveTools v2.2.5

πŸ› οΈ Compatibility

  • App Version: 2.2.5
  • Game Version: 1.0.1

πŸ“¦ Downloads

Platform File
πŸͺŸ Windows PST_standalone_v2.2.5.zip
🐧 Linux PalworldSaveTools-v2.2.5-linux.AppImage
🍎 macOS PalworldSaveTools-v2.2.5-macos.dmg

πŸ“₯ Full release: https://github.com/deafdudecomputers/PalworldSaveTools/releases/tag/v2.2.5


πŸ“ Changelog

  • macOS Gatekeeper 2min prompt delay fixed β€” root cause: create_dmg() was changed from shutil.copytree to cp -a in PR #229, which preserved ad-hoc code-sign extended attributes through DMG packaging. macOS then performed OCSP/notarization checks on the signed app, timing out at ~2min. Restored shutil.copytree (strips code-sign attrs), removed --ad-hoc from all CI workflows, and removed --macos-signed-app-name Nuitka flag. DMG now contains an unsigned app matching v2.2.1 behavior β€” Gatekeeper prompt appears instantly.
  • Bulk clone dialog text color fixed β€” pal names and qty spinbox in BulkSpeciesDialog now use explicit color: #e2e8f0 (matching stats panel style) instead of inheriting the system palette, which gave black text on dark background for some Windows configs.
  • Removed redundant context menu for moving player to guild β€” the "Move Selected Player to Selected Guild" action is removed from guild context menu and main menu bar. Superseded by the Guild Assignment dialog.
  • Guild Assignment role column and right-click role setting β€” the Guild Assignment dialog now shows each player's current role (Guild Master/Submaster/Member/Guest) as a sortable column in both the player list and the members preview panel. Right-click any member in the preview to change their role, matching the guild tab UX. Demoting a Guild Master auto-promotes the next Submaster (or any other member) to keep the guild led.
  • macOS CI verification speedup β€” verify_build.py on macOS was redundantly codesign-verifying and GUI-smoke-testing the app bundle twice: once directly, again from inside the mounted DMG. Since the DMG just wraps the same bundle, removed the duplicate codesign (~5-30s), version check, and GUI smoke test (~8s) from the DMG verification step. Now only mounts, checks app exists, detaches.
  • Global Pal Storage editor β€” File > Load Global Pal Storage opens a standalone dialog to view and edit GPS pals. 960-slot grid with pal info panel, pagination, multi-selection (Ctrl/Shift+click), context menu operations (clone/import/export/delete/toggle/max/learn-all), Restore All + Max All buttons (cheat-mode-aware). Save via explicit Save GPS button.
  • Pal editor now respects slot injector changes β€” previously hardcoded to 32 boxes Γ— 30 slots (960). Now reads the actual SlotNum from CharacterContainerSaveData per player, so the pal editor shows the correct number of pages and available slots after running Slot Injector. Affects page navigation, bulk clone free-slot search, and slot count display.
  • Loading overlay now blocks mouse events β€” the overlay in run_with_loading() had WA_TransparentForMouseEvents set, allowing clicks to pass through to the pal editor (or any widget underneath) while data was being loaded in a background thread. This caused intermittent segfaults when clicking slots or navigating pages during a load. Removed the transparent-mouse flag so the overlay absorbs clicks during loading.
  • Error dialog copy button 2s timer segfault fixed β€” copy_to_clipboard() used a QTimer.singleShot(2000, lambda: btn.setText(...)) that captured a QPushButton reference. If the error dialog closed within 2 seconds, the button's C++ object was destroyed but the timer still fired, causing a use-after-free segfault. Replaced with weakref.ref() guard so setText is skipped if the button is gone.
  • Guild member count column β€” the guild search tree now shows a sortable "Members" column with per-guild member count. Column widths redistributed for readability.
  • Guild member pal count fixed β€” get_guild_members() was looking up PLAYER_PAL_COUNTS with hyphens in the UID, but the dict keys are stored without hyphens. All players showed 0 pals. Now strips hyphens before lookup, matching the pattern used elsewhere.
  • Bumped version to 2.2.5

🀝 Support

Thank you for using PalworldSaveTools! πŸ™