Documentation

← Panda Auth

For Developers · Discord Bot

Command Reference

Every slash command PandaAuth Core provides, with its options and who may run it.

How to read this page

  • Manager — needs Manage Server, or the manager role set with /settings roles. Server owners always qualify.
  • Everyone — any member of the server.
  • Almost every command accepts an optional service option with autocomplete. Omit it and the command uses the default service set by /select-service. It is listed once here rather than repeated on every command.
  • All replies are ephemeral — only the person who ran the command sees them.

Linking

/login accountManager

Sign in with your PandaAuth email and password, then pick which service this server manages. A private form collects the credentials; if 2FA is on, a second prompt asks for the authenticator code, the emailed code, or a recovery code.

/login apikeyManager

Link with a service API key instead of your account password. Copy it from Dashboard → your service → API key. No login session is created.

/logoutManager

Unlink a service from this server. Panels belonging to it stop working and are removed. Members keep their keys — nothing is revoked.

confirmbooleanrequiredMust be True; the command refuses to run otherwise.
servicestringWhich linked service to unlink.
/select-serviceManager

Choose which linked service commands target when they do not name one. Only moves the default — other services stay linked.

servicestringrequiredThe service to make default.
/statusEveryone

Show what this server is linked to. Members see the service list and panel counts; managers additionally see key counts, execution totals and the role/HWID configuration.

Panels

/setpanelManager

Post a member panel with persistent buttons. Post as many as you like — one per service, or several per service in different channels.

channelchannelWhere to post it. Defaults to the current channel.
titlestringPanel title. Defaults to “<Service> · Whitelist”.
descriptionstringPanel body. Use \n for line breaks.
get_keybooleanShow the Get Key button. Default on.
redeembooleanShow the Redeem button. Default on.
get_scriptbooleanShow the Get Script button. Default on.
reset_hwidbooleanShow the Reset HWID button. Default on.
statsbooleanShow the My Stats button. Default on.
get_rolebooleanShow the Get Role button. Default off; requires a buyer role.
imagestringLarge image URL.
thumbnailstringThumbnail URL.
/panels listManager

Show every panel, its service, its channel, a jump link and its id.

/panels refreshManager

Re-render every panel message. Run this after changing settings so panels pick up new buttons and colours.

/panels deleteManager

Delete a panel and its message.

panel_idstringrequiredThe id shown by /panels list.

Members

/whitelistManager

Generate a key, bind it to a member, grant the buyer role and DM them the key. If their DMs are closed, the key is shown to you instead.

useruserrequiredMember to whitelist. Bots are rejected.
daysintegerDuration, 1–36500. Defaults to the server's default_key_days.
lifetimebooleanNever expires. Overrides days.
premiumbooleanMark the key as premium.
notestringNote stored on the key.
/unwhitelistManager

Revoke every key the member holds on this service and remove the buyer role. Revoked keys stay on record by default, so the history survives.

useruserrequiredMember to revoke.
deletebooleanDelete the keys outright instead of marking them revoked.
/mass-whitelistManager

Whitelist every human member holding a role — the migration tool for moving a user base across. Reports an ETA, updates progress as it goes, and stops early if the API key is rejected.

rolerolerequiredRole to whitelist.
daysintegerDuration. Defaults to the server default.
lifetimebooleanNever expires.
premiumbooleanMark the keys as premium.
skip_existingbooleanSkip members this server already issued a key to. Default on.
dmbooleanDM each member their key. Default on.
/blacklistManager

Block a member or a raw HWID. For a member: every key they hold is suspended and every device bound to those keys is blacklisted. A member with no device bound yet still has their keys suspended.

useruserMember to block.
hwidstringBlock a raw HWID instead.
reasonstringReason stored on the entry.
daysintegerExpire the block after N days. Omit for permanent.
/unblacklistManager

Lift a block: un-blacklists the HWIDs and reactivates the keys the block suspended.

useruserMember to unblock.
hwidstringUnblock a raw HWID instead.
/force-resethwidManager

Reset a member's device binding, ignoring the self-service cooldown. Their own cooldown is not consumed.

useruserMember whose key to reset.
keystringReset by key value instead.

Mass operations are paced deliberately

The API allows 30 requests per minute per service, and each member costs two. /mass-whitelist therefore processes roughly twelve members a minute, caps at 500 members per run, and DMs you the summary if the run outlives Discord's 15-minute interaction window.

Keys and analytics

/mass-generateManager

Generate unassigned keys and receive them as a .txt file — for resellers, giveaways or manual distribution.

countintegerrequiredHow many keys, 1–200.
daysintegerDuration. Defaults to the server default.
lifetimebooleanNever expires.
premiumbooleanMark the keys as premium.
notestringNote stored on every key.
dmbooleanSend the file by DM. Default on; falls back to an ephemeral reply if your DMs are closed.
/compensateManager

Add days to every active key on the service at once — what you run when a script gets patched. Lifetime keys are skipped.

daysintegerrequiredDays to add, 1–365.
confirmbooleanrequiredMust be True. This cannot be undone from Discord.
reasonstringRecorded in the audit log.
/lookupManager

Inspect a member, a single key or an HWID: status, expiry, bound device, premium flag, note and last use. HWID lookups also report whether it is blacklisted.

useruserEvery key a member holds.
keystringOne key value; searches both activated and unredeemed keys.
hwidstringThe key bound to a device, plus its blacklist state.
/statsManager

Service analytics: active keys, unredeemed keys, keyless entries, blacklisted devices, total executions, how many members this server whitelisted, and which scripts are Discord-visible.

Configuration

/settings viewManager

Show the current configuration for this server.

/settings rolesManager

Set the manager and buyer roles. Warns if the bot cannot assign the buyer role.

managerroleRole allowed to run management commands.
buyerroleRole granted to whitelisted members.
clearbooleanClear both roles.
/settings hwidManager

Self-service HWID reset rules.

self_resetbooleanLet members reset their own device binding.
cooldown_hoursintegerHours between self-service resets, 0–720. 0 disables the cooldown.
/settings scriptManager

How the Get Script snippet is built.

key_variablestringVariable the key is assigned to, e.g. _G.PandaKey.
custom_loadstringstringFull custom snippet. {key} and {script} are substituted.
clear_custombooleanRemove the custom snippet and go back to the default form.
/settings generalManager

Defaults and appearance.

default_key_daysintegerDuration /whitelist uses when none is given.
colorstringEmbed accent as hex without #, e.g. 1D4ED8.
allow_get_rolebooleanAllow the panel's Get Role button.
/setlogsManager

Mirror every command and button press to a Discord webhook. The bot posts a test message and refuses a webhook Discord rejects.

webhookstringDiscord webhook URL.
clearbooleanStop logging.
/logsManager

Recent bot activity in this server, without needing a webhook.

limitintegerHow many entries, 1–25. Default 15.

Member commands

These do the same work as the panel buttons, for members who prefer commands or servers that do not post a panel.

/getkeyEveryone

Opens the checkpoint page for this service, where a key can be earned.

/redeemEveryone

Bind a key you own to your Discord account. The key is typed into a private form, never as a visible command argument.

/scriptEveryone

Your personal loader snippet, with your key already filled in. Requires a valid key.

/resethwidEveryone

Clear your own device binding so the script runs on a new device. Subject to the server's cooldown.

/mykeyEveryone

Your key status: expiry, bound device, tier and whether it is still valid.

/getroleEveryone

Claim the buyer role if you hold a valid key.

General

/helpEveryone

What the bot can do. Managers additionally see the management commands.

/pingEveryone

Latency to Discord and to the Panda backend, plus uptime.

/inviteEveryone

Invite link with the correct permissions pre-selected.