Scene objects on multiplayer networking

I am using Unity 5.6.0, and I’m working on a multiplayer game over a local network.
I have been testing my own localdiscovery and network manager without the standard hud with good results. So I think I understand pretty well how they work. I’ve also followed the networking multiplayer tutorial from unity website.
My concern is about scene game objects. I have a big mess with them.
My scenes are made of pieces of terrain that can be destroyed by the player object. Each of these pieces of terrain is a different prefab.
At the beginning of the scene, level data is red from database and the corresponding prefabs are instantiated. But: should this process be performed on every client, or should the terrain be created on the server and spawned to the clients?
I now that the spawn procedure is required for objects like the players, but should I follow the same criteria with every object that could be created/destroyed dynamically?
Within the scene, there will be also some items that can be “caught” and used by the players. Again, which criteria should I use for them: client creation or spawning from server?

Sorry for the long question and thanks in advance for your help.

I would say Server, because i think its bad if one player have aleady destroyed a piece and the other does have it undestroyed. :slight_smile: