Issues with sending table by remote event

I am creating a drawing system, and trying to replicate the user’s drawing which is done in a UI to a physical board, but when I send a table that is the UI canvas children (so I can put onto the board) it will only return nil… not sure what is happening, I am sending it properly like so


BoardUpdaterEvent.OnServerEvent:Connect(function(player, canvasNewChildren)

end)

and

UpdateBoardEvent:FireServer(canvasObjects)

and no, nothing on client is nil I have checked before sending

You can’t send instances that aren’t replicated through remote events. You’ll have to send an event to create the instance from the server directly. If you use Instance.new() or clone or anything to create a new instance on the client, the server can’t see it, nor can they be sent through remote events (apropos GetChildren())

To add onto this, you’re probably better off giving a client NetworkOwnership of their drawn parts within a drawing game under the right circumstances. That immediate feedback is key to a good user experience as well as saving a bunch of remote requests.

That’s true, you could spawn a bunch of parts on the server and give each one the proper networkownership to the player so they can use them, and it can request more if needed, but will have a nice cache of parts to use (much like PartCache).

I can’t use this because I have UI but, I understand what you guys mean with the can’t replicated if server can’t see. How can I work around this?