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

Looking for one command? The commands page lists every one of them.

where to start

GuideWhat it covers
Getting startedInvite the bot, give it the right permissions and run the first setups
SecurityAutoMod, anti-raid, verification, moderation, jail, honeypot
ConfigurationLogs, tickets, roles, welcome messages, levels, VoiceMaster and more
IntegrationsLast.fm
Embed codeBuild 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:

PermissionNeeded for
Manage RolesJail, verification, level roles, booster roles, role reactions, autoresponder roles
Manage ChannelsLock and unlock, VoiceMaster, tickets, honeypot, raid lockdown
Manage MessagesPurge, AutoMod, anti-raid cleanup, message logs
Kick Members, Ban MembersKick, ban, softban and anti-raid punishments
Moderate MembersTimeouts
View Audit LogShowing who did an action in the logs
Manage ServerAutoMod's native server rules
Send Messages, Embed Links, Attach Files, Add ReactionsEverything 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.

  1. Logs: run .logs setup so every later action is recorded. See logging.
  2. AutoMod: run .automod setup. Start in Preview mode, check what it would catch, then switch to Live. See AutoMod.
  3. Anti-raid: run .antiraid setup. Also starts in preview. See anti-raid.
  4. Jail: run .jail setup so anti-raid and moderators can jail members. See jail.
  5. Verification (optional): run .verification setup if you want newcomers to pass a captcha. See verification.
  6. 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:

ModuleCatches
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):

OptionValuesDefault
Sensitivityrelaxed, balanced, strictbalanced
Actiondelete, or delete and timeoutdelete
Timeout length10m, 1h, 6h, 24h, 7d1h
Mention limit (spam)2 – 50 mentions in one message8
Compromised-account timeout (links)10m – 7d24h
Newcomer days (ads)1 – 60 days7
Partners (ads)Up to 30 invites or servers you allownone
Trusted roles (ads)Up to 10 roles allowed to advertisenone
Exempt roles / channelsUp to 20 roles, 50 channelsnone

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
syntax
.automod setup

automod status

Shows each module's state, protection and the last 30 days of catches.

syntax
.automod status

automod mode

Switch between Preview (log only) and Live.

syntax
.automod mode (preview or live)
example
.automod mode live

automod enable / automod disable

Turn one module on or off while keeping its settings.

syntax
.automod enable (module)
.automod disable (module)
example
.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.

syntax
.automod settings [module]
example
.automod settings spam

blacklist

The blacklist is the words module: words and links scraps removes.

CommandSyntaxWhat 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 listPage through the list
example
.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.

CommandSyntax
automod allow.automod allow (domain) [module]
automod unallow.automod unallow (domain)
automod allowlist.automod allowlist
example
.automod allow youtube.com ads

Up to 200 allowed entries.

server rules

CommandWhat it does
automod rulesShows the native rules scraps owns, your own rules, free slots and any conflicts
automod syncChecks 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.

PunishmentCan be undoneDurations
jailYes1h, 6h, 24h (default), 3d, 7d, or until released
timeoutYes10m, 1h (default), 6h, 24h, 7d
kickNo—
banNo—

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.

CommandSyntaxWhat it does
antiraid setup.antiraid setupWizard: sensitivity, what happens at each level, the mode and the log channel
antiraid status.antiraid statusSettings, thresholds and recent results
antiraid sensitivity.antiraid sensitivityChange the sensitivity
antiraid punishment.antiraid punishmentChange what happens at each level, the notify role and quiet welcome
antiraid enable.antiraid enableTurn it back on with saved settings
antiraid disable.antiraid disableTurn 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 resumeEnd a pause
antiraid incidents.antiraid incidentsPage 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 unlockLift an active lockdown now and put the channels' permissions back (also needs Manage Channels)
example
.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

  1. A new member joins and receives a restricted role. They only see the verification channel.
  2. They press the button on the verification message and open a secure page on the scraps website.
  3. 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:

ActionWhat happens
flag (default)The member is let in and moderators are told
holdThe member is held for a moderator to review
kick / banAt 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

CommandSyntaxPermissionsWhat it does
verification setup.verification setupManage ServerWizard: channel and role, the message, what happens after
verification status.verification statusManage ServerWhether it is on, who is waiting and recent results
verification panel.verification panelManage ServerPost the verification message again or update it
verification pending.verification pendingManage ServerPage through members waiting to verify
verification approve.verification approve (member)Manage Server, Manage RolesLet someone in without the captcha
verification enable.verification enableManage ServerTurn verification back on
verification disable.verification disableManage ServerTurn it off and let everyone waiting in
verification settings alts.verification settings altsManage ServerConfigure alt detection
verification alts.verification alts (user)Kick Members, Manage ServerAccounts linked to someone, even after they left
verification forget.verification forget (user)Manage ServerDelete everything alt detection keeps about someone
example
.verification setup
.verification approve @newmember
.verification alts @suspicious

security

moderation

CommandSyntaxPermissionsUseWhat it does
ban.ban (user) [reason]Ban MembersP+SBan a user. Works on users who already left, by ID
unban.unban (user) [reason]Ban MembersP+SUnban a user by ID
kick.kick (member) [reason]Kick MembersP+SKick a member
softban.softban (member) [reason] [window]Ban MembersP+SRemove someone and delete their recent messages. They can rejoin
hardban.hardban (user) [reason]Server OwnerPA ban that only the server owner can lift
unhardban.unhardban (user) [reason]Server OwnerPLift a hardban
timeout (alias mute).timeout (member) (minutes) [reason]Timeout MembersP+STime a member out for a number of minutes
untimeout (alias unmute).untimeout (member) [reason]Timeout MembersP+SRemove a timeout
purge (alias clear).purge [amount] [member]Manage MessagesP+SDelete messages in the channel, optionally only a member's
lock.lock [channel]Manage ChannelsP+SLock a channel
unlock.unlock [channel]Manage ChannelsP+SUnlock a channel
examples
.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.

CommandSyntaxPermissionsWhat it does
jail setup.jail setupManage ServerCreate the jail role and channel and hide every other channel from jailed members
jail.jail (member) [reason]Manage RolesJail a member (slash: /jail user)
unjail.unjail (member) [reason]Manage RolesRelease a member and give their roles back
example
.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.

CommandSyntaxPermissionsWhat it does
honeypot setup.honeypot setupManage ServerCreate 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.

CommandSyntaxWhat 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 listList every role with fake permissions
permissions
Administrator
aliases
fp, fakeperms
example
.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

TypeRecords
modlogModeration actions and cases
channellogChannel create, edit, delete
rolelogRole changes and role assignments
msglogEdited and deleted messages
voicelogVoice joins, leaves and moves
serverlogsJoins, leaves and server changes
ticketlogTickets opened, claimed and closed, with a transcript file
threadlogThread changes
securitylogAutoMod, anti-raid and verification events

command

permissions
Manage Server
use
P+S
alias
logsetup
syntax
.logs setup
.logs (type) (channel)
.logs list
.logs remove (type)
example
.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
CommandSyntaxWhat it does
ticket setup.ticket setupSet up a new panel, or change one
ticket list.ticket listThe 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_listWho cannot open tickets
ticket reset.ticket resetRemove 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
CommandSyntaxWhat it does
rolereactions setup.rr setup [message]Link an existing message, or let scraps send one, then pick emoji and roles
rolereactions list.rr listThe 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
example
.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
CommandSyntaxWhat it does
welcome add.welcome add [code]Set the welcome message
welcome remove.welcome removeTurn it off
welcome test.welcome testPreview 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.

example
.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
CommandSyntaxWhat 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 removeallRemove all
autoresponder list.ar listList 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].

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

CommandSyntaxPermissionsWhat it does
boosterrole setup.br setupManage ServerCreate the divider role booster roles are placed under
boosterrole.br (name) (color) [second color]BoosterCreate or update your role. A second colour makes a gradient
boosterrole remove.br removeBoosterDelete your role
example
.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
CommandSyntaxWhat 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 lbMembers whose messages reached the starboard most
starboard settings/starboard settingsShow the settings
starboard disable.starboard disableTurn it off
example
.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

SettingDefaultMeaning
enabledoffThe whole system
msg_xp20XP per message
msg_cooldown60Seconds between XP-earning messages
voice_enabledonEarn XP in voice
voice_xp6XP per voice minute
ignore_mutedonNo voice XP while muted
ignore_aloneoffNo voice XP when alone in the channel
react_enabledoffEarn XP for reactions
react_xp15XP per reaction
react_cooldown300Seconds between reaction XP
multiplier1.0Global XP multiplier
reset_on_leaveonReset XP when a member leaves
reset_on_banoffReset XP when a member is banned
stack_rolesoffKeep earlier level roles when a new one is given
levelup_msgCongratulations **{user_name}**! You reached **level {level}**.Level-up text

Level-up placeholders: {user_name}, {user_mention}, {level}.

member commands

CommandSyntaxUseWhat it does
rank.rank [member]P+SShow a rank card
rankleaderboard (aliases lb, leaderboard).lb [page]P+SThe server XP leaderboard
levelroles.levelrolesP+SAll level roles
levelconfig.levelconfigP+SView the settings

admin commands

permissions
Administrator
CommandSyntaxWhat 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
example
.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
CommandSyntaxWhat it does
vm setup.vm setupCreate the VoiceMaster category, the join channel and the interface
vm reset.vm resetRemove the setup and its channels
vm cleanup.vm cleanupDelete empty temporary channels left behind

channel owner commands

CommandSyntaxWhat it does
vm lock / vm unlock.vm lockLock or unlock your channel
vm hide / vm unhide.vm hideHide 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 claimClaim 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 infoInfo about your channel
vm lb.vm lbVoice time leaderboard for this server
vm glb.vm glbGlobal voice time leaderboard

The interface message in the VoiceMaster category has buttons for the same actions.

