Client-Side “RenderStorage": Alternative to ReplicatedStorage
I’ve been working on a large, detailed open-world map filled with vegetation, interiors, and props. Currently it is impossible to have such a map work on any mobile devices, alienating a large potential playerbase.
I attempted to build a manual rendering system using ReplicatedStorage, but instances stored there still:
- Consume client memory
- Appear in the Shift+F4 part count
- Exist on the client even when not in Workspace
This defeats the purpose of manually controlling what should and shouldn’t be loaded.
–
Right now, we effectively have two options:
StreamingEnabled
- Helps reduce memory usage
- Limits render distance for all objects
- Removes fine-grained control over what loads and when
- Objects still take up part count
For large open-world games, such as my project, Tasmarina City, this can negatively impact atmosphere and perceived world scale.
ServerStorage
- Avoids client memory usage
- Isnt designed for client-side rendering services
- Doesn’t work well with 60 player servers, and doesn’t seem to be very optimized
In summary, there’s no proper way to unload and load props or other smaller high detail objects without tanking server preformance, or killing render distance. (which ruins sightlines, views, and high speed driving as a whole)
–
My solution? A new “service” under properties called RenderStorage, and maybe even add a RenderService to mirror ServerStorage and ServerScriptService.
We need a new space that:
- Does not replicate instances to the client until explicitly moved (with scripts)
- Does not consume client memory
- Allows developers to manually move instances into Workspace (with scripts)
- Enables custom LOD and render-distance systems (per folder, type, tag, etc.)
- Supports mobile devices, even on large (but optimized) maps
- Manual rendering system that can work with and manage hundereds of thousands of instances within one place file
- Works alongside StreamingEnabled, not as a replacement!
This would allow developers to build advanced rendering systems similar to Unity, or Unreal Engine. We know Roblox is seeming to pivot into a more “realistic” art style, but this isnt really possible due to the lack of good rendering systems that other game engines have.
Why RenderStorage is Essential
Large open world maps, especially those such as mine that are focused on driving, are pretty much impossible to make. Yes, you can split it into multiple places, but that creates a closed off feeling, and is not a real alternative.
Right now, the tradeoff is:
- Keep environmental detail and hurt performance
or
- Use StreamingEnabled and sacrifice precision control
For developers building immersive, detailed maps, just like me, that’s a MAJOR limitation.
Roblox Studio is very acessible, but I may be forced to move off-platform to develop the type of game I am trying to make.
Allowing more control for how developers render assets within their games will do nothing but help creativity, drive passion, and bring “AAA feeling” maps to the platform.
I’m open to any questions, comments, or concerns that anyone may have
If any high profile developers / anyone working at roblox wants to implement this feature, feel free to contact me and I will try to provide more detail and background
NOTE: This is a heavily changed revision to my previous edit. I hope this is more clear as I’ve dug into the issue more and have pointed out exactly what I need!











