For Developers · Discord Bot
Member Panel
One embed in one channel that behaves like a small application: your buyers redeem, pull the script and reset their own device without ever opening a ticket.
Posting a panel
/setpanel channel:#get-script title:My Script description:Press a button below.The panel is a normal message the bot owns. Its buttons are rebuilt from the database every time somebody clicks, so restarts, redeploys and updates never break them — you post it once and leave it.
There is no limit of one panel per server. Post one panel per product, or several panels for the same service in different channels.
What each button does
- 🔑 Get Key — replies with a link to your service's checkpoint page, where the member earns a key.
- 🎟️ Redeem — opens a private form for a key. The key is checked against this service, refused if it is expired, revoked or already claimed by somebody else, then bound to the member's Discord account. The buyer role is granted at the same moment.
- 📜 Get Script — returns the loader with the member's own key already filled in, one block per Discord-visible script. A single copy-paste.
- 🔄 Reset HWID — clears the device binding, subject to the cooldown you set. The member is told exactly when they may reset again.
- 📊 My Stats — status, expiry, bound device (masked) and tier for every key the member holds here.
- 👤 Get Role — claims the buyer role for a member who already holds a valid key. Off by default; needs a buyer role to be configured.
Everything is private
The script snippet
By default a member receives:
_G.PandaKey = "PANDA-XXXX-XXXX-XXXX"
loadstring(game:HttpGet("https://vss.pandauth.com/kv/<fileId>"))()Change the variable name with /settings script key_variable:_G.YourKey, or replace the whole snippet with custom_loadstring, where {key} and {script} are substituted:
/settings script custom_loadstring:getgenv().Key = "{key}"\n{script}Nothing to hand out yet?
Typical member journey
- Member presses Get Key → completes the checkpoints → receives a key.
- Back in Discord, presses Redeem → pastes the key → gets the buyer role.
- Presses Get Script → pastes the snippet into their executor.
- New PC later → presses Reset HWID → runs the script again.
None of those steps needs you. If a member is stuck, the fastest checks are /lookup user:@them to see what they hold, and /force-resethwid user:@them to clear a device binding without waiting for the cooldown.
Editing a panel
Panel text and buttons are fixed at creation. To change them, delete the old panel and post a new one:
/panels list
/panels delete panel_id:<id>
/setpanel channel:#get-script ...Colour and settings-driven changes — the accent, whether Reset HWID or Get Role appear — apply to existing panels after /panels refresh.