service { nick = "ChanServ" user = "services" host = "services.host" gecos = "Channel Registration Service" channels = "@#services" } module { name = "chanserv" client = "ChanServ" defaults = "keeptopic peace cs_secure secureops securefounder cs_keep_modes" maxregistered = 5 expire = 7d accessmax = 100 inhabit = 15s nomlock = "CnLpPs" reasonmax = 100 signkickformat = "%m (%n)" disallow_hostmask_access = true disallow_channel_access = true always_lower_ts = false } privilege { name = "ACCESS_CHANGE" rank = 360 # 0 ? level = 10000 # 10 ? flag = "f" xop = "QOP" # SOP? } privilege { name = "ACCESS_LIST" rank = 10 level = 3 flag = "f" xop = "VOP" } privilege { name = "AKICK" rank = 250 level = 10 flag = "K" xop = "SOP" } privilege { name = "ASSIGN" rank = 270 level = "founder" flag = "s" xop = "QOP" } privilege { name = "AUTOHALFOP" rank = 100 level = 4 flag = "H" xop = "HOP" } privilege { name = "AUTOOP" rank = 210 level = 5 flag = "O" xop = "AOP" } privilege { name = "AUTOOWNER" rank = 330 level = 9999 flag = "Q" xop = "QOP" } privilege { name = "AUTOPROTECT" rank = 240 level = 10 flag = "A" xop = "SOP" } privilege { name = "AUTOVOICE" rank = 50 level = 3 flag = "V" xop = "VOP" } privilege { name = "BADWORDS" rank = 260 level = 10 flag = "K" xop = "SOP" } privilege { name = "BAN" rank = 150 level = 4 flag = "b" xop = "HOP" } privilege { name = "FANTASIA" rank = 30 level = 3 flag = "c" xop = "VOP" } privilege { name = "FOUNDER" rank = 360 level = 10000 flag = "F" xop = "QOP" } privilege { name = "GETKEY" rank = 180 level = 5 flag = "G" xop = "AOP" } privilege { name = "HALFOP" rank = 120 level = 5 flag = "h" xop = "AOP" } privilege { name = "HALFOPME" rank = 110 level = 4 flag = "h" xop = "HOP" } privilege { name = "INFO" rank = 80 level = 9999 flag = "I" xop = "QOP" } privilege { name = "INVITE" rank = 190 level = 5 flag = "i" xop = "AOP" } privilege { name = "KICK" rank = 130 level = 4 flag = "k" xop = "HOP" } privilege { name = "MEMO" rank = 280 level = 10 flag = "m" xop = "SOP" } privilege { name = "MODE" rank = 170 level = 9999 flag = "s" xop = "QOP" } privilege { name = "NOKICK" rank = 20 level = 1 flag = "N" xop = "VOP" } privilege { name = "OP" rank = 230 level = 5 flag = "o" xop = "SOP" } privilege { name = "OPME" rank = 220 level = 5 flag = "o" xop = "AOP" } privilege { name = "OWNER" rank = 350 level = "founder" flag = "q" xop = "QOP" } privilege { name = "OWNERME" rank = 340 level = 9999 flag = "q" xop = "QOP" } privilege { name = "PROTECT" rank = 310 level = 9999 flag = "a" xop = "QOP" } privilege { name = "PROTECTME" rank = 300 level = 10 flag = "a" xop = "SOP" } privilege { name = "SAY" rank = 90 level = 5 flag = "B" xop = "AOP" } privilege { name = "SET" rank = 320 level = 9999 flag = "s" xop = "QOP" } privilege { name = "SIGNKICK" rank = 140 level = 9999 flag = "K" xop = "QOP" } privilege { name = "TOPIC" rank = 160 level = 5 flag = "t" xop = "AOP" } privilege { name = "UNBAN" rank = 200 level = 4 flag = "u" xop = "HOP" } privilege { name = "VOICE" rank = 70 level = 4 flag = "v" xop = "HOP" } privilege { name = "VOICEME" rank = 60 level = 3 flag = "v" xop = "VOP" } command_group { name = "chanserv/access" description = _("Used to manage the list of privileged users") } command_group { name = "chanserv/status" description = _("Used to modify the channel status of you or other users") } command_group { name = "chanserv/management" description = _("Used to manage channels") } command_group { name = "chanserv/admin" description = _("Services Operator commands") } command { service = "ChanServ"; name = "HELP"; command = "generic/help"; } module { name = "cs_akick" autokickmax = 32 autokickreason = "8,4 E N T E R T H E V O I D " } command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; group = "chanserv/management"; } module { name = "cs_ban" } command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; } module { name = "cs_clone" } command { service = "ChanServ"; name = "CLONE"; command = "chanserv/clone"; group = "chanserv/management"; } module { name = "cs_drop" } command { service = "ChanServ"; name = "DROP"; command = "chanserv/drop"; } module { name = "cs_enforce" } command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; group = "chanserv/management"; } module { name = "cs_entrymsg" maxentries = 5 } command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; group = "chanserv/management"; } module { name = "cs_flags" } command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; group = "chanserv/access"; } #module { name = "cs_getkey" } #command { service = "ChanServ"; name = "GETKEY"; command = "chanserv/getkey"; } module { name = "cs_info" } command { service = "ChanServ"; name = "INFO"; command = "chanserv/info"; } module { name = "cs_invite" } command { service = "ChanServ"; name = "INVITE"; command = "chanserv/invite"; } module { name = "cs_kick" } command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; } module { name = "cs_list" listmax = 50 } command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; } command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; } module { name = "cs_log" } command { service = "ChanServ"; name = "LOG"; command = "chanserv/log"; group = "chanserv/management"; } module { name = "cs_mode" mlock = "+nst" max = 100 } command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; group = "chanserv/management"; } command { service = "ChanServ"; name = "OWNER"; command = "chanserv/modes"; group = "chanserv/status"; set = "OWNER" } command { service = "ChanServ"; name = "DEOWNER"; command = "chanserv/modes"; group = "chanserv/status"; unset = "OWNER" } command { service = "ChanServ"; name = "PROTECT"; command = "chanserv/modes"; group = "chanserv/status"; set = "PROTECT" } command { service = "ChanServ"; name = "DEPROTECT"; command = "chanserv/modes"; group = "chanserv/status"; unset = "PROTECT" } command { service = "ChanServ"; name = "OP"; command = "chanserv/modes"; group = "chanserv/status"; set = "OP" } command { service = "ChanServ"; name = "DEOP"; command = "chanserv/modes"; group = "chanserv/status"; unset = "OP" } command { service = "ChanServ"; name = "HALFOP"; command = "chanserv/modes"; group = "chanserv/status"; set = "HALFOP" } command { service = "ChanServ"; name = "DEHALFOP"; command = "chanserv/modes"; group = "chanserv/status"; unset = "HALFOP" } command { service = "ChanServ"; name = "VOICE"; command = "chanserv/modes"; group = "chanserv/status"; set = "VOICE" } command { service = "ChanServ"; name = "DEVOICE"; command = "chanserv/modes"; group = "chanserv/status"; unset = "VOICE" } module { name = "cs_register" } command { service = "ChanServ"; name = "REGISTER"; command = "chanserv/register"; } module { name = "cs_seen" simple = false purgetime = "30d" } command { service = "OperServ"; name = "SEEN"; command = "operserv/seen"; permission = "operserv/seen"; } module { name = "cs_set" defbantype = 2 persist_lower_ts = true } command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; group = "chanserv/management"; } command { service = "ChanServ"; name = "SET AUTOOP"; command = "chanserv/set/autoop"; } command { service = "ChanServ"; name = "SET BANTYPE"; command = "chanserv/set/bantype"; } command { service = "ChanServ"; name = "SET DESCRIPTION"; command = "chanserv/set/description"; } command { service = "ChanServ"; name = "SET DESC"; command = "chanserv/set/description"; hide = yes; } command { service = "ChanServ"; name = "SET FOUNDER"; command = "chanserv/set/founder"; } command { service = "ChanServ"; name = "SET KEEPMODES"; command = "chanserv/set/keepmodes"; } command { service = "ChanServ"; name = "SET PEACE"; command = "chanserv/set/peace"; } command { service = "ChanServ"; name = "SET PERSIST"; command = "chanserv/set/persist"; } command { service = "ChanServ"; name = "SET RESTRICTED"; command = "chanserv/set/restricted"; } command { service = "ChanServ"; name = "SET SECURE"; command = "chanserv/set/secure"; } command { service = "ChanServ"; name = "SET SECUREFOUNDER"; command = "chanserv/set/securefounder"; } command { service = "ChanServ"; name = "SET SECUREOPS"; command = "chanserv/set/secureops"; } command { service = "ChanServ"; name = "SET SIGNKICK"; command = "chanserv/set/signkick"; } command { service = "ChanServ"; name = "SET SUCCESSOR"; command = "chanserv/set/successor"; } command { service = "ChanServ"; name = "SET NOEXPIRE"; command = "chanserv/saset/noexpire"; permission = "chanserv/saset/noexpire"; } module { name = "cs_set_misc" } command { service = "ChanServ"; name = "SET URL"; command = "chanserv/set/misc"; misc_description = _("Associate a URL with the channel"); } command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc"; misc_description = _("Associate an E-mail address with the channel"); } module { name = "cs_status" } command { service = "ChanServ"; name = "STATUS"; command = "chanserv/status"; } module { name = "cs_suspend" #expire = 90d #show = "suspended, by, reason, on, expires" } command { service = "ChanServ"; name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; } command { service = "ChanServ"; name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chanserv/suspend"; group = "chanserv/admin"; } module { name = "cs_sync" } command { service = "ChanServ"; name = "SYNC"; command = "chanserv/sync"; group = "chanserv/management"; } module { name = "cs_topic" } command { service = "ChanServ"; name = "TOPIC"; command = "chanserv/topic"; group = "chanserv/management"; } command { service = "ChanServ"; name = "SET KEEPTOPIC"; command = "chanserv/set/keeptopic"; } module { name = "cs_unban" } command { service = "ChanServ"; name = "UNBAN"; command = "chanserv/unban"; } module { name = "cs_updown" } command { service = "ChanServ"; name = "DOWN"; command = "chanserv/down"; group = "chanserv/status"; } command { service = "ChanServ"; name = "UP"; command = "chanserv/up"; group = "chanserv/status"; } module { name = "cs_xop" } command { service = "ChanServ"; name = "QOP"; command = "chanserv/xop"; group = "chanserv/access"; } command { service = "ChanServ"; name = "SOP"; command = "chanserv/xop"; group = "chanserv/access"; } command { service = "ChanServ"; name = "AOP"; command = "chanserv/xop"; group = "chanserv/access"; } command { service = "ChanServ"; name = "HOP"; command = "chanserv/xop"; group = "chanserv/access"; } command { service = "ChanServ"; name = "VOP"; command = "chanserv/xop"; group = "chanserv/access"; } module { name = "cs_statusupdate" }