docs
How to set scraps up and get the most out of it. For a quick list of every command, see the commands page.
overview
introduction
scraps is a multipurpose Discord bot for moderation, security and community features. Add it to your server and it runs AutoMod, anti-raid, verification, logs and tickets for you, with Last.fm, image tools and plenty more for your members.
Note: The default prefix is . and every server can change it with prefix. You can also mention the bot instead of using a prefix: @scraps help.
what it does
- Security and moderation: AutoMod blocks phishing, ads, NSFW links and spam. Anti-raid catches coordinated joins and cleans up after them. Verification puts a captcha in front of new members, and moderation, jail and the honeypot handle the rest.
- Logging: message edits and deletes, joins and leaves, roles, voice, mod cases and tickets, each in a channel you choose. See logging.
- Community: tickets, welcome messages, role reactions, a starboard, levels, VoiceMaster, giveaways and games.
- Media and integrations: Last.fm, a social link fixer, song recognition, search and image tools.
Looking for one command? The commands page lists every one of them.
where to start
| Guide | What it covers |
|---|---|
| Getting started | Invite the bot, give it the right permissions and run the first setups |
| Security | AutoMod, anti-raid, verification, moderation, jail, honeypot |
| Configuration | Logs, tickets, roles, welcome messages, levels, VoiceMaster and more |
| Integrations | Last.fm |
| Embed code | Build custom messages for welcome, autoresponders and embeds |
overview
getting started
1. invite scraps and check its permissions
scraps can only do what its role allows. For the full feature set give it these permissions, or just Administrator if you prefer:
| Permission | Needed for |
|---|---|
| Manage Roles | Jail, verification, level roles, booster roles, role reactions, autoresponder roles |
| Manage Channels | Lock and unlock, VoiceMaster, tickets, honeypot, raid lockdown |
| Manage Messages | Purge, AutoMod, anti-raid cleanup, message logs |
| Kick Members, Ban Members | Kick, ban, softban and anti-raid punishments |
| Moderate Members | Timeouts |
| View Audit Log | Showing who did an action in the logs |
| Manage Server | AutoMod's native server rules |
| Send Messages, Embed Links, Attach Files, Add Reactions | Everything that replies |
Warning: Move the scraps role above the roles it must manage. Discord does not let any bot assign, remove or jail roles that sit above its own highest role. This is the most common cause of "it doesn't work". See common issues.
2. recommended setup order
- Logs: run
.logs setupso every later action is recorded. See logging. - AutoMod: run
.automod setup. Start in Preview mode, check what it would catch, then switch to Live. See AutoMod. - Anti-raid: run
.antiraid setup. Also starts in preview. See anti-raid. - Jail: run
.jail setupso anti-raid and moderators can jail members. See jail. - Verification (optional): run
.verification setupif you want newcomers to pass a captcha. See verification. - Everything else (tickets, levels, welcome messages, ...) is optional and independent.
overview
commands & permissions
prefix and slash commands
Most commands work both ways: as a prefix command (.ban @user) and as a slash command (/ban). In the tables of this documentation the Use column shows which:
- P: prefix only
- P+S: prefix and slash
Setup commands (automod setup, antiraid setup, ticket setup, ...) open an interactive wizard with buttons and menus, so you rarely need to remember arguments.
who can run a command
Each command lists the Discord permission it needs. scraps checks the member's permission, then checks fake permissions (see fake permissions). A command that needs Manage Server can therefore be unlocked for a role without giving that role the real permission.
command cooldowns
Heavy commands (image tools, fix, search, shazam, taste) have a short per-user cooldown. If you hit it, the bot tells you how long to wait.
custom prefix
See prefix for the server prefix and selfprefix for a personal prefix that works in every server.
security
automod
AutoMod watches every new and edited message and removes the ones that break your rules. It has six modules that you turn on one by one:
| Module | Catches |
|---|---|
Anti-spam (spam) | Repeated messages, flooding and mention spam |
Anti-raid (raid) | Join bursts, new-account waves and coordinated spam (shares its settings with anti-raid) |
Anti malicious links (links) | Phishing, scam and malware links, from block lists refreshed daily |
Anti advertisements (ads) | Invites to other servers and self-promotion |
Anti NSFW links (nsfw) | Links to adult sites |
Blacklisted words (words) | Words and links you list yourself |
why use preview mode first?
AutoMod has two modes:
- Preview: only logs what it would have done. Nothing is deleted. Use it for a few days to see false positives.
- Live: removes messages, applies the punishment and creates Discord's native AutoMod rules where it can.
AutoMod starts in Preview, with every module off. The recommended first modules are spam, links and raid.
Tip: AutoMod never edits a server rule it did not create. Your own native AutoMod rules are left alone, and automod rules shows any conflicts.
module options
Each stored module has these options (not every module uses every option):
| Option | Values | Default |
|---|---|---|
| Sensitivity | relaxed, balanced, strict | balanced |
| Action | delete, or delete and timeout | delete |
| Timeout length | 10m, 1h, 6h, 24h, 7d | 1h |
| Mention limit (spam) | 2 – 50 mentions in one message | 8 |
| Compromised-account timeout (links) | 10m – 7d | 24h |
| Newcomer days (ads) | 1 – 60 days | 7 |
| Partners (ads) | Up to 30 invites or servers you allow | none |
| Trusted roles (ads) | Up to 10 roles allowed to advertise | none |
| Exempt roles / channels | Up to 20 roles, 50 channels | none |
setting up
automod setup
Opens the step-by-step wizard: pick modules, sensitivity, punishments, exemptions, the notify role and the mode.
- permissions
- Manage Server
- use
- P+S
.automod setup
automod status
Shows each module's state, protection and the last 30 days of catches.
.automod status
automod mode
Switch between Preview (log only) and Live.
.automod mode (preview or live)
.automod mode live
automod enable / automod disable
Turn one module on or off while keeping its settings.
.automod enable (module)
.automod disable (module)
.automod enable links
.automod disable ads
Tip: Module names accept forms such as spam, antispam, links, malicious-links, ads, nsfw, words and blacklist.
automod settings
Change one module's options, or list them all when you give no module.
.automod settings [module]
.automod settings spam
blacklist
The blacklist is the words module: words and links scraps removes.
| Command | Syntax | What it does |
|---|---|---|
automod blacklist add | .automod blacklist add (entries) | Add words or links, separated by commas. Put ~ before a word to also match it inside other words |
automod blacklist remove | .automod blacklist remove (entry) | Remove one entry |
automod blacklist list | .automod blacklist list | Page through the list |
.automod blacklist add badword, ~slur, evil-site.com
Limits: 500 words, 200 link entries, entries up to 60 characters, and at most 2 wildcards per entry.
allowing domains
For the links, ads and nsfw modules you can allow a domain or one short link.
| Command | Syntax |
|---|---|
automod allow | .automod allow (domain) [module] |
automod unallow | .automod unallow (domain) |
automod allowlist | .automod allowlist |
.automod allow youtube.com ads
Up to 200 allowed entries.
server rules
| Command | What it does |
|---|---|
automod rules | Shows the native rules scraps owns, your own rules, free slots and any conflicts |
automod sync | Checks and repairs the native rules now |
security
anti-raid
Anti-raid detects raids and coordinated spam, then reacts the way you choose. It watches joins (join bursts and new-account waves) and behaviour (the same message from many accounts), and groups evidence into incidents.
how it works
Evidence is graded into three levels, low, medium and high, and antiraid punishment lets you choose what happens at each level.
| Punishment | Can be undone | Durations |
|---|---|---|
jail | Yes | 1h, 6h, 24h (default), 3d, 7d, or until released |
timeout | Yes | 10m, 1h (default), 6h, 24h, 7d |
kick | No | — |
ban | No | — |
Extra options:
- Purge: delete the raiders' messages that match the confirmed pattern.
- Lockdown: temporarily lock channels while a raid is active (needs purge on, and lifts itself after a maximum time).
- Quiet welcome: no welcome pings during a raid.
Sensitivity can be relaxed, balanced or strict. Like AutoMod, anti-raid starts in a preview mode that reports what it would do without acting.
Warning: kick and ban cannot be undone automatically. Prefer jail for the highest level and review the report before using the buttons.
incident reports
When an incident happens scraps posts a report to the log channel with buttons such as Kick, Ban, Release and Purge messages, and attaches a transcript of the removed messages to the security log.
commands
All commands need Manage Server and work as prefix and slash.
| Command | Syntax | What it does |
|---|---|---|
antiraid setup | .antiraid setup | Wizard: sensitivity, what happens at each level, the mode and the log channel |
antiraid status | .antiraid status | Settings, thresholds and recent results |
antiraid sensitivity | .antiraid sensitivity | Change the sensitivity |
antiraid punishment | .antiraid punishment | Change what happens at each level, the notify role and quiet welcome |
antiraid enable | .antiraid enable | Turn it back on with saved settings |
antiraid disable | .antiraid disable | Turn it off (settings and incidents are kept) |
antiraid threshold | .antiraid threshold (name) [value] | Override one detection number, or reset to clear every override |
antiraid pause | .antiraid pause (duration) | Pause join-spike alerts for a known event, up to 24 hours. Behaviour detection stays on |
antiraid resume | .antiraid resume | End a pause |
antiraid incidents | .antiraid incidents | Page through past incidents |
antiraid incident | .antiraid incident (id) | One incident in full: timeline, signals, members and actions |
antiraid falsepositive | .antiraid falsepositive (id) | Mark an incident as a false positive. Run it again to undo |
antiraid unlock | .antiraid unlock | Lift an active lockdown now and put the channels' permissions back (also needs Manage Channels) |
.antiraid pause 2h
.antiraid incident 14
.antiraid falsepositive 14
Tip: Running a giveaway or a big event? Use antiraid pause so a legitimate flood of joins is not treated as a raid.
security
verification
Verification makes newcomers pass a captcha before they can see the server.
how it works
- A new member joins and receives a restricted role. They only see the verification channel.
- They press the button on the verification message and open a secure page on the scraps website.
- After the captcha they are let in. If you enabled it, members who do not verify in time are removed.
The welcome message is held back until the member has verified.
alt detection
Optionally, verification can catch people verifying more than one account. It compares hashed network and device signals, never raw IP addresses, and links accounts that look related. Turn it on with verification settings alts.
Each verification gets a score. Depending on the score and on the action you chose in verification settings alts:
| Action | What happens |
|---|---|
flag (default) | The member is let in and moderators are told |
hold | The member is held for a moderator to review |
kick / ban | At a high score the member is kicked or banned automatically. Below that score they are held |
Held and flagged members come with Kick, Ban and approve buttons for your moderators.
Warning: Choose kick or ban only if you accept automatic removals. flag and hold always leave the decision to a human.
Note: Use verification forget to erase everything alt detection stored about a member. The privacy policy lists what it keeps.
commands
| Command | Syntax | Permissions | What it does |
|---|---|---|---|
verification setup | .verification setup | Manage Server | Wizard: channel and role, the message, what happens after |
verification status | .verification status | Manage Server | Whether it is on, who is waiting and recent results |
verification panel | .verification panel | Manage Server | Post the verification message again or update it |
verification pending | .verification pending | Manage Server | Page through members waiting to verify |
verification approve | .verification approve (member) | Manage Server, Manage Roles | Let someone in without the captcha |
verification enable | .verification enable | Manage Server | Turn verification back on |
verification disable | .verification disable | Manage Server | Turn it off and let everyone waiting in |
verification settings alts | .verification settings alts | Manage Server | Configure alt detection |
verification alts | .verification alts (user) | Kick Members, Manage Server | Accounts linked to someone, even after they left |
verification forget | .verification forget (user) | Manage Server | Delete everything alt detection keeps about someone |
.verification setup
.verification approve @newmember
.verification alts @suspicious
security
moderation
| Command | Syntax | Permissions | Use | What it does |
|---|---|---|---|---|
ban | .ban (user) [reason] | Ban Members | P+S | Ban a user. Works on users who already left, by ID |
unban | .unban (user) [reason] | Ban Members | P+S | Unban a user by ID |
kick | .kick (member) [reason] | Kick Members | P+S | Kick a member |
softban | .softban (member) [reason] [window] | Ban Members | P+S | Remove someone and delete their recent messages. They can rejoin |
hardban | .hardban (user) [reason] | Server Owner | P | A ban that only the server owner can lift |
unhardban | .unhardban (user) [reason] | Server Owner | P | Lift a hardban |
timeout (alias mute) | .timeout (member) (minutes) [reason] | Timeout Members | P+S | Time a member out for a number of minutes |
untimeout (alias unmute) | .untimeout (member) [reason] | Timeout Members | P+S | Remove a timeout |
purge (alias clear) | .purge [amount] [member] | Manage Messages | P+S | Delete messages in the channel, optionally only a member's |
lock | .lock [channel] | Manage Channels | P+S | Lock a channel |
unlock | .unlock [channel] | Manage Channels | P+S | Unlock a channel |
.ban @user advertising
.softban @user spamming links 3 days
.timeout @user 30 being rude
.purge 50
.purge 20 @user
.lock #general
Note: For softban the message window can be 1h, 6h, 12h, 24h, 3 days or 7 days. With prefix commands, type it after the reason.
Warning: hardban cannot be lifted by moderators, only by the server owner with unhardban.
security
jail
Jail puts a member in an isolated space: they keep no roles, and can only see the jail channel. Their roles are given back when they are released. Rejoining members who were jailed when they left are jailed again.
| Command | Syntax | Permissions | What it does |
|---|---|---|---|
jail setup | .jail setup | Manage Server | Create the jail role and channel and hide every other channel from jailed members |
jail | .jail (member) [reason] | Manage Roles | Jail a member (slash: /jail user) |
unjail | .unjail (member) [reason] | Manage Roles | Release a member and give their roles back |
.jail setup
.jail @user spamming in voice
.unjail @user cleared
Tip: Anti-raid uses the jail too, so run .jail setup before you use jail as an anti-raid punishment.
security
honeypot
The honeypot is a trap channel. Anyone who sends a message in it is softbanned (banned and their recent messages deleted), so bots and compromised accounts that post everywhere remove themselves.
| Command | Syntax | Permissions | What it does |
|---|---|---|---|
honeypot setup | .honeypot setup | Manage Server | Create the honeypot channel |
Warning: Tell your real members never to type in the honeypot channel. Give the channel a clear warning in its description.
security
fake permissions
Fake permissions let a role use scraps commands that need a permission, without giving the role that permission on Discord. They only affect the bot.
| Command | Syntax | What it does |
|---|---|---|
fakepermission grant (alias add) | .fp grant (role) (permissions) | Let a role use commands that need these permissions |
fakepermission revoke (alias remove) | .fp revoke (role) [permissions] | Take permissions away (all of them if you give none) |
fakepermission list | .fp list | List every role with fake permissions |
- permissions
- Administrator
- aliases
fp,fakeperms
.fp grant @Moderators manage_messages
.fp list
.fp revoke @Moderators manage_messages
configuration
logging
scraps sends each kind of event to a channel you choose.
log types
| Type | Records |
|---|---|
modlog | Moderation actions and cases |
channellog | Channel create, edit, delete |
rolelog | Role changes and role assignments |
msglog | Edited and deleted messages |
voicelog | Voice joins, leaves and moves |
serverlogs | Joins, leaves and server changes |
ticketlog | Tickets opened, claimed and closed, with a transcript file |
threadlog | Thread changes |
securitylog | AutoMod, anti-raid and verification events |
command
- permissions
- Manage Server
- use
- P+S
- alias
logsetup
.logs setup
.logs (type) (channel)
.logs list
.logs remove (type)
.logs setup
.logs modlog #mod-logs
.logs securitylog #security
.logs remove voicelog
configuration
tickets
A ticket panel is a message with a button or a dropdown of topics. Members press it to open a private ticket channel. A server can have up to 5 panels, and a dropdown holds up to 25 topics, each with its own staff roles.
features
- Button panels or topic dropdowns
- Staff can claim a ticket
- A transcript is posted to the ticket log when a ticket closes
- Blacklist members from opening tickets
commands
All need Manage Server and work as prefix and slash.
- alias
tickets
| Command | Syntax | What it does |
|---|---|---|
ticket setup | .ticket setup | Set up a new panel, or change one |
ticket list | .ticket list | The server's panels |
ticket panel (alias restore) | .ticket panel [panel] | Post a panel again, if its message was deleted |
ticket blacklist | .ticket blacklist (user) | Stop someone opening tickets |
ticket whitelist (alias unblacklist) | .ticket whitelist (user) | Let them open tickets again |
ticket blacklist_list (alias blacklisted) | .ticket blacklist_list | Who cannot open tickets |
ticket reset | .ticket reset | Remove every panel and all ticket data |
Tip: Run .logs ticketlog #ticket-logs before ticket setup, so transcripts have somewhere to go.
Warning: ticket reset removes all panels and ticket data and cannot be undone.
configuration
role reactions
Members react to a message and receive a role.
- permissions
- Manage Roles
- alias
rr
| Command | Syntax | What it does |
|---|---|---|
rolereactions setup | .rr setup [message] | Link an existing message, or let scraps send one, then pick emoji and roles |
rolereactions list | .rr list | The server's role-reaction messages and their roles |
rolereactions remove | .rr remove (message) | Stop the role reactions on a message |
rolereactions refresh | .rr refresh [message] | Put back missing reactions and update the role list |
.rr setup https://discord.com/channels/123/456/789
.rr list
configuration
welcome, goodbye and boost messages
Send a message when someone joins, leaves or boosts the server. Use plain text or embed code, with variables. The embed builder writes the code for you.
- permissions
- Manage Server
| Command | Syntax | What it does |
|---|---|---|
welcome add | .welcome add [code] | Set the welcome message |
welcome remove | .welcome remove | Turn it off |
welcome test | .welcome test | Preview it for yourself |
goodbye add / remove / test | .goodbye add [code] (alias group leave) | Same for the goodbye message |
boost add / remove / test | .boost add [code] | Same for the boost message |
Mention a channel in add to choose where the message goes (.welcome add #welcome ...). Without one, scraps uses the server's system channel.
.welcome add #welcome Welcome {user} to {guild.name}! You are member #{guild.count}.
.welcome add {embed}$v{title: Welcome!}$v{description: Glad you're here, {user}.}$v{color: #5865F2}
.welcome test
Note: Welcome messages are skipped while anti-raid's quiet mode is on, and are held until a member verifies when verification is enabled.
configuration
auto responders
Auto responders reply to a trigger word or give and remove roles.
- A trigger matches when it appears anywhere in a message, ignoring upper and lower case.
- A responder only fires in the channel it was created in, or the channel you mention when adding it.
- Replies can use embed code.
- permissions
- Manage Messages
- aliases
ar,autorespond
| Command | Syntax | What it does |
|---|---|---|
autoresponder add | .ar add (trigger), (response) | Add a message autoresponder |
autoresponder role | .ar role (add or remove) (role) (trigger) | Give or remove a role when the trigger is said |
autoresponder remove | .ar remove (name or trigger) | Remove one |
autoresponder removeall | .ar removeall | Remove all |
autoresponder list | .ar list | List the server's responders |
Options for add: write --reply to answer as a reply to the message, and mention a channel (#general) to limit it to that channel. Slash form: /autoresponder add trigger response [channel] [reply].
.ar add hello, Hi there!
.ar add rules, Read #rules before you chat. --reply
.ar role add @Member i agree
configuration
booster roles
Boosters create their own role with a name and colour.
| Command | Syntax | Permissions | What it does |
|---|---|---|---|
boosterrole setup | .br setup | Manage Server | Create the divider role booster roles are placed under |
boosterrole | .br (name) (color) [second color] | Booster | Create or update your role. A second colour makes a gradient |
boosterrole remove | .br remove | Booster | Delete your role |
.br setup
.br Cloud #7289da
.br Sunset #ff7a18 #af002d
configuration
starboard
Messages that collect enough star reactions are reposted in the starboard channel.
- permissions
- Manage Server
- default emoji
- ⭐
- default threshold
- 3
| Command | Syntax | What it does |
|---|---|---|
starboard setup | .starboard setup [channel] | Set the starboard channel and turn it on |
starboard threshold | .starboard threshold (amount) | How many stars a message needs |
starboard emoji | .starboard emoji (emoji) | The emoji that counts as a star |
starboard ignore | .starboard ignore (channel) | Stop or start counting stars in a channel or category |
starboard leaderboard | .starboard lb | Members whose messages reached the starboard most |
starboard settings | /starboard settings | Show the settings |
starboard disable | .starboard disable | Turn it off |
.starboard setup #starboard
.starboard threshold 5
configuration
levels
Members earn XP by chatting and in voice, and rank up. Level roles can be given at chosen levels.
default values
| Setting | Default | Meaning |
|---|---|---|
enabled | off | The whole system |
msg_xp | 20 | XP per message |
msg_cooldown | 60 | Seconds between XP-earning messages |
voice_enabled | on | Earn XP in voice |
voice_xp | 6 | XP per voice minute |
ignore_muted | on | No voice XP while muted |
ignore_alone | off | No voice XP when alone in the channel |
react_enabled | off | Earn XP for reactions |
react_xp | 15 | XP per reaction |
react_cooldown | 300 | Seconds between reaction XP |
multiplier | 1.0 | Global XP multiplier |
reset_on_leave | on | Reset XP when a member leaves |
reset_on_ban | off | Reset XP when a member is banned |
stack_roles | off | Keep earlier level roles when a new one is given |
levelup_msg | Congratulations **{user_name}**! You reached **level {level}**. | Level-up text |
Level-up placeholders: {user_name}, {user_mention}, {level}.
member commands
| Command | Syntax | Use | What it does |
|---|---|---|---|
rank | .rank [member] | P+S | Show a rank card |
rankleaderboard (aliases lb, leaderboard) | .lb [page] | P+S | The server XP leaderboard |
levelroles | .levelroles | P+S | All level roles |
levelconfig | .levelconfig | P+S | View the settings |
admin commands
- permissions
- Administrator
| Command | Syntax | What it does |
|---|---|---|
ranksetup | .ranksetup [enabled] | Set up the level system, or turn it on or off |
setlevelconfig | .setlevelconfig (key) (value) | Change a setting from the table above |
setlevelupchannel | .setlevelupchannel [channel] | Set (or clear) where level-up messages go |
setlevelupmsg | .setlevelupmsg (message) | Set the level-up text |
addlevelrole | .addlevelrole (level) (role) | Give a role at a level |
removelevelrole | .removelevelrole (level) | Remove a level role |
setxp | .setxp (member) (amount) | Set XP within the current level |
addxp | .addxp (member) (amount) | Give XP (levels up if needed) |
resetxp | .resetxp (member) | Reset XP and level |
blacklistchannel | .blacklistchannel (channel) | Toggle whether a channel earns XP |
whitelistrole | .whitelistrole (role) | Toggle a role in the XP whitelist (only whitelisted roles earn XP) |
addxpbooster | .addxpbooster (role) (percent) | Give a role an XP boost, or 0 to remove it |
.ranksetup true
.addlevelrole 10 @Regular
.setlevelupmsg Nice one {user_mention}, you hit level {level}!
.setlevelconfig msg_xp 25
.addxpbooster @Booster 50
configuration
voicemaster
Members join a "Join to create" channel and get their own temporary voice channel, which they control. The channel is removed when empty.
setup
- permissions
- Administrator
- alias
vc
| Command | Syntax | What it does |
|---|---|---|
vm setup | .vm setup | Create the VoiceMaster category, the join channel and the interface |
vm reset | .vm reset | Remove the setup and its channels |
vm cleanup | .vm cleanup | Delete empty temporary channels left behind |
channel owner commands
| Command | Syntax | What it does |
|---|---|---|
vm lock / vm unlock | .vm lock | Lock or unlock your channel |
vm hide / vm unhide | .vm hide | Hide or show your channel |
vm limit | .vm limit (number) | User limit (0 = unlimited) |
vm bitrate | .vm bitrate (kbps) | Set the bitrate |
vm allow (aliases admit, permit) | .vm allow (member) | Let a member join |
vm reject | .vm reject (member) | Remove access and kick them |
vm kick | .vm kick (member) | Disconnect a member |
vm claim | .vm claim | Claim a channel whose owner left |
vm transfer | .vm transfer (member) | Give your channel to someone |
vm rename | .vm rename (name) | Rename your channel |
vm status | .vm status (text) | Set the channel status (clear removes it) |
vm info | .vm info | Info about your channel |
vm lb | .vm lb | Voice time leaderboard for this server |
vm glb | .vm glb | Global voice time leaderboard |
The interface message in the VoiceMaster category has buttons for the same actions.
.vm setup
.vm limit 4
.vm rename Study room
.vm allow @friend
configuration
birthdays
| Command | Syntax | Permissions | What it does |
|---|---|---|---|
birthday (alias bday) | .bday [member] | — | Show your (or someone's) birthday |
birthday set | .bday set (date) | — | Set your birthday, e.g. 6-10 or June 10 |
birthday setup | .bday setup [role] [channel] | Manage Server | Set the birthday role and announcement channel |
birthday config (alias role) | .bday config (role) | Manage Roles | Set the role given on birthdays |
birthday channel | .bday channel (channel) | Manage Channels | Set the announcement channel |
birthday reset | .bday reset (member) | Manage Server | Clear someone's birthday so they can set it again |
birthday help | .bday help | — | How to use the commands |
.bday setup @Birthday #birthdays
.bday set June 10
configuration
prefix
| Command | Syntax | Permissions | What it does |
|---|---|---|---|
prefix | .prefix [new prefix] | — to view | View or change the server prefix. prefix reset restores the default |
selfprefix | .selfprefix [new prefix] | — | View, set or remove your personal prefix. Works in every server |
.prefix !
.selfprefix ,
Prefixes are chosen longest first, so .. wins over . when both are valid. Mentioning the bot always works.
configuration
disabling commands
Turn commands off in a channel. Staff with Manage Server can always use them.
- permissions
- Manage Server
| Command | Syntax | What it does |
|---|---|---|
disablecommand (alias dcmd) | .dcmd (command) [channel] | Disable a command, or all, in a channel |
enablecommand (alias ecmd) | .ecmd (command) [channel] | Re-enable a command |
disabledcommands (alias dcmds) | .dcmds [channel] | List what is disabled in a channel |
enableall (alias eall) | .eall [channel] | Re-enable everything in a channel |
The help, enable and disable commands can never be disabled, so you cannot lock yourself out.
.dcmd 8ball #general
.dcmd all #announcements
.eall #announcements
configuration
server profile
Give scraps a different avatar and banner in your server only.
- permissions
- Manage Server
| Command | Syntax | What it does |
|---|---|---|
serverpfp (alias sp) | .sp [image] | Set the bot's avatar for this server |
serverpfpremove (alias spr) | .spr | Reset it |
serverbanner (alias sb) | .sb [image] | Set the bot's banner for this server |
serverbannerremove (alias sbr) | .sbr | Reset it |
community
giveaways
- permissions
- Manage Messages
- aliases
g,gw
| Command | Syntax | What it does |
|---|---|---|
giveaway start | .g start [duration] [prize] [winners] [channel] | Start a giveaway with an interactive setup (requirements, claim time, button mode, presets) |
giveaway quick | .g quick (duration) (winners) (prize) [channel] | Start a reaction giveaway right away |
giveaway end | .g end [message id] | End a giveaway early |
giveaway reroll | .g reroll [message id] | Pick new winners for an ended giveaway |
giveaway edit | .g edit [message id] | Edit a running giveaway |
giveaway list | .g list | Running giveaways in this server |
Durations use the duration format: 30s, 10m, 1h, 2d.
.g quick 1h 1 Discord Nitro
.g start
.g reroll 123456789012345678
community
counter
A channel-based counting game: members count up one number at a time.
- permissions
- Manage Server
| Command | Syntax | What it does |
|---|---|---|
counter setup | .counter setup [name] | Create a new counting channel |
counter add | .counter add (channel) | Turn an existing channel into a counting channel |
counter remove | .counter remove (channel) | Stop counting (the channel is kept) |
counter list | .counter list | List counting channels |
counter reset | .counter reset (channel) | Reset the count to 0 |
counter setvalue | .counter setvalue (channel) (value) | Set the count |
counter toggle / enable / disable | .counter enable (channel) | Turn counting on or off |
counter rename | .counter rename (channel) (new name) | Rename a counting channel |
counter stats | .counter stats (channel) | Stats |
counter history | .counter history (channel) | The last 10 counts |
counter export | .counter export (channel) | Export the history as a text file |
community
black tea
A turn-based word game. On your turn scraps shows a few letters and you type a real word that contains them before the timer runs out. Words cannot be reused, and a player who runs out of time loses 1 HP. The last player standing wins.
| Command | Syntax | Permissions |
|---|---|---|
blacktea | .blacktea | Send Messages |
blacktea end | .blacktea end | Manage Messages |
community
fun commands
| Command | Syntax | What it does |
|---|---|---|
8ball | .8ball [question] | Ask the magic 8-ball |
ship | /ship (user1) [user2] | Love percentage between two users |
ttt | .ttt [opponent] | Tic-tac-toe against a member or the bot |
cat / dog | .cat | A random cat or dog picture |
uwulock | .uwulock (member) | Toggle uwulock: their messages are rewritten in uwu speak (Manage Messages) |
uwulock remove | .uwulock remove (member) | Remove it from a member |
uwulock list | .uwulock list | List uwulocked members |
clearuwulocks | .clearuwulocks | Remove every uwulock |
utilities
general
personal
| Command | Syntax | What it does |
|---|---|---|
afk | .afk [reason] | Set yourself AFK. scraps tells people who mention you and sends you a summary when you return |
afk mentions | .afk mentions | Who mentioned you while you were AFK |
remindme (aliases remind, reminder) | .remindme (reminder and time) | Set a reminder, e.g. .remindme check the oven 15m or .remindme 1h30m stretch |
remindme list | .remindme list | Your pending reminders |
remindme cancel | .remindme cancel (id) | Cancel a reminder |
timezone (alias tz) | .tz [place] | Set or view your timezone |
timezone reset | .tz reset | Forget your timezone |
birthday set | .bday set (date) | See birthdays |
tools
| Command | Syntax | Permissions | What it does |
|---|---|---|---|
translate (alias tr) | .tr (text) (language) | — | Translate text: .tr hola amigo english, or reply to a message with .tr english |
weather | .weather [location] | — | Weather for a place |
color (alias colour) | .color [color] | — | Hex, RGB and HSL values |
qr | /qr (text) | — | Turn text or a link into a QR code |
steal | .steal [emoji] | Create Expressions | Add an emoji from another server to yours |
embedcreate (aliases embed, ce) | .embed | Manage Messages | Open the embed creator. .embed help shows the syntax |
messages
| Command | Syntax | Permissions | What it does |
|---|---|---|---|
snipe (alias s) | .snipe | — | Show deleted messages from the last 2 hours in this channel |
clearsnipe (alias cs) | .cs | Manage Messages | Clear the snipe cache for the channel |
firstmessage (alias firstmsg) | .firstmsg [channel] | — | Show the first message in a channel |
Note: snipe keeps deleted messages in memory only, for 2 hours, and they are gone if the bot restarts.
utilities
information
| Command | Syntax | Use | What it does |
|---|---|---|---|
help | .help | P+S | The help menu |
ping | .ping | P | Bot latency |
uptime | .uptime | P+S | Uptime and system stats |
userinfo (aliases ui, whois) | .ui [user] | P+S | Information about a user |
serverinfo (alias si) | .si | P | Information about the server, including boost status |
roleinfo | .roleinfo [role] | P | Details about a role |
avatar (alias av) | .av [user] | P | A user's avatar |
banner | .banner [user] | P | A user's banner |
utilities
activity
Message and voice statistics.
| Command | Syntax | What it does |
|---|---|---|
messages (aliases msg, msgs) | .msg [user] | How many messages a member has sent |
messages leaderboard (alias lb) | .msg lb | This server's top senders |
messages global (alias glb) | .msg glb | Top senders across every server |
messages history | .msg history [user] [limit] | A member's recent messages |
messages backfill | .msg backfill | Count the server's message history into the stats. Needs Manage Server, once per 6 hours |
mentions | .mentions [number] | Your most recent mentions in this server |
vt | .vt [member] | Voice time for a member |
vt leaderboard (alias lb) | .vt lb | The voice time leaderboard |
vt reset | .vt reset | Reset your own voice time |
vt resetall | .vt resetall | Reset everyone's voice time (Administrator) |
media
fix
fix downloads the video or photos from a social media link and posts them in Discord.
- cooldown
- 10 seconds
.fix (link)
.fix https://www.tiktok.com/@user/video/123
/fix link:https://x.com/user/status/123
Supported platforms: Bilibili, Bluesky, Dailymotion, Facebook, Instagram, Loom, OK, Pinterest, Newgrounds, Reddit, Rutube, Snapchat, SoundCloud, Streamable, TikTok, Tumblr, Twitch, X (Twitter), Vimeo, VK and YouTube.
- For X, Instagram and TikTok the result also shows post details such as likes, comments and views.
- When a link holds both photos and video, scraps asks which one you want.
- Uploads are limited by the server's Discord upload size.
media
song recognition
Find a song from an audio or video file or a link.
- cooldown
- 30 seconds per user, 10 per server
- max file size
- 25 MB
| Command | Syntax | What it does |
|---|---|---|
shazam | /shazam [file] [link] | Find a song from an attachment or a link |
findsong (alias fs) | .fs [link] | Same, as a prefix command. Reply to a message with a file, or attach one |
A clip that was matched before is remembered for 15 minutes.
.fs https://www.tiktok.com/@user/video/123
/shazam link:https://youtu.be/abc
media
search
- cooldown
- 10 seconds
| Command | Syntax | What it does |
|---|---|---|
search image | .search image (query) | Search the web for images |
search music | .search music (query) | Search Apple Music for a song, with a preview |
.search image red panda
.search music Daft Punk One More Time
media
image tools
All send a new image from an attachment, a link, or the image you replied to. Animations are shrunk to fit.
- cooldown
- 5–8 seconds
- max image size
- 16 MB
| Command | Syntax | What it does |
|---|---|---|
caption (alias cap) | .cap (text) | Add a caption above an image |
motivation (aliases motivate, poster, demotivate) | .motivation (text) | Make a motivational poster |
flag | .flag (emoji) | Overlay a flag emoji |
spotify | .spotify (text) | Put a "This is" banner above an image |
speechbubble (alias speech) | .speech | Cut a speech bubble out of the top of an image (options: solid, flip, bottom, scale) |
homebrew (aliases hbc, brew, wiibrew) | .homebrew (text) | Write text as a homebrew channel title |
kinemaster | .kinemaster [text] | Add a "Made with KINEMASTER" watermark |
3d | .3d [style] | Turn an image into a looping 3D animation |
gif (aliases togif, gifify) | .gif | Turn an image or MP4 into a GIF (MP4 up to 7.5 MB and 15 seconds) |
quote (alias quotes) | .quote | Reply to a message to turn it into a quote picture |
.caption when the bot works first try
.motivation never give up
(reply to a message) .quote
integrations
last.fm
Link your Last.fm account to see what you listen to, build charts, compare taste and compete in your server.
Note: The server colour of Last.fm cards can be changed with fmcolor. Slash commands also work everywhere you installed the bot as a user app.
linking
| Command | Syntax | What it does |
|---|---|---|
fmlogin | /fmlogin | Link your account with a button-based login (the link is only visible to you) |
fmlogout | /fmlogout | Log out and delete your stored session |
privacy (alias fmprivacy) | /privacy | Toggle privacy. When on, others cannot see your scrobbles or stats |
fmwhois | /fmwhois [user] | Someone's Last.fm profile link |
fmcolor | /fmcolor [color] | Set the card colour in this server |
now playing and stats
| Command | Syntax | What it does |
|---|---|---|
fm (aliases lastfm, music, np, current) | .fm [user] | Latest scrobble |
recent (alias rec) | .recent | Your last 10 listened artists |
topartists (alias ta) | .ta [user] [time period] | Top artists |
topalbums (alias tal) | .tal [user] [time period] | Top albums |
toptracks (alias tt) | .tt [user] [time period] | Top tracks |
topgenres (alias tg) | .tg [user] [time period] | Top genres |
plays (alias ps) | .plays [artist] | How many times you played an artist |
overview | .overview [artist] | Top albums, tracks and similar artists for an artist |
scrobbles (alias fmscrobble) | .scrobbles (number) | Look up one of your scrobbles (1 is your latest) |
scrobble | /scrobble (track) | Search for a track and scrobble it to your Last.fm |
charts
| Command | Syntax | What it does |
|---|---|---|
chartalbum (alias cb) | .cb [user] [time period] [size] | Album chart |
chartartists (alias ca) | .ca [user] [time period] [size] | Artist chart |
Time periods (also for the top* commands and taste): weekly, monthly, alltime.
compare and compete
| Command | Syntax | What it does |
|---|---|---|
taste | /taste (user) [time period] | Compare your music taste with another member (20 second cooldown) |
whoknows (alias wk) | .wk [artist] | Who in this server listens to an artist most |
wkalbum (alias wka) | .wka [Artist - Album] | Server leaderboard for an album |
wktrack (alias wkt) | .wkt [Artist - Track] | Server leaderboard for a track |
gwk (alias globalwhoknows) | .gwk [artist] | Global leaderboard for an artist |
globalwkalbum (aliases globalwka, gwka) | .gwka [query] | Global album leaderboard |
globalwktrack (aliases globalwkt, gwkt) | .gwkt [query] | Global track leaderboard |
crowns (alias cws) | .cws [user] | Crowns held by you or another member |
crown (alias cw) | .cw [artist] | Who holds an artist's crown |
cwlist | .cwlist | Members with the most crowns in this server |
/fmlogin
.fm
.ta @friend weekly
.wk Radiohead
.cb weekly
resources
embed code
Embed code is a short text format for building custom messages. It works in welcome, goodbye, boost messages, auto responders and the embed creator. Plain text with no tags is sent as it is, with variables replaced.
Tip: The embed builder on this site writes embed code as you edit, with a live preview. In Discord, .embed opens the embed creator and .embed help shows the syntax.
structure
Every part is written as {name: value} and parts are joined with $v.
{embed}$v{title: Hello}$v{description: Welcome to the server}$v{color: #5865F2}{embed}starts an embed. It must come first.{content: text}is the plain message above the embed.- Parameters are joined with
$v. &&separates the pieces inside one parameter.
parameters
| Parameter | Syntax | Notes |
|---|---|---|
{content: ...} | {content: Hey {user}} | Message text, up to 2000 characters |
{title: ...} | {title: Rules} | Up to 256 characters |
{description: ...} | {description: Be kind} | Up to 4096 characters |
{url: ...} | {url: https://example.com} | Makes the title a link |
{color: ...} | {color: #ff0000} | Hex colour ({colour: ...} also works) |
{image: ...} | {image: https://...} | Large image |
{thumbnail: ...} | {thumbnail: {user.avatar}} | Small image |
{footer: text && icon} | {footer: scraps && https://.../icon.png} | Icon is optional |
{author: name && icon && url} | {author: {user.name} && {user.avatar}} | Icon and url are optional |
{field: name && value && inline} | {field: Rules && Read #rules && inline} | Up to 25 fields. Add inline to place it beside the next field |
{timestamp} | {timestamp} | Adds the current time |
{button: style && label && url or id && emoji} | {button: link && Website && https://example.com} | Up to a few buttons. Only link buttons work in welcome messages and autoresponders |
Button styles: link, primary (blurple), success (green), danger (red), secondary (grey).
full example
{content: Welcome {user}!}$v{embed}$v{title: Welcome to {guild.name}}$v{description: You are member #{guild.count}. Please read #rules.}$v{thumbnail: {user.avatar}}$v{color: #5865F2}$v{footer: Enjoy your stay}$v{button: link && Rules && https://example.com/rules}Warning: An embed with no title, description, field, image, author, footer or thumbnail is rejected as empty.
resources
variables
Variables work in embed code and plain text for welcome, goodbye, boost and autoresponders.
| Variable | Output |
|---|---|
{user} / {user.mention} | Mentions the member |
{user.name} | Their username |
{user.id} | Their ID |
{user.avatar} | Their avatar URL |
{guild.name} | The server name |
{guild.id} | The server ID |
{guild.count} | The member count |
{guild.icon} | The server icon URL |
{guild.boost_count} | Number of boosts |
{channel} / {channel.mention} | Mentions the channel |
{channel.name} | The channel name |
{channel.id} | The channel ID |
{channel.topic} | The channel topic |
Level-up messages use their own placeholders: {user_name}, {user_mention}, {level}.
resources
durations
Durations are written as a number followed by a unit, and can be combined.
| Unit | Meaning |
|---|---|
s | seconds |
m | minutes |
h | hours |
d | days |
30s
10m
1h
2d
1h30m
1 hour
ten minutes
Note: Some commands accept only a fixed list, such as AutoMod timeouts (10m, 1h, 6h, 24h, 7d). The wizard shows the options.
resources
permissions
Commands that need a permission name it in their table. Quick reference:
| Permission | Commands |
|---|---|
| Administrator | fakepermission, level admin commands, vm setup, vm reset, vm cleanup, vt resetall |
| Manage Server | AutoMod, anti-raid, verification, logs, tickets, starboard, welcome messages, counters, jail setup, honeypot setup |
| Manage Roles | jail, unjail, role reactions, birthday role |
| Manage Channels | lock, unlock, birthday channel |
| Manage Messages | purge, giveaways, autoresponders, snipe clear, uwulock, embed creator |
| Ban Members | ban, unban, softban |
| Kick Members | kick |
| Timeout Members | timeout, untimeout |
| Create Expressions | steal |
| Server Owner | hardban, unhardban |
help
common issues
a role isn't given, or "I don't have permission"
Move the scraps role above the roles it needs to give, remove or jail, in Server Settings → Roles. Discord does not let a bot manage roles above its own.
a command does nothing
- Check you used the right prefix. Mention the bot (
@scraps help) to be sure. - Check the command is not disabled in that channel with
.dcmds. - Check you have the permission shown in this documentation. A role may need a fake permission.
slash commands don't appear
Reinvite the bot with the applications.commands scope and wait a minute. Discord can take a moment to show new commands.
automod isn't deleting anything
AutoMod starts in Preview. Run .automod mode live once you are happy with the results, and make sure the module is on with .automod status.
anti-raid reported a false alarm
Run .antiraid incident (id) to see why it fired, then .antiraid falsepositive (id). Use .antiraid pause (duration) before events that bring many people at once.
the verification page doesn't open
Members need a browser that allows the captcha to load. If someone is stuck, use .verification approve @member.
logs are empty
Run .logs list. Each log type needs a channel, and scraps needs Send Messages there. Names of who did an action require View Audit Log.
help
faq
can I change the prefix?
Yes, with .prefix. Anyone can set a personal prefix with .selfprefix.
does scraps read my messages?
scraps reads message text to run prefix commands, AutoMod, anti-raid, autoresponders and message logs. Text is processed as messages arrive and is not kept, except for features you use on purpose: AFK notes, ticket transcripts, and the message and security logs posted to channels you chose.
what does scraps store?
Server settings, IDs and counters (levels, message counts, voice time), and the data of features you enable. Alt detection stores hashed network and device signals only, and verification forget deletes them. The privacy policy has the details.
how do I remove my data?
Ask a server admin to remove the feature, or ask in the support server. You can remove some of your own data yourself: fmlogout deletes your Last.fm session and timezone reset forgets your timezone.
where do I get help?
Join the support server or use .help in Discord.