What? Where are you getting all this stuff from?
The only drawback I understand is not choosing what’s getting streamed, I get that. I do wish StreamingEnabled had more control, but as @Enqrypted said, it’s pretty helpful as it is now. But all you keep emphasizing is this one drawback alone which in the general scope of things isn’t even that big of a drawback compared to how helpful streaming can be for performance. Okay, you don’t get to choose what’s getting streamed in or out. Just code around it, it’s not that hard. The good of streaming outweighs the bad most of the time, especially for bigger games.
Also, I’m pretty sure terrain is more optimized than BaseParts, but I could be wrong there.
Terrain and water DO increase load time and memory by a lot, but that’s what StreamingEnabled is for. If you want a benchmark, my game is currently a 4684x6220 full terrain island sitting at around 35k parts right now, with an ocean of terrain water going out by at least 100-200 studs around the island, about 5 studs deep. Before using streaming, it would take 30-40 seconds to load (and it was before we even reached that point) and would use up 1200 MB of memory. With streaming, now it takes literally 10-12 seconds to load and the memory was cut in half. FPS was increased by at least 20.
The only true “bug” I have encountered really is Atmosphere flickering. But I’m not sure if this is caused by streaming. I keep hearing that streaming is buggy but I haven’t run into anything really. The only major thing is that you’ll notice some scripts that previously worked before streaming will not work well after it is enabled, and you can just fix that by coding while thinking about the fact that things are going to get added and removed, so connect your code to the needed objects by using events like ChildAdded, .DescendantAdded, etc and disconnect events on objects streamed out using .ChildRemoved, .DescendantRemoving, etc. You also only need to do this for LocalScripts, because streaming is only happening on the clients, so the whole game will always be available on the server.
But “randomly dying?” What? And what other things? It just sounds like you’re making streaming sound way worse than it actually is. It’s not terrible at all.
@OutlookG What I have to say to you is only use streaming if your map is big and uses a good amount of terrain/water. Otherwise I think you should be fine with BaseParts if your count is <50k and the unions, meshes, and scripts are optimized.