ZT Plush logoZT Plush

Documentation

Complete command reference, setup guides, and feature deep-dives. Last updated for v2.2.3.

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 setup tip: The Server Owner should run zt!setrole <tier> @Role to assign staff tiers. Tiers are helper, mod, senior, and owner. This unlocks the bot's permission system.

Permission Tiers

ZT Plush has four staff tiers plus the Server Owner. Each tier has clearly defined responsibilities:

Helper+

Read-only access to mod tools. Can view warnings and use /messagelog snipe.

Mod+

Day-to-day moderation. Run giveaways, toggle emoji/sticker policy, view AutoMod settings, all moderation actions.

Senior+

Server configuration. Configure tickets, welcome messages, reaction roles, AutoMod tweaks, music settings, stats channels, verification.

Server Owner

Bot identity and sensitive settings. Assign staff tiers, control mod log, toggle AutoMod, toggle Message Logger, sync commands, unban users.

Moderation

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 @userView a member's warnings
zt!unwarn <id>Low: Mod+, Med: Senior+, High: Owner
zt!timeout @user <duration> <reason>Up to 7d for Mod+, 28d for Senior+
zt!untimeout @userRemove timeout
zt!kick @user <reason>Kick member
zt!ban @user <reason>Ban member
zt!unban <user_id>Unban (irreversible action — Owner only)

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

AutoMod (Phishing Protection)

Detects and removes phishing/scam links automatically. Uses a curated Discord-targeted list plus the URLhaus public threat-intel feed (~14,000 domains, refreshed every 12 hours).

Default escalation per member, within 24 hours:

  • 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
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 threat list

Staff are exempt from AutoMod. Members at Helper+ tier and above will never have their messages removed, even if they post a flagged link.

Giveaways

Run prize drawings with role-based entry multipliers.

CommandDescription
zt!start <duration> <winners> <prize>Start a giveaway. Duration: 30s, 5m, 2h, 1d, 1w. Winners: 1-20
zt!end <id>End early
zt!reroll <id>Pick a new winner
zt!multiplier add @Role <2-10>Weighted entries for a role
zt!multiplier remove @RoleRemove a multiplier
zt!multiplier listShow all multipliers
zt!setlogchannel #channelWhere giveaway logs go

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

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 / resume / stop / leavePlayback controls
/music volume / shuffle / loop / filterTweak playback
/music remove / clearManage queue
/music lyricsFetch lyrics
/music playlist save / load / deleteSaved playlists (Plush+ unlimited)
/music 247 <on|off>24/7 mode
/music stayinvc <on|off>Don't auto-leave when VC empties

Welcome / Auto-Roles

Customizable welcome and goodbye messages with variable substitution. Auto-assign roles on join.

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

Variables you can use:

{user}, {user.tag}, {user.name}, {server}, {membercount}, {date}, {time}

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

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.

Message Logger (Plush+)

Plush+ Recover recently deleted messages with /messagelog snipe. Plush+ exclusive feature.

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+: 10 messages per channel, 1-hour retention. Bots and DMs are never logged.

Translation

DeepL-powered translation in 25 languages. Free tier: 5 per user per day.

CommandDescription
/translate text:<text or msg ID> to:<lang>Translate text or quote a message ID

Cached translations don't count against your quota — same text + same target = free repeat. Plush+ users get unlimited translations.

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 — When New Commands Don't Show

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.

Need more help?

Join the support server and ask Doog directly.

Join Support Server