example
.vm setup
.vm limit 4
.vm rename Study room
.vm allow @friend

configuration

birthdays

CommandSyntaxPermissionsWhat 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 ServerSet the birthday role and announcement channel
birthday config (alias role).bday config (role)Manage RolesSet the role given on birthdays
birthday channel.bday channel (channel)Manage ChannelsSet the announcement channel
birthday reset.bday reset (member)Manage ServerClear someone's birthday so they can set it again
birthday help.bday help—How to use the commands
example
.bday setup @Birthday #birthdays
.bday set June 10

configuration

prefix

CommandSyntaxPermissionsWhat it does
prefix.prefix [new prefix]— to viewView 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
example
.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
CommandSyntaxWhat 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.

example
.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
CommandSyntaxWhat it does
serverpfp (alias sp).sp [image]Set the bot's avatar for this server
serverpfpremove (alias spr).sprReset it
serverbanner (alias sb).sb [image]Set the bot's banner for this server
serverbannerremove (alias sbr).sbrReset it

community

giveaways

permissions
Manage Messages
aliases
g, gw
CommandSyntaxWhat 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 listRunning giveaways in this server

Durations use the duration format: 30s, 10m, 1h, 2d.

example
.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
CommandSyntaxWhat 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 listList 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.

CommandSyntaxPermissions
blacktea.blackteaSend Messages
blacktea end.blacktea endManage Messages

community

fun commands

CommandSyntaxWhat 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.catA 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 listList uwulocked members
clearuwulocks.clearuwulocksRemove every uwulock

utilities

general

personal

CommandSyntaxWhat 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 mentionsWho 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 listYour pending reminders
remindme cancel.remindme cancel (id)Cancel a reminder
timezone (alias tz).tz [place]Set or view your timezone
timezone reset.tz resetForget your timezone
birthday set.bday set (date)See birthdays

tools

CommandSyntaxPermissionsWhat 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 ExpressionsAdd an emoji from another server to yours
embedcreate (aliases embed, ce).embedManage MessagesOpen the embed creator. .embed help shows the syntax

messages

CommandSyntaxPermissionsWhat it does
snipe (alias s).snipe—Show deleted messages from the last 2 hours in this channel
clearsnipe (alias cs).csManage MessagesClear 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

CommandSyntaxUseWhat it does
help.helpP+SThe help menu
ping.pingPBot latency
uptime.uptimeP+SUptime and system stats
userinfo (aliases ui, whois).ui [user]P+SInformation about a user
serverinfo (alias si).siPInformation about the server, including boost status
roleinfo.roleinfo [role]PDetails about a role
avatar (alias av).av [user]PA user's avatar
banner.banner [user]PA user's banner

utilities

activity

Message and voice statistics.

CommandSyntaxWhat it does
messages (aliases msg, msgs).msg [user]How many messages a member has sent
messages leaderboard (alias lb).msg lbThis server's top senders
messages global (alias glb).msg glbTop senders across every server
messages history.msg history [user] [limit]A member's recent messages
messages backfill.msg backfillCount 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 lbThe voice time leaderboard
vt reset.vt resetReset your own voice time
vt resetall.vt resetallReset 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
syntax
.fix (link)
example
.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
CommandSyntaxWhat 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.

example
.fs https://www.tiktok.com/@user/video/123
/shazam link:https://youtu.be/abc

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
CommandSyntaxWhat 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).speechCut 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).gifTurn an image or MP4 into a GIF (MP4 up to 7.5 MB and 15 seconds)
quote (alias quotes).quoteReply to a message to turn it into a quote picture
example
.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

CommandSyntaxWhat it does
fmlogin/fmloginLink your account with a button-based login (the link is only visible to you)
fmlogout/fmlogoutLog out and delete your stored session
privacy (alias fmprivacy)/privacyToggle 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

CommandSyntaxWhat it does
fm (aliases lastfm, music, np, current).fm [user]Latest scrobble
recent (alias rec).recentYour 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

CommandSyntaxWhat 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

CommandSyntaxWhat 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.cwlistMembers with the most crowns in this server
example
/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

ParameterSyntaxNotes
{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.

VariableOutput
{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.

UnitMeaning
sseconds
mminutes
hhours
ddays
correct
30s
10m
1h
2d
1h30m
incorrect
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:

PermissionCommands
Administratorfakepermission, level admin commands, vm setup, vm reset, vm cleanup, vt resetall
Manage ServerAutoMod, anti-raid, verification, logs, tickets, starboard, welcome messages, counters, jail setup, honeypot setup
Manage Rolesjail, unjail, role reactions, birthday role
Manage Channelslock, unlock, birthday channel
Manage Messagespurge, giveaways, autoresponders, snipe clear, uwulock, embed creator
Ban Membersban, unban, softban
Kick Memberskick
Timeout Memberstimeout, untimeout
Create Expressionssteal
Server Ownerhardban, 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

  1. Check you used the right prefix. Mention the bot (@scraps help) to be sure.
  2. Check the command is not disabled in that channel with .dcmds.
  3. 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.