--[[ Restructures a tree of ModuleScript objects to emulate the behavior of stock Lua and Rojo's `init.lua` mechanism, which essentially lets you load folders as modules. A file structure like this: foo (directory) `-- bar (directory) `-- init.lua (file) Is turned into: foo (Folder) `-- bar (ModuleScript) ]] local function initify(rbx) local init = rbx:FindFirstChild("init") if init then init.Name = rbx.Name init.Parent = rbx.Parent for _, child in ipairs(rbx:GetChildren()) do child.Parent = init end rbx:Destroy() rbx = init end for _, child in ipairs(rbx:GetChildren()) do initify(child) end return rbx end return initify