Luarmor User Manual & F.A.Q
We documented every single Luarmor feature in this page. If you want to know more about the service you're using, read this documentation.
Last updated
We documented every single Luarmor feature in this page. If you want to know more about the service you're using, read this documentation.
Last updated
You can also use this documentation below, maintained by Stefanuk.
If you just started using Luarmor, you should read this quick start guide. It will take you only 10 minutes to understand how Luarmor works.
In order to use Luarmor, you need to create an account. And for that, you need an "invite code". Invite codes can be purchased here --> https://luarmor.net#prices
Alternatively, you can use an invite code to extend your membership for +30 extra days here --> https://luarmor.net/profile
Luarmor has a feature called project folders. They can contain multiple scripts, allowing you to have a script hub with multiple games in it.
If you are migrating from another whitelist service, or your own, you can easily import your users with 2 clicks. Skip to this part for mass whitelisting details.
There are 2 ways to whitelist someone:
Generate an empty key at https://luarmor.net/users and give it to user. Alternatively, you can mass-generate keys and put them to your sellix / shoppy as "serials" for automated purchases.
Or run /whitelist
command via discord bot and user will be able to click on "get script" button on control panel
( Bot invite will be DM'ed upon purchasing a Luarmor invite code. Join our discord server to buy an invite code: https://discord.gg/luarmor )
Once the user is whitelisted, they can execute the script by adding script_key = "KEY HERE";
on top of the script. Note that keys are linked to user's HWID and sharing the key with someone else won't work because they will have a different HWID.
In some cases, user's HWID might change on its own, when that happens, they must run /resethwid
via discord bot and re-execute the script. It will automatically assign the new HWID upon execution.
If you think someone might be sharing their key and using /resethwid
for others, simply compare action fingerprint in the resethwid notification
Luarmor has runtime variables that allows you to access to user details such as discord id, total executions, script name, premium, user note etc..
They can be used for a lot of things. Check out this example:
You can see a full list of runtime variables here:
LRM_IsUserPremium
: if user is whitelisted or not. useful for FFA scripts, ('freemium')
LRM_LinkedDiscordID
: linked discord id
LRM_ScriptName
: name of the current script.
LRM_TotalExecutions
: total executions of the user. it will be 0 by default.
LRM_SecondsLeft
: seconds left until expiry. it will be math.huge if auth_expire isn't set
LRM_UserNote
: user note ('Not specified' by default)
LRM_ScriptVersion : version of the script. Looks like "0.0.0.3" and is a string.
This documentation shows the setup for OLD BOT!. New bot looks different than this. It doesn't require a documentation to use the new bot.
You can automate everything using this discord bot. Or you can write your own bot using our API documentation.
If you're a Luarmor buyer, discord bot invite will be sent to you via DM. After inviting the bot, run /login
command and link the server.
If you already have users with a specific role, you can easily mass whitelist every single one of them with one command.
"Total failed" means their discord IDs are already registered, so in order to avoid duplicated entries, it will skip them.
Alternatively, you can import them as a JSON file.
Once users are imported, all they need to do is to click on the "Get Script" button and the bot will respond to them with the script + key appended on top.
Luarmor now has an AutoMod module that automatically resolves basic questions about Luarmor, and block certain scams and spams in your server. To use this, you must run /automod command first to toggle it. Then you can see it in action:
In most cases, you don't need to check the key yourself because Luarmor protected scripts already come with the whitelist built inside them, which will kick them if a key is invalid.
But in certain cases where you want to check a key in advance (before whitelist), so the user doesn't get kicked if it is an invalid key, you can use our key checking library.
Ideally, you would want to run this library before the obfuscated code (luarmor loadstring) runs. So you can implement your custom logic to handle invalid / expired keys by displaying the error message to the user without kicking or crashing the client.
Here's how to import it:
KEY_VALID
The provided key is valid.
Key has no hwid assigned to it (reset state) or the assigned hwid matches client's hwid, and the key is not expired.
KEY_EXPIRED
The provided key has expired.
Key is valid, hwid matches, but it has expired and can not be used.
KEY_BANNED
The provided key is blacklisted.
Key is valid, hwid matches but it is blacklisted and can not be used. Blacklist reason is not exposed to the user via this library.
KEY_HWID_LOCKED
The provided key has been locked to a different HWID. Reset your HWID to access it.
Key is valid, hwid does not match and needs to be reset via bot panel or ad page.
KEY_INCORRECT
The provided key is incorrect / it does not exist.
Key seems valid, but does not exist in the database. Could be deleted, or never generated.
KEY_INVALID
The provided key is in an invalid format.
Key is empty / too long / too short.
SCRIPT_ID_INCORRECT
The provided script ID is incorrect / it does not exist.
Script ID does not exist or has been deleted later.
SCRIPT_ID_INVALID
The provided script ID is in an invalid format.
Script ID is too short / too long / contains non-hexadecimal characters.
INVALID_EXECUTOR
HWID header contains invalid data. Executor might not be supported.
Executor not supported.
SECURITY_ERROR
Request can not be validated by cloudflare
Signature does not match.
TIME_ERROR
Client time is invalid.
Request took too long to complete or os.time() is broken.
UNKNOWN_ERROR
Unknown server error - contact gg/luarmor
Upstream closed connection (outage or an API restart)
Response body will always be a JSON. In case of KEY_VALID, an additional "data" field will be included in the table, with these fields:
KEY_VALID "data" fields:
auth_expire
number (32bit timestamp)
Expiry date of the key, could be -1 or 0 for lifetime keys.
note
string
total_executions
number
Total executions made by this key. Could be any number.
You can see a full list of functions that are provided by the library.
<new index> script_id
lib.script_id = "PASTE ID"
You have to assign your script ID to the table that library returns in order to check keys. Always do this first.
check_key(<string>)
lib.check_key("JnX84B...Q1")
Make a call to fetch key data.
load_script()
lib.load_script();
Loadstrings the script ID that was previously assigned above. You can just use the default loadstring too. YOU MUST set the script_key global before loadstringing or using this.
purge_cache()
lib.purge_cache();
Tries to delete the cached file in workspace folder that holds the last known obfuscated version of the script. You can force a purge with this.
Refer to "Ad System (Rewards)" page.
Note, can be accessed in the obfuscated script via LRM_UserNote too. (Refer to )