Thanks for the testing guys.
I have reproduced and fixed 3, 5, and 8 for the next version. I can't seem to reproduce 1 or 6, but I noticed I forgot to add a contingency for Armor::onRemove which is most likely the cause. 7 is (probably) caused by minigameCanDamage dogstuff, I believe I have successfully bypassed this in the next version. For 9, judging by some of the colors it looks like textures haven't been downloaded re-read what you said, weird
I'm not sure if there's much I can do about 4. It seems to be an issue with how bots are spawned/mounted at the engine level. The bot seems to appear at the location of the mount facing north for a couple frames before actually mounting. Currently the ADS shield is a separate datablock entirely, so it has to be remounted when switching between the up and ADS position, I can probably find a better way to do that so the bot doesn't have to be remounted for switching positions, but the issue will still persist when equipping/dequipping the shield and will be more noticeable on higher latency. Will try to find a visual workaround.
To clarify on how the shield works: it uses a bot's hitbox to block bullets rather than math, a problem with this is that if you look too far up, your shield will clip inside of your player hitbox, meaning your upper body can be shot even if it's bent under the shield as the player hitbox only rotates on a single axis. I might make the shield hitbox wider to compensate for the fact that the default player hitbox is comically wider than it's actual visual model though lol.