Documentation
How to set Newt up and what each command does. Everything is off until you switch it on, so nothing here happens by default.
Nothing matched. Try a shorter word, or part of a command name.
Getting started#
-
Add the bot
Use the Add to Discord button at the top of this page. Discord will ask which server, and you need Manage Server there to add it. Accept the permissions it asks for: they are what the logging and moderation features need to work.
-
Turn on what you want
Nothing runs until you switch it on. Either use the dashboard, which is the quicker route for most things, or the commands listed below. Every feature is independent, so you can use the ratings without the moderation, or the other way round.
-
Check it worked
Most features have a status command that tells you what is configured and whether the bot has the permissions it needs in the channel you picked. Run those first if something isn't behaving.
Ratings and retention#
The main event. Ask new members what they think, and measure whether they stay. The survey itself is a Premium feature; retention and the Discovery check are free.
Setting it up#
Go to the channel you want the survey to live in and run
/setchannel, or pick the channel on the dashboard's Ratings tab. Either way a message with buttons from 1 to 10 is posted, and that channel is where the reminders go.That's the whole setup. From then on, everybody who joins gets a hidden role for the day they arrived, and about a week later their group gets a single ping pointing them back at the survey.
Worth knowing#
- The reminder deletes itself two seconds after it is sent, so it shows up as a notification without leaving a mess in the channel. If you are watching for it and blink, you will miss it. Use
/logging remindersto record them instead. - Each member is reminded once, not repeatedly. Reminding the same people every week would drive off the members you are trying to keep.
- Scores are saved one per member. Somebody who taps a second number replaces their old answer rather than voting twice.
/discoverychecks the server against what Discovery asks for: Community enabled, a rules channel, a moderator updates channel, media scanning, two factor for moderators, the member count and how old the server is. It says what is blocking you and what is only worth tidying.- Two of Discord's criteria are not visible to any bot: how many visitors go on to talk, and how many of those come back the next week. Those decide most of it. Server Settings, then Server Insights, is where you will find them. The retention figure
/discoveryshows is our own measurement of the same idea, and is labelled as such rather than passed off as Discord's. - Discord changes its criteria and has the final say, so treat this as a checklist rather than a verdict.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/setchannel
|
Post the survey here and use this channel for reminders. | Manage Server |
/ratings
|
The average score, a breakdown, the happy and unhappy split, and the most recent votes. | Manage Server |
/discovery
|
Checks this server against everything Discovery asks for and tells you what is still in the way. | Manage Server |
/retention
[period]
|
How many new members are still around, grouped hourly, daily, weekly or monthly. | Manage Server |
/forcesurvey
[days]
|
Send a reminder now instead of waiting for midday. Use days:0 to remind whoever joined today, which is how you test it. |
Manage Server |
/discoveryhelp
|
Explains the whole loop and shows this server's status. | Anyone |
Welcome and goodbye messages#
Messages you write, sent when somebody joins or leaves.
Setting it up#
Run
/welcome setwith your message. Give it a channel to post publicly, or leave the channel out and it arrives as a direct message instead.You get a preview back straight away, so you can see exactly what a new member will see before anybody joins.
The welcome card is set up on the dashboard, under Welcome: switch it on, pick a background style or upload your own picture, and watch the live preview redraw with your own avatar as you type.
Worth knowing#
- The welcome card is a generated picture attached to the message: the new member's avatar in a ring, a big greeting, and their member number, on one of four built-in backgrounds or an image you upload. The preview on the dashboard is drawn by exactly the same code the bot runs.
- Placeholders you can use:
{user}mentions them,{username}is their name,{tag}is their full username,{server}is the server name,{count}is how many members there are, and{ordinal}is their position, like 42nd. - Slash commands are single line, so type
\nwhere you want a line break. - Typing @everyone into a greeting will not ping anyone. A welcome fires on every join, so a mistake there would be loud and repeated.
- Goodbye messages need a channel. Discord will not reliably let a bot message somebody who has already left.
- If your server makes people accept rules before they can talk, the welcome waits until they have accepted rather than firing the moment they appear. Somebody on the rules screen cannot see the channel it is going to, and a good many of them never accept at all. The same rule covers the way out: leave without accepting and no goodbye is posted, because there was no welcome either.
- Nobody turned away by the account age gate is welcomed, and their removal does not post a goodbye. A raid would otherwise fill the channel with hellos and farewells for accounts that were never let in.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/welcome set
<message> [channel] [embed]
|
Write the greeting and switch it on. | Manage Server |
/welcome off
|
Stop sending it. Your wording is kept. | Manage Server |
/welcome show
|
Current settings, the placeholder list, and a preview. | Manage Server |
/goodbye set
<message> <channel> [embed]
|
Same, for when somebody leaves. | Manage Server |
/goodbye off
|
Stop sending it. | Manage Server |
/goodbye show
|
Current settings and a preview. | Manage Server |
Autorole#
Automatically gives new members a role when they join.
Setting it up#
On the dashboard, open your server, find Autorole, tick the roles you want and save. From Discord, run
/autorole addonce per role.Drag the bot's own role above the roles you are handing out, in Server Settings then Roles. Discord will not let any bot give out a role that sits above its own, whatever permissions it has.
Worth knowing#
- If your server makes people accept rules before they can talk, the roles arrive when they finish accepting rather than the second they join. That is Discord's behaviour, not a delay on our side: roles given to somebody still on the rules screen are thrown away.
- Roles the bot cannot give out are shown on the dashboard but cannot be ticked, with the reason next to them. That is nearly always the role order above.
- Delete a role in Discord and it drops off the list by itself the next time somebody joins.
- Bots have their own separate list, set on the dashboard under Bot autorole. A newly added bot gets those roles the moment it arrives (bots skip the rules screen) and never gets the human list.
- Up to 10 roles. They are given in a single request, so a rush of joins will not hit a rate limit.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/autorole add
<role>
|
Give this role to everybody who joins. | Manage Roles |
/autorole remove
<role>
|
Stop handing that one out. | Manage Roles |
/autorole list
|
What new members get, and a warning next to anything that is not working. | Manage Roles |
/autorole off
|
Pause it. Your list is kept. | Manage Roles |
/autorole on
|
Start again. | Manage Roles |
Custom commands#
Your server's own !commands, built on the dashboard.
Setting it up#
On the dashboard, open your server, go to the Custom commands tab, and give a command a name. That's the word people will type after a
!.Then pick what it does: words the bot answers with, a role it gives, a role it takes away, or words and a role together. The reply can go where it was typed, to a channel you choose, or by DM. Save, and it works immediately. No sync, no restart.
Write several response lines and the bot picks one at random each time, which is how you make a
!quoteor!8ballof your own.
Worth knowing#
- By default anyone in the server can use them:
!rules,!socials,!lfgfor grabbing a ping role. The advanced fold on each command can limit it to certain roles and certain channels; nothing ticked means no limit. - In a response,
{user}pings whoever typed the command and{server}is the server's name. Typing @everyone into a response pings nobody, on purpose. - Role commands follow the same safety rule as role buttons: a role with dangerous permissions, a role above the bot, or an integration's role can never be attached to one. This is checked when you save and again every time the command runs. The who-can-use-it list has no such limit, because restricting a command to your mod role is exactly what it is for.
- A role-only command, or one whose reply went elsewhere, answers with a โ reaction so the person knows it worked. There is also a switch to delete the triggering message, which needs the bot to have Manage Messages.
- Cooldowns can be per channel, per person, or one firing for the whole server. Underneath whatever you pick, each command still fires at most once every few seconds per channel, so it can't be used to make the bot spam.
- Up to 10 commands free, 30 with Premium.
Reaction roles#
React to any message with an emoji and get a role.
Setting it up#
Right-click the message in Discord and copy its link. Then run
/reactionrole addwith that link, the emoji, and the role. The bot adds the emoji to the message itself, so people have something to click.The message can be anybody's, in any channel the bot can read. If it is in the channel you are typing in, the message id on its own is enough.
The bot's role has to sit above the role it hands out, the same as for panels.
Worth knowing#
- Commands only. There is nothing for this on the dashboard; role panels are the dashboard's way of doing roles.
- Removing the reaction takes the role away again. Removing the reaction role with the command leaves people who already have the role as they are.
- Custom emoji have to come from a server the bot is in, or it cannot react with them. If a custom emoji is deleted later, that reaction role stops working.
- It is silent: the role appears or disappears, and nothing is posted. A reaction cannot be answered privately the way a button can, so if a confirmation only the person sees matters, use a role panel instead. If nothing happens at all, the usual reason is that the bot's role sits below the role it is trying to give.
- A deleted message takes its reaction roles with it.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/reactionrole add
<message> <emoji> <role> [channel]
|
Tie an emoji on a message to a role. | Manage Roles |
/reactionrole remove
<message> <emoji>
|
Untie it again. | Manage Roles |
/reactionrole list
|
Every reaction role in the server. | Manage Roles |
Birthdays#
Members save their day, and the bot celebrates them in your channel.
Setting it up#
On the dashboard, under Birthdays, pick the channel birthday announcements go to. No channel means nothing is announced.
Members run
/birthday setwith a day and a month. The year is optional: give it and the announcement says the age ("Happy 22nd birthday!").
Worth knowing#
- The year is opt-in, never required. Anyone who gave one can take it back by setting their birthday again without it, and
/birthday removeforgets the date entirely. - Birthdays are per server: setting yours here does not announce it anywhere else the bot is.
- On the morning of (UTC), everyone whose day it is gets one shared announcement with a ping. People born on 29 February are celebrated on 1 March in years without one.
/birthday nextlists the next ten coming up, so nobody has to keep a spreadsheet.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/birthday set
<day> <month> [year]
|
Tell this server your birthday. A year means your age gets announced. | Anyone |
/birthday remove
|
Make this server forget it. | Anyone |
/birthday next
|
The next birthdays coming up here. | Anyone |
Question of the day#
One question a day in a channel you pick, with a ping to the roles you pick.
Setting it up#
On the dashboard, under Question of the day, switch it on, pick the channel and the hour (UTC), and tick the roles to ping.
Write the questions one per line, or paste a JSON list. The format is
{"questions": ["...", "..."]}, which is what you get when you ask an AI for one.
Worth knowing#
- Questions post in order and start over at the end. A server can hold 500, each up to 300 characters.
- Only plain text is accepted. A pasted list that isn't a list of short strings is refused with the reason and nothing changes. @everyone and @here in a question never ping; only the roles you ticked do.
/qotd nowand the dashboard's Post one now button post the next question straight away, and that counts as today's.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/qotd add
<question>
|
Add a question to the end of the list. | Manage Server |
/qotd now
|
Post the next question right now. | Manage Server |
Daily wisdom#
A philosopher's quote a day, drawn on a picture, in a channel you pick.
Setting it up#
On the dashboard, under Daily wisdom, switch it on, pick the channel and the hour (UTC), choose the picture's colours, and tick the roles to ping.
That's all. The quotes come with the bot: Stoics, Taoists, Confucius, the Enlightenment, the existentialists. Nothing to write and nothing to feed it.
Worth knowing#
- Every quote is from a philosopher long gone, so the words are their own and free to share. No AI writes them and nothing is fetched from the internet.
- Each server walks the whole list in its own order, one a day, and starts over at the end. The dashboard shows which one is next.
/wisdom nowand the dashboard's Post one now button post the next quote straight away, and that counts as today's./wisdom quoteshows anybody a random one without touching the schedule.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/wisdom now
|
Post the next quote right now. | Manage Server |
/wisdom quote
|
A random quote, right here. | Anyone |
Tickets#
A panel of buttons that opens private support channels.
Setting it up#
On the dashboard, open your server, go to Tickets and create a panel: pick the channel it gets posted in, the category new ticket channels go under, and the roles that handle them. Add a button and save, and the panel appears within a few seconds.
From Discord,
/ticketpanel createmakes the panel and/ticketpanel addoptionputs a button on it.Set a transcript channel with
/ticket settingsor on the dashboard. Without one, deleting a ticket deletes the conversation with it.The bot needs the Manage Channels permission to create and remove the ticket channels.
Worth knowing#
- Somebody clicks a button, answers the question you set if you set one, and gets a channel only they, your support roles and the bot can see. Everyone gets a link to it privately; nobody else sees a thing.
- Each button can ask its own question and send its tickets to its own category, so Support and Report don't have to land in the same place.
- Staff can claim a ticket, add or remove people, rename the channel, and close it. Closing makes it read-only for the person; reopening gives their voice back. Deleting saves a transcript first when a transcript channel is set.
- Transcripts are HTML files of the whole conversation, drawn to read like the Discord channel itself, posted to the transcript channel. Keep that channel staff-only.
- One ticket per person at a time unless you raise the limit, up to five.
- Every action can be logged to a channel of your choice: opened, claimed, closed, reopened, renamed, deleted.
- The buttons keep working across restarts and updates. Nothing is held in memory.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/ticketpanel create
<channel> <title> [description] [category] [support_role]
|
Start a new panel. | Manage Server |
/ticketpanel addoption
<panel> <label> [emoji] [category] [question]
|
Put a ticket button on it. | Manage Server |
/ticketpanel removeoption
<panel> <label>
|
Take a button off. | Manage Server |
/ticketpanel addrole
<panel> <role>
|
Let another role handle the panel's tickets. | Manage Server |
/ticketpanel removerole
<panel> <role>
|
Take a role off the support team. | Manage Server |
/ticketpanel list
|
Every panel, its buttons, and anything that went wrong. | Manage Server |
/ticketpanel delete
<panel>
|
Remove the panel and its message. Open tickets stay open. | Manage Server |
/ticket settings
[transcript_channel] [log_channel] [max_open]
|
Where transcripts and logs go, and the open limit. | Manage Server |
/ticket close
|
Close the ticket you're standing in. | Ticket staff, or whoever opened it |
/ticket claim
|
Take the ticket as yours to handle. | Ticket staff |
/ticket add
<user>
|
Let somebody else see the ticket. | Ticket staff |
/ticket remove
<user>
|
Take somebody off it. | Ticket staff |
/ticket rename
<name>
|
Rename the ticket's channel. | Ticket staff |
/ticket transcript
|
Save the conversation as an HTML file. | Ticket staff |
/ticketban
<user> [reason]
|
Stop somebody opening tickets. Their open tickets stay open. | Ticket staff |
/ticketunban
<user>
|
Let them open tickets again. | Ticket staff |
Automod#
Nine rules that act on messages without waiting for a moderator.
Setting it up#
Open the dashboard, find Automod, and switch on the rules you want. Each one has its own response and its own thresholds. Nothing is on until you turn it on.
From Discord,
/automod ruleswitches one on or off and/automod statusshows what is running.Set the exemptions before you switch anything on. Anyone who can manage messages is skipped by default, and you can add roles and channels on top.
Worth knowing#
- The rules: banned words, Discord invites, links, mass mentions, message floods, repeated messages, shouting, emoji spam and walls of text.
- There is also an account age gate, which is the one thing here that acts before anybody has said a word. A raid is nearly always accounts registered minutes earlier, so turning away anything newer than a few days stops most of one without a single filter having to fire. A kick is the sensible setting: it comes with a direct message saying how old the account has to be, so a real person who arrived early can come back. A ban sends nothing, because a ban is not an invitation to return.
- Somebody turned away by that gate is not counted as a join. They were never a member, and counting them would put raid accounts into your retention figures and make the server look like it loses everybody.
- Five responses: delete the message, delete and warn, delete and time them out, delete and kick, delete and ban.
- Kicking and banning cannot be undone by clicking something, so there is a limit on how many can happen automatically in an hour, five by default. Past it they become timeouts instead and the case says why. One wrong entry on a banned word list would otherwise empty a server before anybody noticed. Raise the limit if you would rather it never got in the way.
- Every action falls back rather than giving up. A ban the bot has no permission for becomes a timeout, and a timeout it cannot place is still written down as a warning. The case records what actually happened, not what was asked for.
- Everything except a plain delete becomes a numbered case in the moderation log, the same as one a moderator handed out, so
/modlogsshows the whole picture rather than half of it. - Banned words are matched as whole words. Blocking a short word will not start eating the longer ones that contain it, which is the mistake that makes people turn a word filter off again.
- Invisible characters are stripped before matching, since padding a word with them is the oldest way around a filter and reads identically to everybody else.
- The link rule has an allow list. Subdomains of an allowed site count, so one entry covers the whole thing.
- Only one rule acts per message, so a message that trips three of them is dealt with once rather than three times.
- Somebody the bot could not moderate by hand, including the server owner and anyone above it in the role list, is skipped. Acting there would half work: the message would go and the timeout would quietly fail.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/automod on
|
Start it, keeping the rules you already set. | Manage Server |
/automod off
|
Stop it. Your rules are kept. | Manage Server |
/automod rule
<rule> <on> [action]
|
Switch one rule on or off and choose what it does. | Manage Server |
/automod status
|
What is running, what it does, and who is exempt. | Manage Server |
/automod minage
<days> [action]
|
Turn away accounts younger than this many days. Zero switches it off. | Manage Server |
Moderation#
The usual actions, except every one becomes a numbered case you can look up later.
Setting it up#
Run
/logging moderationand pick a channel. Every action then gets posted there with a case number, who did it, who it was done to, and why.Actions still work without a log channel and are still recorded. They just are not posted anywhere you can see.
Worth knowing#
- Who can moderate is decided on the dashboard, under Permissions, not by Discord permissions. Somebody with Ban Members still can't use /ban until an admin allows their role there. The owner, Administrators and whitelisted roles always can.
- The bot's role has to sit above anybody you want to action, in Server Settings then Roles. If it doesn't, the command tells you that rather than failing with something cryptic.
- You cannot action somebody whose top role is at or above your own, and nobody can action the server owner.
- Durations are written naturally:
10m,2h,1d,1h30m. Discord caps timeouts at 28 days. /delwarnmarks a warning inactive rather than deleting it. It stops counting toward their total but stays visible in/modlogs, so clearing warnings cannot quietly erase the trail.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/ban
<member> [reason] [duration] [proof] [soft] [purge_days] [dm]
|
Ban somebody: permanent, or temporary with a duration like 2h or 3d (unbanned automatically when it's up). Soft bans and instantly unbans, which clears messages without keeping them out. An ID works after they've left, proof files are kept with the case in the mod log, and dm decides whether they're told why. | Allowed on the dashboard |
/unban
<user_id> [reason]
|
Unban by user ID. | Allowed on the dashboard |
/kick
<member> [reason]
|
Remove somebody from the server. | Allowed on the dashboard |
/timeout add
<member> <duration> [reason]
|
Mute somebody for a while. | Allowed on the dashboard |
/timeout remove
<member> [reason]
|
End a timeout early. | Allowed on the dashboard |
/timeout list
|
Who is timed out right now, and when each one lifts. | Allowed on the dashboard |
/warn
<member> <reason>
|
Warn somebody. Recorded against them. | Allowed on the dashboard |
/warnings
<member>
|
Their active warnings. | Allowed on the dashboard |
/delwarn
<case_id>
|
Remove a warning by its case number. | Allowed on the dashboard |
/imageban
<member> [reason] [duration]
|
Stop somebody posting images, GIFs and videos. They keep talking, but any post of theirs with a picture, GIF, video, sticker or media link in it is deleted on sight and a card in the channel says why. Give a duration like 2d or 1w and it lifts itself; leave it out and it lasts until /imageunban. | Allowed on the dashboard |
/imageunban
<member> [reason]
|
Let them post images again. | Allowed on the dashboard |
/imagebans
|
Who is banned from posting images right now, and when each ban lifts. Only you see the answer. | Allowed on the dashboard |
/curse
<member> [reason]
|
Take every role they have, give them a dark red role called Cursed, and leave them one channel, #hell. They can't see or talk in any other. The role and the channel are made the first time you use it. Their roles are written down, and leaving and rejoining doesn't shake the curse off. A burning welcome card with their avatar is posted in #hell and pings them. | Allowed on the dashboard |
/uncurse
<member> [reason]
|
Lift the curse and give back the roles they had. A role deleted in the meantime can't come back, and the answer says how many did. | Allowed on the dashboard |
/uncurseall
[reason]
|
Lift every curse in the server at once. Everybody gets their roles back. | Allowed on the dashboard |
/modlogs
<member>
|
Everything on record for that member. | Allowed on the dashboard |
/modactions
<staff> [count]
|
A staff member's recent actions, Newt cases and native Discord bans, kicks and timeouts merged. Posts in the channel. | Allowed on the dashboard |
/case
<number>
|
Look up one case by its number. | Allowed on the dashboard |
/note
<member> <text>
|
A staff note on a member: recorded like a case, never counts as a warning, and the member is not told. | Allowed on the dashboard |
/reason
<number> <reason>
|
Fix a case's reason after the fact. Who edited it is kept on the case. | Allowed on the dashboard |
/purge
<amount> [member] [contains] [bots]
|
Bulk delete recent messages, optionally only from one person, containing some text, or only from bots. | Allowed on the dashboard |
/slowmode
<duration>
|
Set this channel's slowmode. Use 0 to turn it off. | Allowed on the dashboard |
/lock
[reason]
|
Stop members posting in this channel. | Allowed on the dashboard |
/unlock
[reason]
|
Let them post again. | Allowed on the dashboard |
/logging moderation
[channel]
|
Where cases get posted. Leave the channel out to switch it off. | Manage Server |
Your data#
What is stored, and what happens to it when you remove the bot.
Setting it up#
Nothing to set up. This is here so you know what you are agreeing to.
Worth knowing#
- What is kept: your settings, a record of who joined and left so retention can be worked out, the rating each member gave, moderation cases, role panels, and the log of survey reminders. No message content is stored. Deleted media is held in memory for a few hours so it can be re-posted, and never written to a database.
- Remove the bot from your server and all of it is deleted after 30 days. The delay is deliberate: bots get kicked by accident, or removed and re-added while somebody sorts out permissions, and wiping a server's whole history the instant that happens would be its own kind of problem.
- Add the bot back within those 30 days and nothing was lost. Your settings, cases and history are exactly where you left them.
- Membership records expire by themselves after 180 days whether or not the bot is still in the server, because retention only ever looks back 30 days.
- If you want everything gone sooner than 30 days, ask and it will be done.
- The full privacy policy and terms of service say the same thing at greater length, including exactly what is stored per feature and how long each part is kept.
Server log#
A record of what happens in the server, in one channel or in as many as you want.
Setting it up#
The quickest way is
/logging setup. It builds a hidden category of log channels for you, points every event at the right one and switches the lot on. Pick a few channels grouped by type, one channel for everything, or a separate channel for every event. Run it twice and it reuses what is already there rather than making a second set.If you would rather do it yourself, run
/logging channeland pick where the log goes. Everything is switched on at once, so that is the whole setup for most servers.If you want a particular kind of log kept apart, open the dashboard, find Server log, and give that one its own channel. Anything left on Same as above keeps going to the main channel.
From Discord,
/logging eventdoes the same thing one at a time, and/logging statusshows you what is being recorded and where.
Worth knowing#
- Thirteen kinds of event: deleted messages, edited messages, bulk deletions, people joining and leaving, bans, unbans, nickname changes, role changes, voice channels, channels, roles, and server settings.
- The voice log covers joining, leaving and moving between voice channels. Muting, deafening, streaming and turning a camera on are left out, and so are bots: a music bot rejoins on every track and would bury everybody else.
- There are four logs and they all answer to
/logging. The server log records everything that happens, however it happened. The moderation log records only the punishments handed out with Newt's own commands, and gives each one a case number. Deleted media keeps the actual file when a picture or video is removed. Survey reminders records the reminders sent to new members and how many people each one reached. - With both switched on, a ban placed with
/banis written once as a numbered case rather than appearing in both. A ban placed through Discord itself has no case, so the server log records it as normal. - Your log channels are never logged themselves. Without that, deleting an entry would write another one about the deletion.
- The dashboard's Logs tab has a list of channels the log ignores. Nothing that happens in a ticked channel is recorded: deletes, edits, purges, voice, renames, deleted media. Threads follow the channel they live in.
- Deleted images and videos stay with the media log, which keeps the file itself. When both are on, a deleted picture is reported once with the picture rather than twice.
- Bans say who did it and why, which comes from the audit log, so the bot needs View Audit Log to fill that in. Everything else works without it.
- Editing a message only counts when the text actually changed. Discord fires an edit whenever it turns a link into a preview, and logging those would bury the real ones.
- Channel and role changes cover creating, deleting and renaming. Permission changes are left out on purpose: they fire constantly and produce a log nobody reads.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/logging setup
[style] [category]
|
Build the log channels and switch everything on in one go. The category is hidden from everybody but staff. | Manage Server |
/logging channel
[channel]
|
Send every kind of log here, and switch them all on. Leave the channel out to turn logging off. | Manage Server |
/logging event
<event> <on> [channel]
|
Switch one kind on or off, or send it somewhere of its own. | Manage Server |
/logging moderation
[channel]
|
Where numbered moderation cases go. Leave the channel out to switch it off. | Manage Server |
/logging media
[channel]
|
Where deleted images, videos and voice memos are kept, with the file. Leave the channel out to switch it off. | Manage Server |
/logging reminders
[channel]
|
Where survey reminders are recorded. Leave the channel out to switch it off. | Manage Server |
/logging pause
<duration>
|
Mute the server and media logs for a while, so a raid cleanup doesn't flood them. Capped at 6 hours; they come back by themselves. | Manage Server |
/logging resume
|
End a log pause early. | Manage Server |
/logging status
|
All four logs at once: what each records and where it goes. | Manage Server |
Deleted media logging#
When an image, video or voice memo is deleted, you get the file itself.
Setting it up#
Run
/logging mediaand pick where the files should go. That is the only step.
Worth knowing#
- Discord destroys a file the moment its message is deleted, so the bot downloads a copy while the message is still there and holds it briefly. When the message goes, that copy is posted to your log channel.
- This means coverage starts when you switch it on, and a file posted before the bot last restarted may not be recoverable. In that case you still get who deleted what and when, and the log says the file was not kept.
- Documents, archives and other file types are ignored. Only images, video and audio are tracked.
- Files over 8MB are not kept, but the deletion is still logged with the filename and size.
- Without the View Audit Log permission the bot cannot tell who deleted something, and will say so rather than guess. Note that somebody deleting their own message leaves no audit entry at all, so that case always reads as unknown.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/logging media
[channel]
|
Where deleted media is kept. Leave the channel out to switch it off. | Manage Server |
/logging status
|
What is configured, plus a permission check. | Manage Server |
Survey reminders#
Because the reminder deletes itself two seconds after it is sent, this is the only lasting record that it went out.
Setting it up#
Run
/logging reminderswith a channel. Every reminder then gets recorded with which joining group it went to and how many members it reached.
Worth knowing#
- Only this bot's own reminders are recorded. Ordinary pings from members are not.
/logging statusshows a summary of the last 30 days alongside the other logs.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/logging reminders
[channel]
|
Where reminders are recorded. Leave the channel out to switch it off. | Manage Server |
/logging status
|
Recent reminders and how many they reached. | Manage Server |
Server statistics#
Read-only, and open to everyone in the server.
Worth knowing#
- These have short cooldowns because they scan every member. If you are told to slow down, that is why.
/stats activityonly reads channels you can already see.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/stats members
|
Joins and leaves: today, the week, the month, with a graph of the last 30 days. | Anyone |
/stats roles
[limit]
|
The most common roles. | Anyone |
/stats activity
[channel] [hours]
|
Message counts, top posters and the busiest hour. | Anyone |
/stats tags
[online_only]
|
Which guild tags members are wearing. | Anyone |
/stats badges
[badge] [show_members]
|
Count or list members with a profile badge. | Anyone |
Server counters#
Live stats shown as channel names, like Members: 1,204 at the top of the channel list.
Setting it up#
Open the dashboard, go to Counters, tick the stats you want and word each channel name however you like.
{count}is where the number goes.Save, and within half a minute the channels appear in a Server Stats category. They're locked voice channels: nobody can join them, everybody can read them.
Worth knowing#
- Discord only allows a channel to be renamed about twice every ten minutes, so the numbers refresh on a ten minute cycle. Every bot that does this has the same limit; the difference is whether it tells you.
- You can rename or move the Server Stats category and the counters won't mind: they're tracked by id, not by name.
- The channel counter doesn't count the counters themselves, so switching the feature on doesn't change the number it shows.
- The bot needs Manage Channels for this. If it's missing, the dashboard row says so instead of failing quietly.
- Three counters are free; Premium raises it to eight.
Utilities#
Worth knowing#
- If a command looks missing or out of date in Discord's picker, run
/sync. If it still looks wrong, fully close and reopen Discord: the app caches the command list and does not always refresh on its own. /saycan answer a specific message. Right-click it, Copy Message Link, and paste that intoreply. The message id on its own works too if you have developer mode on. It has to be in the same channel you are running the command in, because Discord will not let a message reply across channels.pingdecides whether that reply notifies the person you are answering, and is off unless you set it. A reply from staff arriving as a notification is a choice worth making on purpose. It does nothing withoutreply, and says so rather than being ignored.- Up to three files can go with it, and the message becomes optional once one does, so the bot can post a picture with nothing written above it. A file marked as a spoiler stays one. The limit is your server's own upload limit rather than Discord's limit on you: the bot has to upload the file a second time to post it, and that upload is what gets measured.
/saywill not lend the bot's permissions to whoever runs it. Typing @everyone into it pings the server only if you could have done that yourself./emojitakes an emoji pasted from any server you are in and adds a copy here. Animated and still emoji have separate allowances, and it says which one is full rather than letting Discord refuse it with no explanation. Passnameif this server already has one by that name.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/sync
|
Re-register the bot's commands with Discord. Your Discord app may still need a restart to show changes; that cache is Discord's, not the bot's. | Manage Server |
/emoji
<emoji> [name]
|
Copy an emoji from another server into this one. | Manage Expressions |
/say
[message] [reply] [ping] [file] [file2] [file3]
|
Make the bot post a message or a file, on its own or as a reply to another message. | Manage Messages |
/ping
|
Check the bot is alive, with its gateway and reply times. | Anyone |
/invite
|
Add the bot to your own server. | Anyone |
/help
|
A browsable list of everything. | Anyone |
Profiles and fun#
The ones nobody needs. A server people enjoy being in is the thing everything else here measures.
Worth knowing#
/userinfoshows what Discord knows plus what only this bot does: the score that member gave the server, which invite they arrived through and who made it, how many separate times they have joined, and who they are married to here. Every one of those is left out when there is nothing to say, so a brand new member gets a short card rather than a wall of blanks.- Warning counts appear on
/userinfoonly for people who could already look them up with/warnings. Somebody's moderation history is not a thing the whole channel gets to read. /marryposts a proposal with buttons, and only the person being asked can answer it. Nobody can be married to two people in the same server, and that is checked again when the proposal is accepted rather than only when it was made, so an old button can't get round it./divorceends it, and either partner can./shipis worked out from the two member IDs, so the same pair always gets the same number. It is meant to be a joke, not a measurement.- Marriages and poll votes belong to the server they happened in, and are deleted along with everything else if the bot is removed.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/userinfo
[member]
|
Names, dates, join position, roles, permissions, badges, and what this bot knows: their rating, who invited them, and how many times they've joined. | Anyone |
/serverinfo
|
Channels, roles, emoji, boost progress, verification and content settings, plus joins, leavers and the invite bringing the most people this week. | Anyone |
/wouldyourather
|
A question with two buttons, and the split once people vote. | Anyone |
/marry
<member>
|
Propose to somebody. They have to accept. | Anyone |
/divorce
|
End your marriage in this server. | Anyone |
/couples
|
Everybody married in this server, longest marriage first. | Anyone |
/ship
<member> [other]
|
A compatibility score that never changes. | Anyone |
/worsethan
[member]
|
The Family Guy news report, with their avatar on the screen. | Anyone |
/serverbirthday
|
How old the server is, and when the next anniversary lands. | Anyone |
/randommember
|
Pings one random person. Good for giveaway moments. | Anyone |
/roleinfo
<role>
|
Colour, position, who has it, what it grants, and whether I could hand it out. | Anyone |
/avatar
[member]
|
Their avatar, full size. | Anyone |
/banner
[member]
|
Their banner, if they have one. | Anyone |
/8ball
<question>
|
Ask it something. It answers badly. | Anyone |
/randomcat
|
A random cat picture, from thecatapi.com. | Anyone |
/catgif
|
A random cat gif, from cataas.com. | Anyone |
/randomdog
|
A random dog picture, from dog.ceo. | Anyone |
/randomfox
|
A random fox picture, from randomfox.ca. | Anyone |
/randomduck
|
A random duck picture, from random-d.uk. | Anyone |
/randombird
|
A random bird picture with a bird fact, from some-random-api.com. | Anyone |
/dadjoke
|
A dad joke, from icanhazdadjoke.com. | Anyone |
/fact
|
A useless fact, from uselessfacts.jsph.pl. | Anyone |
/advice
|
One piece of advice, from adviceslip.com. | Anyone |
/hug
<member>
|
Hug somebody: a gif, a running hug tally for both of you, and a button for them to hug back. | Anyone |
/pat
<member>
|
Headpat somebody: a gif, a running tally for both of you, and a button to pat back. | Anyone |
/slap
<member>
|
Slap somebody, gently, with a gif. | Anyone |
/kiss
<member>
|
Kiss somebody: a gif, a tally, a kiss-back button. | Anyone |
/highfive
<member>
|
High-five somebody, tallied like the hugs. | Anyone |
/poke
<member>
|
Poke somebody, tallied like the hugs. | Anyone |
/bite
<member>
|
Bite somebody, gently, tallied like the hugs. | Anyone |
/cuddle
<member>
|
Cuddle somebody, tallied like the hugs. | Anyone |
/dance
<member>
|
Ask somebody to dance, tallied like the hugs. | Anyone |
/rps
[member]
|
Rock paper scissors, against me or anybody else. | Anyone |
Mog battle#
AI-judged 1v1 selfie battles: get matched, submit one pic, and a vision AI decides who mogs. No voting, no photo feed.
Setting it up#
No setup.
/mogbattle joinin any channel starts a battle right there.Run it bare for an open invite with a Join battle button anyone can press, or with an opponent to challenge somebody directly โ that invite's Accept button answers only to the person pinged.
Both fighters post one selfie in that channel. Each submission is deleted the moment it lands, so nothing shows until the verdict.
Once both pics are in, the AI compares them and the bot posts one result image: the winner drawn normally, the loser black-and-white under red with MOGGED stamped across the photo, and a score under each.
Worth knowing#
- The AI is the only judge. There is no voting, no reactions, no crowd โ usernames, roles and past results play no part, only the two photos, scored on the same criteria every battle.
- One photo per fighter per battle. The first pic you post is your entry, so nobody can shop around for a better verdict.
- Battles share the channel with normal conversation, and the bot leaves everyone else's messages alone โ it only touches a fighter's own image posts while their battle is waiting on them.
- A fighter who never posts times out after 3 minutes and the battle is called off. An unanswered invite expires after 5 minutes.
- Challenging Newt itself is allowed, technically. It runs like any other battle โ you submit your selfie, the wheel spins, the result image comes back with your side stamped MOGGED. Newt wins 100 to 0. Every time.
- The judging runs on a free AI vision model. The bot owner has to configure the key once; until then
/mogbattle joinsays the judge isn't hired and nothing runs. - Only the finished result is stored: who fought, the scores and the winner. The photos themselves are never saved anywhere.
- I need Send Messages, Manage Messages and Attach Files in the channel the battle runs in โ
/mogbattle joinsays so if any are missing there.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/mogbattle join
[opponent]
|
Start a battle in this channel: an open invite anyone can accept, or a direct challenge only the named person can. | Anyone |
/mogbattle status
|
Whether the AI judge is ready, and what's running right now. | Manage Server |
/mogbattle cancelall
|
Cancel every battle and invite in the server. | Manage Server |
Reminders#
Ask to be told about something later.
Worth knowing#
- Say how long from now rather than a date:
10m,2h30m,3d,1w. Anything from 30 seconds to a year. If it can't read what you typed it says so instead of guessing, because a reminder at a time you didn't ask for is worse than none. - Reminders arrive as a direct message. If yours are closed it posts in the channel you set it in and pings you there, so a closed inbox doesn't mean a reminder that never comes.
- Twenty five waiting each.
/reminderslists yours with a number beside each one, and/reminders cancel:2calls that one off. The numbers are positions in your own list, so there is no number that reaches anybody else's.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/remindme
<when> <what>
|
Be told about something later. | Anyone |
/reminders
[cancel]
|
What you're waiting on, and how to call one off. | Anyone |
Soundboard#
Manage your server's soundboard from the dashboard.
Setting it up#
Open your server on the dashboard and pick Soundboard. Everything is done from that page; there are no commands for it.
The bot needs Create Expressions and Manage Expressions. If uploads are refused, add the bot again to grant them: Discord does not widen a permission on a server that already has it.
Worth knowing#
- Upload mp3 or ogg, up to 512KB and 5.2 seconds. Those are Discord's limits, not ours. The page checks the length in your browser and tells you before uploading rather than letting Discord refuse it.
- A name, an emoji and a volume can be changed as often as you like. The sound keeps its id, which means it stays in every member's favourites.
- Reordering is the one thing that costs something. Discord gives a sound no position, so the order members see comes from when each was uploaded, and the only way to change it is to delete and re-upload. Those sounds get new ids and drop out of everybody's favourites.
- Because of that, dragging a sound near the top is expensive and dragging one near the bottom is cheap: everything from the first sound that moved onwards has to be recreated. The confirmation says how many before you commit, and nothing happens until you accept it.
- Every file is downloaded before any deletion happens, so a sound whose audio cannot be fetched stops the whole reorder with your board untouched.
- Editing the audio itself is not possible. Discord has no way to replace a sound's file, so trim it before uploading.
Support tickets#
Asked on the website, answered in Discord.
Setting it up#
Open the support page, log in with Discord, and say what happened. Pick the closest category, and name the server if it is about one.
Nothing to install and nothing to switch on. Anyone can open one, whether or not they run a server the bot is in.
Worth knowing#
- The answer arrives as a direct message from the bot, and the same thread stays on the support page. Closing the tab does not mean missing the reply.
- If your direct messages are shut the reply is still on the page, and whoever answered is told it could not be sent rather than assuming it landed.
- Three open at a time, and a minute between new ones. Replying on the ticket you already have is better than opening a second about the same thing anyway.
- A ticket holds your Discord ID and username, the server you picked if you picked one, and what you typed. Nothing else is taken from your account.
- Tickets belong to you rather than to a server. Removing the bot from a server does not close them or delete them, and they are kept until you ask for them to go.
- Either side can close one. Yours have a Close button on the support page, and a reply that finishes the matter off may close it from the other end.
- The four
/admin ticketscommands below are how the answer gets written. They work only for whoever runs the bot, and only in its own server, so they will not show up in your command list. They are here so this page is a full account of what exists rather than only the parts you can use.
Commands#
| Command | What it does | Who can use it |
|---|---|---|
/admin tickets list
[status]
|
Tickets waiting on a reply, or whichever status you ask for. | Bot owner |
/admin tickets show
<number>
|
Read one in full, with everything said since. | Bot owner |
/admin tickets reply
<number> <message>
|
Answer it. The reply goes to them as a direct message and onto the page. | Bot owner |
/admin tickets close
<number> [message]
|
Close it, with an optional last word sent to them as well. | Bot owner |
Permissions#
Two separate things decide whether a command works: what you are allowed to do, and what the bot is allowed to do.
- Yours. Each command needs its matching Discord permission. Somebody with Ban Members can ban, but cannot change where the log goes. Nothing needs Administrator.
- The bot's. It needs to see and post in whichever channels you point it at, Manage Roles for the joining groups, and View Audit Log to say who deleted something. The status commands check all of this and tell you what is missing.
- Role position. For moderation, the bot's role has to sit above the people it is actioning, in Server Settings then Roles. Permissions alone are not enough.
Troubleshooting#
- A command doesn't appear in Discord
- Run
/sync, then fully quit and reopen Discord. The client caches the command list locally and does not always pick up changes on its own. - Nothing happens when somebody joins
- Greetings are off until you run
/welcome set. Check with/welcome show, which will tell you it is off and show you what is stored. - A moderation command says my role is too low
- The bot's role has to sit above the member you are actioning. Move it up in Server Settings, then Roles.
- Deleted files are not being kept
- Check
/logging status. The usual causes are a missing permission in the log channel, a file over 8MB, or a message posted before the bot last restarted. - The mod log says the deleter is unknown
- Either the bot is missing View Audit Log, or the person deleted their own message. Discord does not write an audit entry for that, so it genuinely cannot be known.
- /forcesurvey says there was nobody to remind
- It looks for people who joined exactly eight days ago. If the bot has not been in your server that long there is nobody to remind yet. Use
days:0to test it against whoever joined today. - A change on the dashboard has not taken effect
- Give it a few seconds. The bot checks for changes every ten seconds rather than on every message.