Check if model is not in the space or intertwining with another model

Something like this may work (I marked where some code would run if an overlap occured with the warn())

for _, Model in ipairs(TREES) do
    local Params = OverlapParams.new()
    Params.FilterDescendantsInstances = {Model}
    Params.FilterType = Enum.RaycastFilterType.Exclude
    for _, Part in ipairs(Model:GetChildren()) do -- edit: Made it 'do', not 'end'
        if #workspace:GetPartsInPart(Part, Params) > 0 then
            warn("OVERLAP")
        end
    end
end