Open-source project
EternalWraith/PalEdit avatar
EternalWraith/PalEdit

PalEdit: editing the Global Palbox in a Palworld 1.0 save

A simple tool for Editing and Generating Pals within PalWorld Saves

546 stars85 forksPythonMIT

At a glance

What is it?
PalEdit is a Python desktop tool for reading and editing the GlobalPalStorage.sav file that holds the shared Pal storage in Palworld 1.0, with a searchable species browser, clone and rename operations and an automatic backup before the first write. It is a community fork, and only the Global Palbox is supported so far.
Who is it for?
Adopt PalEdit if you play Palworld 1.0 and want to adjust levels, IVs, moves, passives or species of the Pals in your Global Palbox, since that file is the one it reads and writes correctly. Do not adopt it expecting to edit a world's Level.sav, because the README says that path is not enabled yet.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 55 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 22, 2026, and from our analysis. They are not legal advice.

Editorial analysis

What PalEdit touches, and what it deliberately does not

The scope is stated plainly in the README, and the statement is important enough to read before installing anything. The Global Palbox, the file GlobalPalStorage.sav, is the only save file tested and working right now. Editing a world's Level.sav is not enabled yet, with the groundwork and the remaining steps written up in docs/save-editing-analysis.md. The instruction is to stick to the Global Palbox for now and keep a backup.

The Global Palbox is the shared Pal storage reached through the Pal Genetic Data terminal in-game. It is a global container rather than part of a single world, which is why it is the easier target: the Pals in it are stored in one file with the data PalEdit needs to display.

What you can change is broad for a save editor. The README lists level, stats and IVs, souls, moves, passives, nickname and species for any Pal you select, plus Add New Pal, Clone Pal and Delete Pal for managing the box itself. The 1.0 update added Global Palbox management with the ability to add, clone, delete and rename Pals right in the box, along with refreshed 1.0 species, moves, passives and icons and a level cap raised to 80.

Two properties are worth calling out because they are unusual for this kind of tool. The first is save-safe writing, where opening a file and saving it back changes nothing unless you actually edit something, verified with a field-by-field comparison of every pal. The second is that it tidies up leftover data from earlier versions, including the issue that made unassigned pals idly graze and produce nothing.

The tool is a community fork of EternalWraith's PalEdit, rebuilt for the Palworld 1.0 save format. The primary language is Python, the licence is MIT, and the default branch is main.

The install path, and the build-from-source story behind it

Installation is a download rather than a package install. The README says to grab the compiled executable from the Releases page, and the usage section describes it as extracting the zip into a folder anywhere and running PalEdit.exe.

That releases page points at TheMysticTurtle/PalEdit rather than the repository the README lives in, which is worth knowing: the fork publishes binaries from a separate account, so the download link and the source tree are not in the same place.

For anyone working from the source instead, the repository tree shows how the build is put together. PalEdit.py is the entry point, CxFreezeCompile.py handles packaging, compile.bat and run.bat are the Windows build and run scripts, and update_data.py refreshes the species, moves and passive data. The palworld_save_tools/ directory and a bundled palworld_save_tools.zip hold the save-parsing library, and pals/ holds the data files. requirements.txt pins the dependencies, and the save library and the clipboard helper are pinned to specific versions.

bash
palworld_save_tools==1.4.0
pyperclip==1.8.2

The comments in that file explain the intent: the save library is specified as the most stable one, and pyinstaller is pinned to the newest and most stable version currently, with a hooks package that matches it. The version pins matter here for the same reason they matter in any tool that writes to a game save: an unexpected minor bump in the parser is exactly the kind of change that turns a silent corruption into a crash.

The repository is a fork with an upstream and a downstream, and the docs/ directory carries the analysis documents, including docs/save-editing-analysis.md for the Level.sav work that is not finished.

The workflow: load, edit, save, then copy the Pal back

The usage sequence is five steps, and step one is the one people get wrong.

You load the save with File, Load Save, and open GlobalPalStorage.sav. On Windows the file lives at this path.

bash
%LocalAppData%\Pal\Saved\SaveGames\<your-account-id>\GlobalPalStorage.sav

There is one numbered folder per account, which is why the README points you to the backing up section for how to find the right one.

Then you edit. Selecting a Pal gives you its level, stats and IVs, souls, moves, passives, nickname and species. The Add New Pal, Clone Pal and Delete Pal operations manage the box. Finally you choose File, Save, and the first save of each session automatically copies your original file into a PalEdit-backups folder next to it.

The last step is the in-game one, and it is the part that makes Palworld's Global Palbox unusual. Each Pal has a unique ID, and the Global Palbox can copy that Pal's data in either direction. Dragging a Pal from a local Palbox into the Global Palbox updates the Global copy with the Pal's current data from that world. Dragging a Pal from the Global Palbox back into a local Palbox applies the Global copy's data in that world.

So the full round trip for an existing Pal is: in-game, drag the Pal from the local Palbox into the Global Palbox to update the Global copy; close Palworld; load GlobalPalStorage.sav in PalEdit, make the changes and save; reopen Palworld and access the Pal Genetic Data terminal; drag the edited Pal from the Global Palbox back into the local Palbox. Because an existing Pal already has an associated unique ID, you can drag it anywhere in the local box and the edited data is applied immediately.

That copy-in, copy-out model is why the save file is so much easier to edit than Level.sav. The Global Palbox holds a standalone record per Pal, so changing it does not require understanding how a Pal's data is embedded in a world's save structures.

Editing with the game closed, and why the autosave will eat your work

The README carries a tip that is really a warning: edit with Palworld closed.

The reason is stated plainly. While the game is running it keeps the palbox in memory and can overwrite your changes on its next autosave. Close the game before you load your save in PalEdit, and launch it again once you have saved. Editing with it shut is the safe way to go.

That is the single most likely way to lose an afternoon with this tool, and it is a failure mode that belongs to the game's design rather than to PalEdit. The Palbox lives in memory while the game runs, and the game is the authority on when that memory is written back to disk. If PalEdit writes the file while the game is running, the game does not know, and the next autosave replaces your edited file with its in-memory copy.

Your edits appear the next time you open the Pal Genetic Data terminal, and if anything looks off you still have the automatic PalEdit-backups copy, and your own backup, to fall back on.

The README's caution notice adds a second layer. The fork makes an automatic backup of the loaded save into a PalEdit-backups folder next to it before its first write each session, but it is still wise to keep your own backups of all save files before using the tool. The automatic backup protects the file you loaded in this session, and it does not protect the other save files in your account folder, or the copies you made last month.

Note also that the tip says the global palbox is the focus of editing so far, and that as with any save editor you should keep your own backups too. NPC and merchant editing works inside PalEdit, but using them in-game is still experimental.

The search and inspection tools that sit on top of the editor

Beyond editing, the update added a set of lookup and inspection features that are what make the tool pleasant to use.

Attacks can be filtered by element and sorted by damage, with toggles for the learnset, fruit-teachable moves and all moves. Passives are grouped by effect with accurate descriptions, so hovering one tells you what it does numerically rather than in a marketing phrase. There is a species browser with search plus element, category, work-suitability and NPC-type filters, and internal codes are shown so merchants and special NPCs are easy to find, which matters because those NPCs are keyed by code rather than by name in the UI. The Pal list itself has a filter bar over search, element and category for the loaded box.

Work suitabilities are shown on a 0 to 10 scale with colour feedback: grey for the base value, green for boosted, red for the mutation or cheat range. That three-colour scheme is doing real work, because a work suitability value in the red band is not something you would reach by playing normally, and seeing it flagged is how you notice a Pal that was created outside the game.

The detailed stats popup shows current stats against level-standard stats, and breaks down IV, soul and condensation contributions, which is the information you need when deciding whether a Pal is worth keeping rather than editing for its sake.

There is also custom passive presets, where you build a named set of passives and stamp it onto any Pal. For a player with a specific build in mind, that is a bulk operation rather than a per-Pal edit, and it is the feature most likely to change how you use the tool.

