Coder Social home page Coder Social logo

paledit's Introduction

Note

Because apparently it needs to be stated here as well as in the NexusMods; the application is unsigned and therefore can flag up a False Positive with some anti-virus software. If you are really scared about it being a virus, download the application and compile it yourself. Look through the source code. You can see a virus report here

PalEdit

GitHub Pull Requests GitHub Issues Python
A simple tool for editing and generating Pals within PalWorld saves.

โš ๏ธ Before Opening a new Issue: Please check the ๐Ÿšง Project roadmap section to ensure that your concern or feature request hasn't already been addressed or is planned for a future release. Also check the Open Issues.

๐Ÿ“š Table of Contents

๐Ÿš€ Installation

Download the compiled executable from Nexus Mods or over on the Releases Page.

โš ๏ธ A word of warning

Caution

It is advised that you backup ALL save files before using the tool; it will eventually do this on it's own but doesn't yet. For more information on how to do this, see the ๐Ÿ“ฆ Backing up your save section.

๐Ÿ•น๏ธ Usage

  1. Open PalEdit
  2. Select your save file
  3. Edit your Pals
  4. Save
  5. Done

๐Ÿ’พ Cloning Pals

  1. Load a save
  2. Select a Pal
  3. Click "Dump Pal", and choose a filename (any name)
  4. Click "Add Pal" and select the file you just made
  5. Edit the clone

๐Ÿ“ฆ Backing up your save

It is advised that you backup ALL save files before using the tool. Although the tool will eventually do this on its own, it doesn't yet.

On Windows, the saves can be found in the following locations:

  • %LocalAppData%\Pal\Saved\SaveGames\

If youโ€™ve installed Palworld via Steam, you can also access your save files by following these steps:

  1. Open your Steam library.
  2. Right-click on Palworld, then select Manage > Browse local files.
  3. This will open the folder where Palworldโ€™s installed files are stored, named Pal.
  4. From here, go to Saved > SaveGames to access your save files for the game.

๐Ÿ› ๏ธ Building from source (on Windows)

  1. Install Python, at least version 3.10 (for the CI/CD pipeline we are using Python 3.12.1). You can get it from here. Don't forget to check the box to add Python to your PATH.

  2. Open a PowerShell window in the root of the project.

  3. Create a virtual environment:

    python -m venv venv
  4. Run the following command to activate the virtual environment:

    .\venv\Scripts\Activate.ps1

    If you get an error about running scripts, you may need to run the following command first:

    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
  5. Install the required packages:

    pip install -r requirements.txt
  6. Build the binary file. Once done, it will be located in the dist folder:

    pyinstaller --noconfirm --onefile --windowed --icon "palworld_pal_edit/resources/MossandaIcon.ico" --hidden-import=PIL "PalEdit.py"

    If you get any error about virus, check the top of this README file. Also this issue comment with some further explanation may interest you: Issue #41

  7. Copy the resources folder into the dist folder. This is required to display the images inside PalEdit:

    cp -r palworld_pal_edit\resources dist
  8. Run your newly built binary file and enjoy.

Alternatively, to run PalEdit without compiling it, follow steps 1 to 5 and then run the following command:

python PalEdit.py

๐Ÿšง Project roadmap

Note

We could really use the help of the community to make this tool better. If you think you can help us deliver any of the features listed below, please feel free to open a pull request.

  • Pending features:

    • Pal Deletion
    • Stat Editing (Hero Statue)
    • Edit Pals Nickname
    • Improve Pal ListBox UI to mimic ingame PalBox
    • Add update notification if a newer version is found
    • Automatic savefile backup
  • v0.3 Release:

    • Integrate SaveTools into PalEdit natively.
    • Nickname Compatibility
    • Ability to Change Species
  • v0.4 Release:

    • Defence Editing
    • Gender Swapping
    • Sorted lists so that everything is alphabetical
    • Rank editing (Pal Essence Condenser)
    • Workspeed Editing
    • Pal presets to speed up creation of workers, fighters and tanks
    • Compatibility for Tower Boss and Human captures
    • Overhauled Attack IV and Level Editing to make it easier
    • Moved species editing to main app instead of tucked away in the Tools menu
  • v0.4.8 Release:

    • Converting Pal to Lucky
    • Converting Pal to Alpha (Boss)
    • Player Filtered Pals so you know who belongs to who
  • v0.5 Release:

    • Simplify Loading/Converting/Saving process
    • Database system to make things easier to update
    • Pal Info Database Overhaul
  • v0.6 Release:

    • Generate New Pals/Clone Old Pals
    • Localisation Support
    • Equipped Move Editing
    • Learnt Move Editing
    • Optimised Loading and Saving
    • Changed Code structure to OOP

