How to clone a client part into Workspace if the local player owns a badge?

This isn’t working for me, and I’m not sure what to do. It’s a local script in starter player scripts and it gives no errors, so I’m kinda lost here.

players.PlayerAdded:Connect(function(player)
		if bs:UserHasBadgeAsync(player.UserId,badgeId) then
				game.ReplicatedStorage.Teleporter:Clone().Parent = game.Workspace
				game.ReplicatedStorage["Teleporter Sign"]:Clone().Parent = game.Workspace	
	end
end)


BadgeService:UserHasBadgeAsync can only be ran from the server.

Well that explains it, now I’m lost though.
I know remote events are a thing, but I’d probably have to go back and forth through the server and the client to pull this off?

What I personally would do is find a script with game.Players.PlayerAdded already in it and simply add a RemoteEvent:FireClient() inside of it then recieve it inside of your local script and do what you were going to originally do

well, you could use RemoteEvent's

-- server
players.PlayerAdded:Connect(function(player)
   if bs:UserHadBadgeAsync(player.UserId, badgeId) then
     replicatedstorage.TeleporterEvent:FireClient()
   end
end)
-- client
replicatedstorage.TeleporterEvent.OnClientEvent:Connect(function()
   replicatedstorage.Teleporter:Clone().Parent = game.Workspace
   game.ReplicatedStorage["Teleporter Sign"]:Clone().Parent = game.Workspace
end)