
Documentation
Your guide to ZT Plush — every command, every variable, every detail you'll need. Last updated for v3.8.0.
Getting Started
Three steps to get ZT Plush running in your server:
- Click the invite link and choose your server.
- Authorize the requested permissions. The bot needs Manage Roles, Manage Messages, Send Messages, Embed Links, Add Reactions, and a few more — it asks only for what it actually uses.
- In any channel, run
/infofor a full feature overview, or/helpfor category-organized commands.
/staffrole set or zt!setrole <tier> @Role. The built-in tiers are owner, senior, mod and helper, and you can add your own on the dashboard's Permission Tiers page. This unlocks the permission system across every feature.Explanation: How Things Work
Before diving into individual features, here's how the recurring patterns work across the bot. Three things show up everywhere: variables, permission tiers, and defaults.
Variables (the curly braces)
Many features let you customize message templates. Anywhere you see {like_this} in a template, the bot replaces it with real values when the message goes out. Welcome messages, scheduled messages, giveaway embeds, and broadcasts all support them.
Common variables — available in most templates that involve a member or guild:
{user}— mentions the user (e.g. @SomeName){user.tag}— username#discriminator format{user.name}— just the username, no mention{user.id}— the Discord user ID{server}— the server name{server.id}— the server ID{membercount}— current member count{date}— today's date in the server's locale{time}— current timeFeature-specific variables (like {prize} for giveaways or {ends} for scheduled events) are documented in each feature section. If a variable doesn't apply to the message you're writing — say, {user} in a scheduled message that fires to a channel without a specific recipient — it just gets left as text. The bot won't crash.
Permission tiers
Every command lists its default tier. Everyone means any member. Helper+ means the Helper tier or higher (so Helper, Mod, Senior, and Owner, plus any custom tiers ranked between them). Servers can move any permission to a different tier. See the Permission Tiers section for full details.
Defaults vs. customization
Many features (welcome messages, giveaway embeds, AutoMod responses) work out of the box with sensible defaults. Customization is optional — leave a field blank in the dashboard and the bot falls back to the default. That makes it safe to experiment: you can't accidentally “break” a feature by leaving it half-configured.
Permission Tiers
Four built-in tiers come with every server, and you can add your own on the dashboard's Permission Tiers page (up to 15 in total, free). Tiers are a ladder: anyone on a tier can do everything the tiers below them can.
Light moderation: purge (up to 50), slowmode (up to 5 min), snipe deleted messages, skip anyone's song, bypass link scanning.
Day-to-day moderation: warn, timeout (up to 7 days), kick, lock channels, run giveaways, custom commands, emoji and stickers.
Server configuration: ban, welcome and booster setup, tickets, reaction roles, AutoMod settings, music settings, and the Permission Tiers editor.
The server owner, Administrators, and roles on the Owner tier: assign staff roles and unban. A few privacy settings (mod-log channel, Message Logger, AutoMod on/off) stay with the real server owner.
Custom tiers and permissions
Add a tier like “Lead Mod” or “Trial Helper”, drag it anywhere between the built-in ones, and map Discord roles to it. Every one of the 49 permissions can be pointed at any tier, so you can let Lead Mods ban without making them Senior. Owner always stays on top, and the built-in tiers keep their order.
| Command | Tier | Description |
|---|---|---|
/staffrole set tier:<name> role:@Role | Owner | Map a role to any tier (custom tiers autocomplete) |
/staffrole remove role:@Role | Owner | Take a role off its tier |
/staffrole list | Owner | Every tier and its roles, top to bottom |
zt!setrole <tier name> @Role | Owner | Same as /staffrole set, e.g. zt!setrole Lead Mod @Leads |
zt!unsetrole @Role | Owner | Same as /staffrole remove |
zt!roleslist | Senior+ | View all staff role assignments |
/staffrole, you can only change tiers, roles and permissions ranked below your own tier. Staff can't moderate anyone ranked above them, and roles on a staff tier are never handed out by reaction roles, the join role, role rewards, verification or booster rewards.Limits & Fair Use
To keep me fast and safe for every server, a few limits are built in. They're the same for everyone and can't be changed in settings.
- Commands: each member can run about 6 commands every 10 seconds, and each server about 120 a minute.
- Buttons and menus: about 8 clicks every 10 seconds per member. Big giveaways are fine: there's no server-wide cap on clicks.
- Dashboard: about 20 changes a minute per server.
- Scheduled messages repeat at most every 10 minutes. Role and @everyone pings need the Mention @everyone permission.
- Custom commands: up to 200 per server. AutoMod allow/block lists: up to 500 entries.
If you hit a limit, I'll ask you to slow down for a few seconds.
Restricted servers
Servers that try to break me, spam past these limits, or attack the dashboard can be restricted. A restricted server keeps moderation and Aurora AutoMod, but loses Mass-Tag, giveaways, custom commands and scheduled messages, can't change dashboard settings, and has Plush+ paused. In the most serious cases I leave the server and won't rejoin.
Moderation Commands
Severity-based warnings with auto-escalation. Warnings have three severities: low, medium, high. The bot automatically escalates based on a member's total active warnings.
| Command | Tier | Description |
|---|---|---|
zt!warn @user low|medium|high <reason> | Mod+ | Issue a warning |
zt!warnings [@user] | Everyone / Mod+ | Your own warnings for anyone; someone else's needs Mod+ |
zt!unwarn <id> | Tiered | Low: Mod+, Med: Senior+, High: Owner |
zt!timeout @user <duration> <reason> | Mod+ | Up to 7d below Senior, 28d for Senior+ |
zt!nick @user <nickname> | Mod+ | Change someone's nickname (not staff above you) |
zt!untimeout @user | Mod+ | Remove timeout |
zt!kick @user <reason> | Mod+ | Kick member |
zt!ban @user <reason> | Senior+ | Ban member |
zt!unban <user_id> | Owner | Unban (irreversible — Owner only) |
Staff can't warn, time out, kick, ban or rename anyone ranked above them on the tier ladder, even if their Discord role sits higher.
Auto-escalation thresholds trigger when total active warnings reach: 3 → automatic timeout, 6 → kick, 8 → ban. Low/medium severity warnings clear when a member leaves; high severity persists across rejoins (capped at 5).
Aurora AutoMod
Detects and removes phishing, scam and malware links automatically, in new messages, edited messages and forwarded messages.
What Aurora catches (v3.5.0)
- Known bad sites: a curated list of Discord-targeted scams plus two threat feeds, URLhaus (malware) and the community Discord phishing list, refreshed every 12 hours. Subdomains count too, so
login.bad-site.comis caught whenbad-site.comis listed. - Fake Discord, Steam and Roblox sites: lookalike letters (a Cyrillic “і” in “dіscord”), misspellings (
dlscord,steamcommunlty) and bait names likediscord-nitro-claim. - Links without https://:
discord-nitro.com/claimwritten as plain text, and “defanged” links likehxxps://bad[.]com.
Test it: post aurora-test.invalid from an account without a staff role. Aurora removes it and logs it, but nobody is warned for it. That address can never be a real site, so it's safe to type anywhere. Staff (Helper and up) skip link scanning by default, so use a member account.
Default escalation
Per member, within 24 hours of the first offense:
- 1st offense: Delete + high-severity warning + DM offender + ping staff
- 2nd offense: Delete + high warning + 1-hour timeout
- 3rd offense: Delete + 24-hour timeout
- 4th+ offense: Delete + ban
Allowlist & Blocklist (v3.1.0)
Server-specific overrides for the bot's threat detection. Configured from the dashboard's AutoMod page:
- Allowlist — domains the bot will never flag, even if a feed or a lookalike check would. Use for GIF hosts, your own domain, legit short links.
- Blocklist — domains the bot will always flag, regardless of any threat feed. Use for scammers targeting your community that aren't in URLhaus yet.
Both lists support leading-position wildcards: *.example.com matches all subdomains (e.g. sub.example.com) but not the bare example.com itself. Up to 500 entries per server. Your allowlist always wins, and your blocklist now beats the built-in safe list, so you can block even big sites if you need to.
| Command | Tier | Description |
|---|---|---|
/automod view | Mod+ | Current settings (read-only) |
/automod toggle <on|off> | Owner | Enable/disable globally |
/automod dm <on|off> | Senior+ | DM offenders on first hit |
/automod alert_role @Role | Senior+ | Staff role to ping in mod log |
/automod response <mode> | Owner | default / delete_only / delete_warn / delete_ban |
/automod refresh_threats | Senior+ | Manually update the threat feeds (once every 10 min) |
Welcome & Auto-Roles
Customizable welcome and goodbye messages with variable substitution. Auto-assign a role on join. Configure everything from the dashboard's Welcome page, or use the slash commands below.
| Command | Tier | Description |
|---|---|---|
zt!setwelcomechannel #channel | Senior+ | Where welcomes post |
zt!setgoodbyechannel #channel | Senior+ | Where goodbyes post |
zt!setwelcomemsg <text> | Senior+ | Welcome template |
zt!setgoodbyemsg <text> | Senior+ | Goodbye template |
zt!setjoinrole @Role | Senior+ | Auto-role on join |
Welcome Rotation (v3.1.0)
Tired of every new member getting the same greeting? Set up a rotation pool of welcome messages and the bot randomly picks one on each join.
- Free: 10 messages in the pool
- Plush+ 30 messages in the pool
Each message can be individually paused without losing its slot — handy for seasonal greetings. Configure rotation from the dashboard's Welcome page. If the rotation is enabled but the pool is empty (or all messages are paused), the bot falls back to the single welcome message above.
Variables available in welcome, goodbye, and rotation messages:
{user}— mention the new member{user.tag}— username#discriminator{user.name}— just the username{server}— the server name{membercount}— current member count{date}— today's date{time}— current timeBirthday Tracker
Let members register their birthday (month and day — no year) with the bot. On the day, the bot posts an announcement in your chosen channel, optionally pinging a celebration role.
| Command | Tier | Description |
|---|---|---|
/birthday set date:<MM-DD> | Everyone | Register or update your birthday |
/birthday remove | Everyone | Remove your birthday from this server |
/birthday list | Everyone | See upcoming birthdays in this server |
/birthday next | Everyone | See whose birthday is next |
Configure the announcement channel, ping role, and custom message from the dashboard's Birthday page.
Booster Rewards
When someone boosts your server, the bot can post a thank-you message. Set the channel and message from the dashboard's Booster page or with /booster.
Boost-time rewards
Give a role, plus bonus giveaway entries if you like, for boosting a set number of months in a row: 0 months (as soon as they boost), 1, 3, 6, up to 60. Up to 12 rewards per server, free. The clock starts from their current boost, so if they stop boosting the rewards come off and the count restarts. Each reward is handed out once per boost, so a role you remove by hand stays removed.
Stack or replace: keep every reward reached (1, 3 and 6 months together, bonus entries added up), or keep only the latest one.
Boost-count tiers Plush+
Roles for how many boosts someone has put on the server (“3+ boosts”, “5+ boosts”). Discord doesn't tell bots that number, so everyone starts at 1 and you set higher counts by hand under Tracked boosters. Still in testing, with its own stack or replace setting. Free servers keep any saved tiers, but they don't hand out roles.
| Command | Tier | Description |
|---|---|---|
/booster setchannel #channel | Senior+ | Where thank-you messages go |
/booster setmessage <text> | Senior+ | Message template ({user}, {server}, {boostcount}) |
/booster setrole @Role | Senior+ | A role for anyone boosting (a 0-month time reward) |
/booster config | Senior+ | Show the current setup |
/booster enable / disable | Senior+ | Turn thank-you messages on or off |
Counting & Word-Chain
Two classic Discord channel games, both built in:
- Counting — members take turns counting up: 1, 2, 3, 4… The bot tracks the current number, the all-time high, and (optionally) prevents the same user from counting twice in a row.
- Word-Chain — each new word must start with the last letter of the previous word. The bot enforces the rule, tracks the chain length, and remembers your server's best streak.
Both are configured per-channel from the dashboard. Set the channel, the bot enforces the rules. Failed attempts are deleted automatically.
Reaction Roles
Click-to-assign role panels. Pipe-separated syntax, supports unicode and custom emojis.
| Command | Tier | Description |
|---|---|---|
zt!rrcreate #channel | Title | 🎮 @Role | 🎬 @Role | Senior+ | Create panel |
zt!rredit <message_id> add <emoji> @Role | Senior+ | Add reaction to existing panel |
zt!rredit <message_id> remove <emoji> | Senior+ | Remove reaction |
zt!rrlist | Senior+ | List all panels |
zt!rrdelete <message_id> | Senior+ | Delete panel |
Custom Commands
Define your own slash-prefix commands with custom responses. Optionally restrict who can use them, and add multiple responses to pick from at random.
| Command | Tier | Description |
|---|---|---|
/customcommand create <name> <response> | Senior+ | Create a new command |
/customcommand edit <name> <response> | Senior+ | Update the response |
/customcommand restrict <name> @Role | Senior+ | Restrict to a role |
/customcommand random <name> <toggle> | Senior+ | Enable multi-response random pick |
/customcommand delete <name> | Senior+ | Delete a command |
/customcommand list | Everyone | See available commands |
Giveaways
Run prize drawings with role-based bonus entries. Start from the dashboard or via slash command. Each server picks how bonuses combine on the Giveaways page: add them up (+2 and +3 roles give 1 + 2 + 3 = 6 entries) or highest only (1 + 3 = 4 entries). The change applies to entries made after you switch.
| Command | Tier | Description |
|---|---|---|
/giveaway start prize:<text> duration:<dur> [winners] [rules…] [ping_role] [claim_time] | Mod+ | Start a giveaway |
/giveaway edit id:<id> [prize] [ends_in] [winners] [rules…] | Mod+ | Change a running giveaway |
/giveaway end id:<id> | Mod+ | End early |
/giveaway reroll id:<id> | Mod+ | Pick a new winner (skips current winners) |
zt!bonus add @Role <1-100> | Senior+ | Server-wide bonus entries for a role |
zt!bonus remove @Role | Senior+ | Remove a bonus |
zt!bonus list | Senior+ | Show all bonuses |
zt!setlogchannel #channel | Senior+ | Where giveaway logs go |
Who can enter (v3.4.5)
Each giveaway can have its own entry rules. Members who don't qualify get a private note telling them why.
- Required roles: pick one or more. Choose whether members need any one of them or all of them.
- Blocked roles: members with any of these can't enter.
- Time in server: members must have been in the server for at least N days.
- Plush+ Account age: the member's Discord account must be at least N days old. Good for keeping alt accounts out.
Editing a running giveaway (v3.4.5)
Press Edit on a live giveaway in the dashboard, or use /giveaway edit, to change the prize, end time, number of winners or entry rules. The giveaway message updates straight away. New rules apply to new entries; people who already entered stay in.
Button, pings and winners (v3.4.5)
- Enter button: set your own text, emoji and color server-wide. Plush+ lets you style it per giveaway too.
- Role ping: ping a role when a giveaway starts, ends, or both.
- Winner DM: write your own message. Variables:
{prize}{server}{channel}{hostmention}{claimby}. - Plush+ Claim window: winners get a Claim prize button (in the channel and in their DMs). If they don't press it in time, a new winner is drawn automatically, up to 10 times per giveaway.
Customization (v3.2.0)
From the dashboard's Giveaways page, you can set server-wide defaults for new giveaway embeds — title template, color, footer, thumbnail, plus a rotating pool of up to 4 image URLs (randomly picked per giveaway). Templates support variables:
Variables available in giveaway templates:
{prize}— the prize name{id}— giveaway ID number{ends}— relative end time (e.g. "in 2 hours"){endsfull}— full end timestamp{hostmention}— mention the host{winners}— number of winners{entries}— current entry count{winnermentions}— comma-separated winner mentions (winner/ended templates only)“Who entered” view (v3.2.0)
On the dashboard's Giveaways page, each giveaway card has a collapsible Show entrants dropdown. Available to anyone with Manage Server permissions. Shows entry weights and win chances, who has left the server, who won, and whether each winner has claimed. You can search it and export it as CSV.
Scheduled Messages
Queue messages to fire at a specific time, or have them recur on a schedule. Each message can broadcast to multiple channels in one shot.
- Free: 10 scheduled messages per server, 1 channel each
- Plush+ 40 scheduled messages per server, up to 5 channels each (broadcast)
Schedule types:
once— fires at a specific date/time, then disables itselfhourly,daily,weekly— repeats at that interval starting from when you savecustom— fires every N minutes (1 minute to 30 days)
Each scheduled message can be plain text or a custom embed (title, description, color, image, thumbnail, footer). Configure everything from the dashboard's Scheduled Messages page.
Overseer Logs
Plush+ Advanced logging for your server, set up on the dashboard. Every entry says who did it: a staff member, ZT Plush (AutoMod or Aurora), another bot, or the member themselves.
What gets logged: bans, unbans, kicks, timeouts and warns; deleted, purged and edited messages, with image previews and a transcript file for purges; voice joins, leaves and moves; member joins, leaves, nickname and role changes; channels and roles created, deleted or edited.
Set it up: Dashboard → Overseer Logs. Switch each event on or off, give each group its own channel (or use your mod log), and ignore channels or roles.
Members who used /privacy optout message_log never have their message text logged.
Message Logger
Plush+ Keeps recently deleted messages so staff can bring them back with /messagelog snipe, and can post each deletion to your mod log.
What's kept: the text, author and attachment links of deleted messages, never bot messages or DMs. For full server logging, see Overseer Logs.
| Command | Tier | Description |
|---|---|---|
/messagelog snipe [count] | Helper+ | Show recently deleted in this channel |
/messagelog view | Senior+ | Current settings |
/messagelog toggle <on|off> | Owner | Enable/disable (privacy-sensitive) |
/messagelog post_to_modlog <on|off> | Senior+ | Auto-post deletions to mod log |
Role Rewards
Plush+ When a member gains a specific role, the bot automatically gives them another role. Use it to set up “promotion chains” — getting promoted to Junior Mod also grants the all-staff color role, for example.
Each rule has a trigger role (what they gain) and a reward role (what gets added). Optionally configure the reward to be removed when the trigger is removed.
Configure from the dashboard's Role Rewards page. Each server can have multiple rules; they all evaluate independently.
Mass-Tag
Plush+ Send a DM to every member who holds a specific role. Useful for staff announcements, ticket follow-ups, or coordinating events.
Safeguards: Members can opt out per-server. Hard caps on recipients and daily sends prevent accidental abuse. Throttled DM delivery to avoid Discord rate limits.
| Command | Tier | Description |
|---|---|---|
/masstag send role:@Role message:<text> | Senior+ | Send to all members of a role |
/masstag optout | Everyone | Opt out of mass tags in this server |
/masstag optin | Everyone | Opt back in |
/masstag status | Senior+ | See active send progress + daily quota |
/masstag cancel | Senior+ | Cancel an in-progress send |
Verification Gate
Bot-protected entry gate, free for everyone. New members see a button → solve a colored-button challenge → role assigned. Stops raid bots cold.
| Command | Tier | Description |
|---|---|---|
/verify setup channel:#x verified_role:@Role rules:"text" | Senior+ | Set up the panel |
/verify view | Senior+ | Current settings |
/verify disable | Senior+ | Disable verification |
Stats Channels
Auto-updating voice channels that display live server stats. Pick a stat type, pick a channel, customize the name template — the bot keeps the name in sync.
Available stat types: members, online, bots, humans, roles, channels, boosts, bot status.
- Free: 2 stats channels per server
- Plush+ 10 stats channels per server
Configure from the dashboard's Stats Channels page.
Support Tickets
13 ticket categories with auto-transcripts. Set up the panel once; members open tickets via dropdown.
| Command | Tier | Description |
|---|---|---|
zt!ticketsetup #channel | Senior+ | Post the ticket panel |
zt!resetticketpanel | Senior+ | Recreate the panel |
zt!setsupportrole @Role | Senior+ | Role pinged when ticket opens |
zt!setticketlogs #channel | Senior+ | Where ticket transcripts go on close |
Soundboard
A server soundboard with 35 clip slots, Plush+ only. Clips play in your voice channel; if music is playing it pauses for the clip and picks back up after. Each clip is capped at 30 seconds. Add and manage clips from the dashboard's Soundboard page.
| Command | Tier | Description |
|---|---|---|
/soundboard play clip:<name> | Everyone | Play a clip (names autocomplete; blocked for quarantined members) |
/soundboard list | Everyone | All clips on this server |
/soundboard stop | Everyone | Stop the clip and resume music |
/soundboard panel [#channel] | Senior+ | Post a persistent button panel |
Quarantined Role
Pick one role that locks members out of chosen features (soundboard, music, mass-tag, polls and more) without touching their Discord permissions. Give someone the role to restrict them; take it away and everything comes back. Choose what it blocks on the dashboard's Quarantine page.
| Command | Tier | Description |
|---|---|---|
/quarantine view | Everyone | Show the current quarantine setup |
/quarantine set role:@Role | Senior+ | Set the quarantine role |
/quarantine clear | Senior+ | Remove the quarantine role and all blocks |
Music Player
Lavalink-powered with multi-source playback. Best results: SoundCloud URLs — text queries open a picker. YouTube major-label tracks may require login; SoundCloud and indie YouTube work reliably.
| Command | Tier | Description |
|---|---|---|
/music play <query> | Everyone | Play or queue a track |
/music skip | Everyone | Skip current track |
/music queue | Everyone | View the queue |
/music nowplaying | Everyone | Show what's playing |
/music pause / resume | Everyone | Playback controls |
/music stop / leave | Senior+ * | Stop playback and disconnect |
/music volume / shuffle / loop / filter | Everyone | Tweak playback |
/music remove | Everyone | Remove a track from the queue |
/music clear | Senior+ * | Empty the queue |
/music lyrics | Everyone | Fetch lyrics |
/music playlist save / load / delete | Everyone | Saved playlists (Plush+ servers) |
/music 247 <on|off> | Senior+ | 24/7 mode |
/music stayinvc <on|off> | Senior+ | Don't auto-leave when VC empties |
* Anyone can stop, leave or clear when every song in the queue is theirs, or when they're the only person listening. /music forceskip works for Helper+ or whoever queued the song.
Bot Language
ZeroTwo Plush speaks English, Español, Português (Brasil), Français, Deutsch, 日本語 and 한국어. Free for every server.
- Server language: used for everything members see (public replies, giveaways, mod logs, welcome defaults). Staff set it with
/language serveror on the dashboard's server overview. - Your language: used for replies only you see, in every server. Set it with
/language meor the language menu in the top right of the site. - Slash command descriptions follow your Discord app's language automatically.
- Anything your team writes (welcome messages, custom commands, embeds) is never translated.
| Command | Tier | Description |
|---|---|---|
/language view | Everyone | See the language for this server and for you |
/language me <language> | Everyone | Pick your own language, or “Follow the server” |
/language server <language> | Senior+ | Set the server’s language (permission key: Set the bot language) |
Privacy & Your Data
Download or delete what the bot keeps about you, in every server, with /privacy or on the dashboard's Your data page. Exports and deletes can be done once every 10 minutes.
| Command | Tier | Description |
|---|---|---|
/privacy export | Everyone | Get a file with the data the bot holds about you |
/privacy delete | Everyone | Delete your personal data (asks you to confirm first) |
/privacy optout feature:message_log | Everyone | Stop Message Logger from recording your deleted messages, in every server |
/privacy optin feature:message_log | Everyone | Turn Message Logger recording back on for you |
/privacy view | Everyone | See your privacy settings |
Delete keeps what belongs to a server's safety and history: warnings, AutoMod hits, tickets you opened, Mass-Tags you sent, giveaways you hosted and things you created for a server. Your opt-outs are kept too, so logging and DMs stay off.
When the bot is removed from a server, that server's data is deleted 30 days later unless the bot is added back. Full details are in the Privacy Policy.
Announcements from ZT Plush
Now and then the developer posts news about new features and updates to every server. Staff can turn these off or choose the channel they go to, here or on the dashboard's server overview.
| Command | Tier | Description |
|---|---|---|
/announcements status | Everyone | See if announcements are on and where they go |
/announcements off | Senior+ | Stop regular announcements |
/announcements on | Senior+ | Get them again |
/announcements channel [channel] | Senior+ | Pick the channel; leave it empty to go back to automatic |
Translation
DeepL-powered translation into every language DeepL supports (30+, searchable). Caps apply per-user, per-server, per day — meaning your usage in one server doesn't eat into your usage in another.
- Free servers: 5 translations per user per day
- Plush+ 20 translations per user per day (4× the cap)
| Command | Tier | Description |
|---|---|---|
/translate text:<text or msg ID> [to:<lang>] | Everyone | Translate text or a message ID. Type in “to” to search every DeepL language; leave it empty for your own language. |
Cached translations don't count — same text + same target language = free repeat. Resets at midnight UTC.
Polls, AFK, Reminders
| Command | Tier | Description |
|---|---|---|
/poll create <question> <options> [duration] | Everyone | Pipe-separated options, 2-10 |
/poll end <message_id> | Creator only | End early |
/afk set <reason> | Everyone | Set AFK status |
/afk clear | Everyone | Clear AFK manually |
/remind me <duration> <message> | Everyone | Set a reminder |
/remind list | Everyone | View your reminders |
/remind cancel <id> | Everyone | Cancel a reminder |
Content Extraction
Extract emojis, stickers, avatars from any message. Embed social media URLs cleanly.
| Command | Tier | Description |
|---|---|---|
/emoji steal <input> | Everyone | Up to 10 emojis or a message ID |
/sticker steal <message_id> | Everyone | Steal a sticker |
/avatar [@user] | Everyone | View avatar with download buttons |
/tweet embed <url> | Everyone | Embed Twitter/X URL |
/reddit embed <url> | Everyone | Embed Reddit URL |
/instagram embed <url> | Everyone | Embed Instagram URL |
/tiktok embed <url> | Everyone | Embed TikTok URL |
/emoji toggle <on|off> | Mod+ | Toggle emoji extraction |
/sticker toggle <on|off> | Mod+ | Toggle sticker extraction |
Command Updates
Discord caches command lists per-server. After updates, new commands may not appear immediately. This is normal — here's how to fix it:
- Refresh your Discord client first: Press Ctrl+R on desktop, force-close and reopen on mobile.
- Still missing? Server Owner runs
/sync refresh— instant per-server sync (5-min cooldown). - Need to reset?
/sync resetremoves guild-specific overrides.
Why this happens: ZT Plush registers commands globally. Discord's CDN propagates updates within ~1 hour, but Ctrl+R and /sync refresh skip the wait.
The Road Ahead
Curious what's next? Here's the public roadmap. Anything labeled Future ideas is subject to change — Doog keeps things flexible to respond to feedback from servers like yours.
- ✓ New-server setup: a step-by-step wizard on the dashboard
- ✓ Language and staff roles
- ✓ Moderation and Aurora
- ✓ Welcome and verification
- ✓ Pick your engagement features
- ✓ /help and /info point new servers to the setup
- ✓ Your data: /privacy export and delete
- ✓ Overseer Logs: advanced logging (Plush+)
- ✓ 7 languages: English, Español, Português, Français, Deutsch, 日本語, 한국어
- ✓ Bot, dashboard, site and docs all translated
- ✓ Server language + your own personal language
- ✓ Language picker in the site header
- ✓ /translate: every DeepL language
- ✓ Incident lockdown + nightly backups
Also out: giveaway entry rules and claim windows (v3.4.5), custom permission tiers (v3.4.0), Soundboard and Quarantine (v3.3).
- · The ZT Plush TCG: a card game inside Discord
- · Every update after v3.8.0 builds toward it
- · Official release: v4.0.0
Subject to change based on feedback and community growth.
You are here: v3.8.0 released
Still need help?
Join the support server and ask Doog directly. Bug reports and feature ideas welcome.
Join Support Server