[TF2] The TF birthday beach ball often turns invisible
On various angles, and most often when pushed around using weapons, the TF birthday beach ball physics toy (ie. "models/props_gameplay/ball001.mdl") tends to render invisible for split seconds at a time. Unsure if 100% related but disabling jigglebones using the cl_jiggle_bone_framerate_cutoff 0 cvar seems to completely mitigate this.
To reproduce, set tf_birthday to 1 (if the holiday is not already enabled globally), create a listen server (i used ctf_2fort for this example as it gave consistent results, might work better (or worse) on other maps), join blu team and observe what happens to the ball when pushed around before and after disabling jigglebones.
Before and after disabling jigglebones (the ball is lagging because of my high ping but that's irrelevant): https://user-images.githubusercontent.com/13336890/186264013-798ad6ed-6e06-4d0e-a5ac-10b8d7f13f5e.mp4
The Ball-Kicking Boots' football physics toy (ie. "models/player/items/scout/soccer_ball.mdl") does not have this issue.
System information if necessary: https://gist.github.com/brokenphilip/23ee440d0c516962a0c9f38bbc4b08f6
I was curious about this bug, so I decided to look into it a little bit and here's what I discovered: Both balls use the exact same entity, spawned the exact same way, the only difference is the model itself. and aside from the obvious visual difference in the ball models, what I noticed is that the beach ball has a jigglebone, seemingly to make it kinda wobble when you hit it, if HLMV is accurate.
So the fact that the jigglebone cvar fixes it does not seem to be a coincidence, something about the jigglebone is causing the model to go invisible.
Additionally, we can verify that it is entirely a visual glitch, as messing around with the ball with vcollide_wireframe 1 shows that it is still bouncing around correctly, its just invisible.
As for why this happens... I'm not sure, it seems to even go invisible if you shoot around the ball, even if none of your bullets come into contact with the ball, as if trying to compute if it should even apply any physics to it is enough to break it.
It seems like someone has uploaded an SFM model that fixes this issue, and the comment references that it's because the model is set up for jigglebones but is missing jigglebone definitions (~~I do not yet know what this means~~ the addition of a single default bone for the ball instead of ONLY having a 'jiggle' bone causes it to function correctly; that is, jigglebones need a reference bone to jiggle from, and in this case that bone is missing and only the jiggle bone itself exists). https://steamcommunity.com/sharedfiles/filedetails/?id=2589819955