Writing good rules
The single biggest factor in how well Blify Mod moderates your server is how you write your rules. The bot doesn't keyword-match — it reads your rule text the way a careful, literal-minded human would and enforces exactly what it says. A vague rule produces vague (and sometimes surprising) enforcement; a specific rule produces predictable enforcement.
This page explains how the judge reads your rules and gives you a repeatable recipe for writing ones that behave the way you expect.
The core idea: the AI takes your rule almost literally. The smallest vague phrase is where things go wrong. The more specific detail you give, the more accurate it is — so when in doubt, add detail.
#Why details matter so much
When a message is flagged for review, the bot sends the model your full rule list and asks it to decide whether the message breaks one of those rules and what to do about it. The model is explicitly told:
- It may only act on the rules you listed — it can't borrow from "common sense" or Discord's ToS.
- It must point to the specific words in the message that break a rule.
- On anything ambiguous, it should lean toward doing nothing.
That last point cuts both ways. A precise rule gives the model a clear target to match against. A loose rule leaves the model guessing what you meant — and guesses are where false positives (and false negatives) come from. Your rule text is the prompt. Treat it like one.
#The recipe
A good rule answers four questions:
- What exactly is banned? Name the specific behavior, not a broad category.
- What is the subject? If the rule is about a topic, team, person, or game, name it — don't assume the bot shares your context.
- What are the exceptions? Spell out what is allowed, so the bot doesn't over-enforce.
- What should happen? If you have a preferred punishment or threshold, say so.
You set rules with /setrules add:
/setrules add title:"No self-promotion" description:"Sharing your own channels, servers, or invite links is only allowed in #self-promo — doing it elsewhere gets the message deleted. Linking someone else's content when it's relevant to the conversation is fine."
The title is the short label; the description is where the detail lives. The description is optional, but it's the difference between good and bad enforcement — always write one.
#Vague vs. specific: worked examples
#Example 1 — over-broad category
Vague:
Keep it civil — Be respectful.
Read literally, "be respectful" is enormous. The bot has to decide on its own what counts, and a blunt or sweary message can read as "disrespectful" even when no one was actually targeted. That's how an offhand swear word ends up flagged.
Specific:
Keep it civil — Targeting, demeaning, or threatening a specific member is not allowed. Casual swearing on its own (e.g. venting, "this boss fight is hard af") is not a violation unless it's aimed at another member.
Now the bot knows the protected behavior (targeting a member), and — just as important — it knows what to leave alone (casual profanity). The exception is doing as much work as the ban.
#Example 2 — the subject is ambiguous
Vague:
No spoilers — Don't post spoilers.
Spoilers for what? The bot doesn't know your server's context. It will either ignore the rule (because it can't tell what counts as a spoiler) or flag unrelated messages that mention a plot, an ending, or a death.
Specific:
No spoilers for [current show/game] — Don't post plot details, character deaths, or endings for [the specific title] outside #spoilers. Vague reactions like "that ending was wild" are fine.
The model is told to match the literal subject: if a key term could plausibly mean something outside the rule's scope, it treats the message as out of scope and does nothing. Naming exactly what's covered — and what isn't — removes the ambiguity.
#Example 3 — a pattern rule with no pattern
Vague:
No spam — Don't spam.
Specific:
No spam or flooding — Repeated identical messages, walls of emoji, copypasta, or 5+ rapid messages in a row. A single message is never spam.
Rules defined by repetition (spam, "doom posting", "constantly", "repeatedly") need the repeated behavior to actually be visible. The bot already knows not to treat one isolated message as a pattern — but stating the threshold makes its behavior match your intent.
#Things the bot does automatically (so you don't have to)
Knowing these helps you avoid writing rules that fight the system:
- Exceptions are honored. If your rule names a condition where the behavior is allowed ("unless aimed at a member", "jokes are fine", "not out of frustration"), the bot assumes the message qualifies for that exception unless the text clearly shows otherwise. So write the exceptions in — they work.
- It won't invent rules. If a message is genuinely awful but no listed rule covers it, the bot does nothing. If you want something moderated, it has to be in your rules.
- It won't read minds. The bot won't assume a user is angry, bitter, or acting in bad faith unless the message text actually says so. Don't write rules that depend on guessing intent.
- Context gets pulled when needed. For borderline messages, the bot fetches the replied-to message and the author's prior messages before deciding — so you don't need to explain "check the context" in your rule.
See How it works for the full pipeline.
#One rule = one topic
Each rule slot should cover one coherent topic. The bot will reject a single rule that bundles clearly unrelated rules together (e.g. "no politics and no spam") and ask you to split them. Naturally-paired topics are fine as one rule — "no slurs or hate speech", "no spam or self-promotion", "no NSFW or gore" all describe one thing.
If you have several distinct concerns, add them as separate rules. Free tier allows 5 rules; Pro/Premium raises that to 20.
#A quick checklist
Before you save a rule, read it back and ask:
- Could a literal reader interpret this more broadly than I intend?
- Did I name the specific subject (team, game, person, topic)?
- Did I state what's allowed, not just what's banned?
- Is this one topic, or did I bundle two unrelated rules?
- If I have a preferred punishment or threshold, did I write it down?
If a rule is being enforced too aggressively, the fix is almost always adding an exception to that rule. If it's being missed, the fix is usually naming the behavior more concretely. Tune the text, run a day in dry-run mode, and adjust.
#Still seeing surprising calls?
- Turn on
/dryrun mode:onand watch what the bot would do for a day before going live. - Use
/setstrictnessto cap the worst possible action while you tune wording. - Read the exact rule text back literally — if you can find the loophole, so can the model.
- Ask in the support server if a specific call still looks wrong.