Different color for players in multiplayer

I am trying to have different color for players in multiplayer. In lobby script, I sent signal with name of player to gamestate.gd. There I assign it to the red or blue array. That part works fine. In the player script, I change albedo color based in which array the name can be found. It seems it gets executed for all remote peers but not locally on each client.

lobby.gd
extends Control
signal red(name)
signal blue(name)

func refresh_lobby():


func _on_team_red_button_pressed():
	red.emit(gamestate.get_player_name())
	$Players/TeamRedButton.disabled=true
	refresh_lobby()
	pass

	

func _on_team_blue_button_pressed():
	blue.emit(gamestate.get_player_name())
	$Players/TeamBlueButton.disabled=true
	refresh_lobby()
	pass
gamestate.gd
extends Node
var playercount=0
var goalcount_blue_team =0
var goalcount_red_team =0
var team_red=Array()
var team_blue=Array()



# Default game server port. Can be any number between 1024 and 49151.
# Not on the list of registered or common ports as of November 2020:
# https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
const DEFAULT_PORT = 10567

# Max number of players.
const MAX_PEERS = 12

var peer = null

# Name for my player.
var player_name = "The Warrior"

# Names for remote players in id:name format.
var players = {}
var players_ready = []

# Signals to let lobby GUI know what's going on.
signal player_list_changed()
signal connection_failed()
signal connection_succeeded()
signal game_ended()
signal game_error(what)

func _player_connected(id):
	# Registration of a client beings here, tell the connected player that we are here.
	register_player.rpc_id(id, player_name)

@rpc("any_peer","call_local")
func register_player(new_player_name):
	var id = multiplayer.get_remote_sender_id()

	players[id] = new_player_name
	player_list_changed.emit()
	
	
	
func callRed(n):
	
	add_player_to_teamRed.rpc(str(n))
	
@rpc("any_peer","call_local")
func add_player_to_teamRed(n):
	team_red.append(n)
	print(team_red)
	player_list_changed.emit()
	pass
	
	
func callBlue(n):
	add_player_to_teamBlue.rpc(str(n))
	
@rpc("any_peer","call_local")
func add_player_to_teamBlue(n):
	team_blue.append(n)
	print(team_blue)
	player_list_changed.emit()
	pass


@rpc("call_local")
func load_world():
	# Change scene.
	var world = load("res://world.tscn").instantiate()
	get_tree().get_root().add_child(world)
	get_tree().get_root().get_node("Lobby").hide()

	get_tree().set_pause(false) # Unpause and unleash the game!


func host_game(new_player_name):
	player_name = new_player_name
	peer = ENetMultiplayerPeer.new()
	peer.create_server(DEFAULT_PORT, MAX_PEERS)
	multiplayer.set_multiplayer_peer(peer)


func join_game(ip, new_player_name):
	player_name = new_player_name
	peer = ENetMultiplayerPeer.new()
	peer.create_client(ip, DEFAULT_PORT)
	multiplayer.set_multiplayer_peer(peer)


func get_player_list():
	return players.values()


func get_player_name():
	return player_name


func begin_game():

	load_world.rpc()
	
	var world = get_tree().get_root().get_node("World")
	var player_scene = load("res://powerwheelchair.tscn")

	# Create a dictionary with peer id and respective spawn points, could be improved by randomizing.
	var spawn_points = {}
	spawn_points[1] = 0 # Server in spawn point 0.
	var spawn_point_idx = 1
	for p in players:
		spawn_points[p] = spawn_point_idx
		spawn_point_idx += 1

	for p_id in spawn_points:

		var player = player_scene.instantiate()

		player.name = str(p_id)
		player.set_player_name(player_name if p_id == multiplayer.get_unique_id() else players[p_id])
		world.get_node("Players").add_child(player)



func _ready():
	$/root/Lobby.red.connect(callRed)
	$/root/Lobby.blue.connect(callBlue)
player.gd
func _enter_tree():
	set_multiplayer_authority(str(name).to_int())

	await get_tree().process_frame

	setcol.rpc()



@rpc("any_peer","call_local","reliable")
func setcol():

	for i in gamestate.players.keys():

		var framepath:String = str("/root/World/Players/")+ str(i)+str("/powerwheelchairmodel/frame")
		var player_mesh= get_node(framepath)
		var player_mes=player_mesh.duplicate()


		
		if gamestate.team_red.has(gamestate.players.get(i)):

			player_mes.material_override.albedo_color = player_colors[0]
		
		elif gamestate.team_blue.has(gamestate.players.get(i)):

			player_mes.material_override.albedo_color = player_colors[1]
		else: return