I suggest implementing a debounce mechanism to prevent multiple cloning of the tree when the BasePart.Touched event is triggered multiple times. For a more comprehensive understanding of debounces, I recommend referring to this informative article.
I added debounce for you and simplified/optimized (idk) your script, Hopefully this will help you.
Open me
local tree1 = game.ServerStorage.Trees["Tree 1"]
local log1 = game.ServerStorage.Logs["Tree Log 1 Folder"]["Tree Log 1"]
local db = false
script.Parent.Touched:Connect(function(hit)
if db or not hit:IsA("Model") or hit.Name ~= "Tree 1" then
return
end
db = true
hit.Anchored = false
task.spawn(function()
for transparency = 0.1, 1, 0.1 do
task.wait(0.1)
hit.Transparency = transparency
end
hit:Destroy()
log1:Clone().Parent = workspace
task.wait(23)
tree1:Clone().Parent = workspace
db = false
end)
end)