Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

why doesn't require() work on my private module?

Asked by 6 years ago
Edited 6 years ago

it was working a few hours ago and i've been spending those hours trying to fix this issue but i couldn't figure out why it wasn't working. i tried using require() on some other private modules like ArceusInator's GLib (which is what i based my module on) and they worked completely.

here's the code in the MainModule:

local modules = {}

for _, child in pairs(script:GetChildren()) do
    if child:IsA('ModuleScript') then
        modules[child.Name] = require(child)
    end
end

setmetatable(modules, {
    __index = function(t, index)
        if index == 'Script' then
            local scriptClone = script:Clone()
            scriptClone.Name = 'Functions'
            return scriptClone
        end

        if type(index) == 'string' then
            local module = script:FindFirstChild(index)
            if module then
                modules[module.Name] = require(module)
            end
        end

        return rawget(modules, index)
    end,
    __call = function(t)
        return t.Script
    end
})

return modules

and what i do to require() it:

local functionScript = require(--[[my private module id]]).Script
functionScript.Parent = tool
functionScript.Name = 'Functions'
local functions = require(functionScript)

Answer this question