Skip to content

Key Validation

Validate user keys using the Aureva loader or library. The Aureva loader handles validation automatically when users request your script with a key. HWID is automatically captured and locked on first use.


For scripts served by the Aureva loader, key validation happens automatically when the user requests the loader URL with ?key=... or sets script_key. No additional code is required.


For custom flows (e.g., checking keys before loading, custom UI), use the Aureva library:

local Aureva = loadstring(game:HttpGet("https://api.aureva.cc/loaders/library.lua"))()
Aureva.script_id = "YOUR_SCRIPT_ID"
local result = Aureva.check_key("USER_KEY")
if result.code == "KEY_VALID" then
Aureva.load_script()
else
warn("Validation failed:", result.code, result.message)
end

These codes are returned when key validation fails:

CodeDescription
KEY_INVALIDKey format invalid, missing, or malformed
KEY_INCORRECTKey not found or not active
KEY_BANNEDKey is blacklisted
KEY_EXPIREDKey has passed its expiration date
KEY_HWID_LOCKEDKey is bound to a different HWID
SCRIPT_ID_INVALIDScript ID format invalid (must be 32 hex chars)
SCRIPT_ID_INCORRECTScript not found or has been deleted

On success, the validation returns code: "KEY_VALID" along with user data such as expiration and execution count. On failure, you receive a code (e.g., KEY_EXPIRED) and an error message.


local Aureva = loadstring(game:HttpGet("https://api.aureva.cc/loaders/library.lua"))()
Aureva.script_id = "YOUR_SCRIPT_ID"
local result = Aureva.check_key("USER_KEY")
if result.code == "KEY_VALID" then
print("Key valid! Expires:", result.expires_at)
Aureva.load_script()
else
print("Error:", result.code, result.message)
-- Show user-friendly message based on result.code
end

CodeAction
KEY_INVALIDPrompt user to check key format or get new one
KEY_INCORRECTPrompt user to verify or obtain key
KEY_BANNEDInform user they are blacklisted
KEY_EXPIREDPrompt user to renew or extend key
KEY_HWID_LOCKEDOffer HWID reset (Discord, dashboard, support)
SCRIPT_ID_INVALIDCheck script ID format (32 hex chars)
SCRIPT_ID_INCORRECTScript not found; verify script exists
Rate limit (429)Wait and retry; show “Try again later”

Key validation is rate limited to prevent abuse. Implement client-side throttling and cache successful validations when appropriate. If you receive a rate limit response, wait before retrying and show “Try again later” to the user.


Use the Aureva loader for automatic validation when:

  • Serving scripts through the standard loader
  • You want zero-config key checking

Use the Aureva library when you need to:

  • Check keys before loading
  • Build a custom flow or UI
  • Validate from a non-Roblox client (the library can be adapted)