I want a variable from a script located in the ServerScriptService to transfer to a local script by firing a remote event but for some reason the variable doesn’t get recognised.
You could alternatively pass through a cframe value to the client instead of the part (considering that’s what you’re doing), unless you’ll specifically need the player’s camera to follow the drone.
Add a task.wait(2) to your server script just to make sure that the part has time to load in on the client. If that works, you might want to use WaitForChild so that the server isn’t forced to yield any longer than it needs to be.
It’s essential to use WaitForChild here, because the RemoteEvent is almost always going to get to the client before the DroneCopy instance has replicated to the client.
In the server Script, DroneCopy:WaitForChild(“Owner”) is not necessary, when you Clone() an instance, all of its descendants are also cloned and immediately available to reference on the next line of code.