I have created a few morphs for my game. When I morph my character to something else, this is how I do it:
local function removeAccessories(char) for i,v in pairs(char:GetDescendants()) do if v:IsA("Accessory") or v:IsA("Hat") or v:IsA("Decal") or v:IsA("ShirtGraphic") then v:Destroy() end end end local function removeBody(char) for i,v in pairs(char:GetDescendants()) do if v:IsA("BasePart") or v:IsA("UnionOperation") or v:IsA("MeshPart") then v.Transparency = 1 v.CanCollide = false end end end local function weld(a, b) local w = Instance.new("ManualWeld", a) w.Name = a.Name.."_Weld_"..b.Name w.C0 = a.CFrame:inverse() * b.CFrame w.Part0 = a w.Part1 = b end game.ReplicatedStorage.MorphEvent.OnServerEvent:Connect(function(plr, morph) local clone = morph:Clone() local char = plr.Character removeBody(char) removeAccessories(char) clone.Parent = char local pos = clone.Torso.Position clone.Torso.CFrame = char.Torso.CFrame - Vector3.new(0, (char.Torso.Position.Y - pos.Y) * 2, 0) weld(char.Torso, clone.Torso) char.Torso.CFrame = workspace.TeleportPart.CFrame * CFrame.new(Vector3.new(0, 5, 0)) end)
But with certain morphs, I end up like this: https://gyazo.com/f8409ed32cb76401082f782d7b79ce60
(I'm not supposed to be floating)
I also can't move around. I did some investigating, and it turned out that in this morph, my legs aren't touching the ground for some reason.
https://gyazo.com/866295c43f52b776ff1c9e45570aa175
And this is why I can't move. I don't know how to fix this. Please help!
Check for anchored parts. If the morph welds together, any anchored parts would prevent it from moving.
Edit: Humanoid parts are required to have a functioning morph: - Humanoid - Humanoid Root Part - Torso - Head