paledit's People

Contributors

augentism avatar codeanthem avatar eltociear avatar eternalwraith avatar jinkrosgithub avatar kriscris avatar magicbear avatar merlin8800 avatar muromi-rikka avatar number201724 avatar windwq avatar zeonler avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

paledit's Issues

Can't seem to load save after converting to .json

Been trying to load a save into paledit for about 2 hours now. The save has been converted to .json but it won't load and even if I hover my mouse over the editer while its loading, it seems to stop.

MInor issue - Seems you have a memory leak.

Okay, playing with it, works with the 3.1 version.

The problem I found. I did an edit then came back later without closing.. about 3 hours later, and the Pals were double listed and the pictures wouldn't change.
Closing and reopening does solve the issue.

Editing farming pals stopped them to produce anything

I edited farming pals to have abilities like Artisan, Serious, and the like. But they just stopped producing anything. I edited the save again and return them without those abilities, but it still bugs. Even farming Pals who I didn't edit stop producing.

Strangely, berry producing is also affected. Pals just stopped gathering berries at all.

Filter by userid

Would it be possible to filter the pals by the userid of the owner? Trying to find your lamball out of like 50 lamballs of 5 different players for example is a pain lol.

Translate contribute

Hello!

I'd like to contribute to Korean translations. How can I get involved?

All Pals no longer learn new skills after editing

[Closing until further testing] All Pals, including Pals that were never edited, no longer learn new skills when leveling up. Reverting saves to their pre-edited version resolves this issue so I'm 99% positive the editor is the issue.

unable to load JSON file.

So when i try to load JSON file i get this stuff in the console. I dont know what to do or how to fix it, and i have no idea how my memory isnt enough, I have 32GB of RAM and nothing else was running besides opera GX and Discord..

Python 3.12.1
"C:\Users\Aurora\Desktop\PalEdit-main"
Opening file C:/Users/Aurora/Desktop/PalEdit-main/Level.sav
Opening file C:/Users/Aurora/Desktop/PalEdit-main/Level.sav.json
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\Aurora\AppData\Local\Programs\Python\Python312-32\Lib\tkinter_init_.py", line 1962, in call
return self.func(*args)
^^^^^^^^^^^^^^^^
File "C:\Users\Aurora\Desktop\PalEdit-main\PalEdit.py", line 98, in loadfile
data = json.loads(f.read())
^^^^^^^^
File "", line 322, in decode
MemoryError

Can't Load File : KeyError: 'root'

Hi! I deserialized my .sav file, i can open the .json, but when i try to load into PalEdit i have this error :

Python 3.10.10 "C:\Users\user\Downloads\PalEdit-main\PalEdit-main\" Opening file C:/Users/user/Downloads/palworld-save-tools-windows-v0.9.0/Level.sav.json Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__ return self.func(*args) File "C:\Users\user\Downloads\PalEdit-main\PalEdit-main\PalEdit.py", line 123, in loadfile paldata = data['root']['properties']['worldSaveData']['Struct']['value']['Struct']['CharacterSaveParameterMap']['Map']['value'] KeyError: 'root' Opening file C:/Users/user/Downloads/palworld-save-tools-windows-v0.9.0/Level.sav.json Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__ return self.func(*args) File "C:\Users\user\Downloads\PalEdit-main\PalEdit-main\PalEdit.py", line 123, in loadfile paldata = data['root']['properties']['worldSaveData']['Struct']['value']['Struct']['CharacterSaveParameterMap']['Map']['value'] KeyError: 'root'

I use :

PS C:\Users\user> python -V Python 3.10.10

Any idea of why i get this?

Thank's!

Unable to save changes correctly

image
I have a large save that loads fine, but the save stops midway causing the save to become corrupted.
Level.sav.json is the stored file, and Level2.sav.json is the backup decompressed data. There is obviously a very abnormal gap in size between them (and the text editor will refuse to read the edited file because the file Damaged)
I don't know if it's a problem because the archive is too large or because there are characters from other languages (like Chinese characters) in the archive
Here I attach my archived data, hoping to find out the problem

Not Loading Player Names or ID

I loaded my dedicated server save file in the editor but on the player list it's blank. If i load the same file through v0.4.6 I can see everything

Custom/User created presets

