Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local f3x = game:GetObjects("rbxassetid://9797801917")[1]
- f3x.CanBeDropped = false
- f3x.Parent = game:GetService("Players").LocalPlayer.Backpack
- local function Load(Object)
- local Modules = {}
- local SavedModules = {}
- local Scripts = {}
- local EnvList = {}
- local function fakeRequire(Script)
- if typeof(Script) ~= "Instance" then warn("Unable to require: "..tostring(Script)) return end
- if SavedModules[Script] then
- return SavedModules[Script]
- elseif Modules[Script] then
- SavedModules[Script] = Modules[Script]()
- return SavedModules[Script]
- end
- warn("Real requiring: "..Script:GetFullName())
- return require(Script)
- end
- local function NewProxyEnv(Script, Func, Err)
- if not Func then
- warn("SYNTAX ERROR ("..Script:GetFullName().."): "..(Err or "Unknown"))
- end
- local fakeEnv = {script = Script}
- local meta = {}
- meta.__index = function(self, index)
- if index == "require" then
- return fakeRequire
- end
- if index == "getfenv" then
- return function(arg)
- local typ = type(arg)
- local env
- if typ == "number" then
- env = getfenv(arg == 0 and 2 or arg + 1)
- else
- env = getfenv(arg)
- end
- if env.script == nil then
- error("Tried to get main envirionment")
- end
- return env
- end
- end
- return getfenv()[index]
- end
- return setfenv(Func, setmetatable(fakeEnv, meta))
- end
- local function LoadScripts(Script)
- if Script:IsA("Script") or Script.ClassName == "ModuleScript" then
- local func = NewProxyEnv(Script, loadstring(Script.Source, "="..Script:GetFullName()))
- if Script.ClassName == "Script" or Script.ClassName == "LocalScript" then
- Scripts[Script] = func
- elseif Script.ClassName == "ModuleScript" then
- Modules[Script] = func
- end
- end
- for i, v in pairs(Script:GetChildren()) do
- LoadScripts(v)
- end
- end
- LoadScripts(Object)
- for i, v in pairs(Scripts) do
- task.spawn(v)
- end
- end
- Load(f3x)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement