Stop words

Live

Stop words

Stop-word settings: search methods, global spam list, named lists, actions, durations and bulk import.

Set up in the Mini App

Open Settings in your private chat with @defendy_bot, select the group under My groups and check its name at the top.

  1. Open Stopwords and enable the filter.
  2. Choose exact, partial or custom matching, and whether to recognize character substitutions.
  3. Open the default list or choose Create list and name it.
  4. Inside the list, choose message deletion and the action, then tap Add.
  5. Check the target list, enter words or upload TXT, select the separator and tap Save.

Switches and selectors save when changed. In a separate form with a Save button, save before leaving. If a request fails, reopen the section to check its actual values.

Tip: change one option at a time and verify the result in the group so false positives are easy to spot.

In short

Stop words are controlled lists of forbidden words and phrases. Use multiple lists when different topics need different actions.

How it works

  1. Message text is checked against the lists using the group-wide search method.
  2. The selected search method determines whether a word or substring counts as a match.
  3. The first matching result supplies deletion, warning weight, action and duration. Do not assume that all matching lists accumulate penalties or that the strictest action wins.

Every setting explained

Enable filter

Default: Off.

Turns stop-word matching on for the group.

Search method

Default: Substring.

Exact (STRICT) matches whole normalized words, Partial (SUBSTRING) finds literal fragments, and Custom (CUSTOM) applies advanced rules.

Global spam words (coming soon)

Default: Off.

Reserved shared spam-word list. The current WebApp switch is disabled and cannot be changed.

List name

Default: Default.

Label used to distinguish several stop-word policies. The default list cannot be deleted; additional lists can be renamed or removed.

List action

Default: None.

Actions available in the current stop-word selector are nothing, warn, mute, kick and ban. Notify is not offered on this screen.

Action duration

Explicitly choose a duration before enabling mute or ban. The current form can display “1 hour” for an empty or zero stored value; that label alone does not confirm the saved duration. Where supported, zero means an indefinite punishment. Temporary mutes last at least 60 seconds.

Choose the right search method

The names describe string matching, not linguistic analysis. None of the modes performs stemming, lemmatization or automatic recognition of grammatical forms.

MethodWhat counts as a matchGood forMain risk
ExactA plain entry must equal a separate normalized word.Names, codes and terms that should match only as whole words.Inflected forms do not match automatically.
PartialThe normalized entry may occur anywhere inside the normalized message.Stable word stems and deliberately broad blocking.Safe words can contain the same letters.
CustomEach entry becomes a rule with required parts, exclusions, quoted phrases and wildcards.Inflections, contextual rules and reducing known false positives.A broad wildcard can make a rule much wider than intended.

Normalization before matching

Matching is case-insensitive. Additional Latin look-alike and letter-emoji handling depends on Recognize character substitutions, which is off by default. Enabling it can catch evasions but also changes matches; test normal words used in your group.

Whitespace and punctuation handling depends on the matching mode. Normalization is not translation or a morphological dictionary; test concrete examples.

Exact mode in detail

A single-word entry matches a separate normalized word:

EntryMessageResultWhy
cata cat arrivedMatchThe word is present separately.
catcats arrivedNo matchThe ending changed.
adaddressNo matchThe letters are only part of another word.

An entry containing spaces is stored as a phrase. In the current runtime, such a phrase is searched as a normalized sequence and can also occur inside a longer sequence. If strict phrase boundaries matter, use CUSTOM mode and put the phrase in double quotes.

Partial mode and inflections

Partial mode is literal substring search after normalization. It often catches inflections when the stored letters remain unchanged, but it does not understand why a word changed.

EntryExample messageResult
catwith the catMatch
catcatsMatch: cat is present inside cats.
adaddressMatch — possible false positive
advertisementadvertisingNo match: the complete entry is absent.
advertadvertisement / advertisingBoth match; test harmless words too.

