This files describes format of ban files (used by mod and pointed by \g_bans game cvar) Common expression syntax: key [op] value action [param1] [param2] [message] [ { key [op]... } ] === primary (fast) keys === name cname (colored name) ip guid password tld (2-char country code, "-" for unknown) date (in YYYY_MM_DD-HH_MM format) === additional (slow) keys === any from userinfo in form: $rate $snaps $cl_maxpackets [...] === primary operators === '=','==' - equal '!','!=' - not equal '>','>=' - greater, greater or equal '<','<=' - less, less or equal '~' - case-insensitive pattern (wildcard) match '!~' - inversed case-insensitive pattern match === value === any quoted integer/string value or (server) cvar in form: $sv_fps $g_password $second_password [...] === actions === info "quoted message" - prints some information in user console drop ["quoted message"] - kicks [with a message] warn [time [period]] "quoted message" - prints warning via centerprint/console each @period@ seconds - kicks after @time@ seconds if not fixed default time is 40 seconds default period is 10 seconds pass - just stops parsing and passes player into game Examples: $snaps < $sv_fps { Info "type \snaps $sv_fps in your console for smoother gameplay" } Name ~ "Unnamed*" { Warn 40 "Your name is illegal on this server\nPlease, change it or will be kicked after 40 seconds" } CName ~ "*^0*" { Warn 40 "Black color is not allowed in tags on this server" } // silent ban IP "127.0.0.2" Drop // show some reason IP "127.0.0.3" Drop "IP 127.0.0.3 is banned" IP ~ "*" // - any IP { // nested condition, up to 255 levels can be specified Name != "Player" { Drop "Only player allowed from this ip" } } IP "127.0.0.1" { Date "2017-06-01_00-00" // default operator for date is '<' (less) { Drop "Wait for summer dude :)" } }