Hello again! I've kept working on the plugin and have another version ready for release. This version includes:
- Configurable # of ghost ticks. You can now resume after as little as 2 ghost ticks instead of waiting 30 ticks like before (if you want)
- Generally overhauled weapon resetting logic, working for most (hopefully all) weapons. Should be much more reliable now
- Improved sticky rewinding, including sticky launcher charge state
- Added a frame-by-frame/tick advance mode (more on this below)
- Pipe rewinding
- Improved crouch state rewinding. The plugin no longer relies on tf_clamp_airducks, and instead restores a bunch of attributes relating to player crouch state. Many bugs where the player would clip into things or teleport weirdly during playback should be resolved as a result of this
- JSON export/import of recording data. (more on this below)
- 9 sticky det behavior (more on this below)
- Projectiles (except pipes) spawn on the first possible ghost tick instead of the last.
- Cowmangler projectile support
- Some tweaks/changes to the hud and `show_path`/`show_projectiles`
- Fix for the setang inconsistency discussed earlier by ondkaja and Larry
- Gravity rewinding
- Renamed control_ammo to replay_ammo, and defaulted it on (more on this below)
- Descriptions for each command in the help menu
- Misc other fixes
A lot of the goal with this release was to fix logical inconsistencies that could result in playback that doesn't match what was recorded. Most of the issue here was with respect to weapon and crouch state, so I hope that you'll find this build makes things much more reliable. Note that projectiles and lag can cause the game to be nondeterministic, and hammer logic/targetname/etc are not accounted for, but ignoring those the plugin _should_ always produce logically consistent recordings now. In many cases, I've been able to record entire runs as soldier and play them back without force_teleport and it never desyncs.
Recordings from the original version and from the previous release should be compatible with this build, although much of the crouch state & weapon logic will be effectively ignored for the portions of the recording from an older version of the plugin.
I'm also planning to make a video tutorial for the plugin at some point covering everything from the basic commands all the way through the advanced ones. I have added descriptions to the commands in the help menu, though, so hopefully that helps in the meantime. I will also update the main post with that info. Here's a (not great) preview of the new tick advance mode and some of the path/projectile stuff for now:
DL LinkAs always, let me know if you run into any bugs/issues/crashes/whatever, or if you have any suggestions for tweaks/features.
Here are some additional details about the topics from the above list with "(more on this below)":
Added a frame-by-frame/tick advance mode:
Pretty excited to get this one in. This allows you to more easily perform tick-perfect tricks/flicks/whatever without the use of a janky external host_timescale bind. All this feature does is slow down host_timescale
to 0.0000001 every frame while recording, which basically freezes you wherever you are. After pushing whatever buttons/moving your mouse wherever you'd like, if you press a `host_timescale 1` bind, you will effectively advance 1 tick.
JSON import/export:
With the new file format, it's much more difficult to go into the file and make tweaks. Tweaks shouldn't ever be necessary, but with JSON import/export it should be a bit easier. Also, it's just generally nicer and more complete than working with the CSV export if you'd like to work with the run outside of the game.
9 sticky det behavior:
Previously, with stickies respawned from the plugin, the 1st sticky would not be detonated after a 9th was fired. This functionality has been added, with the caveat that it will always detonate the 1st sticky exactly 9 ticks after the 9th is fired. In the real game, this # of ticks can vary from between 2 and 16 (in my limited testing), depending on the sticky think timer (I think). Rather than account for this extra randomness I figured I'd just pick a number in the middle. Hopefully in the future either this plugin or another is able to fix this and other issues with non-deterministic projectiles.
Replay ammo:
With the improvements to weapon rewinding, reload state should be better handled now, although it's still not perfect as it's not integrated with map regen. I still think it's decent enough to be enabled by default, but you can of course feel free to turn it off if you want.