Do you have a ton of complicated meshparts/unionoperations? If so I can provide a script that will convert all of them to RenderFidelity = Automatic which boosted the performance on my game by a ton.
However StreamingEnabled caused me a lot of errors.
1.) Chunks did not load fast enough while in an aircraft or high speed fire truck, causing empty chunks.
2.) Because of Chunks not loading fast enough it caused destination airports to not load and for the Pilot to land in an empty chunk.
I would love to use StreamingEnabled, it’s just not feasible yet.
If you truly need everything loaded in because StreamingEnabled is not sufficient, then I would create a ModuleScript that you would run on the client. Based off the client’s average FPS (retrieving from Workspace:GetRealPhysicsFPS()), you can determine what parts to load in, what is whitelisted/blacklisted, etc. It is very time-consuming and not the most efficient way, but it will likely guarantee massive lag reduction on other devices.
EDIT: Try whitelisting, parts, then unions, then decals. If you need to require a part, fire a refresher event from the server.