Solved. Solution was the following,
wait(10)
do
local Dictionary = {}
print("filling dictionary")
for i=1, 1500000 do
Dictionary[tostring(i)] = {math.random(),math.random(),math.random(),math.random(),math.random()}
end
setmetatable(Dictionary,{__mode = "kv"}) -- Sets the entire table as a weak table, allowing garbage collection of the table to be possible
end
print("done")
Thanks to this post for the information I needed, setmetatable by itself didn’t work, I waited 10 minutes to be sure and it did not. Wrapping it in a do end made the table get GCed much faster