]> jfr.im git - irc/evilnet/x3.git/blame - x3.conf.example
Operserv helpfile improvements
[irc/evilnet/x3.git] / x3.conf.example
CommitLineData
5a6d6ae5 1/* *****************************************************************
fbbc275b
AS
2 * X3 Services Example Configuration file.
3 *
4 * Copy it to your x3 runtime dir, and edit to taste.
5 *
6 * This file allows two kinds of comments. Whitespaces between
7 * tokens are ignored. All strings (even if they're just numbers)
8 * MUST be enclosed in double quotes. There must be a semicolon
9 * after every * key/value pair.
d76ed9a9
AS
10 */
11
fbbc275b
AS
12/* UPLINKS (servers we connect to) *********************************
13 * Each subsection describes one server. X3 will try to connect to
14 * each in turn maxtries times, and then will quit.
15 */
d76ed9a9 16"uplinks" {
fbbc275b
AS
17 // This first entry connects to an ircd on teh same server an X3..
18 "Hub" { // This can be any string, just used here for your conveniance
19 "address" "127.0.0.1"; // The IP address of the server
20 "port" "8888"; // What TCP port to connect to
21 "password" "laoo,rpe"; // Both of these passwords must match
22 "their_password" "laoo,rpe"; // the one in the ircd C line for X3.
23 "enabled" "1"; // Set to 0 to disable connecting to this server
24 "max_tries" "10"; // How many times to attemt reconnect before quitting
25 "bind_address" "127.0.0.1"; // LOCAL IP address we want to connect FROM
26 };
27 // This next one connects to an ircd on another server
28 "Hub-west" {
d76ed9a9 29 // IP address and port the server listens on
fbbc275b
AS
30 "address" "192.168.234.123"; // IP of remote server
31 "port" "8888";
32 "password" "ekrpat"; // C line passwords
33 "their_password" "ekrpat"; // Set same as above
34 "enabled" "0"; // Set this to 1 to use this server..
35 "max_tries" "1";
36 "bind_address" "192.168.1.10";
d76ed9a9 37 };
fbbc275b 38};
d76ed9a9 39
fbbc275b
AS
40/* SERVER (Details about our existance) **********************************
41 */
42"server" {
43 "hostname" "X3.AfterNET.Services"; // The servers name. (Use this in the ircd's C line)
44 "description" "AfterNET Network Services"; // Shows up in /links.
45 "network" "AfterNET";
46 "hidden_host" "Users.AfterNET.Org"; // set this if you enabled Nefarious' +x mode
47 /* hidden_host should match the F:HIDDEN_HOST: line in your ircu's ircd.conf;
48 * x3 does not set the host suffix for users, but must know it when making
49 * things like bans, where it should not show the user's real hostname. */
50 "numeric" "51"; // hint: If you get collisions on link, CHANGE THIS.
51 "max_users" "256"; // You can save a little memory by setting this to a lower value.
52 "force_n2k" "1"; // Use extended (5-digit) numnick for self, even if 3 are possible.
53 "ping_freq" "60";
54 "ping_timeout" "90";
55 "max_cycles" "30"; // max uplink cycles before giving up
56 // Admin information is traditionally: location, location, email
57 // This shows up on a /admin x3.afternet.services command.
58 "admin" (
59 "AfterNET IRC Network",
60 "www.afternet.org",
61 "Support Staff <support@afternet.org>"
62 );
63 /* the following two settings are for ircu's HEAD_IN_SAND features, and are equivelent to
64 * the F: lines in ircu's ircd.conf. both can be disabled by commenting them out. */
65 //"his_servername" "*.AfterNET.org"; // hidden server name, shown in remote /whois requests
66 //"his_servercomment" "AfterNET IRC Network";
d76ed9a9
AS
67};
68
fbbc275b
AS
69/* SERVICES (Bot nicknames) *******************************************
70 * Each section describes one service nickname and the details of that
71 * bot's features
72 * You may disable a service by commenting out its "nick" config item.
73 */
d76ed9a9 74"services" {
fbbc275b
AS
75 /* Nickserv is the bot you register with and auth to.
76 * Afternet uses the name "Authserv" without the nickname reservation
77 * features enabled. Some nets call it Nickserv and configure it to
78 * reserve nicks.
79 */
d76ed9a9 80 "nickserv" {
fbbc275b
AS
81 "nick" "AuthServ"; // The bots nick on IRC
82
83 // If you want to have *@* as the default hostmask, set
84 // default_hostmask. I highly reccomend this, and its required
85 // for login-on-connect to work.
86 "default_hostmask" "1";
87
d76ed9a9 88 // do we warn users when someone new auths to their account?
fbbc275b
AS
89 "warn_clone_auth" "1"; // -X3- warning: foobar has authed to your account
90
91 // default max number of logins allowed on new accounts. Users can set it
92 // to something different using authserv commands.
93 "default_maxlogins" "3";
94
95 // hard_maxlogins is the ammount the user cant override.
d76ed9a9 96 "hard_maxlogins" "10";
fbbc275b 97
d76ed9a9
AS
98 // This names a file that contains easily guessed passwords.
99 // It always contains "password", "<password>" and the user's
100 // account name.
fbbc275b
AS
101 // uncomment if you have a dict file.
102 //"dict_file" "/usr/share/dict/words";
103
d76ed9a9 104 // Minimum number of various types of characters permitted in
fbbc275b 105 // a password. Authserv will enforce these.
d76ed9a9 106 "password_min_length" "4";
fbbc275b 107 "password_min_digits" "0";
d76ed9a9
AS
108 "password_min_upper" "0";
109 "password_min_lower" "0";
fbbc275b 110
d76ed9a9
AS
111 // What should valid account and nicks look like?
112 // If valid_nick_regex is omitted, valid_account_regex is used
113 // for both nicks and accounts.
fbbc275b
AS
114 // Be very carefull changing these. This default is
115 // basically limited to letters, numbers, dash and underscore.
116 "valid_account_regex" "^[-_a-z0-9A-Z]{2,15}$";
d76ed9a9
AS
117 "valid_nick_regex" "^[-_a-z][-_a-z0-9]*$";
118
fbbc275b
AS
119 // "Nickserv" networks, set this to 0. "Authserv" networks,
120 // set it to 1.
121 "disable_nicks" "1";
122 // One account may only own this many nicks.
123 "nicks_per_account" "4";
124
125 // Send a warning when someone uses a registered nick?
126 "warn_nick_owned" "0";
127
128 // What to do when someone uses the NickServ "reclaim" command?
129 // This can be one of "none", "warn", "svsnick", or "kill", but
130 // stock ircu does not support svsnick -- you need Bahamut or
131 // nefarious.
132 "reclaim_action" "none";
133
134 // What (else) to do when someone uses a registered nick?
135 // This can be anything "reclaim_action" can be, but it makes
136 // more sense to use the "warn_nick_owned" instead of "warn".
137 "auto_reclaim_action" "none";
138
139 // How long to wait before doing the auto_reclaim_action?
140 // This is ignored if "auto_reclaim_action" is "none".
141 "auto_reclaim_delay" "0";
d76ed9a9
AS
142
143 // access control for who can change account flags
fbbc275b 144 // See /msg authserv help account flags
d76ed9a9 145 "flag_levels" {
fbbc275b
AS
146 "g" "800"; // God mode
147 "lc_h" "800"; // support helper (lower case h)
148 "uc_H" "800"; // net helper (upper case H)
149 "S" "999"; // O3 access suspended
e42487a5 150 "b" "1"; // Bot (not sure what it does tho)
d76ed9a9 151 };
fbbc275b 152
d76ed9a9 153 // and for who can change epithets for staff
fbbc275b 154 // epithets show up in /whois as another line about the person.
d76ed9a9 155 "set_epithet_level" "800";
fbbc275b 156
d76ed9a9
AS
157 // what opserv access level do you need to set somebody else's level?
158 "modoper_level" "850";
159
160 // how often should accounts be expired?
161 "account_expire_freq" "1d";
fbbc275b 162
d76ed9a9 163 // how long until an account with access to any channel(s) expires?
fbbc275b
AS
164 "account_expire_delay" "900d";
165
d76ed9a9 166 // how long until an account with no access to any channels expires?
fbbc275b
AS
167 "nochan_account_expire_delay" "365d";
168
d76ed9a9
AS
169 // If somebody keeps guessing passwords incorrectly, do we gag them?
170 "autogag_enabled" "1";
171 "autogag_duration" "30m";
172 "auth_policer" {
173 "size" "5";
174 "drain-rate" "0.05";
175 };
fbbc275b
AS
176
177
d76ed9a9 178 // How to integrate with email cookies?
fbbc275b
AS
179 // In order to use mail, mail must be enabled and configured
180 // down below in the mail section of this config file.
181 "email_enabled" "1"; // Allow account verification and password reset by email.
182 "email_required" "1"; // if above is 1, require verification to authenticate.
183 "cookie_timeout" "2d"; // how long before we expire cookies?
184 "accounts_per_email" "1"; // How many people can use the same email account.
185
186 "email_search_level" "600"; // minimum OpServ level to search based on email address (search print email *foo*)
d76ed9a9 187 "email_visible_level" "800"; // minimum OpServ level to see somebody's email address
fbbc275b
AS
188 "titlehost_suffix" "AfterNET.Org"; // 'USET title' sets a fake hostname of name.title.titlehost on a user.
189 "set_title_level" "900"; // Access to use 'uset title'.
190 "set_fakehost_level" "1000"; //Access to set a freeform fakehost. (uset fakehost)
04009ebf 191
fbbc275b
AS
192 // This is a hacked in feature which exports every account change to a file sync.log. Afternet uses this and
193 // a bunch of custom PHP scripts to make our websites SQL user db the same as authserv, every 5 minutes.
194 // You have to be a pretty handy person with the shell commands and programming to make use of this..
195 "sync_log" "0"; // Log account changes to a file for syncing w/ a website?
d76ed9a9
AS
196 };
197
fbbc275b
AS
198 /*
199 * OpServ is the bot opers use to do glines, look at info etc.
200 * Afternet uses the nickname "O3" for this as its easier to type.
201 */
d76ed9a9 202 "opserv" {
fbbc275b 203 "nick" "O3";
d76ed9a9 204 // should use of this service be limited to global opers?
fbbc275b
AS
205 "privileged" "1";
206
d76ed9a9 207 // fullname for service
fbbc275b
AS
208 "description" "Oper Service Bot"; // (for /whois)
209
d76ed9a9 210 // hostname for service; only used if "description" is also set
fbbc275b
AS
211 "hostname" "X3.AfterNET.Services"; // (for /whois)
212
213 // What channel should opserv send debug output to?
214 // I don't have any idea what debug info goes here. You can configure
215 // debugging logs in the log section to go to any channel.
216 // Probably safest to set to your oper channel.
217 "debug_channel" "#TheOps"; // Bot will join this channel, also.
218 "debug_channel_modes" "+tnOS"; // Modes get set every time X3 starts up
219
d76ed9a9 220 // where to send general alerts (e.g. flood alerts)?
fbbc275b
AS
221 "alert_channel" "#TheOps"; // Bot will join this channel, also.
222 "alert_channel_modes" "+"; // Modes get set every time X3 starts up
223
d76ed9a9 224 // who to tell about staff auths?
fbbc275b
AS
225 "staff_auth_channel" "#OperServ"; // Bot will join this channel, also.
226 "staff_auth_channel_modes" "+tnOs"; // modes get set every time X3 starts up
227
d76ed9a9 228 // how many clones to allow from an untrusted host?
fbbc275b
AS
229 // Use this carefully, users with half the # of clones will trigger this
230 // when a server pings out and they reconnect before the old connection is noticed
231 // to be dead by the server.. so set it at about twice the # you want to allow to
232 // avoid false positives.
233 "untrusted_max" "6"; // 3 connections and 3 ghosts, 7th connection causes a gline.
234
d76ed9a9 235 // how long of a g-line should be issued if the max hosts is exceeded?
fbbc275b
AS
236 "clone_gline_duration" "2h"; // durations are smhdmy
237
238 // how long to g-line for ?block (or, by default, for trace gline)?
239 "block_gline_duration" "12h";
240
d914d1cb 241 // how long to shun for ?sblock (or, by default, for trace shun)?
242 "block_shun_duration" "12h";
243
fbbc275b 244 // When a user joins an illegal channel, O3 joins it and locks it down.
d76ed9a9
AS
245 // how long to keep an illegal channel locked down (seconds)?
246 "purge_lock_delay" "60";
fbbc275b
AS
247
248 // The join-flood policer code goes off all the time when a server
249 // goes down (and everyone reconnects) so i don't reccomend using it.
250 // Automatically moderate join flooded channels?
251 "join_flood_moderate" "0";
252 // channel join flood policer params?
253 "join_policer" {
254 "size" "20";
255 "drain-rate" "1";
256 };
257 // Don't moderate and warn channels unless there are more than
258 // join_flood_moderate_threshold users in the channel. the
259 // value 0 will disable the threshold.
260 "join_flood_moderate_threshold" "50";
261 // new user flood policer params
262 "new_user_policer" {
263 "size" "200";
264 "drain-rate" "3";
265 };
d76ed9a9
AS
266 };
267
268 "chanserv" {
fbbc275b
AS
269 "nick" "X3";
270 // Does your ircd have off-channel services support?
271 // Bahamut has it, Nefarious has it, but its inharently flawed and will cause desynch, so don't use it.
272 "off_channel" "no";
273
274 // Infolines are sent when channel users join the channel. Users set them with USET INFO in X3.
d76ed9a9
AS
275 // how long should a person be unseen before resending infoline?
276 "info_delay" "120";
fbbc275b
AS
277
278 // Greetings can be configured by the channel manager(s) and sent to users who join the channel.
279 // Many people (rightly) find this annoying, so keep them short.
d76ed9a9 280 // maximum greeting length
fbbc275b
AS
281 "max_greetlen" "120";
282
d76ed9a9
AS
283 // maximum users in a channel userlist
284 "max_chan_users" "512";
285 // maximum bans on a channel banlist
286 "max_chan_bans" "512";
287 // maximum length of a user's infoline
fbbc275b
AS
288 "max_userinfo_length" "400"; // for god sake lower this. 80 seems good.
289
290 // If SET DynLimit is on and there are N users in the channel, ChanServ will
291 // try to keep the limit at N+<adjust_threshold>. This makes the channel
292 // somewhat protected from clone attacks.
293 "adjust_threshold" "5";
d76ed9a9 294 // .. but ChanServ will only increment or decrement the limit this often.
fbbc275b
AS
295 "adjust_delay" "30"; // (seconds)
296
31f23f13
AS
297 // How often to look for expired bans?
298 "ban_timeout_freq" "2m";
299
d76ed9a9 300 // How often to look for channels that have expired?
fbbc275b
AS
301 "chan_expire_freq" "1d";
302
d76ed9a9
AS
303 // How long is a channel unvisited (by masters or above) before it can be expired?
304 "chan_expire_delay" "30d";
fbbc275b 305
d76ed9a9 306 // what !set options should we show when user calls "!set" with no arguments?
fbbc275b
AS
307 "set_shows" ("DefaultTopic", "TopicMask", "Greeting", "UserGreeting", "Modes", "PubCmd", "InviteMe", "UserInfo", "EnfOps", "EnfModes", "EnfTopic", "TopicSnarf", "Setters", "CtcpReaction", "Voice", "Protect", "Toys", "DynLimit", "NoDelete");
308
d76ed9a9 309 // A list of !8ball responses
240a3274
AS
310 "8ball" (
311 "Are you out of your MIND?",
312 "It won't happen, not a chance, definitely no.",
313 "Outlook seems bleak.",
314 "My sources say no.",
315 "You bet!",
316 "It is decidedly so.",
317 "It's hard to be sure.",
318 "Most definitely.",
319 "In your dreams...",
320 "If the prophets wish it...",
321 "Forecast hazy, try again later.",
322 "I don't know!",
d76ed9a9 323 "Absolutely!",
240a3274
AS
324 "Never.",
325 "Yes.",
326 "No.",
327 "Maybe.");
fbbc275b 328
d76ed9a9
AS
329 // channel(s) that support helpers must be in to be helping
330 // if this is a list, any one by itself will do
fbbc275b
AS
331 "support_channel" ("#Operations", "#Help");
332
333 // maximum number of channels a user may have. ( FORCE can override )
334 "max_owned" "2";
335
d76ed9a9 336 // how long between automatic topic refreshes with TopicRefresh 0
fbbc275b
AS
337 "refresh_period" "99d"; // Nefarious sync's topics so we'll practically disable this..
338
d76ed9a9 339 // what should !access say for various staff?
fbbc275b
AS
340 "irc_operator_epithet" "AfterNET IRC Operator";
341 "network_helper_epithet" "AfterNET Network Helper";
342 "support_helper_epithet" "AfterNET Support Helper";
343
d76ed9a9
AS
344 // what should a newly registered channel get as its modes?
345 "default_modes" "+nt";
fbbc275b
AS
346
347 // minimum opserv access to set, clear or override channel nodelete setting?
d76ed9a9
AS
348 "nodelete_level" "1";
349 };
350
fbbc275b
AS
351 /* Global is a service bot that can send out network-wide messages for you. I
352 * like to set ours' nick to 'AfterNET', but some people use 'Global'
353 */
d76ed9a9
AS
354 "global" {
355 "nick" "Global";
356 // should users get community announcements by default or not?
fbbc275b
AS
357 // community announcements are a type of global that users may
358 // opt into (or out of, depending on this setting)
d76ed9a9
AS
359 "announcements_default" "on";
360 };
361};
362
fbbc275b
AS
363/* MODULES (optional components) *************************************************
364 * These must be explicitly compiled in (see ./configure --help)
365 * When enabled, they are configured here..
366 */
d76ed9a9 367"modules" {
fbbc275b
AS
368 /* Helpserv is a help-queue tracker module for your #support channels, if
369 * they are busy. It issues users tickets, and tracks the next available helper.
370 */
d76ed9a9
AS
371 "helpserv" {
372 // The description/fullname field
fbbc275b
AS
373 "description" "Help Queue Manager"; // (for whois)
374
d76ed9a9
AS
375 // HelpServ bots log all of their requests to this file, with
376 // details on when they were opened, closed, their contents,
377 // helper, etc. The file is written in saxdb format for easy
378 // parsing by external programs. Please note that you cannot
fbbc275b 379 // use ?set to change this value while x3 is running.
d76ed9a9 380 "reqlogfile" "helpservreq.log";
fbbc275b 381
d76ed9a9
AS
382 // How long should a helpserv be inactive (no requests assigned)
383 // before it can be unregistered by the expire command?
384 "expiration" "60d";
385 };
fbbc275b
AS
386 /* SockCheck reads sockcheck.conf and can do configurable scans
387 * to probe for open relays in an attempt to stop drones from using
388 * the network. DO NOT enable this unless you have permission from
389 * your ISP.. the probes will show up as attacks on everyones firewalls
390 * and you will get a lot of complaints.
391 */
d76ed9a9 392 "sockcheck" {
fbbc275b
AS
393 // disabling this hopefully
394 "max_sockets" "0"; // 64 is a good # of concurrent clients to be checked
d76ed9a9 395 "max_read" "1024"; // don't read more than 1024 bytes from any client
fbbc275b 396 "gline_duration" "1d"; // issue G-lines lasting one hour
d76ed9a9 397 "max_cache_age" "60"; // only cache results for 60 seconds
fbbc275b 398 "address" "192.168.1.10"; // do proxy tests from this address
d76ed9a9 399 };
fbbc275b
AS
400 /* Snoop sends connect, quit, join, and part messages for every user
401 * on the network, and helps in finding drones. Put it somewhere secure
402 * so your users privacy is honored.
403 */
d76ed9a9
AS
404 "snoop" {
405 // Where to send snoop messages?
fbbc275b
AS
406 "channel" "#MrSnoopy";
407 // Which bot?
408 "bot" "O3";
d76ed9a9
AS
409 // Show new users and joins from net joins? (off by default)
410 "show_bursts" "0";
411 };
fbbc275b
AS
412 /* Memoserv lets users send messages to other users accounts.
413 */
d76ed9a9 414 "memoserv" {
fbbc275b 415 "bot" "MemoServ";
d76ed9a9
AS
416 "message_expiry" "30d"; // age when messages are deleted; set
417 // to 0 to disable message expiration
418 };
419};
420
421"policers" {
422 "commands-luser" {
423 "size" "5";
424 "drain-rate" "0.5";
425 };
426};
427
428"rlimits" {
429 "data" "50M";
430 "stack" "6M";
431 "vmem" "100M";
432};
433
fbbc275b
AS
434/* MAIL (if and how X3 sends mail ) *********************************
435 * Mainly Authserv/Nickserv send mail, See the Nickserv
436 * section for additional mail settings also.
437 */
d76ed9a9 438"mail" {
fbbc275b 439 "enable" "1";
d76ed9a9 440 "mailer" "/usr/sbin/sendmail";
fbbc275b
AS
441 // OR Afternet uses a custom script to keep the services IP hidden:
442 // "mailer" "/home/x3user/x3/sendmail.sh";
443 "from_address" "supportrobot@afternet.org";
444 "extra_headers" ("AfterNET-Services: x3");
445 "body_prefix_first" ("Welcome to AfterNET, looks like this is your first email from us.");
446 "body_prefix" ("AfterNET Support - User and Channel registration system");
447 "body_suffix_first" ("", "AfterNET IRC Network", "http://www.afternet.org");
448 "body_suffix" ("", "AfterNET IRC Network", "http://www.afternet.org", "support@afternet.org","irc://irc.afternet.org/afternet");
d76ed9a9
AS
449};
450
fbbc275b
AS
451/* DBS (Databases) *************************************************
452 * let you configure what databases go in what files.
453 *
454 * This default sets up everything in one big x3.db file.
455 *
456 * If you leave this section out, each database will be in its own file,
457 * and they will be written out every half hour.
458 */
d76ed9a9
AS
459"dbs" {
460 // This just illustrates how you can jam every database into one huge ("mondo") file.
461 "ChanServ" { "mondo_section" "ChanServ"; };
462 "gline" { "mondo_section" "gline"; };
d914d1cb 463 "shun" { "mondo_section" "shun"; };
d76ed9a9
AS
464 "Global" { "mondo_section" "Global"; };
465 "HelpServ" { "mondo_section" "HelpServ"; };
466 "modcmd" { "mondo_section" "modcmd"; };
467 "NickServ" { "mondo_section" "NickServ"; };
468 "OpServ" { "mondo_section" "OpServ"; };
469 "sendmail" { "mondo_section" "sendmail"; };
470
471 // These are the options if you want a database to be in its own file.
472 "mondo" {
473 // Where to put it?
ceafd592 474 "filename" "x3.db";
d76ed9a9
AS
475 // How often should it be saved?
476 // (You can disable automatic saves by setting this to 0.)
477 "frequency" "30m";
478 };
479};
480
fbbc275b
AS
481/* LOGS (If and how X3 logs data ) ***********************************
482 * LOGS sets up where X3 logs various kinds of info to.
483 */
d76ed9a9
AS
484"logs" {
485 // Two kinds of items exist in this section.
486
487 // One is a facility configuration subsection. These have the
488 // name of a log facility (one of "ChanServ", "Global",
ceafd592 489 // "HelpServ", "NickServ", "OpServ", "ProxyCheck", or "x3") and
490 // the value is a subsection. The "x3" log facility is a
d76ed9a9 491 // catch-all/fall-back facility.
ceafd592 492 "x3" {
d76ed9a9 493 // The "max_age" option says how long to keep log audit entries.
fbbc275b 494 "max_age" "10h";
d76ed9a9
AS
495 // The "max_count" option says how many log audit entries to keep.
496 "max_count" "1024";
497 // Audit (command tracking) entries are discarded if they exceed
498 // either limit: for example, if entry 500 is 10 minutes old, it
499 // will be discarded next time any audit command is logged.
500 };
501
502 // The other kind of item is a target list. The name of each is a
503 // description of facility-and-severity combinations, and the value
504 // is a string (or list of strings) that describe where matching
505 // events should be logged. As a special case, the facility * will
506 // specify how to log events regardless of their true facility, and
507 // the severity * will match all severities for a facility.
508 // Log targets use a psuedo-URI syntax: one of "file:filename",
509 // "std:[out|err|n]" where n is a valid file descriptor, or
510 // "irc:#channel" (nicknames or server masks can be used instead
511 // of channel names, but should be used with care).
512 // The severity is one of "replay", "debug", "command", "info",
513 // "override", "staff", "warning", "error", or "fatal".
514 // WARNING: If any severity except "replay" for a facility is left
515 // unspecified, it will use the default target (for example,
516 // "file:chanserv.log"). For "replay" severity, you must ALWAYS
517 // list a target to log it -- this is because it is very rarely
518 // useful.
519 "*.*" ("std:out", "file:everything.log"); // does NOT suppress any defaults
fbbc275b
AS
520 "*.override,error,fatal" "irc:#TheOps"; // report all uses of staff commands
521 "*.staff" "irc:#MrSnoopy"; // report all uses of staff commands
d76ed9a9
AS
522 "ChanServ.*" "file:chanserv.log"; // duplicates the default behavior
523 "ProxyCheck.*" (); // stop it from logging anything
524};