--// LOCALSCRIPT
CharacterAddedEvent.OnClientEvent:Connect(function(char)
print("Recieved") -- || This just never gets printed
game.Players:WaitForChild(char.Name).CharacterAppearanceLoaded:Wait()
CreateViewportFrameOfPlayer(char, char.Humanoid)
end)
Probably you placed the local script in CharacterScripts, on join and when the server fires the Remote there is a chance that the local script is not already created or ran, so the Remote listener is not… well is not listening yet.
If you place the local script in PlayerScripts the Remote should work
Btw this line has big chances of freezing the script there. Cause you could be waiting for an event that already fired (if the appearance already loaded), and it will never continue cause it’ll keep waiting for something thats not gonna happen again
Would be better if you check if HasAppearanceLoaded. If its loaded continue, if its not wait for the event