Skip to content

v2.1.5

Choose a tag to compare

@github-actions github-actions released this 19 Jul 01:16
· 314 commits to main since this release

πŸš€ PalworldSaveTools v2.1.5

πŸ› οΈ Compatibility

  • App Version: 2.1.5
  • Game Version: 1.0.1

πŸ“¦ Downloads

Platform File
πŸͺŸ Windows PST_standalone_v2.1.5.7z
🐧 Linux PalworldSaveTools-V2.1.5-linux.AppImage
🍎 macOS PalworldSaveTools-V2.1.5-macos.dmg

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


πŸ“ Changelog

  • Character Transfer no longer corrupts breeding eggs β€” egg pal data (character_id, stats, passives) is now properly preserved. The inventory transfer no longer overwrites eggs with blank entries, and dynamic item merging appends source entries instead of rebuilding the entire list (which silently dropped entries with zero/empty IDs). Repair All Items also detects eggs by their PalEgg_ prefix when game metadata is incomplete.
  • Wiki tab sort improvements β€” the pals category in the built-in wiki now defaults to sorting by Paldeck number. Unknown/unlisted pals sort to the bottom instead of showing at index 0. Sort toggle behavior changed: clicking an active sort button now reverses direction instead of clearing the sort, matching typical list behavior.
  • Player level shows 1 instead of ? β€” players who never leveled up now display as level 1 everywhere instead of a confusing ? in hover overlays, map markers, guild lists, and export data.
  • PalDefender coordinates fixed β€” killnearestbase commands were using wrong coordinates, making them destroy the wrong bases. Now correctly targets the bases you selected.
  • Language switching fixed β€” changing language now switches to the correct language on the first try, with all labels and tooltips updating immediately.
  • Tooltips now update on language switch β€” the Max All Souls and Max All IVs icons in the pal editor now show translated tooltips when changing the UI language on the fly.
  • Language names in menu always show native names β€” Portuguese, Chinese, Russian, and all other languages in the menu > Languages list now display in their native form (e.g. "PortuguΓͺs") regardless of the current app language.
  • Unlock All Fast Travel β€” renamed from "Unlock All Map + Fast Travel". Now only unlocks fast travel points without revealing map areas or unlocking the world map.
  • Loading overlay close button β€” the loading screen now has a βœ• close button in the top-right corner. Clicking it dismisses the overlay while background work continues.
  • Add All Key Items performance fix β€” massive speedup on big saves. Each item was triggering a full scan of every container in the save file; now all items are added in memory and saved once. Same fix applied to Bulk Add Items and Equipment Loadouts.
  • Stats tab now refreshes all tabs on change β€” changing stats (level +/-, max all stats, stat point edits) now triggers a full UI refresh so all tabs show up-to-date data immediately. Max All Stats previously bypassed the refresh signal; now it uses the same path as manual edits.
  • Character Transfer performance fixes β€” Transfer All no longer calls save() per inventory item (same O(n) fix as Add All Key Items). Dynamic container GUID remapping changed from triple-nested scan to O(1) lookup. Save Changes now writes player files in parallel using all CPU cores, drastically reducing save time after bulk transfers.
  • General performance sweep β€” fixed inefficient scans across 10+ files:
    • modify_container_slots: triple-nested loop β†’ O(1) container lookup
    • get_base_worker_pals, remove_structure_from_guilds, _clear_pal_booth_slots, map reassign: char_map linear search per slot β†’ pre-built instance dict
    • load_game_data_map: added caching (was re-reading JSON 27 times)
    • _load_boss_key_map: added caching (was reading disk every call)
    • add_item_to_players: moved container_lookup build outside per-player loop
    • scan_illegal_pals, fix_illegal_pals: merged double char_map scans into single pass
    • get_player_info_from_save: merged duplicate guild_map iterations
    • _apply_to_containers: consolidated per-container char_map scans into one pass
    • _cleanup_excess_slots: merged 3 char_map scans + fixed O(NΒ²) container lookup
    • fix_host_save.py: merged _build_level_map + _build_pal_count_map, cached player level scans, deduplicated player list builders
    • Deduplicated build_player_levels, count_owned_pals, _delete_pal_at_slot
  • Bumped version to 2.1.5

🀝 Support

Thank you for using PalworldSaveTools! πŸ™