Allow us to mark parts as constant so they never unload with streaming!

As a Roblox developer it is INSANELY painful to deal with unloading parts on the client while using streaming.

Certain parts that act as interaction nodes in the game we’re working on are expected to load in once and never disappear, but it currently seems to be impossible to prevent them from unloading when our game runs on a low-end device with limited memory. For some of our game’s code, we expect these nodes to load once and never unload, so its causing us massive problems.

We attempted to work around this by moving models we wanted to make constant into the ReplicatedStorage and then had the client parent them back into the Workspace. Having learned this does nothing to stop parts from unloading, we are scrambling to figure out how to fix this quickly, and all existing solutions are very painful.

Streaming is critical for our game to run decently on mobile, as we’re pushing memory limits pretty hard with the amount of content in our game worlds. Losing out on the mobile market would be a huge blow to our launch capability. While we can definitely rework our code to compensate for streaming, its going to be very frustrating to fix given we’ve already pushed our game back multiple times.

If at all possible, could we quickly see a property added to the BasePart class that marks it as a StreamingConstant so that it is simply ignored by the streaming system and we never have to worry about the part unloading? We’re really desperate for a fast solution that won’t require us to murder ourselves in the process.

Thank you!
(cc @CorvusCoraxx)

98 Likes

Totally agree. Related:

4 Likes

100% this is a must. So many people don’t use streaming because of this, glad to see a big name requesting this maybe it’ll actually go through this time.

7 Likes

Clone them before parenting to Workspace instead. See: Streaming Prefetch API and Improvements to Part Handling

1 Like