Lacking Network.Instantiate Knowledge

I have a plane with a gun that shoots a bullet by instantiating a bullet prefab with a bullet physics/damage application script attached. I need this to work over the server, so should I use network.instantiate for it?

you don’t need instantiate here, just use RPC

Answer #1: Yes. You absolutely should use Network.Instantiate() from the server.

Looking forward, when your clients fire their weapons, they should use an RPC (R emote P rocedure C all, pretty much a public facing function) which talks to the server and tells it to instantiate a bullet at the muzzle’s position and rotation.

You’ll be getting a lot of milage out of RPCs, too; when an instantiated object moves, the server should calculate the move, and send an RPC to each of the clients to tell them to perform the move. That’s a different, but related topic.

Other cool gameplay events? RPCs also.

Another thing to know: When your bullet is done, make sure you Network.Destroy() the object so that all your clients see it destroyed, again on the server.