So I have a feeling this is an engine bug, but I am not allowed to post bug reports and this could just be me not fully understanding some underlying aspect of tables. With that out of the way here is the problem:
I was working on boss attack for my current project which involved having a grid of parts. I decided to create a nested array to do this([x][y]).
When running the code I found an odd bug where when looping over the array with a nested for loop, any part not contained on [1][n] was unable to be manipulated by code within the second for loop.
I wrote up a basic script in a new baseplate place to test this as well:
local t = table.create(10, table.create(10, 0))
for a, b in ipairs(t) do
for c, d in ipairs(b) do
local p = Instance.new("Part")
p.Anchored = true
p.Position = Vector3.new(a*10, 10, c*10)
p.Parent = workspace
t[a][c] = p
end
end
for a, b in ipairs(t) do
for c, d in ipairs(b) do
d.Position = Vector3.new(d.Position.X, 1, d.Position.Z)
print("test")
end
end
Running this results in this arrangement of parts in the workspace
and with “test (x100)” being correctly displayed in the output.
Modifying Position in this is just for a clear visual, this seems to encompass anything and everything that involves modifying the properties of the Part, including functions that would change a Part’s properties, such as SetAttribute and Destroy.