Security

Ban Appeals

Give banned members a page where they can make their case, and review what they send from Discord or the dashboard.

Overview

A banned member cannot message you — they are not in the server any more. Appeals give them a public page to fill in, and give your staff a queue to work through.

Appeals are submitted on the web only. Setting them up can be done from Discord or the dashboard; reviewing them can be done from either as well.

Appeals are free. Server Premium raises the limits: more forms, a much larger queue, and resolved appeals kept for longer.

Getting started

,appeal setup
,appeal channel (channel)
,appeal invite [code]

,appeal setup creates your appeal site and turns appeals on. It also creates a starter form called Ban appeal if you have none.

You then get two links:

  • greed.best/appeal/YOUR-CODE — your appeal site.
  • greed.best/appeal/s/YOUR-SERVER-ID — the same page, reached by server ID.

Any invite to your server also works — including your vanity. Someone who still has discord.gg/your-server can put that code in the link and land on your appeal page, so you do not have to hand out a separate address. greed.best/appeal/your-server and greed.best/appeal/aBc1De2G both resolve.

And if they have no link at all, greed.best/appeal asks for one: they type the invite they still have and greed takes them to the right form. greed.best/appeals goes to the same place.

If you would rather people needed one of your invites, turn the ID route off with ,appeal idlookup off.

The re-join invite

Accepting an appeal is only half of it — the member still needs a way back in.

,appeal invite [link or code]

Run ,appeal invite with nothing after it and greed creates a permanent, unlimited-use invite to the channel you ran it in. Paste your own link instead if you already have one — greed accepts discord.gg/x, https://discord.com/invite/x or the bare code.

The invite is sent to the member in the message they receive when their appeal is accepted, so it must not expire.

On the dashboard the same thing is under Appeals → Settings, with a Generate one for me button that asks which channel to point at.

Forms

A form is what you ask someone to fill in. It has a name, a short description, a long description, and up to five sections.

Section types:

TypeWhat it does
Read onlyText the member reads. Nothing is asked of them.
Short paragraphA single line.
Long paragraphA paragraph.
CheckboxA box they tick.
DropdownA list you write. Can allow picking several.

Every section has a title, a description, a required toggle, and — where it makes sense — a default value and minimum and maximum character counts.

,appeal form
,appeal form add (name)
,appeal form remove (name)

Sections are built on the dashboard — five fields per section is more than a Discord command should be asked to carry.

Deleting a form keeps the appeals already submitted through it; nobody can pick it again.

Reviewing appeals

Every new appeal is posted to your review channel with Accept, Reject and Reply buttons. Anyone with Manage Server can use them.

  • Accept — asks for an optional reason, tells the member, and sends them your re-join invite. It also lifts the ban unless you turned that off with ,appeal unban off.
  • Reject — asks for a reason, which the member is told.
  • Reply — sends the member a direct message without deciding anything. They can reply back from the appeal page.

The dashboard has the same thing under Appeals → Submissions, with tabs for pending, accepted and rejected, and the full conversation on each one.

,appeal pending
,appeal logs (channel)
,appeal unban (on|off)

Storage

Resolved appeals are deleted automatically so your queue does not fill up with decisions you have already made.

,appeal retain (days)

The default is 3 days. Free servers can go up to 7 days; Server Premium raises that to 90.

A member's own record of their appeal disappears at the same time, which is deliberate — the decision has already been sent to them.

Limits

FreeServer Premium
Forms315
Sections per form55
Open appeals at once501,000
Resolved appeals keptup to 7 daysup to 90 days

Someone with an appeal already waiting cannot send another until it is decided, on any plan.

Messages

Every message greed sends about an appeal can be rewritten under Appeals → Messages on the dashboard, using the same scripting the rest of greed uses. Leave one empty and greed uses its own wording.

MessageWhen it is sent
Submission InfoPosted in the review channel when a new appeal arrives. Carries the buttons.
Log Submission CreatePosted in the log channel when an appeal is submitted.
Log Submission AcceptPosted in the log channel when an appeal is accepted.
Log Submission RejectPosted in the log channel when an appeal is rejected.
Reply ReceivedPosted in the review channel when the member replies.
Reply Send SuccessShown to the staff member whose reply was sent.
Reply SentSent to the member when staff reply.
Submission AcceptedReplaces the Submission Info message, and is sent to the member, on accept.
Submission RejectedReplaces the Submission Info message, and is sent to the member, on reject.

Alongside the usual {user.*} and {guild.*} variables, appeal messages carry:

VariableValue
{appeal.id}The appeal's number
{appeal.form}The form that was filled in
{appeal.answers}Every question and answer, one per line
{appeal.reason}The reason staff gave when resolving it
{appeal.message}The reply body, on reply messages only
{appeal.invite}The re-join invite, on accepted appeals only
{appeal.status}pending, accepted or rejected
{appeal.url}A link to the appeal in the dashboard
{staff.name}The staff member who resolved or replied
{staff.id}That staff member's id

Telling banned members where to appeal

A banned member cannot read your server, so the useful place for the link is the message they get as they are removed. Invoke messages for ban and kick can carry it:

VariableValue
{appeal.link}Your appeal site, or empty when appeals are not set up
{appeal.server_link}The same page by server ID, or empty when that is turned off
{appeal.open}yes or no — whether you are currently accepting appeals
,invoke ban dm {embed}{description: You were banned from {guild.name} for {reason}.$v$vYou can appeal at {appeal.link}}

Run ,appeal variables to see every variable, both the message ones above and these.

{appeal.link} renders as nothing until you run ,appeal setup, so a message written before you set appeals up will not show a broken link.

Commands