Filter.txt and FilterRename.txt

Two text files with different behaviors:

  • Filter.txt censors chat messages. Matched substrings are replaced in place with asterisks before the message is relayed to other players. The message is never blocked.
  • FilterRename.txt blocks renames. If a requested new name contains any listed substring, the rename is rejected outright.

File Location#

Data/Util/Filter.txt
Data/Util/FilterRename.txt

Both loaded once at GameServer startup. Changes require a restart.

Format#

//Label
word1
word2
end

Terminated by end. Comment lines start with //. One forbidden substring per line. Entries containing spaces or brackets must be quoted, for example "[gm]".

Semantics#

  • Substring match, case-sensitive. admin matches admin and superadmin but not Admin or ADMIN. List variants explicitly if you need case coverage.
  • Filter.txt is applied to the message body of: public chat, whisper, cross-server global whisper, and /post. Party (~), guild (@), and Gens ($) messages are routed through the same public-chat handler, so they are also censored. Slash commands other than /post are not censored.
  • Filter.txt censors by overwriting the matched substring with * characters of equal length; the rest of the message is delivered unchanged.
  • FilterRename.txt is checked by the rename command handler. A match cancels the rename and notifies the player.

Capacity And Entry Length#

FileMax entriesMax entry length
Filter.txt50015 characters
FilterRename.txt10010 characters

Entries longer than the per-file cap are truncated when stored, so the runtime only ever matches the first N characters of a label.

Differences from BadSyntax.txt (DataServer-side):

  • BadSyntax runs at character and guild creation. Filter.txt runs on chat at runtime. FilterRename.txt runs on rename at runtime.
  • All three use substring matching. Filter.txt and FilterRename.txt are case-sensitive.
  • Filter.txt censors (message still sent). FilterRename.txt and BadSyntax.txt reject the action.

Cross-File Dependencies#

FilterAlso check
Character name creationDataServer BadSyntax.txt
Chat command gatesCommand.dat / Command.xml
Rename commandCommand.dat rename settings

Common Issues#

  • Short word over-censors - ad turns shadow into sh**ow and paladin into pal**in. Use longer explicit strings
  • Casing bypass - admin blocked but Admin allowed. The filter is case-sensitive; list every case variant you care about
  • Leet-speak bypass - admin blocked but adm1n allowed. There is no normalization
  • Filter silently unset - missing end terminator; the parser drops the whole file
  • Rename text looks censored instead of blocked - rename goes through FilterRename.txt only; Filter.txt does not apply to rename input

Last updated May 17, 2026