Hi thank you for your tool, do you have any plans to add the possibility of creating custom passive skills presets?

Display Pal Custom Names

I have anywhere from 1 to 15 of a given Pal, and it would be very helpful if the tool displayed the names I gave them (NickName.value in the .json file) so I know which ones I am editing, and to make it easier to find the ones I'm looking for.

Generation

Hey eternal. Just wondering if you've got any plans to add the ability to generate Pals into our Palbox?

Edit: Just thought of it. What about also adding condenser levels and statue upgrades?

Known Issue: Some Pal Skills show up as Unknown

If you find any, post them here and let me know so that I can add them in. Not all of the codenames for Skills are/were known; and some may be incorrect if I guessed what the codename was based on other codenames.

Wrong editing results

I edited just 4 Pals. but when i loaded the save file ,i founded the abilitys of these Pals also appear incorrectly on some other Pals.
I'm using v0.42ใ€‚

anubis not detected in paledit

for whatever reason, anubis isn't detected tho there might be others as well but from what i checked he doesn't show up.

Partner skill level become 0

Reproduce:

  1. Convert Save to Json - Level.sav
  2. Save Changes - Level.sav.json (without modifying any pal data)
  3. Convert Json to Save - Level.sav.json

All pals I have become Partner skill Level 0.

For reference,
"Level_before.sav" is the original save file.
"Level_after.sav" is the modified save file by PalEdit.

BF53333A4EADE7B865FBAE86F9024E8E.zip

Rank always 1 lower

When you change the rank it will always be 1 lower than what you set it to. For instance if you set rank to 3 it will go down to 2.

Is there is a HPIV to edit?

Can I ask if there is a hp individual values to edit? Because I find that it shows different hp in the same situation. ( level, skills )

Edit model of human in palball

I'm not sure if it's technically possible, but perhaps we could extend paledit to allow modification of the models of the humans in palball and thus customize their appearance.

Pals in base sometimes just stand still/don't do work (transporting, farming)

Happens after PalEdit v4.0.6.

I've edited Artisan, Serious, etc to ranch pals (Chikipi, Melpaca, etc) and sometimes they don't produce anything. With gathering pals (Pengullet, Daedream, etc) they often drop the items continuously if there are too many items on the ground (happens in ranches). In plantation/garden, sometimes pals just stand staring at the berries when the berries are ready to be picked up. I need to pick the berries manually before they eventually move.

Might be related to #30. See attached save file. I have 10 pals at a base.

Level.zip

The cost to upgrade pal's rank(mean star) is doubled at first rank up.

The number of pals needed for the first rank up(0 ->1 rank) should be 4, but is 8.
Even if collect 8 and try rank up, they will not rank up and change the number required becomes 4.
After that, rank up normally.

The newly acquired pal had a rank-up cost 4, and when I saved with PalEdit, I found that it went up to 8.

1 -> 2 rank up seems to work normally. (needed 16 pal)
I couldn't check more rank that because I didn't have enough pal numbers.

few issues

I found some of issues.

the lucky passive is not operating. (attack +15%, work speed + 15%)
and PalEdit can't detected legend, has boss mark, and original Lucky pals(obtain on field).

Support for Game pass version

Currently the only way to edit a save for game pass is to use XPG convert to a steam .Sav file but there is no convert back process.

Would be great if the editor could edit the game pass save files.

Please add support for tower BOSS

I noticed If captured BOSS like Zoe & Grizzbolt in inventory, they won't be listed in tool somehow
If I convert sav to .json with edition and then to .sav, their data still exist, so I guess you might just need to add GUID recognition of them in the tool. Thank you

zlib.error: Error -3 while decompressing data: invalid block type

Log:

Opening file C:/Users/geocine/Downloads/PalEdit.v0.4.6/Level.sav
Converting C:/Users/geocine/Downloads/PalEdit.v0.4.6/Level.sav to JSON, saving to C:/Users/geocine/Downloads/PalEdit.v0.4.6/Level.sav.json
Decompressing sav file
Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Python311\Lib\tkinter\__init__.py", line 1948, in __call__
    return self.func(*args)
           ^^^^^^^^^^^^^^^^
  File "C:\ACM\SW\PalEdit\PalEdit.py", line 430, in converttojson
    doconvertjson(file)
  File "C:\ACM\SW\PalEdit\PalEdit.py", line 433, in doconvertjson
    SaveConverter.convert_sav_to_json(file, file.replace(".sav", ".sav.json"), compress)
  File "C:\ACM\SW\PalEdit\SaveConverter.py", line 76, in convert_sav_to_json
    raw_gvas, _ = decompress_sav_to_gvas(data)
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\ACM\SW\PalEdit\lib\palsav.py", line 25, in decompress_sav_to_gvas
    uncompressed_data = zlib.decompress(data[12:])
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^
zlib.error: Error -3 while decompressing data: invalid block type

Environment:

Python 3.11.3 (tags/v3.11.3:f3909b8, Apr  4 2023, 23:49:59) [MSC v.1934 64 bit (AMD64)] on win32
PalEdit v0.4.6

Save:
https://file.io/CDoraKiguWAz

Unable to open the JSON sav

Using the v0.2 version.

have tried to use the convert a couple of times.
I can load the JSON files in Notepad ++ and it is there.
I tried to load it in the Edit, and it just sits... "Loading save, please be patient"

The save is fresh from today so only about 30 min of game time.
Used the palworld-save-tools-windows-v0.13.0.zip to do the convert.
The JSON file is about 156MB in size.

Steam version of the game.

Load Error

When loading a sav.josn I'm getting errors for all my boxed Pals. Saying "BOSS_JetDragon" "BOSS_Anubis" and "BOSS_Umihebi_Fire" if anyone knows how to fix.

KeyError

Opening file C:/Users/DomJ/OneDrive/Desktop/PalEdit/palworld-save-tools-main/Level.sav.json
Exception in Tkinter callback
Traceback (most recent call last):
File "C:\Users\DomJ\AppData\Local\Programs\Python\Python312\Lib\tkinter_init_.py", line 1962, in call
return self.func(*args)
^^^^^^^^^^^^^^^^
File "C:\Users\DomJ\OneDrive\Desktop\PalEdit\palworld-save-tools-main\PalEdit.py", line 123, in loadfile
paldata = data['root']['properties']['worldSaveData']['Struct']['value']['Struct']['CharacterSaveParameterMap']['Map']['value']
~~~~^^^^^^^^
KeyError: 'root'

Any idea what i do here?
also this Level.sav.json is from a dedicated server that 5 people play on.

Error when loading save

After extracting the json, trying to load the save gives me the following error:

Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\dhohg\AppData\Local\Programs\Python\Python310\lib\tkinter\__init__.py", line 1921, in __call__ return self.func(*args) File "C:\Users\dhohg\Palworld\Paledit\PalEdit-main\PalEdit.py", line 121, in loadfile paldata = data['properties']['worldSaveData']['value']['CharacterSaveParameterMap']['value'] KeyError: 'properties'

Passive skill issue | Pals not visible in PalEdit | PalEdit show pals that are gone

v0.3.1
I have managed to edit 133/137 pals passive skills and rank, but seems like 009 Rooby, 018 Cremis, 043 Dumud and 070 Flambelle lose their 3rd and 4th passive skills.

v0.4.2
Rooby, Cremis, Dumud and Flambelle no longer shows up in PalEdit. Tried to catch multiple of those pals in case the ones in my palbox were bugged but the new ones does not show up either.

v0.4.2
6 jetragons which I have either sold or consumed in rank up still shows up in the PalEdit, but this wont be an issue when delete pal option is implemented.

binary format

Would it be more efficient to read and write files if we used a binary format like pickle, instead of JSON? Just a thought.

Pull requests

Hey, could not find any discord information to DM you.

I added a few more options to your tool, Do you want a pull request?

Also, how can I add new nodes to the json string of each pal?

My discord: reducted

Add pal search

Thank you very much for developing the tool, my friend and I were playing on a server and captured a lot of pal, it was very difficult to find the pal, I would like to add a search function in order to find the pal as soon as possible. just look for the pal that is changed to the specified name. Thank you!

Player's pals not showing in v0.4.8(latest) but do on previous versions.

Not sure if anyone else has experienced this, but A LOT of my pals aren't showing up in the sidebar under my name. v0.4.8 shows only about 20 odd pals, when my character has a few boxes full.

To confirm this, I have a Wixen nicknamed "APPEAR IN PALEDIT" to differentiate it easily from others and identify it in the list of pals.

You can see it appears in the older version, but not in the new version (name blanked bc its personally identifiable, same with one of the nicknames). Not under my name or any of the other players.

Both are using the exact same save file which is my latest save. What's even more strange is some of the pals appearing on the v0.4.8 window don't currently exist, or I've long changed their name from what it's appearing as in the window.

image

I will test this again on my other computer in case I'm either going crazy or doing something wrong.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.