Introducing: Modules

The logo for Modules
A fancy logo for Modules I came up with

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")

Download: Model on Roblox.com, GitHub releases
Links:
Documentation, Repository on GitHub

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!

I hope you enjoy using Modules as much as I enjoyed creating it. I look forward to your feedback – perhaps on Twitter, via GitHub issues, or on the Roblox devforum.

Author: Ozzypig

Roblox developer and computer scientist. I love all things coding and game design!