Objects have different physics speeds with high threadcount

When you say “physics of casings” do you mean that the casings are unanchored and use ROBLOX physics, or are you still manually setting their CFrame every heartbeat/renderstep?

Do you have non-rendering-dependent code that you run every frame in RenderStepped instead of Heartbeat? It could help improve performance if you moved that to Heartbeat instead.

Do you have any heartbeat/renderstepped code that assumes fixed time increments instead of using the delta argument or actual passed time?

Additionally, since this seems related to performance:

Finally, when posting in Bugs and Exploit Reports, please make sure to post in a (correct) subcategory, this is helpful for staff members. In this case you should post it in Bugs and Exploit Reports > Client Bugs. You can change the category of your post by editing the title.