Add Ignore Bots module in Misc category#6521
Open
Imajio wants to merge 1 commit into
Open
Conversation
A chat-bot filter tuned for 2b2t. Parses the sender from each chat line and hides messages from likely bots. Detection layers, each toggleable: message flooding, coordinated cross-account spam, inhuman typing cadence, a content/advertising filter, and manual blacklist/whitelist with a learned per-session bot cache. Default action hides the message; Tag and Dim are also available.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type of change
Description
Adds a new Ignore Bots module (Misc category) that detects and hides
chat-bot spam, tuned for 2b2t.
On 2b2t chat is delivered as system messages (
<name> message) with nosigned sender, so the module parses the sender straight from the chat text
and, by default, hides messages from accounts it flags as bots. Detection is
layered, and every layer is an in-game toggle:
(the same message coming from many different accounts at once).
them (min length + min interval / max chars-per-second).
and excessive character repetition, and a user keyword list.
and a learned per-session bot cache, so once an account trips any
detector all of its later messages are hidden too.
Action is configurable:
Hide(default - cancels the message),Tag(prefixes
[BOT?]for tuning), orDim.Reasoning:
BetterChat's anti-spam only collapses identicalconsecutive lines, so it misses the flood/swarm/advertising bots common in
2b2t global chat (each spam line has a different sender). This module fills
that gap without touching non-player lines (queue, death, broadcasts pass
through untouched).
Related issues
N/A
How Has This Been Tested?
gradlew build).(chat parsing, link/IP/zalgo/char-run detection, cadence math, swarm
counting, plus realistic 2b2t spam-vs-normal lines) - all passing.
confirmed to be ignored by the parser.
Checklist: