AndreySol, скажем так - это некоторая особенность языка. Если совсем поверхностно и ты знаком хотя бы с основами ООП, то обращение к элементам таблицы через квадратные скобки - это обращение как к элементам таблицы, а через точку - как к структуре.
Если глубже - тогда тебе читать документацию по Lua.
P.S. Вот такие две записи эквивалентны:
tbl = {}
tbl["index1"] = 1
tbl.index1 = 1
Обе эти записи обозначают, что в таблицу tbl записан новый элемент равный числу 1, под индексом "index1".
Есть и другие особенности применения точки для таблиц. Например в игре, все функции что ты используешь - это по сути одна большая таблица, если быть точным, то это таблица _G. И когда ты в какой-нибудь функции пишешь что-то вроде такого:
file_name.function_name()
Это означает, что нужно из таблицы file_name найти элемент function_name, а поскольку это функция, то ты вызываешь функцию.
P.P.S. Буду рад любой критике.