Getting Started
Learn how to sign up, create your first project, upload a script, generate license keys, and integrate the validation API.
1. Create an Account
Head to the signup page and create your account. You can start with the Free plan and upgrade later.
- Choose a plan (Free, Pro, or Premium)
- Verify your email address
- Log in to your dashboard
2. Create a Project
Projects are containers for your scripts. Each project can have multiple scripts with their own settings.
- Go to the Projects page in your dashboard
- Click "Create Project" and give it a name
- Optionally configure obfuscation defaults
3. Upload a Script
Upload your Luau script to the project. You can choose the obfuscation level and other settings.
- Go to the Scripts page
- Click "Upload Script" and select your .luau file
- Choose obfuscation level (Basic, Normal, Full, or Maximum)
- Click "Upload" — your script is now hosted and ready
4. Generate License Keys
Generate keys that users can use to validate access to your script. Keys can be HWID-locked and have expiration dates.
- Go to the Keys page
- Click "Generate Keys" and configure settings
- Choose quantity, optional prefix, and expiry
- Distribute the keys to your users
5. Integrate Validation
Add key validation to your script. Users must have a valid key to execute your protected script.
Example validation code:
local HttpService = game:GetService("HttpService")
local function validateKey(key, hwid)
local response = HttpService:RequestAsync({
Url = "https://luacrypt.dev/api/validate",
Method = "POST",
Headers = { ["Content-Type"] = "application/json" },
Body = HttpService:JSONEncode({
key = key,
hwid = hwid
})
})
local result = HttpService:JSONDecode(response.Body)
return result
end
-- Usage
local key = "USER_KEY_HERE"
local hwid = "USER_HWID_HERE" -- or game:GetService("RbxAnalyticsService"):GetClientId()
local result = validateKey(key, hwid)
if result.valid then
print("Access granted! Welcome, " .. result.user)
loadstring(game:HttpGet("YOUR_SCRIPT_URL"))()
else
warn("Invalid key: " .. result.reason)
end6. Deliver Your Script
Once validated, users can load your script using the loadstring-ready URL from your dashboard. The script is served obfuscated and ready to execute.
Loading a protected script:
-- After successful validation
local scriptUrl = "https://luacrypt.dev/api/scripts/abc123/load"
local success, result = pcall(function()
return game:HttpGet(scriptUrl)
end)
if success then
loadstring(result)()
else
warn("Failed to load script: " .. result)
end