Okay, I see the issue, you are setting the variable to what the value is at the start and it will not change. Here is the fixed code.
local val = script.delayy
while wait(tonumber(val.Value)) do
print("(generator): the value i see is"..val.Value)
local num = script.part
num.Value = num.Value +1
p = Instance.new("Part",workspace)
p.Size = Vector3.new(5,5,5)
p.Position = Vector3.new(-14.65, 161.47, -16.43)
p.Material = 'Glass'
p.Reflectance = 0.8
p.Transparency = 0.3
end
Note: I would recommend indenting your code. Also, I would recommend not using the 2nd argument of Instance.new()
for performance reasons, but instead setting the parent after setting all of the properties. Here is a topic about it.