What is Flotix?
Flotix is licensing and protection tooling for Roblox scripts you sell. It is not a marketplace and it does not replace how you sell — you keep using BuiltByBit, Gumroad, Discord, or wherever you already sell. Flotix adds license keys, game-lock binding, and a protected script build so a leaked file is much harder to reuse outside the game it was sold for.
Getting started
- Sign up at Flotix and open your seller dashboard. Create a product and choose Level 1 or Level 2 protection for that script.
- Paste your Luau source into the script editor and click Save & build protected script. Flotix wraps your code with a license check — it does not rewrite your entire game logic.
- When the build finishes, download the protected .lua file from the same product page.
- Generate a license key for each sale from your dashboard (one key per buyer).
- Send the buyer their key plus a link to the Flotix activation page (/activate) so they can register it before first use.
Installing the protected script
Open your Roblox place in Studio and place the downloaded file in ServerScriptService as a Script. Never use a LocalScript — the license check must run on the server, and a LocalScript is readable by exploit tools on the client.
In Studio, open Game Settings → Security and enable Allow HTTP Requests (HttpService). The protected script calls Flotix's validation API on the server — without this, checks will fail.
Level 1 vs Level 2
Level 1 ships as a normal Luau Script you drop into ServerScriptService. Once HttpService is on and the buyer's key is activated, it should work without any other Studio toggles. It raises tampering cost but does not hide your algorithm from a determined attacker.
Level 2 ships a small stub only. On each server start it calls Flotix, and if the key is valid for that place, Flotix returns your real logic to execute. That means you must also enable LoadStringEnabled in Game Settings → Security. That is a real tradeoff: it is required for Level 2 to run, but it also increases what a determined person with Studio access could inspect. Understand why before you flip it on.
How buyers activate a key
Buyers do not need a Flotix seller account. On the activation page they:
- Paste the license key you sent them.
- Enter their email so Flotix can tie the key to them and send status updates if needed.
- Launch the Roblox game the script belongs to — binding completes in the background on first run.
After that, the key is locked to that one game's PlaceId. It will not validate in a different place, even if someone copies the script file elsewhere. Buyers activate deliberately before first use — keys do not bind silently to whichever game calls in first.
Game-lock binding, explained
A Flotix key is bound to a specific Roblox place (PlaceId), read on the server — not to a player account or a hardware ID. When validation runs, your game sends the key and its PlaceId to Flotix; if they match what the key was activated for, the script keeps working.
That is why copy-paste theft stops being useful: someone can copy the file, but the key will refuse to run outside the place it was sold for. It is place-lock / game-lock binding — the correct term for Roblox, not "HWID lock."
Common issues
My key won't activate
Confirm Allow HTTP Requests is enabled in the place where the script runs. Double-check the buyer copied the entire key (Flotix keys start with flx_).
It says invalid license
The key may already be bound to a different game. Each key works in one place only — if a buyer activated in the wrong place, they need a new key from you (or you revoke and reissue from your dashboard).
Level 2 isn't working
Confirm LoadStringEnabled is on in Game Settings → Security, in addition to HttpService. Level 2 also depends on Flotix's API being reachable — if our validation endpoint is down, Level 2 games cannot fetch their logic until service is restored.