Repository navigation
Releases
v1.4.3
Improvements & Fixes
- Fixed Player UID Swap wiping every pal in a co-op save.
- Dimensional Pal Storage now follows the player correctly after a UID swap.
- Fixed saves from the latest Palworld update failing to load with a
PalMapConcreteModelparse error. The update added a pickup guard to items lying on the ground (the player who can pick the item up, plus a timer), which grew each item's data from 36 to 60 bytes.
v1.4.2
New Features
- Game Data endpoint: Palworld 1.0.3 added
GET /game-databehind the-enable-gamedata-apilaunch argument, and it's now in the server console. Endpoints that need a launch argument are dimmed with a hint naming it. Docker servers always report empty launch args, so it stays dimmed for them until the image can pass the argument through. - More editable server settings: Display name, game/query/REST API ports, extra launch args, Steam Workshop dir (with a detect button), and SteamCMD path could previously only be set when creating a server. All of them are now editable after the fact. Native-only fields stay hidden for Docker servers, and the form says which restart saving implies.
Improvements & Fixes
- Fixed importing a server whose ini an older PSP mangled. PSP 1.3.3 and earlier truncated
OptionSettingsat the first), which leftCrossplayPlatforms=(open and swallowed every setting after it, so the import came back with a blank name, stock player count, and default ports. Those inis now parse, and reading one heals it so the next write hands the game a value it can parse. Note you will have to re-import the server. - The Advanced tab in the create-server modal is now a catch-all for env groups. All three tabs listed their groups by title, so a group added to
envGroupsbut to no list rendered nowhere. Brings back Voice Chat, Stat Enhancement, and PvP Respawn & Rewards. - Native servers no longer show an empty container name on the server card and detail panel.
v1.4.0
Palworld Save Pal v1.4.0
Plugins and scripting
PSP can now run Lua scripts against your save. The same scripts work on the desktop app, a self-hosted Docker deployment, or online at palworldsavepal.app.
This is something we've been dreaming up for a while, and now that PSP is merging with PalworldSaveTools (PST), it finally made sense to build it.
We're going to keep working on PSP until everything from PalworldSaveTools has made its way over and we've reached full feature parity. This merge isn't about leaving PST behind. The goal is to bring everything together under PSP and build on it from there.
There are still a few things to finish up, but we'll keep chipping away at them until the two projects are fully caught up.
One of the first areas ported are the options available under Menu -> Functions. Instead of taking every PST function and turning it into another hardcoded button, we've moved most of the available functions into plugins. That gives us 38 commands out of the box across four bundled plugins:
- Save Cleanup (13 commands): Delete inactive players (guild admins are never touched), duplicated players, imported pals, empty guilds, inactive bases, skins, structures outside their base, invalid structures, and unreferenced data. It can also strip pals, items, and passive skills that aren't in the game's catalogs, and fix last-online timestamps that are somehow in the future.
- Save Repair (10 commands): Scan for illegal pals and player stats, then fix only the ones you choose. Restore structures, chests, and resource nodes to full HP. Heal and recompute pals, remove skills a species can't learn, rebuild missing item records, resize inventories based on a player's key items, and reassign pals to the guild they actually belong to.
- World Reset (7 commands): Reset supply drops, anti-air turrets, the oil rig, invaders, dungeons, lock gimmicks, and completed quests for every player.
- Save Tools (8 commands): Set the game day, max every pal in the world and in storage, resize containers or player/guild inventories, unlock private chests, unlock the Viewing Cage for a player, and generate PalDefender
/killnearestbasecommands for every base.
The part that matters more than 38 commands
The interesting part isn't really the 38 commands.
Those four plugins don't get any special treatment. They use the exact same API that's available to plugins you write yourself. That means adding new functionality to PSP no longer has to wait for us to build and release another version.
- Clone one and change it. Any plugin, including the ones that ship with PSP, can be cloned into an editable copy with a new ID. Don't like that Delete Inactive Players skips guild admins? Clone it, remove that check, and run your version. The original stays untouched.
- Write your own. Hit "New Plugin" and PSP will scaffold a working script. The built-in editor has syntax checking, autocomplete, hover information, and signature help for the entire host API.
- Iterate as you go. Edit the script, save it, run it against your own save, check the result, then change it again. No rebuilds, reinstalls, or waiting for the next PSP release. A plugin is just a
manifest.jsonand some.luafiles. - Share it. Export a plugin as a
.zipand send it to someone else. They can install it directly. A single.luafile works too. - Need something specific? Let us know. If PSP doesn't do something you need, there's a good chance we can write a plugin for it without having to turn it into a full PSP feature. That's a much nicer workflow than "maybe it'll be in the next release."
Safety
Scripts run inside a locked-down Lua sandbox with memory and execution limits. They don't have access to the filesystem, network, or process spawning. Those libraries aren't exposed in the first place, so there isn't anything for a script to call.
Each plugin also declares the capabilities it needs, such as reading or writing the save, raw access, game data, storage, or logging. You grant those capabilities when installing the plugin. Anything it doesn't have permission for simply doesn't exist from the script's point of view.
Destructive operations can also be previewed first. Dry runs use the same code path as the real operation, show you what would happen, and leave your save completely untouched.
Plugins can also define their own UI through the manifest, including grouped sections, selectable tables, and richer parameters. It's all data-driven, so the manifest controls how the commands are presented without being able to execute anything itself. That's what makes flows like Save Repair's scan-then-fix-selected workflow possible.
Everything above is documented in docs/plugins.md, including the manifest schema, host API, capabilities, sandbox limits, multi-file plugins, and a complete example. If you're interested in writing your own plugin, that's the place to start.
The bundled plugins are also available in psp-app/src/bundled, and they're probably the best examples of how to actually use the API.
New Features
- Overview dashboard: Replaces the old file page. Once a save is loaded, you'll get an overview of world composition, pal traits and conditions, top species and player leaderboards, anomaly counts, and a legality report. The legality report checks things like impossible levels, HP, condenser ranks, and unknown species or skills against the game data catalogs, with danger/warning severity for each issue. There's also a Certified Server Level, which we make absolutely no promises about. The full report can be exported as JSON.
- Effigies editor: New Effigies page (shortcut
E) for editing unspent effigy counts by type. Includes a grid/list toggle. Counts are limited to each type's cumulative maximum, and explicit edits take priority over changes that would otherwise come from relic flags. The same behavior applies when toggling relics on the map. - Registry: Bulk Actions is now the Registry. It makes more sense now that it's basically a catalog of your players, pals, and guilds in addition to being a bulk editor. Guilds now have both a card grid and sortable table, and guild leadership is shown in a few more places: the crown in the players tab, Leader column, card footer, and the detail member list. Selection and bulk actions work from either view.
- Server manager: Fixed mod loading and added more settings to the editor, including ranch pal work speed, blocked technology, voice chat and its distances, enemy camps near bases, automatic guild master transfer and its check interval, and builder-name display with its cache TTL.
- UI refresh: Universal Pal Storage has been restyled to fit the rest of the app. Map popups and tooltips now use a shared component, the breeding side panel collapses down to a small rail, and wiki cards and item badges now use rarity styling.
Improvements & Fixes
- The desktop build now removes the web-only parts of the output, including sitemaps, redirects, localized roots, and JSON data used by the WASM worker. There's no reason to ship that stuff in the desktop app, distribution size is reduced by ~50%.
- Fixed the pal editor getting stuck forever when editing a base worker or a pal with no owner or guild.
- Fixed base membership resolution missing pals because the save can use two different spellings for the slot key depending on how the entry was written. The same fix also applies to pal transfers when repointing containers.
- GPS-to-palbox cloning now keeps the target player as the owner.
- Bulk delete now reports the pals that were actually dispatched instead of just reporting the ones selected.
ElementTypecontained four display names that don't exist in either the element or pal data, meaning nothing could ever match them.- Locale switching now uses a proper runtime with cross-context synchronization instead of two separate paths that could end up disagreeing.
- CI now cancels superseded runs, caches packages correctly, and installs from a frozen lockfile.
- Refreshed
items.json. Fifteen enum members used by the game were missing. Since missing members are silent, those items were getting stamped asNoneand disappearing from the item picker. This fixes fishing rods, bait, Pal awakening items, treasure maps, and several boss-reward essentials. - The web version could load the wrong world when a save folder contained a backup copy of itself. Dropping or uploading a folder pulled in every
Level.savunder it, and the first one found won —backupsand.psp-backupboth sort ahead ofLevel.sav, so the backup usually did. Backup player files were being mixed in the same way, which is what made the web and desktop versions disagree about things like accessories. The save folder is now anchored to the topmostLevel.sav, and nothing outside it is read at all. - UID Swap now moves everything it claims to. Pals, structures, chest and booth locks, container slot owners, and dimensional pal storage were all staying behind with the original UID, so the swapped-in player kept the old pal count and owned none of the base. Fog of war is still not included, and can't be: its mask lives in
LocalData.sav, which is per-machine and isn't part of a dedicated server save.
v1.3.3
Palworld Save Pal v1.3.3
New Features
- Map Improvements: v1.3.0 gave the map real terrain, this one puts things on it. Scenery, fast travels, watchtowers, effigies, boss, alpha and predator Pals stand where they spawn as their actual models in 3D mode.
- Structure Textures: Base structure colors can now be changed along with their opacity, textures are also supported to allow viewing bases in full detail.
- Map layer panel: Sorted into Locations, Collectibles and Points of Interest. Nine are new: Dungeons, Tower Bosses, Ancient Ruins, Journals, Egg Spawners, Camps, Skill Fruits, Kinship Peaches and Bounty Targets. More coming soon.
- Alpha, Boss and Predator spawns are separate now: They all used to sit in one "bosses" pile. You can toggle each independently. The game's human NPC bounty targets got their own layer as well, all 33 of them, which were being counted as bosses before.
- See your Pal in 3D while editing it: The Pal edit modal shows the actual model, and you can spin it. Skill Presets, Souls and Talents got reworked.
- 3D models on wiki Pal pages: Every Pal's page renders its model.
Improvements & Fixes
- Big saves no longer fail on web with
Invalid string length. - Resuming a saved session on web no longer locks up the tab.
- Reloading the page no longer drops you to a temporary database.
- Fixed some badly translated boss and chest labels. Machine translation had taken both words literally, boss as your manager at work (Chef, patrons, Szef, 老闆) and chest as the body part (Brust, Poitrine, Грудь, 胸部), when both are game terms here.
- Your language choice sticks now. On web, if storage fell back to temporary mode, the app would report its default language on every boot and reset whatever you'd picked.
- The Update button works in the desktop app again.
- Windows smaller than 800×500 get a message telling you so, instead of a mangled layout. The landing page navbar is responsive now, and the 3D map in the hero is off on mobile.
- Modal close buttons are real buttons, so keyboards and screen readers can reach them.
- Two copies of the icon library were shipping in the bundle with 47 icons duplicated between them.
easyrun.shandeasyrun.ps1shut everything down properly on Ctrl-C, and--webno longer quits right away by killing the processes it just started.
v1.3.2
New Features
- Browse without a save: On the web version the map, wiki, and breeding calculator work with nothing loaded. You get a floating nav across relevant pages and routes that actually need a save send you home instead of half-loading.
- Wiki: Pages for every pal, item, building, skill, technology, element, and work suitability. This allows for sharing links to specific wiki entries. Also implemented global search on the hub.
- Standalone map: /map renders the world without a save, terrain and 3D included. Save-only controls are hidden.
- Instant language switching: No page reload when you change language.
Improvements & Fixes
- Panthalus is pinned to BOSS_KingWhale_Otomo. The base species doesn't load in game, so adding one gave you a spinning wheel.
- Fixed a panic in the breeding calculator's Save mode on web, from timing code that doesn't exist on wasm32.
v1.3.0
Palworld Save Pal v1.3.0
PSP in your browser
PSP now runs entirely in your browser, at https://palworldsavepal.app, no install, no account, and no backend holding your data.
To be clear about what that means: the parser and the entire editor are compiled to WebAssembly and run on your machine, in your tab. Your save is never uploaded. There is no server on the other end to upload it to. The code is public, so you don't have to take our word for it.
What you can do on the web version:
- Load a
.zipor point it at your whole world folder, both work. - Save straight back to that folder if you're on a Chromium browser (this needs the File System Access API, which Firefox doesn't have yet). Originals get backed up first, and writing in place is always something you opt into. Everywhere else you download the edited save like normal.
- Close the tab and come back later. Saves you've opened are kept locally in OPFS/IndexedDB, and there's a Resume button on the landing page.
- Presets, Universal Pal Storage, and Blueprints all work, backed by SQLite compiled to WASM and stored in the browser.
- PSP checks what your browser can actually do up front and tells you before you start, instead of letting you get halfway through editing and then failing on the save.
The desktop app is not going anywhere. It's still free, still maintained, and still the faster of the two. It also keeps the dedicated server features, which a browser tab can't reach no matter how much WASM you throw at it. If you're already happy on desktop, nothing changes for you.
New Features
- 3D World Map: The map moved from OpenLayers to MapLibre and now renders real 3D terrain built from the extracted landscape heightmap, so you can tilt the world and the islands actually have shape instead of being a flat picture. Your base structures render in 3D on top of it, classified by archetype and material, using the real game meshes where we have them and proxy geometry where we don't. Structure picking is done on the GPU so it stays smooth on big bases. Click a structure to see its details, and there are filters and hover labels for finding things in a base that has sprawled out of control. Markers are 15% larger now with proximity halos, and relics and fast travel points both got a "hide found" filter.
- Blueprints: Capture the structures from a base and re-place them in another world. Placement gives you a ghost preview before you commit, remaps all the IDs, and validates the result. Blueprints export and import so you can share them, and you can now delete bases directly from the map.
- Awakened & Imported Pals:
bIsAwakeningandbImportedCharacterare now read from and written back to the save, so awakened pals survive a round trip instead of getting flattened. You can toggle either flag on any pal. Awakened pals get a gold ring and glow, imported pals get a badge. Stats scale correctly, max HP uses the game'sAwakeningStatusMultiplyand the rest reflect the 1.1x awakened scaling. Max Out and Fill produce awakened pals now, and presets carry both flags through. UPS gained filters and stat counters for both, using a filter bar that's now shared across the pal views. - Breeding Calculator: A full breeding planner, in three modes, shoutout to @CyrixJD115!:
- Direct: A + B gives you the child, A + a target gives you the partner you need to find, or just give it a target and it lists every parent pair that produces it.
- Selection: Build a pool of pals and it finds multi-generation chains to whatever you're aiming for.
- Save: Same thing but using the pals you actually own, filtered by player, with an option to include wild pals.
- Gender is handled properly throughout, gender-specific combos, male/female probability, and the unique pairs that only work one way around. Results render as a list or as a graph in four layouts (dendrogram, smooth curves, one column per generation, or radial), and you can step through one generation at a time. Export or copy the tree as a PNG if you want to share your plan.
- UI Refresh shoutout to @CyrixJD115!:
- New Sidebar: The navigation rail is a grouped sidebar now, split into Main, Tools, and Help. The feature list has gotten long enough that a flat rail of icons stopped being findable.
- Overall Tweaks: Improvements made to the theme and layout throughout the app.
- Landing Page: The web version gets a proper landing page, with a live 3D map you can actually spin around in the background.
Improvements & Fixes
- Updated all game data for the latest update: pals, active and passive skills, technologies, buildings, map objects, missions, effigies, and fast travel points, plus refreshed pal images and the rank 5 asset.
- Fixed save-in-place resolving target filenames case-sensitively, which could leave you with duplicate files and a lost backup.
.savdecompression now dispatches on the file magic instead of the save type byte, which fixes saves the old check was reading wrong.- Fixed essential container slot iteration in the player editor.
- Fixed malformed ICU placeholders across the locale files that were breaking translated strings.
- PSP degrades instead of dying when storage isn't available. sqlite init failures, missing OPFS, and quota limits now warn and keep going so you can still edit and download your save.
- Worker conversion failures now surface as an error instead of hanging the UI with no explanation.
- Fixed the skill filter calculation for rank 5.
- The desktop window now opens maximized.
- Every hardcoded color moved to palette variables, so themes apply consistently on the newer pages instead of half-ignoring your selection. Also expanded the shared design system, restyled the save platform picker, and fixed layout at 2xl resolutions.
- There's something on the About page for the people who've contributed, go find it.
License
PSP is now GPL-3.0-only, it was MIT before. The code has always been public and auditable, this just makes sure it stays that way downstream.
v1.2.0
New Features
- World Options editor - Edit the full set of world/server settings directly in PSP. Load and save
WorldOption.savacross Steam, ZIP, and Xbox/GamePass saves, then tweak everything from difficulty and rates to guild, breeding, and time-based settings. Available from both the file and upload pages. - Bulk preset import/export - Import multiple presets at once from
.zipor.json, and export your presets to a single.zipto share or back them up. - Reorder your presets - New sort controls on the presets page, drag-to-reorder for a custom order, and move up/down buttons with arrow-key support. Your chosen order is remembered and applied everywhere presets appear.
- Selective Steam backups - Backups now capture only the relevant save files (
Level,LevelMeta,LocalData,WorldOption, and the players in your save) for smaller, cleaner backups. - Watchtowers on the map - Watchtowers now render on the world map with their own visibility toggle and count, plus a dedicated "unlock all" button separate from fast travel points.
- New themes - Additional Palworld inspired color themes to choose from (Grizzbolt, Sakurajima, Wildlands, Ancient Tech, Lamball), and the raw JSON/data editor now matches your selected theme.
Improvements & Fixes
- Fixed Raw Editor, the Save button now uses the native "Save As" dialog on desktop when saving an edited
.sav. - Fixed work suitability "Max Out" to use the correct new maximum of 10.
- Pals now only show learned skills that are actually applicable to them.
- Fixed
Failed to unlock map: parse errorissue caused by a type mismatch in the upstream parser forLocal_MaxFriendshipPalIds
v1.0.3
New Features
- Import Windows native servers, import servers created in the Steam UI or using steamcmd, exposes config and manage them using PSP.
Improvements & Fixes
- Fixes cloning to UPS error when selecting a collection
- Fixes issue opening AppImage on non-debian distros
v1.0.2
New Features
- Pal Editor Overlay: Editing a pal is now an overlay you can pull up from anywhere instead of a separate page. Open it from any pal throughout the app, or with the P keyboard shortcut. No more jumping back and forth between pages to edit a pal!
- Updated Egg Pal correlation: Rebuilt every egg's hatchable-pal list from the current game data. This brings in ~107 pals that were missing after the last update; all the newest content now shows up in the right eggs, and a few mis-tiered entries were corrected.
Improvements & Fixes
- Fixed adding eggs to inventory failing with missing property schema for path: worldSaveData.DynamicItemSaveData.RawData.SaveParameter.
- Fixed "Max Out" work suitability: now uses the correct range of 10 following the suitability increase in v1.0, instead of capping against the old value of 5.
- Fixed missions not appearing due to a quest_type prefix mismatch (EPalQuestType::Main vs Main).
- Native file dialogs are now used on desktop for player-transfer source selection and Steam ⇄ GamePass save
conversion. - Smaller downloads: re-optimized bundled images.
- Fixed Global Pal Storage Editing
- Updated EXP data: Refreshed the EXP tables from the latest DT_PalExpTable, including the new per-action EXP fields (Build, Craft, Pal Build, Pal Craft). Updating players and pals should now scale correctly with the new EXP system.
PSP v1.0.1
Improvements & Fixes
- AppImage now available for Linux
- Fixes reported "missing property schema for path" errors
- Fixes preset import/export