This is a Python tool that allows you to load JSON replays, and analyze them by writing continuous queries in a Streaming SQL-like language.
Note: I used jjbott's Rocket League Replay Parser to convert replays to JSON format, so if you want to convert one of your replays to JSON so it can be loaded by this tool, you can use that Replay Parser.
Screenshot:
A query has this structure:
IF CONDITION
FOR TIME_WINDOW
THEN PRINT("MESSAGE")
EVERY DELAY SECONDS
CONDITION can be: a Python-like condition, which can use predefined values as well as numbers / booleans / operators etc.:
- ball.x (the ball's position on the X axis);
- ball.y (the ball's position on the Y axis);
- player.1.x;
- player.1.y;
- player.2.x;
- ...
- player.6.x;
- player.6.y;
- midfield.x (the position at the middle of the field on the X axis: 0);
- LAST x SECONDS (where 'x' is a number)
- LAST x ENTRIES (where 'x' is a number)
MESSAGE can be: a string printed when the condition is true 'FOR the LAST x SECONDS/ENTRIES'.
DELAY can be: a number (2, 10, 0.5, etc); the message will be printed AT MOST every DELAY seconds.
IF ball.x < midfield.x
FOR LAST 2 SECONDS
THEN PRINT("Orange team defending")
EVERY 1 SECONDS
IF ball.x > midfield.x
FOR LAST 2 SECONDS
THEN PRINT("Blue team defending")
EVERY 1 SECONDS
IF player.3.x > midfield.x and player.5.x > midfield.x and player.6.x > midfield.x
FOR LAST 1 SECONDS
THEN PRINT("Entire orange team is offensive")
EVERY 0.5 SECONDS