UNET: Spawning AND moving objects!

So, i’m trying to achieve an online multiplayer building system, where prefabs have to be spawned and placed in the desired position by the players.

My issue is: I can spawn, move and place the objects with no issue on the host (and it appears to all clients), but on the client I can spawn (in the correct place initially), but not move them afterwards, it gets stuck on the initial position. The object itself has no scripts. The script I have handles the spawns/placement of the objects, is attached to the player and is the one bellow:

I’ve already searched a lot on this matter, and didn’t find any example that suits my case (most cases are simple spawns, like bullets or so), my client needs to edit the position/rotation of the prefab after it is spawned, even with ‘SpawnWithClientAuthority’ the client isn’t able to do it (only the host).

Also I’m almost sure that everything is set correctly on the editor, prefab is registered as spawnable prefab, objects have network identity/transform and are set to local player authority.

 using UnityEngine;
 using System.Collections;
 using UnityEngine.Networking;
 
 public class Crafting : NetworkBehaviour {
 
     public GameObject obj;
     private GameObject rf;
     private Vector3 objpos, objtrot;
     private bool building;
     void Update () {
         if (!isLocalPlayer) return;
         if (Input.GetKeyDown(KeyCode.Q) && !building)
         {
             CmdSpawn();
             rf.transform.Rotate(-90, 0, 0);
             building = true;
         }
 
         if (building)
         {
             objpos = new Vector3(Mathf.Round((transform.position.x + (7 * transform.right.x)) / 6) * 6, -19.95f, Mathf.Round((transform.position.z + (7 * transform.right.z)) / 6) * 6);
             rf.transform.position = objpos;
             if (Input.GetKeyDown(KeyCode.R))
             {
                 rf.transform.Rotate(0, 0, 90);
             }
             if (Input.GetKey(KeyCode.E))
             {
                 building = false;
             }
         }
     }
 
     [Command]
     void CmdSpawn()
     {
         rf = (GameObject)Instantiate(obj, new Vector3(Mathf.Round((transform.position.x + (7 * transform.right.x)) / 6) * 6, -19.95f, Mathf.Round((transform.position.z + (7 * transform.right.z)) / 6) * 6), Quaternion.identity);
         NetworkServer.SpawnWithClientAuthority(rf, connectionToClient);
     }
 }

Put the Network Transform on building Object