Skip to content
Genesis v2.0 and Soteria v7.0 are here. Read the announcement
  • Macros
  • Attributes
  • Obfuscate API
  • Generating Keys with API
  • Editing Keys with API
  • Using the Oracle SDK
  • Setup
  • Commands

Discord Bot

Discord Bot Commands

Every command the Soteria bot exposes, grouped by who can run it. All commands work inside a Discord server (not in DMs) and reply privately, so keys and results are only visible to you. New to the bot? Start with the Setup guide.

In the usage examples below, angle brackets like <user> mark required options and square brackets like [days] mark optional ones. Do not type the brackets themselves.

Everyone

Available to every member of the server.

/getkey

Available to everyone

Pick a script and get its key-system (gateway) link. If the service has only one script, the link is returned instantly. If it has several, the bot shows a dropdown to choose from, paginated in groups of 25.

/getkey

/resethwid

Available to everyone

Reset the HWID and UID locks on your own key by pasting it. Limited to 2 resets per key in a rolling 24 hour window, resets are tracked per key, not per Discord account. This is the self-service version of the panel's Reset HWID button.

/resethwid <key>
OptionTypeRequiredDescription
keyStringYesThe key to reset.

/help

Available to everyone

Show a paginated list of every command, grouped by permission tier. Use the arrow buttons to move between pages.

/help

Staff

Available to members with the Manage Server permission, or a role granted access with /manager add. These commands act on the Oracle service the server is bound to.

/whitelist

Staff

Create a key for a Discord user, or update their existing one. The user is sent their key by DM, and the bot reports whether the DM went through. By default it updates the user's current key rather than minting a second one.

/whitelist <user> [days] [premium] [max_hwids] [max_uids] [new_key]
OptionTypeRequiredDescription
userUserYesThe member to whitelist.
daysIntegerNoDays until the key expires. Omit for a permanent key. Minimum 1.
premiumBooleanNoGrant a premium key.
max_hwidsIntegerNoHWID slot limit, 1 to 10. Omit for unlimited.
max_uidsIntegerNoUID slot limit, 1 to 10. Omit for unlimited.
new_keyBooleanNoMint an additional key for the user instead of updating their existing one.

/unwhitelist

Staff

Revoke a user's key, removing their access to the service.

/unwhitelist <user>
OptionTypeRequiredDescription
userUserYesThe member whose key should be revoked.

/blacklist

Staff

Blacklist a user account-wide and revoke any key they currently hold. Optionally record a reason and set an expiry.

/blacklist <user> [reason] [days]
OptionTypeRequiredDescription
userUserYesThe member to blacklist.
reasonStringNoReason for the blacklist, kept for your records.
daysIntegerNoDays until the blacklist expires. Omit for an indefinite blacklist. Minimum 1.

/unblacklist

Staff

Remove a user from the blacklist, allowing them to be whitelisted again.

/unblacklist <user>
OptionTypeRequiredDescription
userUserYesThe member to remove from the blacklist.

/force-resethwid

Staff

Reset a user's HWID and UID locks, bypassing any cooldown. Use this when a member has legitimately changed hardware and cannot wait out the normal reset timer.

/force-resethwid <user>
OptionTypeRequiredDescription
userUserYesThe member whose HWID lock should be reset.

/compensate

Staff

Add days to every active key on the service at once. Useful for making up for downtime. Permanent keys are left untouched, and the bot reports how many keys were extended.

/compensate <days>
OptionTypeRequiredDescription
daysIntegerYesNumber of days to add to each active key. Minimum 1.

/generate

Staff

Mint a standalone key that is not tied to any Discord user. The key is returned in the reply for you to hand out however you like.

/generate [name] [days] [premium] [max_hwids] [max_uids]
OptionTypeRequiredDescription
nameStringNoA label for the key, 3 to 32 characters.
daysIntegerNoDays until the key expires. Omit for a permanent key. Minimum 1.
premiumBooleanNoGenerate a premium key.
max_hwidsIntegerNoHWID slot limit, 1 to 10. Omit for unlimited.
max_uidsIntegerNoUID slot limit, 1 to 10. Omit for unlimited.

