ReplicatedStorage is a general container service for objects that are available to both the server and connected game clients. It is ideal for ModuleScript, RemoteFunction, RemoteEvent and other objects that are useful to both server-side Scripts and client-side LocalScripts.
LocalScripts do not run when parented to this service, even if they are Enabled. Similarly, Scripts do not run when parented to this service unless you change their RunContext property from its default value of Legacy.
If a ModuleScript within this service is required by any other script, it runs as normal. Such modules typically house code that is shared by the server and client. Server-side Scripts that run on their own should be parented to ServerScriptService instead. Client-side LocalScripts have various other locations where they eventually run on a Player client: StarterPlayerScripts, StarterCharacterScripts, or StarterGui.
This service behaves similarly to ServerStorage except that its contents are replicated. If you are storing assets which should not be visible on the client or have no use to the client at all, use ServerStorage instead.
Objects parented to this service are fully replicated to clients, and normal replication rules apply: any changes that are made on the client persist, but won't be replicated to the server. Client changes may be overwritten if the server does something that overwrites those changes. For instance, a Part parented to ReplicatedStorage by the server may have a blue BrickColor. A client could change this property to red locally, but this change remains only on the client. If the server changes the color to green, this change is replicated to the client.