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
serviceoption 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 accountManagerSign 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 apikeyManagerLink with a service API key instead of your account password. Copy it from Dashboard → your service → API key. No login session is created.
/logoutManagerUnlink 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-serviceManagerChoose which linked service commands target when they do not name one. Only moves the default — other services stay linked.
servicestringrequiredThe service to make default./statusEveryoneShow 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
/setpanelManagerPost 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 listManagerShow every panel, its service, its channel, a jump link and its id.
/panels refreshManagerRe-render every panel message. Run this after changing settings so panels pick up new buttons and colours.
/panels deleteManagerDelete a panel and its message.
panel_idstringrequiredThe id shown by /panels list.Members
/whitelistManagerGenerate 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./unwhitelistManagerRevoke 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-whitelistManagerWhitelist 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./blacklistManagerBlock 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./unblacklistManagerLift a block: un-blacklists the HWIDs and reactivates the keys the block suspended.
useruserMember to unblock.hwidstringUnblock a raw HWID instead./force-resethwidManagerReset 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
/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-generateManagerGenerate 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./compensateManagerAdd 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./lookupManagerInspect 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./statsManagerService 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 viewManagerShow the current configuration for this server.
/settings rolesManagerSet 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 hwidManagerSelf-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 scriptManagerHow 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 generalManagerDefaults 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./setlogsManagerMirror 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./logsManagerRecent 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.
/getkeyEveryoneOpens the checkpoint page for this service, where a key can be earned.
/redeemEveryoneBind a key you own to your Discord account. The key is typed into a private form, never as a visible command argument.
/scriptEveryoneYour personal loader snippet, with your key already filled in. Requires a valid key.
/resethwidEveryoneClear your own device binding so the script runs on a new device. Subject to the server's cooldown.
/mykeyEveryoneYour key status: expiry, bound device, tier and whether it is still valid.
/getroleEveryoneClaim the buyer role if you hold a valid key.
General
/helpEveryoneWhat the bot can do. Managers additionally see the management commands.
/pingEveryoneLatency to Discord and to the Panda backend, plus uptime.
/inviteEveryoneInvite link with the correct permissions pre-selected.