very detectable instrumentation but a method that works like hookfunction nevertheless
✔ Supports Property Hooking (Creating New Properties)
✔ Supports Method Hooking (Creating New Methods)
✔ Supports Roblox/Luau (Scripts And Executor)
✔ Supports Loadstring (Maintains Modded Environment)
✔ Supports Lua
-- paste modenv source above
function run()
warn("game.Workspace:", game.Workspace)
warn("game:FindFirstChild(\"Workspace\"):", game:FindFirstChild("Workspace"))
print("game:AMethodThatDoesntExist()", game:AMethodThatDoesntExist())
print("game:GetService(\"Players\"):", game:GetService("Players"))
-- works in executors
--print(loadstring(game:HttpGet("https://gist.github.com/transmutational/0a9a3675340da39f3fc948cbb9827e6a/raw/script.lua"))())
end
local env = {}
-- works in executors
--env[game.HttpGet] = function(self, ...)
-- print("DataModel:HttpGet()", ...)
-- return game.HttpGet(self, ...)
--end
env[game.GetService] = function(self, srv)
warn("Returning fake service :3", srv)
return workspace
end
env[game] = {
AMethodThatDoesntExist = function(self)
return "hewwo from a custom method~!"
end
}
modenv(run, env)
run()
see modenv/tests for more examples