Automatic per-session backups are listed alongside these, copying the save into a PalEdit-backups folder before the first write.

What PalEdit will not do for you

There are three limits, and the first is the one that decides whether the tool is useful to you today.

The first is that Level.sav editing is not available. That is the file that holds the world itself, the Pals assigned to it and everything else tied to a particular save slot, and the README is unambiguous that only GlobalPalStorage.sav is tested and working. If your goal is to change the Pals in one particular world rather than the shared Global Palbox, this tool cannot do it yet.

The second is the relationship between the two systems. Even within the Global Palbox, a change only reaches a world through the copy-in, copy-out procedure, and a Pal edited in the box has to be dragged back into a local Palbox before the world sees it. If you are trying to fix a Pal that is currently assigned to a world and you are not careful about the direction you drag, you can end up with the world overwriting the global copy instead of the other way round, since dragging out from the local box updates the global copy from the world.

The third is the dependency on the upstream save library and the fork structure. The parser is pinned to palworld_save_tools 1.4.0 and the project is a fork rebuilt for the 1.0 format, which means it tracks the game rather than the other way round. A game update that changes the save format will break it until someone rebuilds the fork, and the release history suggests that has happened before, with v0.13, v0.13.1 and v0.13.2 in the two months before the last push on 2026-08-29. Those releases are frequent enough that you should check which one you have rather than assume.

The honest alternative for the editing case is the upstream PalEdit project, or the community tools that work directly on Palworld save files with their own Level.sav support, which is where the capability PalEdit has not reached yet lives. The difference in approach is the scope of the save format each one claims. PalEdit targets one file, the global container, and does it well, with the search and inspection tooling to make it usable. A tool that edits Level.sav must understand how a Pal's data is embedded in the world's own structures, and that is the harder problem PalEdit's own analysis document describes as unfinished work.

Editorial conclusion

Adopt PalEdit if you play Palworld 1.0 and want to adjust levels, IVs, moves, passives or species of the Pals in your Global Palbox, since that file is the one it reads and writes correctly. Do not adopt it expecting to edit a world's Level.sav, because the README says that path is not enabled yet. Before you open anything, close Palworld and keep your own backup of all save files, and note the last push was on 2026-08-29 with release v0.13.2 from 2026-08-28.

Frequently asked questions

What is PalEdit and what does it edit?

It is a Python tool for editing and generating Pals within PalWorld saves, and this fork is rebuilt for the Palworld 1.0 save format. It reads and writes GlobalPalStorage.sav, the shared Global Palbox, where you can change level, stats and IVs, souls, moves, passives, nickname and species, and add, clone, delete and rename Pals.

Can PalEdit edit Level.sav or a world's save file?

No. The README states that the Global Palbox, GlobalPalStorage.sav, is the only save file tested and working right now, and that editing a world's Level.sav is not enabled yet, with the groundwork and remaining steps written up in docs/save-editing-analysis.md.

How do I install PalEdit and where is the save file?

Download the compiled executable from the releases page, extract the zip anywhere and run PalEdit.exe, then use File, Load Save to open GlobalPalStorage.sav. On Windows that file is at %LocalAppData%\Pal\Saved\SaveGames\<your-account-id>\GlobalPalStorage.sav, with one numbered folder per account.

Do I need to close Palworld before editing my save?

Yes. While the game is running it keeps the palbox in memory and can overwrite your changes on its next autosave, so the README advises editing with Palworld closed and relaunching it after saving. Your edits appear the next time you open the Pal Genetic Data terminal.

Does PalEdit back up my save?

The fork makes an automatic backup of the loaded save into a PalEdit-backups folder next to it before its first write in each session. The README still advises keeping your own backups of all save files, since the automatic copy only covers the file loaded in that session.

Official sources

  1. EternalWraith/PalEdit on GitHub
  2. Issues
  3. License: MIT
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/eternalwraith-paledit.svg)](https://hysenlabs.com/projects/eternalwraith-paledit)

Was this useful?