What tools do you guys recommend for Doom TAS runs? Cannot find anything via google search, just wondering what is optimal.
I suggest you start with PrBoom+ and its TAS tools; that should be easier than building demos tic by tic. With PrBoom+, you have access to a few TAS tools. Within the options menu, there's a gamespeed modifier, which allows you to run at a lower gamespeed than usual. There's also two options that allow you to automate strafe50, which is the fastest diagonal running possible and strafe50 on turns, which is a TAS convention, even though technically it's believed to be impossible to do without automation today.
There's also different parameters you can start with for TAS. If you record a demo (say demo1.lmp), and you make a mistake, you can run PrBoom+ with this parameter "-recordfromto demo1 demo2" in order to re-record the mistake. You will play back the demo, and you can take control of the player before you made the mistake by pressing, I think, 'Q' by default, but you can rebind that key. There's also "-skipsec #" that allows you to skip # seconds so you don't have to re-watch the entire demo. Finally, there's a few other useful parameters "-trace_thingshealth #1 #2 #3" allows you to trace damage to things with the numbers #1, #2, #2. You can find the number of a thing (such as a barrel or monster) by loading the wad in Doom Builder 2.
You can also use the IDDTx2 cheat to see where keys and monsters are, and PrBoom+ also offers a chasecam feature, where, if you play back the demo, pressing the 0 on the number pad twice will allow you to move around on your own and watch your demo from an outside perspective.
If you want full control over your movements, then you should use XDRE2, available here. In it, you can enter commands like "mf50" in the top right field, and, if you press space, the player will do that specified command on the tic (or frame) you are on (mf50 will make him run forward at normal speed). The XDRE2 README has info on how to find and change those commands. TAS Demos that you record frame by frame are called built demos. It also has a bruteforce option, but I've never personally gotten it to work, so someone else would be better at explaining it.