Network.Instantiate a non-prefab?

I’m procedurally generating some spaceships which the players control. How can I send these objects over the network as Network.Instantiate keeps saying I have to spawn a prefab assigned within the editor.

The way Network.Instantiate works, is that it sends the identifier of the prefab to all the clients, and not the prefab itself. So this means that the prefab must exist in all the clients, and not just on the server.

Hence, you are only able to instantiate prefabs with Network.Instantiate, you cannot instantiate procedurally generated objects.

Read about it in the documentation:

And read here about alternatives to instantiate a non-prefab: Network.Instantiate a Non-prefab - Questions & Answers - Unity Discussions

And here: