Modules
godot-luau-script supports non-class module scripts and the require
function.
require
The require function accepts a path relative to the current script, without
the .lua extension. It will load the file at the given path and return
whatever the file returned.
Requires are cached within the same Lua VM, and are reloaded when necessary (if the script changes).
Please note that cyclic dependencies are not supported and may cause odd behavior in the editor if encountered.
Module scripts
require can require a script (class) file, in which case it will return the
output of gdclass for the class.
However, you may want to create your own Lua types which don’t need to be
accessible to Godot. To do this in a dedicated file, create a file with the
extension .mod.lua which returns a function or a table.
Then, you will be able to require this file (being sure to include the .mod
but not the .lua in the require path).