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:

  1. Click the invite link and choose your server.
  2. 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.
  3. In any channel, run /info for a full feature overview, or /help for category-organized commands.
First-time tip: The Server Owner should map staff roles to tiers with /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 time

Feature-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.

About Plush+ — Some features have a free tier (works for any server) and a Plush+ tier (unlocks higher limits, more slots, exclusive features). Plush+ is a one-time $20 per server, no subscription, applies forever to that server. Prices are subject to change as ZT Plush adds features, improves accessibility, and as hosting and API costs (like DeepL) change. Servers that already have Plush+ keep it. We also run discounts from time to time.

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.

Helper+

Light moderation: purge (up to 50), slowmode (up to 5 min), snipe deleted messages, skip anyone's song, bypass link scanning.

Mod+

Day-to-day moderation: warn, timeout (up to 7 days), kick, lock channels, run giveaways, custom commands, emoji and stickers.

Senior+

Server configuration: ban, welcome and booster setup, tickets, reaction roles, AutoMod settings, music settings, and the Permission Tiers editor.

Owner

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.

CommandDescription
/staffrole set tier:<name> role:@RoleMap a role to any tier (custom tiers autocomplete)
/staffrole remove role:@RoleTake a role off its tier
/staffrole listEvery tier and its roles, top to bottom
zt!setrole <tier name> @RoleSame as /staffrole set, e.g. zt!setrole Lead Mod @Leads
zt!unsetrole @RoleSame as /staffrole remove
zt!roleslistView all staff role assignments
Nobody can promote themselves. In the editor and with /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.
No power roles handed out (v3.4.7). I never give out a role that has Administrator, Manage Server, Manage Roles, Manage Channels, Manage Webhooks, Ban, Kick, Timeout or Mention @everyone, whatever it's set up as. And you can only set up roles that sit below your own highest role (the server owner can set up any).

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.

Think your server was restricted by mistake? The server owner can appeal in the support server.

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.

CommandDescription
zt!warn @user low|medium|high <reason>Issue a warning
zt!warnings [@user]Your own warnings for anyone; someone else's needs Mod+
zt!unwarn <id>Low: Mod+, Med: Senior+, High: Owner
zt!timeout @user <duration> <reason>Up to 7d below Senior, 28d for Senior+
zt!nick @user <nickname>Change someone's nickname (not staff above you)
zt!untimeout @userRemove timeout
zt!kick @user <reason>Kick member
zt!ban @user <reason>Ban member
zt!unban <user_id>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.com is caught when bad-site.com is listed.
  • Fake Discord, Steam and Roblox sites: lookalike letters (a Cyrillic “і” in “dіscord”), misspellings (dlscord, steamcommunlty) and bait names like discord-nitro-claim.
  • Links without https://: discord-nitro.com/claim written as plain text, and “defanged” links like hxxps://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.

CommandDescription
/automod viewCurrent settings (read-only)
/automod toggle <on|off>Enable/disable globally
/automod dm <on|off>DM offenders on first hit
/automod alert_role @RoleStaff role to ping in mod log
/automod response <mode>default / delete_only / delete_warn / delete_ban
/automod refresh_threatsManually update the threat feeds (once every 10 min)
Staff skip link scanning. Anyone with the “Bypass link scanning” permission (Helper+ by default) never has a message removed for a flagged link.

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.

CommandDescription
zt!setwelcomechannel #channelWhere welcomes post
zt!setgoodbyechannel #channelWhere goodbyes post
zt!setwelcomemsg <text>Welcome template
zt!setgoodbyemsg <text>Goodbye template
zt!setjoinrole @RoleAuto-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 time

Birthday 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.

CommandDescription
/birthday set date:<MM-DD>Register or update your birthday
/birthday removeRemove your birthday from this server
/birthday listSee upcoming birthdays in this server
/birthday nextSee 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.

CommandDescription
/booster setchannel #channelWhere thank-you messages go
/booster setmessage <text>Message template ({user}, {server}, {boostcount})
/booster setrole @RoleA role for anyone boosting (a 0-month time reward)
/booster configShow the current setup
/booster enable / disableTurn 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.

CommandDescription
zt!rrcreate #channel | Title | 🎮 @Role | 🎬 @RoleCreate panel
zt!rredit <message_id> add <emoji> @RoleAdd reaction to existing panel
zt!rredit <message_id> remove <emoji>Remove reaction
zt!rrlistList all panels
zt!rrdelete <message_id>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.

CommandDescription
/customcommand create <name> <response>Create a new command
/customcommand edit <name> <response>Update the response
/customcommand restrict <name> @RoleRestrict to a role
/customcommand random <name> <toggle>Enable multi-response random pick
/customcommand delete <name>Delete a command
/customcommand listSee 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.

CommandDescription
/giveaway start prize:<text> duration:<dur> [winners] [rules…] [ping_role] [claim_time]Start a giveaway
/giveaway edit id:<id> [prize] [ends_in] [winners] [rules…]Change a running giveaway
/giveaway end id:<id>End early
/giveaway reroll id:<id>Pick a new winner (skips current winners)
zt!bonus add @Role <1-100>Server-wide bonus entries for a role
zt!bonus remove @RoleRemove a bonus
zt!bonus listShow all bonuses
zt!setlogchannel #channelWhere 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.
People who leave can't win. When winners are drawn (at the end, on a reroll or an auto-reroll), anyone who has left the server is skipped. If they come back before the draw, they count again.

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)
Existing giveaways aren't touched by customization changes — only new giveaways inherit the current defaults. Defaults are snapshotted at create time, so changing them later won't mess with a giveaway that's already running.

