It’s my pleasure to announce Modules, a simple dependency loader for Roblox!
Modules comes with goodies, too: Event , Maid and StateMachine classes just to name a few. These patterns are so commonplace in Roblox development today, they felt right at home to be included.
With Modules, you can require strings instead of ModuleScripts. This greatly simplifies your scripts’ dependencies and streamlines creation of client and server code.
local require = require(game:GetService("ReplicatedStorage"):WaitForChild("Modules"))
local MyModule = require("MyNamespace:MyModule")
Modules comes with a full-fledged documentation site over at docs.ozzypig.com/Modules! The API is documented in-code using LDoc, and the website built using a custom Python module and MkDocs.
This is my first public project that uses Rojo to sync Lua files into the Roblox engine. So far, I’ve found the workflow to be amazing. Hats off to the contributors 🙂
Like any good code, the entirety of the module has tests written for it. A separate Rojo project builds a test place file that runs these tests. Using test-driven development for this project has really been a breath of fresh air!