Skip to content

Allow saving replay states to playlists as custom scenarios#5

Open
debnera wants to merge 21 commits intoecolsen7:masterfrom
debnera:replay_pr
Open

Allow saving replay states to playlists as custom scenarios#5
debnera wants to merge 21 commits intoecolsen7:masterfrom
debnera:replay_pr

Conversation

@debnera
Copy link

@debnera debnera commented Nov 22, 2025

Make it possible to create custom scenarios from replays. Supports 1v1, 2v2, 3v3, and 4v4 scenarios.

The idea is that the user can look at replays and then hit a hotkey to save the current state as a custom scenario to a specific playlist.

TODO:

  • Implement saving replay states to playlists
  • Implement some sort of a in-game UI to show what is happening
  • Add a new game mode to prevent Dojo from setting game state during replay
  • Allow changing players during a replay
    • Get currently specated player by using a RLBot socket relay and PlayerSpectate
  • Fix scenario mode not supporting custom scenarios with more than 2 cars or having "freeze scenario" enabled
  • Add some random variance to custom scenarios
    • Fine tune the variance or make it configurable in game?
  • Indicate number of players in playlist
    • Minimal implementation:
      • Show number of players in UI, so the user can set up the correct amount of bots in RLBot gui.
      • Move any extra vehicles outside of the field when playing custom scenarios.
    • (Optional) Automatically spawn/despawn bots based on number of players in scenario. Should be possible in the upcoming RLBot v5?
  • Refactoring
    • We might not need two separate menus for editing custom playlists
    • We might not need two separate classes to handle in-game ui
    • Nor do we need this much duplicate code for custom playlists and saving replay states
    • Clean up debug prints etc...
  • (Optional) Allow inspecting and editing/deleting custom scenarios in a playlist
    • User might accidentally save a wrong scenario or save it multiple times. There should be a way to remedy the situation.
    • Would be nice if you could just use d-pad-left and d-pad-right to browse through the scenarios in a playlist and edit/delete them.
    • Editing could work similarly to how custom scenarios are already handled in Dojo.

How to use

  1. Open “Create custom playlist” menu in Dojo
  2. Load existing playlist or create a new one from the menu
  3. Navigate to replays in rocket league
  4. Find an interesting situation in the replay and switch camera to the desired player
  5. Press “Add current state” (use hotkey or menu) to save the game state as a custom scenario
  6. Repeat for all replays / states you want to
  7. Save playlist

Features

  • Allows saving game state (in a replay or anywhere else) as a scenario to a playlist.
    • Automatically mirrors positions to make current player a blue team player.
      • This is to fit in with the other features of RLDojo that assume that human player is on the blue team.
    • Add to existing playlists or create a new one.
      • It would be annoying if you could only create a new playlist every time you check your replays.
  • Added random variance to custom scenarios
    • Adds random variance to boost, car direction and car velocity of every car in the scenario.
    • Adds random variance to ball velocity and direction.
    • ...but these are hardcoded. Maybe should be adjustable from the menu? Or just fine-tune it to fit most use cases.
  • Added support for any number of cars in each team.
    • Added an indicator to custom playlists that shows if it contains 1v1, 2v2, 3v3 or 4v4 scenarios.
    • Extra cars are (usually) moved outside of the field when playing default scenarios or custom scenarios with less cars.

- Enable saving replay states in the original playlist editor instead of having two separate playlist editor menus
- Refactor UI and merge the separate playlist edit mode UI into the same class
…y on walls)

- Rotate velocity with the car to keep the original momentum
- Add some vector math to make local yaw adjustments instead of world space adjustments
-- Global rotation would cause the car to fall off walls
-- Local rotation keeps the car flat on a wall (or the ground)
@debnera debnera marked this pull request as ready for review January 8, 2026 20:47
@debnera debnera changed the title [WIP] Allow saving replay states to playlists as custom scenarios Allow saving replay states to playlists as custom scenarios Jan 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant