Skip to content

Trust and strikes

A trust score and strikes for members who keep breaking the rules

A regular who posts one wrong picture and an account that floods your channels should not get the same answer. The trust system keeps a score per member so the response grows with the behaviour.

How the score works

  1. Everyone starts at 100

    Each member has a trust score in your server. A new member starts with full trust.

  2. Violations cost trust

    Each kind of violation belongs to a severity tier: low, medium, high or critical. You set how much trust each tier costs. A scam link is critical, spam is low.

  3. No trust left means a strike

    When a member's trust is used up they receive a strike, and the action you configured for that strike number applies: a warning, a timeout, a kick or a ban.

  4. Trust comes back

    Trust regenerates over time at a rate you choose, so an old mistake fades. Premium servers can also let strikes expire after a period without violations.

What counts as a violation

Every module reports to the same score. You decide per violation type whether it counts.

  • Removed media

    Images removed by nudity detection or by your block list. The AI violation is off until you enable it, so you can watch the model first.

  • Spam and invites

    Each spam check and the invite filter.

  • Blocked links

    Porn and scam domains, at high and critical severity.

  • AutoMod blocks

    Messages stopped by the AutoMod rules the bot manages.

  • Manual deductions

    A moderator can deduct trust or add a strike by hand, with a reason.

Reversing a wrong decision

Moderators can open a member's history, undo a single violation with a reason, set or reset trust and remove strikes. When a violation is undone, the score is calculated again as if it had never happened, and a punishment that no longer stands is lifted.

Members can check their own standing with /standing: their score, their strikes and what the next consequence would be. If one of their images was removed by mistake they can report it from there.

How members are told

SfwBot sends a direct message only to members who opted in with /dms. Everyone else gets a short notice in the channel that deletes itself after a few seconds. You can switch that notice off.

Switching it on

The trust system is off until you enable it. A new server starts with timeouts for the first three strikes; free servers can define three strike actions and premium servers ten. See the trust and strikes guide.

Questions and answers

Is a member banned automatically?

Only if you configure a ban as a strike action. The actions a new server starts with are timeouts.

Is the trust score shared between servers?

No. Each server keeps its own score for each member.

Can a moderator reverse a strike?

Yes. Moderators can remove strikes, undo violations and reset a member's trust, in the dashboard or with the /member command.

Other modules

  1. Nudity detection

    SfwBot scans images, GIFs and videos posted in your Discord server and removes nudity at the level you choose: revealing, implied nudity or explicit.

  2. Invite filter

    SfwBot removes Discord invite links posted in your server. Allow your own invites and trusted codes, or let members post a few before the filter steps in.

  3. Spam filter

    SfwBot's spam filter checks message rate, attachments, line breaks, capitals and emojis. Each check has its own limit and can time the member out.

  4. Link protection

    SfwBot checks links posted in your server against lists of known scam and pornographic sites, removes the message and records who posted it.

  5. AutoMod

    SfwBot creates Discord's native AutoMod rules for you and keeps them in sync: keywords, presets, regex, username and mention spam rules.

  6. Logging

    SfwBot reports every removal to a log channel in your server, with buttons to act on it, and keeps an activity log in the web dashboard.

Add SfwBot to your server

The free plan includes credits every month. Setup takes one command, and you can change every setting later in the dashboard.