• Stars
    star
    137
  • Rank 266,121 (Top 6 %)
  • Language
    Haskell
  • License
    MIT License
  • Created about 8 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

🚗 Parse and generate Rocket League replays.

Rattletrap

Workflow Hackage Stackage

Rattletrap parses and generates Rocket League replays. Parsing replays can be used to analyze data in order to collect high-level statistics like players and points, or low-level details like positions and cameras. Generating replays can be used to modify replays in order to force everyone into the same car or change the map a game was played on.

Rattletrap supports every version of Rocket League up to 2.23, which was released on 2022-11-29. If a replay can be played by the Rocket League client, it can be parsed by Rattletrap. (If not, that's a bug. Please report it!)

Install

Rattletrap is a command-line application. You should only use it if you're comfortable running things in terminals or command prompts. Otherwise consider using another tool like Ball Chasing.

The best way to get Rattletrap is by downloading the latest release for your platform.

Rattletrap is written in Haskell. To build Rattletrap from source, install Stack. Then run stack --resolver nightly-2023-02-12 install rattletrap. If you'd like to use a program written in a different language, consider one of the following:

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 12.0.0
  -c           --compact         minify JSON output
  -f           --fast            only encode or decode the header
  -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
               --schema          output the schema
               --skip-crc        skip the CRC
  -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 -o 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 -o 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

More Repositories

1

flow

💧 Write more understandable Haskell.
Haskell
196
star
2

haskeleton

💀 A Haskell package skeleton.
Haskell
135
star
3

github-release

:octocat: Upload files to GitHub releases.
Haskell
102
star
4

rampart

🏰 Determine how intervals relate to each other.
Haskell
77
star
5

witch

🧙‍♀ī¸ Convert values from one type into another.
Haskell
74
star
6

thran

Compile PureScript into Haskell.
PureScript
70
star
7

wuss

🔒 Secure WebSocket (WSS) clients in Haskell.
Haskell
68
star
8

hairy

💇 A JSON REST API built in Haskell.
Haskell
66
star
9

blunt

✏ī¸ Convert between pointfree and pointful Haskell expressions.
Haskell
49
star
10

cabal-gild

👑 Format Haskell package descriptions.
Haskell
48
star
11

purescript-neon

⚡ī¸ A practical standard library for PureScript.
PureScript
47
star
12

octane

🚀 Parse Rocket League replays.
Haskell
39
star
13

strive

🚴 A Haskell client for the Strava V3 API.
Haskell
36
star
14

autoexporter

📤 Automatically re-export Haskell modules.
Haskell
32
star
15

purescript-batteries

🔋 A PureScript prelude with more features.
PureScript
32
star
16

splint

🗞ī¸ HLint as a GHC source plugin.
Haskell
31
star
17

purple-yolk

đŸŖ A Haskell IDE for Visual Studio Code.
TypeScript
26
star
18

evoke

🔮 A GHC plugin to derive instances.
Haskell
23
star
19

hs2048

đŸ”ĸ A 2048 game clone in Haskell.
Haskell
22
star
20

lackey

💎 A Haskell library for generating Ruby consumers of Servant APIs.
Haskell
22
star
21

grotesque

An implementation of GraphQL in Haskell.
Haskell
21
star
22

tfausak.github.io

📝 Taylor Fausak's blog.
HTML
20
star
23

factory

🏭 An example Servant API.
Haskell
19
star
24

imp

😈 Automatically import Haskell modules.
Haskell
19
star
25

haskell-snake-game

🐍 The snake game.
Haskell
17
star
26

monadoc-5

🔖 Better Haskell documentation.
Haskell
17
star
27

haskell-knowledge-base

🕸ī¸ A knowledge map about Haskell powered by Obsidian.
Markdown
16
star
28

burrito

đŸŒ¯ Parse and render URI templates.
Haskell
16
star
29

json-feed

đŸ“ĸ JSON Feed in Haskell.
Haskell
13
star
30

grawlix

đŸ’Ŧ Comment on Haskell documentation.
Haskell
13
star
31

advent-of-code

My solutions to Advent of Code puzzles.
Haskell
12
star
32

hlint-action

📈 Checks that Haskell files are linted with HLint.
JavaScript
12
star
33

exercism-solutions

Solutions to exercism assignments.
Haskell
11
star
34

ratel

đŸ¯ Notify Honeybadger about Haskell exceptions.
Haskell
11
star
35

saturn

đŸĒ Handle POSIX cron schedules.
Haskell
10
star
36

advent-of-code-2020

🎅 My Elm solutions to the 2020 Advent of Code puzzles.
Elm
9
star
37

delay

A Safari extension that delays the loading of time-wasting websites.
JavaScript
9
star
38

derulo

🎙ī¸ Parse and render JSON simply.
Haskell
8
star
39

haskell-package-checklist

☑ī¸ Write better Haskell packages
8
star
40

patrol

đŸ“ļ A Sentry SDK for Haskell
Haskell
7
star
41

bombyard

A clone of the minesweeper game in Haskell.
Haskell
7
star
42

acme-mutable-package

â˜Ŗī¸ A mutable Haskell package.
Haskell
7
star
43

salve

💉 Semantic version numbers and constraints for Haskell.
Haskell
7
star
44

haskell-packages

Dashboard of Haskell projects I maintain.
6
star
45

list-singleton

1ī¸âƒŖ Easily and clearly create lists with only one element in them.
Haskell
6
star
46

h99

Ninety-Nine Haskell Problems
Haskell
6
star
47

quartz

Lenses and optics for Elm.
Elm
6
star
48

argo

â›ĩ Parse and render JSON.
Haskell
6
star
49

types-design-yahtzee

Haskell
5
star
50

fr2048

A 2048 game clone in Frege.
Frege
5
star
51

atom-conceal

An Atom package that conceals text and replaces it with prettier alternatives.
CoffeeScript
5
star
52

project-euler

Solutions to Project Euler problems.
Perl
5
star
53

moxen

A Magic: the Gathering card database.
Python
5
star
54

ratel-wai

đŸ¯ Notify Honeybadger about exceptions via a WAI middleware.
Haskell
5
star
55

heptapod

đŸĻ‘ Generate version 7 UUIDs in Haskell.
Haskell
4
star
56

titato

⭕ ❌ Tic tac toe game in Haskell.
Haskell
4
star
57

atom-haskell-scry

🔮 De-emphasize qualified Haskell identifiers.
CSS
4
star
58

bento

🍱 Manage stateful components.
Haskell
4
star
59

scrod

🐟 Like Haddock but worse.
Haskell
3
star
60

fregexample

An example Frege project.
Clojure
3
star
61

rocket-league-api

Haskell
3
star
62

gloop

🍮 SDL2 game loops.
Haskell
3
star
63

haddock-dingus

🐟 Easily preview Haddock markup.
Haskell
3
star
64

erudite

📚 Test interactive Ruby examples.
Ruby
3
star
65

threase

Plays Threes with ease.
Haskell
3
star
66

MadMinute

It's like math, but faster!
Objective-C
3
star
67

multi-line-string

Haskell
3
star
68

storm

🌩ī¸ Parse and generate Fortnite replays.
Haskell
2
star
69

gizmo-gg

🚙 Rocket League stats.
Haskell
2
star
70

cod

🐟 Quickly generate Haskell documentation.
Haskell
2
star
71

monadoc-6

🔖 Worse Haskell documentation.
Haskell
2
star
72

hutton

A Haskell program for the button on Reddit.
Haskell
2
star
73

gizmo-gg-uploader

📤 Rocket League replay uploader.
JavaScript
2
star
74

purescript-thermite-example

An example application using PureScript's Thermite on top of React.
PureScript
2
star
75

endo

🏎ī¸ Parse and generate Rocket League replays.
Haskell
1
star
76

velma

👓 Automatically add files to exposed-modules and other-modules.
Haskell
1
star
77

bdbxml-jukebox

A web-based jukebox powered by PHP and Berkeley DB XML.
PHP
1
star
78

disable-warnings

Haskell
1
star
79

obsidian-publish-action

Publishes files to Obsidian.
JavaScript
1
star
80

piwik-openshift

Piwik on OpenShift.
Ruby
1
star
81

docker-i386-haskell

Dockerfile
1
star
82

advent-of-code-2022

🎅 My solutions to the 2022 Advent of Code puzzles.
F#
1
star
83

cherry-top

🚨 Controls BlinkSticks.
Haskell
1
star
84

dotfiles

Shell
1
star
85

ledger-react

1
star
86

beeswax

🐝 Encode and decode BSON in Haskell.
Haskell
1
star
87

advent-of-code-2023

🎅 My solutions to the 2023 Advent of Code puzzles.
Haskell
1
star
88

phong

A Pong game clone.
Haskell
1
star
89

brittany-action

🖨ī¸ Checks that Haskell files are formatted with Brittany.
JavaScript
1
star
90

honeycrisp

🍎 A Haskell client for the Apple News API.
Haskell
1
star
91

jawa

Type definitions for JWP events.
Elm
1
star
92

caltrop

Experimental Haskell source code analyzer as a GHC plugin.
Haskell
1
star
93

glenda

🐰 Describes the Go programming language in Haskell.
Haskell
1
star
94

hslogger

Haskell
1
star
95

ledger-api

1
star
96

slurp

👅 A single liberal unified registry of Haskell packages.
Haskell
1
star