Hi.
I'm trying to copy off an old baby morph script (don't judge me). I did it, but for some reason, the fake torso is not welding to the real torso (I think).
Can someone please tell me what I missed?
My script:
storage = game:GetService("ReplicatedStorage") storage.Events.PlayerToBaby.OnServerEvent:connect(function(player) print("Request received.") local char = player.Character -- Get character -- Head mesh size local mesh = char.Head:FindFirstChild("Mesh") if mesh then mesh.Scale = Vector3.new(1, 1, 1) end -- Torso management local torso = char.Torso torso.Transparency = 1 torso.CanCollide = false -- Existing FakeTorso destruction local fakeTorso = char:FindFirstChild("FakeTorso") if fakeTorso then fakeTorso:Destroy() end -- New FakeTorso local body = Instance.new("Part", char) body.BrickColor = BrickColor.new(1) body.Position = torso.Position body.Name = "FakeTorso" body.FormFactor = Enum.FormFactor.Symmetric body.Size = Vector3.new(1, 1, 1) -- Welds local weld1 = Instance.new("Weld", torso) weld1.Part0 = weld1.Parent weld1.Part1 = char.Head weld1.C1 = CFrame.new(0, 0.25, 0) local weld2 = Instance.new("Weld", torso) weld2.Part0 = weld1.Parent weld2.Part1 = char.Head weld2.C1 = CFrame.new(0, -0.8, 0) -- FakeTorso mesh local bodyMesh = Instance.new("SpecialMesh", body) bodyMesh.Scale = Vector3.new(1.2, 1.5, 1.2) -- Remove legs and make arms invisible (so the baby can hold tools) for _, each in ipairs(char:GetChildren()) do if each:IsA("BasePart") and each.Size == Vector3.new(1,2,1) then if each.Name == "Right Leg" then each:Destroy() elseif each.Name == "Left Leg" then each:Destroy() else each.Transparency = 1 end end end -- Notification for debugging purposes print(player.Name.." has been successfully babified.") end)
Old baby script:
debounce=false function onTouched(hit) if hit.Parent ~= nil then if (hit.Parent:findFirstChild("Humanoid") == nil) then return end if (hit.Parent:findFirstChild("IsaMorph") ~= nil) then return end local human = hit.Parent:findFirstChild("Humanoid") local player = game.Players:GetPlayerFromCharacter(hit.Parent) local char = human.Parent if (human ~= nil) and debounce == false then debounce = true if char:findFirstChild("Infant") == nil then local mesh = char.Head:findFirstChild("Mesh") mesh.Scale = Vector3.new(1, 1, 1) local torso = char.Torso torso.Transparency = 1 torso.CanCollide = false if char:findFirstChild("FakeTorso") ~= nil then char:findFirstChild("FakeTorso"):remove() end local body = Instance.new("Part") body.BrickColor = BrickColor.new(1) body.Parent = char body.Position = torso.Position body.Name = "FakeTorso" body.formFactor = "Symmetric" body.Size = Vector3.new(1,1,1) local w1 = Instance.new("Weld") w1.Parent = torso w1.Part0 = w1.Parent w1.Part1 = body w1.C1 = CFrame.new(0, 0.25, 0) local w2 = Instance.new("Weld") w2.Parent = torso w2.Part0 = w1.Parent w2.Part1 = char.Head w2.C1 = CFrame.new(0, -0.8, 0) local bodymesh = Instance.new("SpecialMesh") bodymesh.Scale = Vector3.new(1.2, 1.5, 1.2) bodymesh.Parent = body local rightleg = char:findFirstChild("Right Leg") if rightleg~= nil then rightleg:remove() end local leftleg = char:findFirstChild("Left Leg") if leftleg ~= nil then leftleg:remove() end local marker = Instance.new("StringValue") marker.Parent = char marker.Name = "IsaMorph" characterparts = char:getChildren() for i=1,#characterparts do if characterparts[i].className == "Part" then characterparts[i].Locked = false end if characterparts[i].className == "Hat" then characterparts[i].Handle.Locked = false end end end end debounce = false end print ("scriptcomplete") end script.Parent.Touched:connect(onTouched)
R15 does not have a torso, use UpperTorso