Last updated at 21:32, 15 Mar 2017 Uploaded at 21:35, 15 Mar 2017
This bug was bothering me for years since game release and I finally decided to fix it by myself.
I am talking about various visual movement glitches that happen when you reloading one-by-one reload-type guns while moving in any direction, I mean guns like .357 magnum, cowboy repeater, hunting shotgun and others using same animation groups.
In fact around release it was even worse with player for a few seconds unable to shot, aim or access pipboy after reload, then it was "fixed" by devs and now its mostly just visual glitches but IMO they're still annoying AF, so annoying that I developed a habit to stand still during reload with such guns.
If you still don't know what I'm talking about I guess you haven't played the game enough...or not used Guns-type weapons enough...IDK, just watch short video demonstration on video tab and you will understand. It only shows a few examples tho.
Anyway, this mod completely fixes it, now your character will continue to normally move after reloading such guns and will even perform legit-looking cocking trigger/moving lever or pump animation.
More so, it does it with some lightweight scripting-only so there is no edited .nif or .kf files or anything so it should work just fine with things like custom guns or new animations.
What amaze me most is that despise aiming for overall western-like atmosphere Obsidian left out such glaring bugs with cowboy-style guns, magnum .357 is even like the main gun of the game, you see it every time in main menu held by ranger. Still probably we should be thankful that at least they tried, Bethesda way to handle LAR reloading in Fallout 3 & 4 when you reload all bullets at once no matter how many you shot is even more lazy.
This mod requires that you have NVSE installed and will not work otherwise.
Simply drag and drop .esp file in [Game Folder]\Data then activate it in launcher.
Do it backwards to uninstall.
You can also temporally disable mod for testing or whatever purpose by typing "set hz1by1reloadfixed to 0" in console and re-enable it by setting it back to 1.
This mod is basically one simple script and thus pretty compatible with any other mods, however I suspect there may be issues with some mods, such as:
Mods that disable/enable movement controls through NVSE DisableControl/EnableControl function, I don't know or use any but still if you MANAGE TO RELOAD !!!affected!!! guns while your movement controls being disabled by such mod BUT YOURE STILL SOMEHOW MOVING OR DOING ANYTHING by pressing keys bound to such controls (e.g. WASD) then your movement controls will be re-enabled in next frame. Thats some rare case, eh?
Mods that detect attack animation and do something based on that fact, e.g. MAYBE mods that fake gun recoil by moving your camera up, however its very unlikely, for example Immersive Recoil reported to work just fine.
Animation replacers, unlikely but possible if they change existing reload/attack animations into completely different animation, e.g. changing pump action shotgun reload to SVD reload or something.
I did some excessive testing and have not found issues with mod itself, however due to natural glitcheness of vanilla reload animation there is still issues/bugs left out that I have not found reliable or simple enough way to fix with script:
In first person if you shot your gun unaimed shortly after you reloaded it then first shot looks like you firing it in some wrong direction, however bullets will still come where your crosshair is. Vanilla bug, haven't found good enough way to fix it.
In first person still in some rare cases hand grips gets messed up and it looks like you holding your gun in some weird way. Vanilla bug, switching to another gun seems to fix it.
In third person in some rare cases your hands will miss fingers, holstering gun and moving seems to fix it. This is pretty hard to reproduce but looks like in vanilla it leads to similar bug when your hands gets glitched out and aka BIG HANDS.
This mod does all it do by one small script that basically performs two simple checks per frame, it checks if you reloading with specific reload animation AND when you stop reloading with that animation, and when it detects second event it fixes movement glitches in rather hacky but simple and reliable way.
If you're in 1st person mode and moving, then all your movement controls (WASD or others) being disabled for 1 frame and then re-enabled back, this resets floaty gun animation back to normal animation since you basically stop for a brief moment, however since you keep your buttons pressed and it happens so fast you won't be able to notice it unless you're playing with very low framerate and even then its barely noticeable. If you are playing with normal framerates there won't be any stutter or anything, and it only happens once per reload.
In third person script additionally forces player model to play fake attack animation corresponding to gun type, effectively faking cocking trigger/moving pump/lever animation since there will not be shell casing or fire effects and recoil is barely noticeable the way gun is held at the moment.
Anyway, any fixes only apply when you are moving and finished reload i.e. in vanilla your guns would glitch out anyway, if you are standing still you will still play normal reload finish animation in third person and no controls will be disabled so its a win-win situation.
There also is failsafe so even if you somehow manage to disable controls while standing still like being super lucky with timing while playing on very low fps they will still be re-enabled next time you start to move, you won't even notice it.