Here is a script which morphs the character. I use it in my game.
local myMorphCharacter = nil -- DO NOT MAKE NIL, SET THIS TO YOUR CHARACTER
function morph(player, morphName)
local newCharacter = game.ReplicatedStorage.Characters:FindFirstChild(morphName):Clone()
newCharacter.Name = player.Name
newCharacter.HumanoidRootPart.CFrame = player.Character.HumanoidRootPart.CFrame
newCharacter.Parent = workspace
player.Character = newCharacter
game.ReplicatedStorage.Camera:FireClient(player)
end
game.Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(character)
morph(player, myMorphCharacter)
end)
end)
Note: The Camera event fired in the function above, puts the camera in the right position as when you morph, it screws up the camera for the player.
I will edit this for random player spawning.