SylonSylon
All featuresMessage Rules

Message Rules

Limits on the shape of a message rather than its meaning — emoji, lines, shouting, mentions, zalgo. Free to run, and the same in every language.

Overview

Everything else that reads messages here asks what they say. The word filter matches terms you listed; the analyser judges intent and costs a model call. Message Rules ask nothing about meaning at all — how many emoji, how many lines, how much of it is shouting, how many people were pinged. That is why they cost nothing to run, need no AI, and behave identically in every language: counting is not a linguistic act.

How it works

1

Nine limits, each independently off

Emoji, lines, characters, capitals, member mentions, role mentions, attachments, stickers, and a switch for zalgo. A limit of 0 means "do not check this", so the whole feature is inert until you decide what your server considers too much.
2

Delete first, punish only if it keeps happening

The message is always removed and the member told which rule they broke. A punishment is separate, counted across violations, and defaults to nothing — formatting is what an excited person gets wrong, not what a raider does.
3

It reads edits too

Post something ordinary, edit it into a wall of emoji: the same rules run again on the edited message. Both paths share one implementation, so they can never judge the same message differently.

Key capabilities

Emoji limit, counting unicode and custom emoji together
Line-count and message-length limits for the wall of text that pushes a channel off screen
A capitals percentage, measured only over letters that have case
Separate limits for member mentions and role mentions, counted per distinct target
Attachment and sticker limits
Zalgo detection by ratio of combining marks, so accented writing is never touched
Exempt roles, members and channels, and its own log channel
Optional escalation to timeout, kick or ban after a threshold

Setup

1.Open the dashboard, go to the Message Rules tab and enable it, then pick a log channel.
2.Set only the limits your server actually needs. Everything left at 0 stays switched off.
3.Leave the punishment on "Delete only" for a few days and read the log — it shows exactly what would have been removed.
4.Add exempt roles for staff or bots that legitimately post long or emoji-heavy messages.

How it works in detail

Counting is the same in every language, judging is not

This is the whole reason the feature exists next to the word filter and the analyser rather than inside them. A word list has to be written per language and maintained forever; a model has to be paid for and can be wrong. Ten emoji is ten emoji in Turkish, Thai and Japanese alike, and the answer costs a loop over the message and nothing more — which is why these rules can run on every message in every guild without a budget.

Where a rule could become unfair, it is narrowed

Two of these could quietly punish a language for existing, so both are constrained. The capitals rule ignores letters with no case, which is most of the world's writing. Zalgo is detected by the ratio of combining marks to base characters rather than their presence, because Vietnamese, Turkish, Greek and every accented alphabet use them normally — one mark per letter is writing, ten is an attack on the layout.

One deletion, one notice, one log line

A message can break several rules at once. Sylon reports all of them, deletes once, counts one violation, sends one notice in the channel that removes itself after a few seconds, and writes one entry to the log channel naming every rule that matched with its count against its limit.

Settings

Maximum emojiUnicode and custom emoji together. 0 turns this off.
Maximum linesLine breaks in one message — the wall of text that pushes a channel off screen. 0 turns this off.
Maximum charactersLength in characters as a person sees them, so one emoji counts as one. 0 turns this off.
Maximum capitals (%)Percentage of letters that are uppercase. Counted over cased letters only, so Arabic, Thai, Han and Hangul can never trip it. 0 turns this off.
Ignore messages shorter thanMessages shorter than this are never judged for capitals. Without it, "OK!" is 100% capitals and every acknowledgement in the server is deleted.
Maximum member mentionsDistinct members pinged in one message, so replying to the same person twice counts once. 0 turns this off.
Maximum role mentionsDistinct roles pinged. @everyone and @here are not counted here — those are a permission, and Server Guard handles their abuse.
Maximum attachmentsFiles and images on one message. 0 turns this off.
Maximum stickersStickers on one message. 0 turns this off.
Block zalgo textText with combining marks stacked to spill over the lines around it. A switch rather than a number: the threshold is a fact about Unicode, and ordinary accented writing never reaches it.
PunishmentThe action taken against the user when the limit is reached. Timeout temporarily restricts, Kick removes from server, Ban permanently bans.
Log ChannelThe channel where the bot will send log messages for this feature.
Exempt RolesMembers holding any of these roles will be exempt from this protection.
Exempt MembersSpecific members this system completely ignores, in addition to the exempt roles.
Exempt ChannelsMessages in these channels will not be checked by this protection.

Good to know

Sylon needs Manage Messages to delete, plus whatever the punishment you choose requires.
Members with Administrator or Manage Server are never judged, and neither is anyone in the exempt lists.
Tickets are excluded: their contents already live in the ticket's own transcript.
Every rule is counted per message, not per minute — rate limits are Spam Protection's job.

Frequently asked questions

Why is every limit zero by default?

Because a numeric field a server has not filled in must be inert. If 0 meant "allow nothing", switching the feature on before configuring it would delete every message in the guild. Zero means the rule is not checked, and that is the only reading that makes the block safe to enable first and configure second.

Will the capitals rule punish languages that have no capitals?

It cannot. The percentage is measured over letters that have a case distinction, so Arabic, Thai, Han, Hangul and Hebrew all score zero and can never trip it. There is also a minimum length, because "OK!" is 100% capitals and is not shouting.

Does this catch @everyone abuse?

No, and deliberately. @everyone and @here are a permission rather than a quantity — a member who may use them is allowed to. Server Guard handles their abuse, where it belongs.

Related features