I think you’re missing the point of my responses and therefore not seeing it as a valid way of doing this, even though this is a strategy I’ve known a few top developers to implement.
It is still possible to have the client place something in workspace after hand-replicating it from the server from within ServerStorage. The crux of that response is that you’re having the server manually and directly replicate an instance from its storage to the client and then firing it with a reference to the instance that it can actually access and thus place as it wants.
Eventually at some point the server is going to be sending the client something, whether you have the server send pure data and make the client construct the object or you have premade assets that you replicate yourself. In the former case however, how exactly do you intend to go about “creating” the object? Why not just have it already made? You can save yourself quite a bit of network footprint by just sending references and keep your traffic free to send other more critical, larger data.
There’s an aversion I’m sensing here to apply or even try proposed solutions; you’re using the phrase “put instances from server to client directly in the Workspace” as a hand-wave dismissal for ServerStorage solutions, for whatever reason? You can still do that using the method I proposed; you can’t avoid following due steps to get this done.
It’s a valid solution but imho not the best one; don’t set yourself up for failure by having the client instance everything when you can just replicate precreated objects from the server to the client which it can then cache and interact with as needed. Goes for you, or anyone else reading this thread.
You keep volleying back responses suggesting use of ServerStorage but you aren’t seeing why it’s being suggested, so it’s important to really hit the point home. ServerStorage doesn’t replicate to anyone and gives you the ability to control that replication. If you need to replicate it to a specific player, you create a locally accessible reference to that instance and give it to the client.
EDIT: For the sake of example I’ve come up with a crude custom replication system. It is best tested by starting a local session of two or more players. After 4 seconds, check both client windows in ReplicatedStorage for the replicated asset and see that they are different and exclusive.
CustomReplicationExample.rbxl (30.8 KB)
*This is based off of Tomarty’s method of replication for Shard Seekers.
In this case though I’m putting it into a folder in ReplicatedStorage rather than back in Workspace but the same principles are still applicable.