The StreamingEnabled property determines whether network streaming is enabled for the place.
This property is not scriptable, and therefore cannot be changed once the game has started. For this reason, it is advised it is set in Roblox Studio.
Since it is replicated, both client and server can access the property to determine, but not set, whether network streaming is enabled. As a result, both the code snippets below will print the same value when executed from a
Script in the same game.
-- LocalScript local isStreamingEnabled = game.Workspace.StreamingEnabled print(isStreamingEnabled)
-- Script local isStreamingEnabled = game.Workspace.StreamingEnabled print(isStreamingEnabled)
What is network streaming?
Streaming is an opt-in feature builders can enable for their places. It’ll allow places to have more
BasePart|BaseParts, faster join times, and allow more games to run on less powerful hardware. It does this by allowing games to be played whilst objects are still being downloaded, and removing objects that are no longer needed.
The downside of network streaming is it means the client can no longer rely on specific objects being available. Developers should not enable StreamingEnabled unless they understand its implications and have put processes in place to manage them. For example,
LocalScript|LocalScripts may have to use
Instance/WaitForChild in order to access parts of the game.
If an instance that has been streamed to a client leaves the client’s streamed area and later reenters properties will be re-synchronized from the server. This can result in properties and
CollectionService tags set by
LocalScripts being overwritten or removed.
- Improving Performance, tips for analyzing and improving game performance