For languages with rich inflection, add a stable stem only when it is distinctive enough. A short root such as two or three letters is usually too broad. Build a small test set with intended forms and unrelated words containing the same letters.

CUSTOM rules

In CUSTOM mode every item in a stop-word list is one complete rule. Plain text still means “contains this text”; operators add conditions.

SyntaxMeaningExample
A && BBoth parts must occur somewhere in the message.discount* && link*
!AThis part must not occur. Use it after a positive condition.cat* && !cattle*
"exact phrase"Match the quoted phrase with word boundaries."buy now"
*Zero or more arbitrary characters.advert*
+One or more arbitrary characters.promo+code
?Exactly one arbitrary character.sp?m

These are controlled wildcards, not an unrestricted regular-expression field. Other regex punctuation is treated as ordinary text.

Useful rule patterns:

  • advert* covers multiple endings that share a stable beginning;
  • cat* && !cattle* keeps the intended family while excluding a known safe word;
  • "buy now" requires the phrase instead of two unrelated words in different parts of a message;
  • discount* && link* fires only when both advertising concepts are present;
  • casino && !board game casino excludes a known safe context, but the exclusion applies to the whole message.

All positive parts of a rule must match, and every negative part must be absent. Conditions are checked across the whole normalized message, not only next to each other. Create separate list entries for alternative rules: one entry is not an OR expression.

Lists and actions

The search method and letter-substitution setting are global for the group, while consequences belong to each list. For example, one list can delete with no member penalty, while another can delete and warn. There is one default list and up to ten additional lists. The default list cannot be deleted; additional lists can be renamed or removed.

The Delete message switch is independent from the user action. Turning deletion off does not automatically turn warn, mute or ban off. Review both controls before testing.

Safe test checklist

For each new entry or rule, send at least these messages in a test group:

  1. an obvious positive match;
  2. the same text in another case and with punctuation;
  3. an inflected or plural form;
  4. a word split with dots or other separators;
  5. a harmless word containing the same stem;
  6. a message containing the CUSTOM exclusion;
  7. a clean message that must remain untouched.

After changing the search method, close and reopen the settings page and confirm the selected value is retained. Until the test passes, do not use kick or ban on real members: those actions can remove their access to the group.

Practical example

In a private test group, create a “Promotional phrases” list and add prepared examples. Start with the member action set to None and separately enable deletion of disposable test messages. A warning can trigger an existing escalation threshold, so test it after the matching behavior. Check Partial against harmless words; use negative CUSTOM conditions for specific false positives.

Recommendations

  • Partial search does not understand grammar; use a tested stable stem or a CUSTOM rule for inflections.
  • Stop-word lists do not have a separate exceptions field. Narrow the entry, switch methods or add a negative CUSTOM condition.
  • Keep list names practical: topic, language or campaign.

Troubleshooting

  • Check that Defendy is still an administrator in the group.
  • Refresh the settings panel and make sure you are editing the correct group.
  • If a setting is saved but does not work, check the bot permissions in Telegram.
  • If logging is connected and the relevant category is enabled, check the event record. The log cannot show events that were not recorded.
  • If an inflected form is missed, remember that exact and partial matching do not perform morphology; test a stable stem or a CUSTOM wildcard.
  • If a partial rule catches a safe word, shorten its reach or replace it with a CUSTOM rule containing a negative condition.
  • The Global spam words control is marked Coming soon and is intentionally disabled.

Check the duration after changing an action

Changing the punishment type can reset its duration to 0. Where supported, zero means an indefinite action, not a disabled punishment. A temporary mute lasts at least 60 seconds. Recheck the duration before leaving the form.

The 8 MiB / 100,000-entry ceiling is an import-parser limit, not the capacity of a list. Plan and per-list limits apply separately: the current model uses 100, 1,000 or 5,000 words per list. Check the limit actually available to your group.

Need help?

If a setting behaves differently than expected, contact support.@ubotz