Ever wanted to use some method, or change a property, only to find out that its RobloxLocked or locked behind 19 thousand context levels? Worry not! Unlocker is there!
Full list of what unlocker can do:
Set ANY properties of ANY object to anything you want(with some exceptions, this is practically a local change that will though, work on all scripts where module was called)
Create Custom services AND custom functions for them or already existing services.
Load free assets without any troubles(game:GetObjects())
Easier HttpService access(game:HttpGet/HttpPost)
Loadstring access
Getrawmetatable access
to load in all of functions of the module, simply require it with :Load and everything will automatically set up.
Credits:
Lua VM - Rerumu and Yueliang
getrawmetatable - this post
Update 1: added all of services to datamodel, so you can alter with all of them, for some reason it didnt save yesterday, should be fixed now.
Fix 1: Fixed a glitch with :Function syntax,
Fix 2: Fixed another glitch with : syntax, for some to only god known reason mysterious empty table appeared as first argument from nowhere, should be fixed now
I really need feedback. I also have a little roadmap what i plan to do.
Add ability to turn on and off specific unlocks
Make it more advanced in general.
Add some more stuff.
Alright, here’s a reply: might want to change the title of the post.
Taking a look at your module, it seems to be a collection of a few (not even 1:1) replicas of the built-in functions for Instances.
e.g. FindFirstChild also has a Recursive parameter! If used, wouldn’t do anything with your module
DataModel:FindFirstChild is there mostly for services, i dont think anyone will use FindFirstChild with recursive on “game” datamodel. though i will consider adding it. also what do you mean not 1:1? most of the functions are literally 1:1 via metatable, ones that are written in are only for sake of “unlocking”.
if you want to fix something, please say what exactly is wrong and what exactly is needed, i really need feedback at the moment.
What do you mean by “find properties that are locked”? Locked properties are ones you cant typically change, you can find them on roblox documentation, this module also doesnt change them really, it creates a local environment between scripts where it was loaded to simulate these changes, you cant actually change values on what game actually relies like LoadstringEnabled or HttpEnabled. But you can change stuff like game.PlaceId, game.GameId, game.JobId or practically any property that you want that doesnt directly affect the game.
Also this module allows to register functions under any service, and in next update, under any instance. that means you can link a function to a part or even a decal! Might actually make that these functions actually exist for all scripts n stuff, but that will be quite hard i think
well sadly, we cant really set everything, which is unfortunate. but hey, setting properties isnt only thing of this module. you can add custom funcs to services as you desire (with “function service:Name(args)” syntax aswell!!!) and make new services easily without any problems. i will work on doing some stuff on it, possibly even bypassing roblox limits(which i will probably never release cuz i dont want to get banned )
What are you talking about? This is just a tiny collection of modules others have made.
local loadstring = function(...)
return require(script.VM)(...)
end
local getmetatable = function(...)
return require(script.getrawmetatable)(...)
end
function DataModel:HttpGet(...)
local args = ...
local success, loaded = pcall(function()
local data = game.HttpService:GetAsync(args)
return data
end)
return loaded
end
function DataModel:HttpPost(...)
local args = ...
local success, loaded = pcall(function()
local data = game.HttpService:PostAsync(args)
return data
end)
return loaded
end
function Unlocker:Load()
getfenv(2).game = DataModel
getfenv(2).loadstring = loadstring
getfenv(2).getmetatable = getmetatable
end
you are kidding me what in the world do you mean small collection of modules other people created? yeah it does use loadstring and getrawmetatable. but these are in no way in the WORLD are the main functions of the module??? maybe try looking at uhm the FIRST lines of code??? They create a local datamodel table using metatables. That datamodel and services inside are 1:1 to originals, but are tables. you can add your functions to them, you can modify functions, you can locally change properties. and as i said a couple messages higher, i will try to make it be able to do so with every object, though it will make it really unstable and bad to work with(as you probably will not be able to refer to the object when needed, which makes it just a useless table.)
Oh wow, you’re overwriting the DataModel. Bravo. Really groundbreaking stuff here. I’m absolutely riveted. So, let me just get this straight—you’re claiming this somehow helps with unlocking things? That’s the big pitch? Because from where I’m standing, all I see is you setting a few values like that’s supposed to impress anyone. Yeah, you can “set stuff,” sure. Super cool. But here’s the issue—it doesn’t actually do anything. Like, at all. The properties are locked. Remember that tiny detail? Locked. As in: not accessible, not writable, not readable. And your module, for all its flair, doesn’t actually change that reality in the slightest. So I’m just trying to figure out what exactly you think this is achieving. What’s the grand purpose of the module? Besides, you know, looking like it does something when it absolutely does not? Because as far as I can tell, its primary function is to sit there and waste time—mine, yours, and the computer’s. You can’t read locked properties, because, shocking revelation here, they’re still locked. And you can’t write to them either, unless your module suddenly gained divine intervention powers that override system security. (Spoiler: it didn’t.) And don’t even get me started on the functions you’re overwriting. Some of those implementations are just… wow. Like, impressively wrong. Not just a little off, but genuinely incorrect, in a “did you even test this once?” kind of way. You’re not just reinventing the wheel—you’re reinventing it as a square and then acting surprised when it doesn’t roll. All this effort to create a module that promises the moon but doesn’t even deliver a flashlight.