Lua tables support do 0 as an index. You can also use negative numbers or floating point numbers, which can be convenient for some applications.
One issue with using them that way is that some Lua idioms don't work as expected. For example, "for i,v in ipairs(t) do ... end" will start iteration with i=1 and stop when it reaches an index that isn't present. Also the length operator (#) won't work as expected.