Files
evolve-save-editor/CLAUDE.md
Julian Tabel a5dd0d2397 Initial commit: Evolve save editor CLI
Node.js CLI tool that decodes Evolve game saves (LZString compressed),
edits resource values, and re-encodes back to clipboard.

Features:
- --max-resources: fill all capped resources to their max
- --set-crafted=N: set unlimited/crafted resources to a given value
- Reads from clipboard, stdin, or argument; writes back to clipboard

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 12:01:15 +01:00

36 lines
1.3 KiB
Markdown

# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Project Overview
CLI tool for editing [Evolve](https://pmotschmann.github.io/Evolve/) browser game save files. Saves are LZString-compressed JSON, exported via the game's Settings > Export.
## Commands
```bash
npm install # install dependencies (lz-string)
# Max all capped resources, copy result to clipboard
node index.js --max-resources < save.txt
node index.js --max-resources "SAVE_STRING"
# Print to stdout instead of clipboard
node index.js --max-resources --no-copy < save.txt
```
## Save Format
Saves are LZString `compressToBase64` of a JSON object (not plain base64). Uses the `lz-string` npm package to match the game's own JS implementation.
Key top-level sections: `resource`, `race`, `tech`, `city`, `space`, `civic`, `genes`, `prestige`, `settings`, `arpa`.
### Resource structure (`resource.<name>`)
- `amount`: current value
- `max`: storage cap. `> 0` = capped, `-1` = unlimited (crafted), `-2` = special/uncapped, `0` = not unlocked
- Other fields: `name`, `display`, `diff`, `delta`, `rate`, `bar`, `stackable`, `crates`, `containers`, `value`, `trade`
## Architecture
Single-file Node.js CLI (`index.js`), one dependency (`lz-string`). Uses `pbcopy` (macOS) or `xclip` (Linux) for clipboard.