When my script adds to the terrainCoordinates array it errors, which always occurs at the same place. this is after it prints 2,10. What I really don’t understand is when I add another empty {} to the terrainCoordinates table it changes when the error occurs. Any help appreciated.
local runService = game:GetService("RunService")
local nodeSize = 10
local perlinNoiseResolution = 150
local perlinNoiseFrequency = 5 --number of hill
local perlinNoiseAmplitude = 100
local terrainCoordinates = {{Vector3.new(1,1,1)},{},} --a two dimentional array containing the 3d positions of all nodes
local function getHight(x,z)
local noiseHeight = math.noise(x/perlinNoiseResolution*perlinNoiseFrequency, z/perlinNoiseResolution*perlinNoiseFrequency)+0.5
noiseHeight = math.clamp(noiseHeight,0,1)
return noiseHeight
end
print(terrainCoordinates)
for x = 1, nodeSize do
for z = 1, nodeSize do
local part = Instance.new("Part")
part.Parent = workspace:WaitForChild("GeneratedTerrain")
part.Anchored = true
part.Size = Vector3.new(0.5,0.5,0.5)
local partHeight = getHight(x,z)
part.Position = Vector3.new(x*4,partHeight*perlinNoiseAmplitude,z*4)
terrainCoordinates[x][z] = part.Position
print(x,z)
print(terrainCoordinates)
end
end
the error is