Scribe has an aggressively optimized chat filter and moderation engine baked into its core. You configure these rules in config.yml.
Cooldowns (Anti-Spam)
cooldown:
enabled: true
seconds: 3.0
action: "block"
Blocks players from sending messages back-to-back. If they speak before 3 seconds have passed, their message is silently cancelled and they are warned.
Anti-Duplicate
anti-duplicate:
enabled: true
action: "block"
Keeps a cache of the player’s last sent message. If they send the exact same string twice in a row, the second message is blocked.
Anti-Caps
anti-caps:
enabled: true
min-length: 5
max-caps-percentage: 50
action: "replace"
If a message is longer than 5 characters, and over 50% of the characters are capitalized, the replace action will automatically .toLowerCase() the entire message.
(Example: “HELLO EVERYONE HOW ARE YOU” becomes “hello everyone how are you”)
Swear Filter
filter:
enabled: true
action: "replace"
blocked-words:
- "badword1"
- "badword2"
Scribe checks messages against a blacklist array.
- If
actionisreplace, “This is a badword1” becomes “This is a ********”. - If
actionisblock, the entire message is dropped.
Moderation Actions
For most moderation systems above, you have two choices for action:
block: Silently drops the message and alerts the sender.replace: Mutates the message (e.g. lowering caps, turning swears into asterisks) and allows it to send normally.