What a backdoor is
A backdoor is a script hidden in a model that lets someone else run code in your game. Once your game is live they can give themselves admin, show their own purchase prompts, kick players or wreck the place. Most load their code from outside the file, so the model looks harmless and the code can change at any time.
They're common in free models. A model's scripts run inside Roblox, so the danger is to your game and its players, not to your computer.
The signs to look for
require(with a number, likerequire(1234567890): it loads a module from the Roblox library by its id, so whoever made that module decides what runs in your game.require(script.Parent.Settings)is normal: it loads a module inside the model.loadstring(orHttpGet: runs text as code, often fetched from a website.getfenvorsetfenv: a common way to hide what a script does.string.char(with a long list of numbers, or strings of number codes: text spelled out as numbers so you can't read it.- Code pushed far to the right of a line, past where you'd scroll.
discord.com/api/webhooks: sends data from your game to someone's Discord..ROBLOSECURITY: reaches for a Roblox login cookie. Never fine.
How to check a model
Short on time? Drop the file into Forja's free backdoor scanner: it looks for every sign above in every script, right in your browser. Then read what it finds the way these steps show.
Use an empty place
Insert the model into a new Baseplate, not your game, and don't press Play until you've checked it.
Search every script
Open Find All / Replace All (Ctrl+Shift+F on Windows, ⌘⇧F on Mac) and search for
require,loadstring,getfenvandwebhooks, one at a time. It looks through every script in the place.Read each result
Double-click a result to jump to its line. A
requireof something inside the model is fine; arequireof a number is the classic backdoor.Don't trust the names
Backdoors hide in scripts with boring names ("Weld", "Fix", "AntiLag") and deep inside parts and meshes. The search finds them wherever they are.
Remove what you don't trust
Delete the script, or the whole model, and search again. Then put it in your game.
Leave Allow HTTP Requests off in Game Settings, Security, unless your game needs it: some backdoors use it to fetch their code. And only install Studio plugins you trust: a plugin can change the scripts in your place.
Scripts and systems on Forja
Systems from Forja creators, their files read by Forja's script check.
What Forja checks
Forja reads the scripts in the Roblox files sellers upload (.rbxl, .rbxm, and the ones inside a .zip) and looks for the signs above. A listing with any of them stays off the marketplace until a Forja admin has looked at it. A listing shows Scripts checked when Forja read every script in it and found nothing, or an admin looked.
It's a check, not a promise: look for yourself too, above all with models you got anywhere else.
Questions
Are free models from the Roblox Toolbox safe?
Many are, but backdoors are common in them. Check every free model before it goes in your game, the way this guide shows.
Can a Roblox model give my computer a virus?
A model's scripts run inside Roblox, not as programs on your computer. The risk is to your game: its players, its purchases and its name.
Is every require bad?
No. Most games use require to load their own ModuleScripts. It's a require of a number (an asset id) that pulls in someone else's code.
What if I find a backdoor in something from Forja?
Report the listing with the report button on its page, or open a ticket. Forja admins look at every report.
![Katana Combat System [NO ANIMATIONS]](/_next/image?url=https%3A%2F%2Fbgqmtodmqgaitdrfifrc.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fproduct-assets%2Fimages%2F49d15be9-cf21-4ac8-a47b-53e522dc53db.webp&w=3840&q=75)