“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 itself
  • hourly, daily, weekly — repeats at that interval starting from when you save
  • custom — 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.

Bot offline at fire time? When the bot starts back up, it spots any messages that should have fired during downtime, disables them, and notifies the mod log channel (or DMs the owner). You can re-enable from the dashboard once you've decided whether to fire-now or skip.

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.

Permissions: give ZT Plush View Audit Log so it can tell who did what, plus Send Messages, Embed Links and Attach Files in your log channels.

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.

CommandDescription
/messagelog snipe [count]Show recently deleted in this channel
/messagelog viewCurrent settings
/messagelog toggle <on|off>Enable/disable (privacy-sensitive)
/messagelog post_to_modlog <on|off>Auto-post deletions to mod log
Plush+ unlocks: 10 deleted messages per channel for 1 hour (instead of 1 for 5 minutes), plus Overseer Logs.

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.

CommandDescription
/masstag send role:@Role message:<text>Send to all members of a role
/masstag optoutOpt out of mass tags in this server
/masstag optinOpt back in
/masstag statusSee active send progress + daily quota
/masstag cancelCancel 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.

CommandDescription
/verify setup channel:#x verified_role:@Role rules:"text"Set up the panel
/verify viewCurrent settings
/verify disableDisable verification
Anti-spam: 5 failed attempts triggers a 1-hour cooldown. Make sure the bot's role is above the verified role in Server Settings → Roles.

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.

CommandDescription
zt!ticketsetup #channelPost the ticket panel
zt!resetticketpanelRecreate the panel
zt!setsupportrole @RoleRole pinged when ticket opens
zt!setticketlogs #channelWhere 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.

CommandDescription
/soundboard play clip:<name>Play a clip (names autocomplete; blocked for quarantined members)
/soundboard listAll clips on this server
/soundboard stopStop the clip and resume music
/soundboard panel [#channel]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.

CommandDescription
/quarantine viewShow the current quarantine setup
/quarantine set role:@RoleSet the quarantine role
/quarantine clearRemove 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.

CommandDescription
/music play <query>Play or queue a track
/music skipSkip current track
/music queueView the queue
/music nowplayingShow what's playing
/music pause / resumePlayback controls
/music stop / leaveStop playback and disconnect
/music volume / shuffle / loop / filterTweak playback
/music removeRemove a track from the queue
/music clearEmpty the queue
/music lyricsFetch lyrics
/music playlist save / load / deleteSaved playlists (Plush+ servers)
/music 247 <on|off>24/7 mode
/music stayinvc <on|off>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 server or on the dashboard's server overview.
  • Your language: used for replies only you see, in every server. Set it with /language me or 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.
CommandDescription
/language viewSee the language for this server and for you
/language me <language>Pick your own language, or “Follow the server”
/language server <language>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.

CommandDescription
/privacy exportGet a file with the data the bot holds about you
/privacy deleteDelete your personal data (asks you to confirm first)
/privacy optout feature:message_logStop Message Logger from recording your deleted messages, in every server
/privacy optin feature:message_logTurn Message Logger recording back on for you
/privacy viewSee 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.

CommandDescription
/announcements statusSee if announcements are on and where they go
/announcements offStop regular announcements
/announcements onGet them again
/announcements channel [channel]Pick the channel; leave it empty to go back to automatic
Important notices (security issues, Terms or Privacy changes) always arrive, even when announcements are off.

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)
CommandDescription
/translate text:<text or msg ID> [to:<lang>]Translate text or a message ID. Type in “to” to search every DeepL language; leave it empty for your own language.
Why the cap? DeepL is a paid API and the best translation engine currently available. The cap helps keep costs sustainable on the bot's end. With enough support from Plush+ servers, we'll be able to raise this cap in the future for more convenience to everyone — that's you all.

Cached translations don't count — same text + same target language = free repeat. Resets at midnight UTC.

Polls, AFK, Reminders

CommandDescription
/poll create <question> <options> [duration]Pipe-separated options, 2-10
/poll end <message_id>End early
/afk set <reason>Set AFK status
/afk clearClear AFK manually
/remind me <duration> <message>Set a reminder
/remind listView your reminders
/remind cancel <id>Cancel a reminder

Content Extraction

Extract emojis, stickers, avatars from any message. Embed social media URLs cleanly.

CommandDescription
/emoji steal <input>Up to 10 emojis or a message ID
/sticker steal <message_id>Steal a sticker
/avatar [@user]View avatar with download buttons
/tweet embed <url>Embed Twitter/X URL
/reddit embed <url>Embed Reddit URL
/instagram embed <url>Embed Instagram URL
/tiktok embed <url>Embed TikTok URL
/emoji toggle <on|off>Toggle emoji extraction
/sticker toggle <on|off>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:

  1. Refresh your Discord client first: Press Ctrl+R on desktop, force-close and reopen on mobile.
  2. Still missing? Server Owner runs /sync refresh — instant per-server sync (5-min cooldown).
  3. Need to reset? /sync reset removes 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.

v3.8.0Released
  • ✓ 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+)
v3.7.5Released
  • ✓ 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).

v4.0.0Up next
  • · 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.

v3.4
v3.6
v3.7.5
v3.8
v4.0

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