Files
2026-10-22 16:17:56 +01:00

181 lines
3.7 KiB
INI
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"NameFilter2"
{
"settings"
{
// names shorter than this after filtering get a replacement name
"min_length" "2"
// percentage of a name's letters that must survive folding; below
// this the name gets a replacement instead. 0 disables the check
"min_survived_letters" "50"
// a name containing a contiguous typeable (printable ASCII) run with
// at least this many letters/digits is kept as-is, unicode decoration
// and all, unless an advert or banned filter matches. An admin can
// target such a name by its typeable part. 0 disables the exemption
"keep_typeable_run" "5"
// non-ASCII characters that are always kept.
// accented Latin letters (À-ÿ, Latin Extended-A) are also kept, but only
// when the name starts with at least two plain Latin letters; otherwise
// they are reduced to their base letter (Å -> A, æ -> ae)
"whitelist" "äöüÄÖܧğĞšŠ"
}
// single-character lookalikes folded to ASCII before unmapped unicode is stripped.
// key = the confusable character (raw UTF-8), value = ASCII replacement
"confusables"
{
// Cyrillic lowercase
"а" "a"
"е" "e"
"о" "o"
"р" "p"
"с" "c"
"у" "y"
"х" "x"
"і" "i"
"ѕ" "s"
"ј" "j"
// Cyrillic uppercase
"А" "A"
"В" "B"
"Е" "E"
"К" "K"
"М" "M"
"Н" "H"
"О" "O"
"Р" "P"
"С" "C"
"Т" "T"
"Х" "X"
"Ѕ" "S"
"І" "I"
"Ј" "J"
"У" "Y"
"З" "3"
// Cyrillic mirrored/aesthetic lookalikes
"Я" "R"
"я" "r"
"И" "N"
"и" "n"
"в" "b"
"к" "k"
"м" "m"
"н" "h"
"т" "t"
// Cyrillic with diacritics, same lookalikes as their base letters
"Ѐ" "E"
"Ё" "E"
"ѐ" "e"
"ё" "e"
"Ї" "I"
"ї" "i"
"Ў" "Y"
"ў" "y"
"Ѝ" "N"
"Й" "N"
"ѝ" "n"
"й" "n"
// Greek
"Α" "A"
"Β" "B"
"Ε" "E"
"Ζ" "Z"
"Η" "H"
"Ι" "I"
"Κ" "K"
"Μ" "M"
"Ν" "N"
"Ο" "O"
"Ρ" "P"
"Τ" "T"
"Υ" "Y"
"Χ" "X"
"α" "a"
"ν" "v"
"ο" "o"
// Greek with tonos/dialytika, same lookalikes as their base letters
"Ά" "A"
"Έ" "E"
"Ή" "H"
"Ί" "I"
"Ϊ" "I"
"Ό" "O"
"Ύ" "Y"
"Ϋ" "Y"
"Ώ" "O"
"ά" "a"
"ή" "n"
"ό" "o"
"ώ" "w"
// Greek aesthetic lookalikes
"Λ" "A"
"Σ" "E"
"Δ" "A"
"Ω" "O"
"Θ" "O"
"θ" "o"
"μ" "u"
"ω" "w"
"η" "n"
// math symbols used as letters
"∂" "d"
"∑" "E"
}
// regexes (case-insensitive) whose matches are REMOVED from the name;
// the rest of the name is kept. Applied to the pure-ASCII folded name.
"adverts"
{
"1" "(astraserver|bruss\.org|marcoplay|marcoserv|css-vip|for-css)\.(ru|com)"
"2" "discord\.gg/\S+"
}
// regexes (case-insensitive); ANY match assigns a replacement name.
// Anchor with ^...$ for full-match "too default" names.
"banned"
{
"1" "^player[0-9]*$"
"2" "^unnamed$"
"3" "^default$"
"4" "^nick(name)?$"
"5" "[a4]+d+m+[il1!]+n+"
"6" "@((!?)me|(c?)t(s?)|(!?)admins|(!?)friends|random((c?)t?)|humans|spec|alive|dead|aim|bots)"
}
// replacement names; picked deterministically (client % count, next-free probe)
"names"
{
"1" "Reimu Hakurei"
"2" "Koishi Komeiji"
"3" "Youmu Konpaku"
"4" "Sakuya Izayoi"
"5" "Flandre Scarlet"
"6" "Remilia Scarlet"
"7" "Satori Komeiji"
"8" "Alice Margatroid"
"9" "Fujiwara no Mokou"
"10" "Aya Shameimaru"
"11" "Tenshi Hinanawi"
"12" "Yukari Yakumo"
"13" "Sanae Kochiya"
"14" "Shion Yorigami"
"15" "Reisen Udongein Inaba"
"16" "Saeko Busujima"
"17" "Rei Miyamoto"
"18" "Saya Takagi"
"19" "Eru Chitanda"
"20" "Fuyumi Irisu"
"21" "Lisara Restall"
"22" "Sen Yarizui"
"23" "Momiji Binboda"
"24" "Ranmaru Rindou"
"25" "Tatenashi Sarashiki"
"26" "Laura Bodewig"
"27" "Houki Shinonono"
"28" "Ririchiyo Shirakiin"
"29" "Karuta Roromiya"
}
}