How exactly init, update, and draw work
So basically, all the code is run across all files (in what order though? Pretty much randomly, it's weird, don't rely on one file loading before another). Init, update, and draw code aren't though, because what you are doing is literally just defining a function. That's why it's
init = function()
(code)
end
instead of
init
(code)
end
or something. Now that you defined it, in memory, your code has 3 functions stored, init, update, and draw. Once every single file is loaded, init is called. Once that is done, update is set to run 60 times per second, and draw every time the canvas is refreshed. This means that all the files will have run once init, update, and draw are called (this is why placing code outside/inside those functions can cause weird issues sometimes). Hope this helps!