Character becoming certain parts when touching a part

It’s kinda Important to do for cloning

so wheres the location of the part gotta be?

I recommend you to put it in server storage

but then my part disappears (30c)

I know but it’s going to be cloned into the character

What this video so you will understand how it works

the particle emitter and refresher can be removed…

i know but it’s working you can remove them if you want to

well, i put a sphere named part inside server storage, i changed up the script to remove stuff but i think i removed one too many things can you remove the refresher and particles bcs idk what to remove

oh ok 30 charactersssssssssssss

There you go I removed the particle and refresher functions

local Players = game:GetService("Players")
local TPDest = workspace.Washer
local cooldown = false
local cooldowntimer = 15 -- Change this to whatever you want the cooldown to be
local plr = game.Players.LocalPlayer or game.Players.PlayerAdded:Wait()


script.Parent.Touched:Connect(function(partTouched)
	if partTouched.Parent:FindFirstChild("Humanoid") and not cooldown then
        cooldown = true
		local Character = partTouched.Parent
		local Player = Players:GetPlayerFromCharacter(Character)
		
			Player.Character:WaitForChild("HumanoidRootPart").CFrame = TPDest.CFrame
			local char = plr.Character or plr.CharacterAdded:Wait()
			wait()
				for i,v in pairs(char:GetChildren()) do
				if v:IsA("MeshPart") or v:IsA("Part") then
					local new = game.ServerStorage.part:Clone()
					local weld = Instance.new("WeldConstraint", new)
					weld.Part0 = v
					weld.Part1 = new
					new.Parent = v
					new.Position = v.Position
					print("Done")
					end
			        if Player.Character:FindFirstChild("ForceField") then Player.Character:FindFirstChild("ForceField"):Destroy() end
			
				
			end
        wait(cooldowntimer)
        cooldown = false
	end
end)

it still doesnt work for me and i dont know why.

did you changed this to the name of your part in server storage?

I mean this

it is part though (30character)

can you show me your part? on a vid and your output too so i will see if there are any errors

my part that has the script in it and is in workspace is called Washer, and the part in server storage is called part

Any Errors In The OutPut? 30 character

nope, no errors at all. (30 cha)

I Have No Clue Why This Isn’t working, ok then lemme update this script wait a sec

Well, This One Should Work:

local Players = game:GetService("Players")
local TPDest = workspace.Washer
local cooldown = false
local cooldowntimer = 15 -- Change this to whatever you want the cooldown to be
local plr = game.Players.LocalPlayer or game.Players.PlayerAdded:Wait()
local randomPart = {game.ServerStorage.Sph, game.ServerStorage.Blox}

script.Parent.Touched:Connect(function(partTouched)
	if partTouched.Parent:FindFirstChild("Humanoid") and not cooldown then
        cooldown = true
		local Character = partTouched.Parent
		local Player = Players:GetPlayerFromCharacter(Character)
		
			Player.Character:WaitForChild("HumanoidRootPart").CFrame = TPDest.CFrame
			local char = plr.Character or plr.CharacterAdded:Wait()
			wait()
				for i,v in pairs(char:GetChildren()) do
				if v:IsA("MeshPart") or v:IsA("Part") then
				    local new = Instance.new("Part")
				    new.Shape = "Ball"
				    new.Size = Vector3.new(2.13, 2.13, 2.13)
				    new.BottomSurface = "Smooth"
				    new.TopSurface = "Smooth"
				    new.Material = "SmoothPlastic"
					local weld = Instance.new("WeldConstraint", new)
					weld.Part0 = v
					weld.Part1 = new
					new.Parent = v
					new.Position = v.Position
					print("Done")
					end
			        if Player.Character:FindFirstChild("ForceField") then Player.Character:FindFirstChild("ForceField"):Destroy() end
			end
        wait(cooldowntimer)
        cooldown = false
	end
end)