So my main goal is to load in a custom character rig in StarterPlayer and to keep the Body Colors value from the original players character meaning the old body colors will go into the starter character. I want this to replicate with the server so this is what I have done so far.
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
local appearanceModel = game.Players:GetCharacterAppearanceAsync(player.UserId)
appearanceModel["Body Colors"]:Clone().Parent = player.Character
end)
Note: the custom player is in game.StarterPlayer and its named "StarterCharacter"

2 comments
why not edit the player with a playerAdded event?
having a startercharacter makes it seem more simpiler and editing the character entirely from a script was deprecated I think