Here you are creating 100 references to the same table that hx points to. It’s the exact same table in memory that is being pointed to. But like mentioned above strings are copied.
Tables are passed by reference, which means when you do something like this:
local dog = {15,20,6}
local cat = dog
Both dog and cat variables point to the same table so when you change something in dog table like dog[3] = 25 then when you try to print cat[3] it will output 25 on the console.
It’s fine, we all do mistakes like that. Just know that string, number and boolean values are passed by value and tables, functions and userdatas are passed by reference.
You are encountering the so-called weak and strong reference. What you are seeing here are strong references which the variables takes “ownership” of the value from the key. Weak references will change to accord of the other variable.
Although what you did was, not a reference. It was passing values. References are frequently mentioned on tables.