/key

Staff

Look up a user's key or keys, showing expiry, usage count, and premium status. If the user has more than one key, the results are paginated in groups of 10. Defaults to looking up yourself when no user is given.

/key [user]
OptionTypeRequiredDescription
userUserNoThe member to look up. Defaults to you if omitted.

/obfuscate

Staff, or everyone if enabled in the dashboard

Obfuscate a Luau script through Soteria without leaving Discord. Attach a .lua or .luau file and the bot opens an interactive panel to configure the target, node, optimization level, flow complexity, and toggles for the compression loader, compatibility mode, and custom error handler. Hit Obfuscate and the protected file is returned as an attachment. This draws on the linked account's membership quota.

/obfuscate <file>
OptionTypeRequiredDescription
fileAttachmentYesThe .lua or .luau file to obfuscate.
By default only staff can run this command. To open it to everyone in the server, enable it under Dashboard, then Discord Bot, then the Settings tab. See the Obfuscate API doc for what each setting does.

/panel

Staff

Post a persistent control panel embed for a script in a channel. Customers get a Get Key button that links straight to the gateway, a Get Script button that replies with a ready-to-run loadstring snippet, and a Reset HWID button that opens a modal for them to paste their key into (same limits as /resethwid). A Get Stats button is also included, but only replies for staff, anyone else who clicks it is told they lack permission. Pass a role to add a Get Role button too, customers who submit a valid, unexpired key for the service (and aren't blacklisted) are given that role automatically. Since keys aren't scoped to individual scripts, the check only verifies the key against the service the script belongs to.

/panel [channel] [role]
OptionTypeRequiredDescription
channelChannelNoThe channel to post the panel in. Defaults to the channel you run the command in.
roleRoleNoRole to grant customers who verify a valid key. Omit to leave out the Get Role button.
Unlike most of the bot's interactive messages, panel buttons keep working indefinitely, they are not tied to a 60 second collector window.

Admin only

Available only to members with the Manage Server permission. These commands manage the link between the server and your Soteria account, and always reply privately.

/login

Admin (Manage Server)

Link this server to your Soteria account with your API key. The bot confirms the account and lists your Oracle services and their IDs, which you then pass to /setservice.

/login <api_key>
OptionTypeRequiredDescription
api_keyStringYesYour Soteria API key, from Dashboard, then Settings, then API Key.
Anyone with Manage Server can run this. Treat your API key like a password and only run /login in servers you control.

/logout

Admin (Manage Server)

Unlink this server from your Soteria account. Commands will stop working until the server is linked again with /login.

/logout

/setservice

Admin (Manage Server)

Bind this server to one of your Oracle services. Every key and script command then operates on that service. Run it again at any time to switch to a different service.

/setservice <id>
OptionTypeRequiredDescription
idStringYesThe service ID, shown in the reply from /login.

/unsetservice

Admin (Manage Server)

Clear the service this server is bound to. Key and script commands stay unavailable until you bind a new service with /setservice.

/unsetservice

/manager

Admin (Manage Server)

Control which roles can use the staff commands without needing the Manage Server permission. Members with Manage Server always count as staff.

/manager add <role>
/manager remove <role>
/manager list
OptionTypeRequiredDescription
addSubcommand-Allow a role to use staff commands. Takes a role option.
removeSubcommand-Revoke a role's access to staff commands. Takes a role option.
listSubcommand-List the roles currently allowed to use staff commands.
Setup
SoteriaSoteria

Secure your Luau scripts and accelerate your developer experience.

Products

  • Oracle
  • Genesis

Tools

  • Script Library
  • DevEx Converter
  • FFlags Directory

Docs & Support

  • Documentation
  • Roblox Status
  • Error Codes
  • Runtimes

Company

  • About
  • Blog
  • Discord
  • Contact

Legal

  • Terms of Service
  • Privacy Policy
  • Cookie Policy
  • Acceptable Use

© 2026 Soteria. All rights reserved.

SoteriaSoteria
Pricing
Get Started