Dummy Bot Recorder
This code is over 6 months old. The code may have expired and might no longer function.
This simple gamemode allows you to record your own movements and actions, and play them back through ally or enemy dummy bots.
Dummy Bot Recorder is designed to be minimalistic and general-purpose; perhaps you want to simulate a very specific teamfight scenario, or practice/warmup certain mechanics in a realistic fashion? With the dummy bot recorder, you can record yourself as an enemy or ally, and then playback those recordings on loop with interactible dummy bots on any character.
Press the Interact key (bound to 'F' by default on PC) to open the control menu, and the controls will be listed from there onwards.
READ BEFORE USING:
Recording lots of bots at full resolution can crash your server! You should change the workshop settings according to your needs. You can do that by going to Settings -> Workshop Settings.



Setting a low value for "Recording Poll Interval" will mean more precise recordings, but higher server load at the same time (Recommended when recording a single bot)
Setting a high value for "Recording Poll Interval" will mean less precise recordings, but lower server load simultaneously (Recommended when recording lots of bots at once)
You MUST restart your match to apply the custom settings.
Sync Mode
You can press the Primary Fire button to toggle "Sync Mode"; this will sync all bot recording playbacks so that they start at the same time. They will all loop together when the last bot finishes its recording.
Infinite Resources
There is an option to toggle infinite resources listed in the menu; this can be intensive on the server when there are lots of players present, and it is recommended you edit the match settings instead if you want infinite cooldowns, ammo, etc.
Saving and Loading Recordings
Note: There are a number of limitations with saving and loading recordings:
- Saving a recording requires a bit of manual effort, so follow the instructions carefully!
- You can only save/load an animation on the same map. I am not responsible for what happens if you load a recording onto a different map!
- Precision may be lost due to the way overwatch copies arrays and represents numbers when exported to actions.
- The bot will be loaded onto the exact same team as it was saved onto (Team 1 or Team 2)
- If any bots have a recording that is too big (too high resolution + too long duration), it may corrupt your attempts to save the recording. Make sure all of your bots have a recorded length slightly lower than the maximum possible size (this is determined by workshop variable limitations, not an arbitrary limit set by me)
- If you have created and deleted too many bots, your bot may not show up on the workshop inspector. So you will only be able to save the first few bots you record.
Saving a Recording
Step 1: Open your menu and press Ability 1 + Reload to store the recording data onto all bots

Step 2: Open the workshop inspector

Step 3: Set your variable target to the dummy bot you want to save the recording of

Step 4: Click "Copy to Clipboard Current Values for Current Variable Target as Workshop Actions".
NOTE: DO NOT CLICK ON ANY OF THE OTHER BUTTONS OR YOU MAY CRASH YOUR GAME

Step 5: Paste what's on your clipboard into a text editor, and copy out everything in this exact section of what you just pasted. Double check to make sure you're selecting everything past "Event Player.MYSAVEDRECORDING = " up until the second-to-last line.

Step 6: Insert that selection you just copied into the following text, replacing the "### PASTE THE ARRAY EXPRESSION HERE ###" section:
subroutines{2:LoadMySavedRecording}variables{global:8:RECORDING_TO_LOAD}actions{"Load my saved recording (Next 2 Actions)"
Global.RECORDING_TO_LOAD = ### PASTE THE ARRAY EXPRESSION HERE ###
Call Subroutine(LoadMySavedRecording);
}
Save your text document. It should look something like this:

Loading a Recording
To load a recording, you can easily paste it into the workshop editor.
Step 1: Copy all of the text you put together in the previous step onto your clipboard
Step 2: Open up the workshop editor

Step 3: Expand the rule that says "--- PASTE YOUR SAVED RECORDINGS HERE ---"

Step 4: If you formatted your save correctly, you should be able to paste it as an action within the rule you just expanded

Step 5: Restart your match, and make sure your map settings only include the map you recorded your saved recording on (or else bad things can happen.... oh the screams!)
Hit me up with any bug reports or suggestions you have. I kind of threw this gamemode together on my own for my own use initially, so it's very simplified in scope so far, but I'm always open to adding more to the experience.
Made by DataBrain
5 Comments
Hey Data!
Im brainstorming and had an idea.
Is it somehow possible to make a rule to go back in time with a command (like Tracer recall)?
All Players should forced to go back their way, facing the direction they viewed, players who died get resurrected etc.
You recorded movement and transfered this to dummy bots - you know the best if my idea is possible or not I guess. What do you think?
Also, Im on the Elo Hell Workshops Discord. You can write to me there if you want / or here in the comment section :)
This is a really great game mode. but it would be nice if you give the players an ability to save the recordings (by Log To Inspector method for PC users) so the recordings can be saved and used multiple times.
Beside that, recordings are kind of short (less than a minute). It would be fantastic if the recordings last longers
Thanks for the tip about Log To Inspector! I think I'll be able to come up with a way to save/load recordings, although it might require a bit more manual text editing since log to inspector has some major limitations from what I've played around with.
The minute recording limit is not imposed by me, so I think it's related to the workshop's own limits for what can be stored in a single variable. If you increase the recording poll interval in the workshop settings, you will probably be able to have longer recordings, albeit with less keyframe precision. I don't know exactly what I can do to extend this artificial limit without overhead on playback performance though.
Hey! The mode is really cool, I've been playing around with it trying to create team fights for fun. I think it would be a great addition if you could reset all of the bots at one time because if one dies it restarts off sync with the other ones.
A sync feature is also something I've been heavily considering, so I'll likely add that feature in the next update. Thanks for the feedback!