# table.clone is misleading

You might think from the builtin table API that it will just clone all the contents and you'll be on your merry way. But unbeknownst to many developers, is that it only does a shallow copy. Meaning that it may as well just be a reference to the original table.

If you want to clone a table in a way that guarantees it will no longer be associated with the original table, here's a simple function you can use:

```lua
local function CloneTable(SrcTable)
    local DestTable = {}
    for Key, Value in SrcTable do
        if typeof(Value) == "table" then
            Value = Utility.CloneTable(Value)
        end
        DestTable[Key] = Value
    end
    return DestTable
end
```
