Box only clones 1 time when player joined and not works when other players joined

hi i was trying to clone a box when player joined but it not works please help

coroutine.resume(coroutine.create(function()
			local box = script.Box:Clone()
			box.Parent = workspace.igorne
			for _,v in pairs(workspace.Boxes:GetChildren()) do
				if v.Name == "Spawn" and v:IsA("BasePart") then
					if v.Taken.Value == false then
						box:PivotTo(v.CFrame)
						box.Name = player.Name.."sBox"
						v.Taken.Value = true
					end
				end
			end
		end))

Coroutines are not what you want here. Instead, you want events.

local PLYRS: Players = game:GetService("Players")

function clone_box()
    local box = script.Box:Clone()
    box.Parent = game.Workspace.igorne
    -- some code
end

PLYRS.PlayedAdded:Connect(clone_box)