In my game the player’s health increases when they get more of a certain stat but the custom health amount only works after resetting your character once after joining the game.
Guessing that this connection is made after the first CharacterAppearanceLoaded event fires, so you could get around this by creating a named function then calling it upon first character appearance loaded, and then after the appearance loaded.
local function characterAppearanceLoaded(character)
-- do stuff with the character
end
if player:HasAppearanceLoaded() then
characterAppearanceLoaded(player.Character)
end
player.CharacterAppearanceLoaded:Connect(characterAppearanceLoaded)