rattletrap

Parse and generate Rocket League replays.

https://github.com/tfausak/rattletrap#readme

Version on this page:4.1.2
LTS Haskell 22.39:12.1.3
Stackage Nightly 2024-10-29:13.1.0
Latest on Hackage:14.0.0

See all snapshots rattletrap appears in

MIT licensed
Maintained by Taylor Fausak
This version can be pinned in stack with:rattletrap-4.1.2@sha256:5bf047ac0c35b170c31f15cc81396208968fadadf7fcaf41b5fbe90e6effec8b,11572

Module documentation for 4.1.2

Rattletrap

Version badge Windows build badge Build badge

Rattletrap parses and generates Rocket League replays.

Install

Get Rattletrap by downloading and unpacking the latest release for your platform.

To build Rattletrap from source, install Stack. Then run stack --resolver nightly install rattletrap.

Replays

Rocket League saves your replays in a folder that depends on your operating system.

  • Windows:
    • %UserProfile%/Documents/My Games/Rocket League/TAGame/Demos
    • For example: C:/Users/Taylor/Documents/My Games/Rocket League/TAGame/Demos
  • macOS:
    • $HOME/Library/Application Support/Rocket League/TAGame/Demos
    • For example: /Users/taylor/Library/Application Support/Rocket League/TAGame/Demos
  • Linux:
    • $HOME/.local/share/Rocket League/TAGame/Demos
    • For example: /home/taylor/.local/share/Rocket League/TAGame/Demos

Interface

Rattletrap is a command line application.

> rattletrap --help
rattletrap version 4.0.0
  -c             --compact                minify JSON output
  -h             --help                   show the help
  -i FILE|URL    --input=FILE|URL         input file or URL
  -m MODE        --mode=MODE              decode or encode
  -o FILE        --output=FILE            output file
  -v             --version                show the version

By default Rattletrap will try to determine the appropriate mode (either decode or encode) based on the file extensions of the input or output. You can override this behavior by passing --mode (or -m) with either decode or encode.

Input extension Output extension Mode
.replay anything decode (parse)
.json anything encode (generate)
anything .replay encode (generate)
anything .json decode (parse)
anything anything decode (parse)

Parse

Rattletrap can parse (decode) Rocket League replays and output them as JSON.

> rattletrap --input http://example.com/input.replay --output output.json
# or
> rattletrap -i input.replay > output.json
# or
> rattletrap < input.replay > output.json

The input argument can either be a local path or a URL.

By default the JSON is pretty-printed. To minify the JSON, pass --compact (or -c) to Rattletrap. Even when the JSON is minified, it’s extremely large. The output can be up to 100 times larger than the input. For example, a 1.5 MB replay turns into 31 MB of minified JSON or 159 MB of pretty-printed JSON.

Generate

Rattletrap can also generate (encode) Rocket League replays from JSON files.

> rattletrap --input http://example.com/input.json --output output.replay
# or
> rattletrap -i input.json > output.replay
# or
> rattletrap --mode encode < input.json > output.replay

The input argument can either be a local path or a URL.

If the JSON was generated by Rattletrap, the output replay will be bit-for-bit identical to the input replay.

Modify

By inserting another program between parsing and generating, Rattletrap can be used to modify replays.

> rattletrap -i input.replay |
  modify-replay-json |
  rattletrap -o output.replay

Changes

Change log

Rattletrap uses Semantic Versioning. The change log is available through the releases on GitHub.