clean_data = {} for k, v in data.dict.items(): try: json.dumps(v) clean_data[k] = v except: clean_data[k] = str(v) # Fallback for complex objects
with open(output_path, "w") as f: json.dump(clean_data, f, indent=2)
print(f"Exported to output_path")
The Ren’Py Persistent Editor is a third-party tool (not official from Ren’Py) designed to view, edit, and sometimes delete persistent data stored in Ren’Py games. Persistent data includes variables, flags, unlocks, gallery progress, achievements, and preferences that survive closing and reopening a game.
The “extra quality” variants often refer to: renpy persistent editor extra quality
persistent_path = "persistent" # or full path output_path = "persistent_edit.json"
with open(persistent_path, "rb") as f: data = pickle.load(f) clean_data = {} for k, v in data
If you are modding a game and do not know the variable names (no whitelist), you can use Python introspection to find them. Add this to the Python block:
def discover_persistent_vars():
# Get all attributes of the persistent object
attrs = dir(persistent)
found_vars = []
for attr in attrs:
# Filter out internal python attributes (starting with _)
if not attr.startswith('_'):
found_vars.append("persistent." + attr)
return found_vars
# Update the screen to loop over discover_persistent_vars() instead of the whitelist
# Note: This is risky as it exposes every variable, including internal Ren'Py ones.