Предисловие
Для начала мы разберёмся зачем библиотека?
Библиоте́ка (от англ. library) в программировании — сборник подпрограмм или объектов, используемых для разработки программного обеспечения (ПО).
Перед тем как писать свою библиотеку определитесь в её необходимости, но перед этим используйте поиск по форуму, возможно библиотека реализующая нужные алгоритмы уже существует.
Если такой библиотеки вы не нашли и определились в её необходимости - тогда приступайте к её реализации.
Создание библиотеки
Для правильного создания библиотеки вам потребуется создать файл с расширением .lua, если файл будет не найден, функция require ищет файл в определённых каталогах:
(1)
./
./lib/
./usr/lib/
./home/lib/
Ваша библиотека должна обязательно выглядеть так: http://pastebin.com/q342F8y6.
Для инициализации вашей библиотеки нужно использовать функцию require(имя вашей библиотеки без расширения).
Для примера возьмем имя "MyFirstLib".
local lib = require('MyFirstLib')
Каким образом работает require?
require(имя вашей библиотеки без расширения) обходит по каталогам (1) в поисках файла, с именем который вы передали через аргументы, расширение ".lua" не требуется писать.
Если файл существует он загружаться с помощью load, поскольку load создаёт функцию, в конце библиотеки нужно возвращать таблицу с полезными функциями.
Библиотека сохраняется в package.loaded.имяБиблиотеки, то есть, если изменить исходники библиотеки, изменения не вступят в силу до перезагрузки компьютера, либо до принудительного присвоения package.loaded.имяБиблиотеки = nil.
Если вы не будете возвращать таблицу, require возвращает - true.
На этом всё, я думаю вам удалось создать правильную и работающую библиотеку, а если нет - пиши сюда, вам помогут.