- What do you want to achieve? Keep it simple and clear!
I have a medkit tool and I made it clone the tool model to simulate “dropping” said medkit.

- What is the issue? Include screenshots / videos if possible!
Only after the first use it works as intended, but every use after that increases the number of clones produced by 1.

(Use one, 1 clone | Use two, 2 clones | Use three, 3 clones | etc.)
- What solutions have you tried so far? Did you look for solutions on the Developer Hub?
I’ve tried searching it up but I don’t believe any helped me with this specifically, although I could be wrong.
Yeah, I know that this script could be improved.
remote.OnServerEvent:Connect(function(plr, func)
local char = plr.Character or plr.CharacterAdded:Wait()
if func == "lid" then
local lid = handle:WaitForChild("Lid")
if lid then
local lidClone = lid:Clone()
lidClone.Parent = game.Workspace
lidClone.CFrame = lid.CFrame
editProperties(lidClone, 0, true, true)
editProperties(lid, 1, false, true)
for i, v in pairs(lidClone:GetDescendants()) do
if v:IsA("CFrameValue") then
v:Destroy()
elseif v:IsA("Weld") then
v:Destroy()
end
end
wait()
lidClone.Velocity = Vector3.new(25, 32.5, 15)
debris:AddItem(lidClone, 5)
end
elseif func == "syringe" then
local syringe = serverStorage:WaitForChild("Player"):FindFirstChild("Syringe")
if syringe then
local syringeClone = syringe:Clone()
syringeClone.Parent = game.Workspace
local weld = Instance.new("Weld")
weld.Name = "syringeWeld"
weld.Part0 = syringeClone
weld.Part1 = char:WaitForChild("Left Arm")
weld.C0 = weld.Part0.LeftGripAttachment.CFrame
weld.C1 = weld.Part1.LeftGripAttachment.CFrame
weld.Parent = syringeClone
end
elseif func == "heal" then
local human = char:WaitForChild("Humanoid")
human.Health = human.Health + healAmount.Value
elseif func == "drop" then
local containerClone = handle:Clone()
containerClone.Parent = game.Workspace
containerClone:FindFirstChild("Lid"):Destroy()
editProperties(handle, 1, false, false)
editProperties(containerClone, 0, true, false)
local syringeClone = game.Workspace:WaitForChild("Syringe")
if syringeClone then
syringeClone:FindFirstChild("syringeWeld"):Destroy()
editProperties(syringeClone, 0, true, false)
debris:AddItem(syringeClone, 7.5)
end
debris:AddItem(containerClone, 7.5)
elseif func == "reset" then
editProperties(handle, 0, false, false)
end
end)
I can provide the full script, although I think this is the most important part.
As for the remote event, it fires to the server whenever the medkit animation reaches a certain keyframe.

