Having Trouble with Mirror trying to get TargetRpc to work

I have a game object that has become the player object when switching scenes. I want each player to have a list of players with some data show up for themselves. To do this I want to instantiate a local game object, but the amount of this object is variable depending on the number of players in the game. My solution:

NetworkManager makes this set of calls when finishing changing scenes:

foreach(NetworkGamePlayer player in GamePlayers)

Then the player objects each have the following methods:

    public void CmdSpawnPlayerTabs()

    public void TargetSpawnPlayerTabs()
        foreach(NetworkGamePlayer player in Room.GamePlayers)
            PlayerScrollDataScript listPrefab = Instantiate(playerListPrefab);

            //This populates the gameobject with necessary data
            listPrefab.SetData(player.RetName(), player.RetIsWinning(), player.RetVP(),
                player.RetCurrentResourceCount(), player.RetCurrentDevCardCount(),

            listPrefab.gameObject.transform.parent = scrollRect.transform;

This seems to still only work for the host and the other players do not get their list populated. I also get an error saying that the player objects don’t have local authority, but the call should be made to the player object that has authority over itself unless I am missing something here.

Let me know if there is some other part of my code that is relevant to this that I should post as well.
Thank you for any help.

You should ask this question in the Mirror discord, they will be much better help than UnityAnswers.

You can pass a NetworkConnection as parameter to the target rpc, and it will target that connection, you can then loop over all connections and call the target rpc for each connection.

If the first parameter is any other type, then the owner client of the object with the script containing your TargetRpc will receive the message.

Server always has authority over all objects