Advertisement
Visual_Studio

Phasmophobia Save

Oct 15th, 2020
2,376
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.06 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. from os.path import isfile
  4. from getpass import getuser
  5. from json import loads, dumps
  6.  
  7. KEY = b"CHANGE ME TO YOUR OWN RANDOM STRING"
  8. SAVE_PATH = fr"C:\Users\{getuser()}\AppData\LocalLow\Kinetic Games\Phasmophobia\saveData.txt"
  9.  
  10. def read_file(filename: str) -> bytes:
  11.     with open(filename, "rb") as f:
  12.         data = f.read()
  13.     return data
  14.  
  15. def write_file(filename: str, data: (str, bytes, bytearray)) -> None:
  16.     with open(filename, "w" if type(data) == str else "wb") as f:
  17.         f.write(data)
  18.  
  19. def scramble(data: (str, bytes, bytearray)) -> bytearray:
  20.     if type(data) == str:
  21.         data = bytearray(data.encode("UTF8"))
  22.     elif type(data) == bytes:
  23.         data = bytearray(data)
  24.  
  25.     for i in range(len(data)):
  26.         data[i] ^= KEY[i % len(KEY)]
  27.  
  28.     return data
  29.  
  30. unscramble = lambda d: scramble(d)
  31.  
  32. def main() -> None:
  33.     if not isfile("saveData.json") and isfile(SAVE_PATH):
  34.         save_data_enc = read_file(SAVE_PATH)
  35.         save_data_dec = unscramble(save_data_enc)
  36.         save_data_json = loads(save_data_dec)
  37.         write_file("saveData.json", dumps(save_data_json, indent=4))
  38.  
  39.         print("Dumped save file to \"saveData.json\"!")
  40.         print("Edit this file and run again to create a modified save file.")
  41.     else:
  42.         save_data_dec = read_file("saveData.json")
  43.         save_data_json = loads(save_data_dec)
  44.  
  45.         i = 0
  46.         for entry in save_data_json["IntData"]:
  47.             (key, value) = entry.values()
  48.             if key == "myTotalExp":  # experience
  49.                 save_data_json["IntData"][i]["Value"] = 999999
  50.             elif key == "PlayersMoney":  # money
  51.                 save_data_json["IntData"][i]["Value"] = 999999
  52.             elif key.endswith("Inventory"):  # items
  53.                 save_data_json["IntData"][i]["Value"] = 999
  54.             elif key == "PlayerDied" and value > 0:  # death count
  55.                 save_data_json["IntData"][i]["Value"] = 0
  56.             elif key == "completedTraining" and value == 0:  # tutorial finished
  57.                 save_data_json["IntData"][i]["Value"] = 1
  58.             i += 1
  59.        
  60.         save_data_enc = scramble(dumps(save_data_json, separators=(",", ":")))
  61.         write_file(SAVE_PATH, save_data_enc)
  62.  
  63.         print("Wrote modified save file!")
  64.  
  65. if __name__ == "__main__":
  66.     main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement