summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
Diffstat (limited to 'data')
-rw-r--r--data/botserv.example.conf227
-rw-r--r--data/chanserv.example.conf724
-rw-r--r--data/commands.example.conf341
-rw-r--r--data/example.conf923
-rw-r--r--data/global.example.conf101
-rw-r--r--data/hostserv.example.conf150
-rw-r--r--data/memoserv.example.conf215
-rw-r--r--data/modules.example.conf239
-rw-r--r--data/nickserv.example.conf606
-rw-r--r--data/operserv.example.conf579
-rw-r--r--data/tables.sql (renamed from data/mysql/tables.sql)0
11 files changed, 2735 insertions, 1370 deletions
diff --git a/data/botserv.example.conf b/data/botserv.example.conf
new file mode 100644
index 000000000..81b08d66d
--- /dev/null
+++ b/data/botserv.example.conf
@@ -0,0 +1,227 @@
+/*
+ * Example configuration file for BotServ.
+ */
+
+/*
+ * First, create the service.
+ */
+service
+{
+ /*
+ * The name of the BotServ client
+ */
+ nick = "BotServ"
+
+ /*
+ * The username of the BotServ client.
+ */
+ user = "services"
+
+ /*
+ * The hostname of the BotServ client.
+ */
+ host = "localhost.net"
+
+ /*
+ * The realname of the BotServ client.
+ */
+ gecos = "Bot Service"
+}
+
+/*
+ * Core BotServ module.
+ *
+ * Provides essential functionality for BotServ.
+ */
+module { name = "bs_main" }
+
+/*
+ * Configuration for BotServ provided by bs_main.
+ */
+botserv
+{
+ /*
+ * The name of the client that should be BotServ.
+ */
+ name = "BotServ"
+
+ /*
+ * The default bot options for newly registered channels. Note that changing these options
+ * will have no effect on channels which are already registered. The list must be separated
+ * by spaces.
+ *
+ * The options are:
+ * - dontkickops: Channel operators will be protected against BotServ kicks
+ * - dontkickvoices: Voiced users will be protected against BotServ kicks
+ * - greet: The channel's BotServ bot will greet incoming users that have set a greet
+ * in their NickServ settings
+ * - fantasy: Enables the use of BotServ fantasy commands in the channel
+ *
+ * This directive is optional, if left blank, there will be no defaults.
+ */
+ defaults="greet fantasy"
+
+ /*
+ * The minimum number of users there must be in a channel before the bot joins it. The best
+ * value for this setting is 1 or 2. This can be 0, the service bots will not part unless
+ * specifically unassigned, and will keep the channel open.
+ */
+ minusers = 1
+
+ /*
+ * The maximum number of entries a single bad words list can have. Setting it too high can
+ * reduce performance slightly.
+ */
+ badwordsmax = 32
+
+ /*
+ * The amount of time that data for a user is valid in BotServ. If the data exceeds this time,
+ * it is reset or deleted depending on the case. Do not set it too high, otherwise your
+ * resources will be slightly affected.
+ */
+ keepdata = 10m
+
+ /*
+ * The bots are currently not affected by any modes or bans when they try to join a channel.
+ * But some people may want to make it act like a real bot, that is, for example, remove all
+ * the bans affecting the bot before joining the channel, remove a ban that affects the bot
+ * set by a user when it is in the channel, and so on. Since it consumes a bit more CPU
+ * time, you should not enable this on larger networks.
+ *
+ * This directive is optional.
+ */
+ #smartjoin = yes
+
+ /*
+ * If set, the bots will use a kick reason that does not state the word when it is kicking.
+ * This is especially useful if you have young people on your network.
+ *
+ * This directive is optional.
+ */
+ gentlebadwordreason = yes
+
+ /*
+ * If set, BotServ will use case sensitive checking for badwords.
+ *
+ * This directive is optional.
+ */
+ #casesensitive = yes
+
+ /*
+ * Defines the prefix for fantasy commands in channels. This character will have to be prepended
+ * to all fantasy commands. If you choose "!", for example, fantasy commands will be "!kick",
+ * "!op", etc. This directive is optional, if left out, the default fantasy character is "!".
+ */
+ #fantasycharacter = "!"
+}
+
+/*
+ * Core BotServ commands.
+ *
+ * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules
+ * are loaded you can then configure the commands to be added to any client you like with any name you like.
+ *
+ * Additionally, you may provide a permission name that must be in the opertype of users executing the command.
+ *
+ * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
+ */
+
+/* Give it a help command */
+command { service = "BotServ"; name = "HELP"; command = "generic/help"; }
+
+/*
+ * bs_assign
+ *
+ * Provides the commands botserv/assign and botserv/unassign.
+ *
+ * Used for assigning and unassigning bots to channels.
+ */
+module { name = "bs_assign" }
+command { service = "BotServ"; name = "ASSIGN"; command = "botserv/assign"; }
+command { service = "BotServ"; name = "UNASSIGN"; command = "botserv/unassign"; }
+
+/*
+ * bs_autoassign
+ *
+ * Allows service bots to be automatically assigned to channels upon registration.
+ */
+#module { name = "bs_autoassign" }
+bs_autoassign
+{
+ /*
+ * Automatically assign ChanServ to channels upon registration.
+ */
+ bot = "ChanServ"
+}
+
+/*
+ * bs_badwords
+ *
+ * Provides the command botserv/badwords.
+ *
+ * Used for controlling the channel badword list.
+ */
+module { name = "bs_badwords" }
+command { service = "BotServ"; name = "BADWORDS"; command = "botserv/badwords"; }
+
+/*
+ * bs_bot
+ *
+ * Provides the command botserv/bot.
+ *
+ * Used for administrating BotServ bots.
+ */
+module { name = "bs_bot" }
+command { service = "BotServ"; name = "BOT"; command = "botserv/bot"; }
+
+/*
+ * bs_botlist
+ *
+ * Provides the command botserv/botlist.
+ *
+ * Used for listing all available bots.
+ */
+module { name = "bs_botlist" }
+command { service = "BotServ"; name = "BOTLIST"; command = "botserv/botlist"; }
+
+/*
+ * bs_control
+ *
+ * Provides the commands botserv/act and botserv/say.
+ *
+ * Used for making the bot message a channel.
+ */
+module { name = "bs_control" }
+command { service = "BotServ"; name = "ACT"; command = "botserv/act"; }
+command { service = "BotServ"; name = "SAY"; command = "botserv/say"; }
+
+/*
+ * bs_info
+ *
+ * Provides the command botserv/info.
+ *
+ * Used for getting information on bots or channels.
+ */
+module { name = "bs_info" }
+command { service = "BotServ"; name = "INFO"; command = "botserv/info"; }
+
+/*
+ * bs_kick
+ *
+ * Provides the command botserv/kick.
+ *
+ * Used for configuring what bots should kick for.
+ */
+module { name = "bs_kick" }
+command { service = "BotServ"; name = "KICK"; command = "botserv/kick"; }
+
+/*
+ * bs_set
+ *
+ * Provides the command botserv/set.
+ *
+ * Used for setting options such as kickers and fantasy replies.
+ */
+module { name = "bs_set" }
+command { service = "BotServ"; name = "SET"; command = "botserv/set"; }
+
diff --git a/data/chanserv.example.conf b/data/chanserv.example.conf
new file mode 100644
index 000000000..b1b19040a
--- /dev/null
+++ b/data/chanserv.example.conf
@@ -0,0 +1,724 @@
+/*
+ * Example configuration file for ChanServ.
+ */
+
+/*
+ * First, create the service.
+ */
+service
+{
+ /*
+ * The name of the ChanServ client
+ */
+ nick = "ChanServ"
+
+ /*
+ * The username of the ChanServ client.
+ */
+ user = "services"
+
+ /*
+ * The hostname of the ChanServ client.
+ */
+ host = "localhost.net"
+
+ /*
+ * The realname of the ChanServ client.
+ */
+ gecos = "Channel Registration Service"
+}
+
+/*
+ * Core ChanServ module.
+ *
+ * Provides essential functionality for ChanServ.
+ */
+module { name = "cs_main" }
+
+/*
+ * Configuration for ChanServ provided by cs_main.
+ */
+chanserv
+{
+ /*
+ * The name of the client that should be ChanServ.
+ */
+ name = "ChanServ"
+
+ /*
+ * The default options for newly registered channels. Note that changing these options
+ * will have no effect on channels which are already registered. The list must be separated
+ * by spaces.
+ *
+ * The options are:
+ * - keeptopic: Retain topic when the channel is not in use
+ * - opnotice: Send a notice when OP/DEOP commands are used
+ * - peace: Disallow users from kicking or removing modes from others who are of the same
+ * access level or superior
+ * - private: Hide the channel from ChanServ's LIST command
+ * - restricted: Kick/ban users who are restricted from the channel
+ * - secure: Enable channel security, requiring the user to be identified with NickServ in
+ * order to be considered for being on the access list of the channel
+ * - secureops: Only allow operator status to be given if the user is on the access list
+ * - securefounder: Only allow the real founder of the channel to drop the channel, change it's
+ * password, or change the founder or successor
+ * - signkick: Use of ChanServ's KICK command will cause the user's nick to be signed to the kick.
+ * - signkicklevel: Same as above, but the kick will not be signed if the user is at the same access
+ * level or superior to the target
+ * - topiclock: Disallow the topic to be changed except with ChanServ's TOPIC command
+ * - persist: Keep the channel open at all times
+ * - none: No defaults
+ *
+ * This directive is optional, if left blank, the options will default to keetopic, secure, securefounder,
+ * and signkick. If you really want no defaults, use "none" by itself as the option.
+ */
+ defaults="keeptopic peace secure securefounder signkick"
+
+ /*
+ * The maximum number of channels which may be registered to a single nickname.
+ *
+ * This directive is optional, but recommended.
+ * If not set, there will be no restriction on the numbers of channels a single nickname can have registered.
+ */
+ maxregistered = 20
+
+ /*
+ * The length of time before a channel registration expires.
+ *
+ * This directive is optional, but recommended.
+ * If not set, the default is 14 days.
+ */
+ expire = 14d
+
+ /*
+ * The length of time before a suspended channel becomes unsuspended.
+ *
+ * This directive is optional.
+ * If not set, the default is to never.
+ */
+ #suspendexpire = 90d
+
+ /*
+ * The lenth of time before a forbidden channel drops.
+ *
+ * This directive is optional.
+ * If not set, the default is to never.
+ */
+ #forbidexpire = 90d
+
+ /*
+ * The default ban type for newly registered channels (and when importing old databases).
+ *
+ * defbantype can be:
+ *
+ * 0: ban in the form of *!user@host
+ * 1: ban in the form of *!*user@host
+ * 2: ban in the form of *!*@host
+ * 3: ban in the form of *!*user@*.domain
+ */
+ defbantype = 2
+
+ /*
+ * The maximum number of entries on a channel's access list.
+ */
+ accessmax = 1024
+
+ /*
+ * The maximum number of entries on a channel's autokick list.
+ */
+ autokickmax = 32
+
+ /*
+ * The default reason for an autokick if none is given.
+ */
+ autokickreason = "User has been banned from the channel"
+
+ /*
+ * The length of time ChanServ stays in a channel after kicking a user from a channel they are not
+ * permitted to be in. This only occurs when the user is the only one in the channel.
+ */
+ inhabit = 15s
+
+ /*
+ * The maximum number of channels to be returned for a ChanServ LIST command.
+ */
+ listmax = 50
+
+ /*
+ * Allow only IRC Operators to use ChanServ.
+ *
+ * This directive is optional.
+ */
+ #opersonly = yes
+
+ /*
+ * ChanServ levels configuration, for use with cs_access.
+ *
+ * These levels are used by the chanserv/access access system.
+ * The levels configured below will be used as a default by newly registered channels.
+ *
+ * The level "founder" is a special level that means anyone with the level_founder permission
+ * can use (which of course defaults to "founder"). Anyone with the founder level permission in
+ * a channel can do anything in the channel.
+ */
+ level_change = 10
+ level_list = 1
+ level_akick = 10
+ level_assign = "founder"
+ level_autohalfop = 4
+ level_autoop = 5
+ level_autoowner = 9999
+ level_autoprotect = 10
+ level_autovoice = 3
+ level_badwords = 10
+ level_ban = 4
+ level_fantasia = 3
+ level_founder = "founder"
+ level_getkey = 5
+ level_greet = 5
+ level_halfop = 5
+ level_halfopme = 4
+ level_info = 9999
+ level_invite = 5
+ level_kick = 4
+ level_memo = 10
+ level_mode = 5
+ level_nokick = 1
+ level_opdeop = 5
+ level_opdeopme = 5
+ level_owner = "founder"
+ level_ownerme = 9999
+ level_protect = 9999
+ level_protectme = 10
+ level_say = 5
+ level_signkick = 9999
+ level_set = 9999
+ level_topic = 5
+ level_unban = 4
+ level_voice = 4
+ level_voiceme = 3
+
+ /*
+ * ChanServ flags configuration, for use with cs_flags.
+ *
+ * These flags are used by the chanserv/flags access system.
+ */
+ flag_change = "f"
+ flag_list = "l"
+ flag_akick = "K"
+ flag_assign = "s"
+ flag_autohalfop = "H"
+ flag_autoop = "O"
+ flag_autoowner = "Q"
+ flag_autoprotect = "A"
+ flag_autovoice = "V"
+ flag_badwords = "k"
+ flag_ban = "b"
+ flag_fantasia = "c"
+ flag_founder = "F"
+ flag_getkey = "G"
+ flag_greet = "g"
+ flag_halfop = "h"
+ flag_halfopme = "h"
+ flag_info = "I"
+ flag_invite = "i"
+ flag_kick = "k"
+ flag_memo = "m"
+ flag_mode = "s"
+ flag_nokick = "N"
+ flag_opdeop = "o"
+ flag_opdeopme = "o"
+ flag_owner = "q"
+ flag_ownerme = "q"
+ flag_protect = "a"
+ flag_protectme = "a"
+ flag_say = "B"
+ flag_set = "s"
+ flag_signkick = "K"
+ flag_topic = "t"
+ flag_unban = "u"
+ flag_voice = "v"
+ flag_voiceme = "v"
+}
+
+/*
+ * Core ChanServ commands.
+ *
+ * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules
+ * are loaded you can then configure the commands to be added to any client you like with any name you like.
+ *
+ * Additionally, you may provide a permission name that must be in the opertype of users executing the command.
+ *
+ * Sane defaults are provided below that do not need to be edited unless you wish to change the default behavior.
+ */
+
+/* Give it a help command */
+command { service = "ChanServ"; name = "HELP"; command = "generic/help"; }
+
+/*
+ * cs_access
+ *
+ * Provides commands chanserv/access and chanserv/levels.
+ * Provides the access system "levels".
+ *
+ * Used for giving users access in channels.
+ */
+module { name = "cs_access" }
+command { service = "ChanServ"; name = "ACCESS"; command = "chanserv/access"; }
+command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; }
+
+/*
+ * cs_akick
+ *
+ * Provides the command chanserv/akick.
+ *
+ * Used for preventing users from joining channels.
+ */
+module { name = "cs_akick" }
+command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; }
+
+/*
+ * cs_appendtopic
+ *
+ * Provides the chanserv/appendtopic command.
+ *
+ * Used to append text to existing channel topics.
+ */
+module { name = "cs_appendtopic" }
+command { service = "ChanServ"; name = "APPENDTOPIC"; command = "chanserv/appendtopic"; }
+
+/*
+ * cs_ban
+ *
+ * Provides the command chanserv/ban.
+ *
+ * Used for banning users from channels.
+ */
+module { name = "cs_ban" }
+command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; }
+command { service = "ChanServ"; name = "KB"; command = "chanserv/ban"; }
+
+/*
+ * cs_clearusers
+ *
+ * Provides the command chanserv/clearusers.
+ *
+ * Used for kicking all users from channels.
+ */
+module { name = "cs_clearusers" }
+command { service = "ChanServ"; name = "CLEARUSERS"; command = "chanserv/clearusers"; }
+
+/*
+ * cs_clone
+ *
+ * Provides the command chanserv/clone.
+ *
+ * Used for copying channel settings from one channel to another.
+ */
+module { name = "cs_clone" }
+command { service = "ChanServ"; name = "CLONE"; command = "chanserv/clone"; }
+
+/*
+ * cs_drop
+ *
+ * Provides the command chanserv/drop.
+ *
+ * Used for unregistering channels.
+ */
+module { name = "cs_drop" }
+command { service = "ChanServ"; name = "DROP"; command = "chanserv/drop"; }
+
+/*
+ * cs_enforce
+ *
+ * Provides the command chanserv/enforce.
+ *
+ * Used to enforce various channel settings such as secureops and restricted.
+ */
+module { name = "cs_enforce" }
+command { service = "ChanServ"; name = "ENFORCE"; command = "chanserv/enforce"; }
+
+/*
+ * cs_entrymsg
+ *
+ * Provides the command chanserv/entrymsg.
+ *
+ * Used to configure entry messages sent to users when they join a channel.
+ */
+module { name = "cs_entrymsg" }
+command { service = "ChanServ"; name = "ENTRYMSG"; command = "chanserv/entrymsg"; }
+cs_entrymsg
+{
+ /* The maximum number of entrymsgs allowed per channel. If not set, defaults to 5. */
+ maxentries = 5
+}
+
+/*
+ * cs_flags
+ *
+ * Provides the command chanserv/flags.
+ * Provides the access system "flags".
+ *
+ * Used for giving users access in channels.
+ */
+module { name = "cs_flags" }
+command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; }
+
+/*
+ * cs_getkey
+ *
+ * Provides the command chanserv/getkey.
+ *
+ * Used for getting the key for channels.
+ */
+module { name = "cs_getkey" }
+command { service = "ChanServ"; name = "GETKEY"; command = "chanserv/getkey"; }
+
+/*
+ * cs_info
+ *
+ * Provides the command chanserv/info.
+ *
+ * Used for getting information about channels.
+ */
+module { name = "cs_info" }
+command { service = "ChanServ"; name = "INFO"; command = "chanserv/info"; }
+
+/*
+ * cs_invite
+ *
+ * Provides the command chanserv/invite.
+ *
+ * Used for inviting yourself in to channels.
+ */
+module { name = "cs_invite" }
+command { service = "ChanServ"; name = "INVITE"; command = "chanserv/invite"; }
+
+/*
+ * cs_kick
+ *
+ * Provides the command chanserv/kick.
+ *
+ * Used for kicking users from channels.
+ */
+module { name = "cs_kick" }
+command { service = "ChanServ"; name = "KICK"; command = "chanserv/kick"; }
+command { service = "ChanServ"; name = "K"; command = "chanserv/kick"; }
+
+/*
+ * cs_list
+ *
+ * Provides the command chanserv/list.
+ *
+ * Used for retrieving and searching the registered channel list.
+ */
+module { name = "cs_list" }
+command { service = "ChanServ"; name = "LIST"; command = "chanserv/list"; permission = "chanserv/list"; }
+
+/*
+ * cs_mode
+ *
+ * Provides the command chanserv/mode.
+ *
+ * Used for changing mode locks and changing modes.
+ */
+module { name = "cs_mode" }
+command { service = "ChanServ"; name = "MODE"; command = "chanserv/mode"; }
+
+/*
+ * cs_mode
+ *
+ * Provides the commands chanserv/op, chanserv/deop, chanserv/halfop, chanserv/dehalfop
+ * chanserv/voice, chanserv/devoice, chanserv/protect, chanserv/deprotect,
+ * chanserv/owner, and chanserv/deowner.
+ *
+ * Used for setting and removing modes on users.
+ */
+module { name = "cs_modes" }
+command { service = "ChanServ"; name = "OP"; command = "chanserv/op"; }
+command { service = "ChanServ"; name = "DEOP"; command = "chanserv/deop"; }
+command { service = "ChanServ"; name = "HALFOP"; command = "chanserv/halfop"; }
+command { service = "ChanServ"; name = "DEHALFOP"; command = "chanserv/dehalfop"; }
+command { service = "ChanServ"; name = "VOICE"; command = "chanserv/voice"; }
+command { service = "ChanServ"; name = "DEVOICE"; command = "chanserv/devoice"; }
+command { service = "ChanServ"; name = "PROTECT"; command = "chanserv/protect"; }
+command { service = "ChanServ"; name = "DEPROTECT"; command = "chanserv/deprotect"; }
+command { service = "ChanServ"; name = "OWNER"; command = "chanserv/owner"; }
+command { service = "ChanServ"; name = "DEOWNER"; command = "chanserv/deowner"; }
+
+/*
+ * cs_register
+ *
+ * Provides the commands chanserv/register.
+ *
+ * Used for registering channels.
+ */
+module { name = "cs_register" }
+command { service = "ChanServ"; name = "REGISTER"; command = "chanserv/register"; }
+
+/*
+ * cs_set
+ *
+ * Provides the command chanserv/set.
+ *
+ * Is a dummy command to provide a help wrapper for the various SET commands.
+ */
+module { name = "cs_set" }
+command { service = "ChanServ"; name = "SET"; command = "chanserv/set"; }
+
+/*
+ * cs_saset
+ *
+ * Provides the command chanserv/saset.
+ *
+ * Is a dummy command to provide a help wrapper for the various SASET commands.
+ */
+module { name = "cs_saset" }
+command { service = "ChanServ"; name = "SASET"; command = "chanserv/saset"; permission = "chanserv/saset"; }
+
+/*
+ * cs_set_bantype
+ *
+ * Provides the commands chanserv/set/bantype and chanserv/saset/bantype.
+ *
+ * Used for controlling what format bans are placed on channels.
+ */
+module { name = "cs_set_bantype" }
+command { service = "ChanServ"; name = "SET BANTYPE"; command = "chanserv/set/bantype"; }
+command { service = "ChanServ"; name = "SASET BANTYPE"; command = "chanserv/saset/bantype"; permission = "chanserv/saset/bantype"; }
+
+/*
+ * cs_set_description
+ *
+ * Provides the commands chanserv/set/description and chanserv/saset/description.
+ *
+ * Used for changing channels descriptions.
+ */
+module { name = "cs_set_description" }
+command { service = "ChanServ"; name = "SET DESCRIPTION"; command = "chanserv/set/description"; }
+command { service = "ChanServ"; name = "SET DESC"; command = "chanserv/set/description"; }
+command { service = "ChanServ"; name = "SASET DESCRIPTION"; command = "chanserv/saset/description"; permission = "chanserv/saset/description"; }
+command { service = "ChanServ"; name = "SASET DESC"; command = "chanserv/saset/description"; permission = "chanserv/saset/description"; }
+
+/*
+ * cs_set_founder
+ *
+ * Provides the commands chanserv/set/founder and chanserv/saset/founder.
+ *
+ * Used for changing channel founders.
+ */
+module { name = "cs_set_founder" }
+command { service = "ChanServ"; name = "SET FOUNDER"; command = "chanserv/set/founder"; }
+command { service = "ChanServ"; name = "SASET FOUNDER"; command = "chanserv/saset/founder"; permission = "chanserv/saset/founder"; }
+
+/*
+ * cs_set_keeptopic
+ *
+ * Provides the commands chanserv/set/keeptopic and chanserv/saset/keeptopic.
+ *
+ * Used for enabling keeptopic on channels, which causes ChanServ to restore the channel topic
+ * when a channel is created.
+ */
+module { name = "cs_set_keeptopic" }
+command { service = "ChanServ"; name = "SET KEEPTOPIC"; command = "chanserv/set/keeptopic"; }
+command { service = "ChanServ"; name = "SASET KEEPTOPIC"; command = "chanserv/saset/keeptopic"; permission = "chanserv/saset/keeptopic"; }
+
+/*
+ * cs_set_misc
+ *
+ * Provides the command chanserv/set/misc.
+ *
+ * Allows you to create arbitrary commands to set data, and have that data show up in chanserv/info.
+ */
+module { name = "cs_set_misc" }
+command { service = "ChanServ"; name = "SET URL"; command = "chanserv/set/misc"; }
+command { service = "ChanServ"; name = "SET EMAIL"; command = "chanserv/set/misc"; }
+
+/*
+ * cs_set_opnotice
+ *
+ * Provides the commands chanserv/set/opnotice and chanserv/saset/opnotice.
+ *
+ * Used for setting whether channel ops should be notified of mode changes made through ChanServ.
+ */
+module { name = "cs_set_opnotice" }
+command { service = "ChanServ"; name = "SET OPNOTICE"; command = "chanserv/set/opnotice"; }
+command { service = "ChanServ"; name = "SASET OPNOTICE"; command = "chanserv/saset/opnotice"; permission = "chanserv/saset/optnotice"; }
+
+/*
+ * cs_set_peace
+ *
+ * Provides the commands chanserv/set/peace and chanserv/saset/peace.
+ *
+ * Used for setting the peace option, which prevents users from kicking other users with
+ * higher level access than them.
+ */
+module { name = "cs_set_peace" }
+command { service = "ChanServ"; name = "SET PEACE"; command = "chanserv/set/peace"; }
+command { service = "ChanServ"; name = "SASET PEACE"; command = "chanserv/saset/peace"; permission = "chanserv/saset/peace"; }
+
+/*
+ * cs_set_persist
+ *
+ * Provides the commands chanserv/set/persist and chanserv/saset/persist.
+ *
+ * Used for setting whether ChanServ should stay in channels after the last user leaves.
+ */
+module { name = "cs_set_persist" }
+command { service = "ChanServ"; name = "SET PERSIST"; command = "chanserv/set/persist"; }
+command { service = "ChanServ"; name = "SASET PERSIST"; command = "chanserv/saset/persist"; permission = "chanserv/saset/persist"; }
+
+/*
+ * cs_set_private
+ *
+ * Provides the commands chanserv/set/private and chanserv/saset/private.
+ *
+ * Used for setting whether channels should show up in chanserv/list.
+ */
+module { name = "cs_set_private" }
+command { service = "ChanServ"; name = "SET PRIVATE"; command = "chanserv/set/private"; }
+command { service = "ChanServ"; name = "SASET PRIVATE"; command = "chanserv/saset/private"; permission = "chanserv/saset/private"; }
+
+/*
+ * cs_set_restricted
+ *
+ * Provides the commands chanserv/set/restricted and chanserv/saset/restricted.
+ *
+ * Used for setting whether users not on a channel's access list can join.
+ */
+module { name = "cs_set_restricted" }
+command { service = "ChanServ"; name = "SET RESTRICTED"; command = "chanserv/set/restricted"; }
+command { service = "ChanServ"; name = "SASET RESTRICTED"; command = "chanserv/saset/restricted"; permission = "chanserv/saset/restricted"; }
+
+/*
+ * cs_set_secure
+ *
+ * Provides the commands chanserv/set/secure and chanserv/saset/secure.
+ *
+ * Used for setting whether users who are recognized for accounts should have their access in channels.
+ */
+module { name = "cs_set_secure" }
+command { service = "ChanServ"; name = "SET SECURE"; command = "chanserv/set/secure"; }
+command { service = "ChanServ"; name = "SASET SECURE"; command = "chanserv/saset/secure"; permission = "chanserv/saset/secure"; }
+
+/*
+ * cs_set_securefounder
+ *
+ * Provides the commands chanserv/set/securefounder and chanserv/saset/securefounder.
+ *
+ * Used for setting whether users with founder level access in channels have true founder or not.
+ */
+module { name = "cs_set_securefounder" }
+command { service = "ChanServ"; name = "SET SECUREFOUNDER"; command = "chanserv/set/securefounder"; }
+command { service = "ChanServ"; name = "SASET SECUREFOUNDER"; command = "chanserv/saset/securefounder"; permission = "chanserv/saset/securefounder"; }
+
+/*
+ * cs_set_secureops
+ *
+ * Provides the commands chanserv/set/secureops and chanserv/saset/secureops.
+ *
+ * Used for restricting who can have channel op privilege in a channel to those whom have access in the channel.
+ */
+module { name = "cs_set_secureops" }
+command { service = "ChanServ"; name = "SET SECUREOPS"; command = "chanserv/set/secureops"; }
+command { service = "ChanServ"; name = "SASET SECUREOPS"; command = "chanserv/saset/secureops"; permission = "chanserv/saset/secureops"; }
+
+/*
+ * cs_set_signkick
+ *
+ * Provides the commands chanserv/set/signkick and chanserv/saset/signkick.
+ *
+ * Used for setting signkick, which appends the kicker's name to kicks sent through ChanServ.
+ */
+module { name = "cs_set_signkick" }
+command { service = "ChanServ"; name = "SET SIGNKICK"; command = "chanserv/set/signkick"; }
+command { service = "ChanServ"; name = "SASET SIGNKICK"; command = "chanserv/saset/signkick"; permission = "chanserv/saset/signkick"; }
+
+/*
+ * cs_set_successor
+ *
+ * Provides the commands chanserv/set/successor and chanserv/saset/successor.
+ *
+ * Used for setting channel successors, which become channel founders if the founders account expires.
+ */
+module { name = "cs_set_successor" }
+command { service = "ChanServ"; name = "SET SUCCESSOR"; command = "chanserv/set/successor"; }
+command { service = "ChanServ"; name = "SASET SUCCESSOR"; command = "chanserv/saset/successor"; permission = "chanserv/saset/successor"; }
+
+/*
+ * cs_set_topiclock
+ *
+ * Provides the commands chanserv/set/topiclock and chanserv/saset/topiclock.
+ *
+ * Used for setting topiclock, which prevents channel topics from being modified.
+ */
+module { name = "cs_set_topiclock" }
+command { service = "ChanServ"; name = "SET TOPICLOCK"; command = "chanserv/set/topiclock"; }
+command { service = "ChanServ"; name = "SASET TOPICLOCK"; command = "chanserv/saset/topiclock"; permission = "chanserv/saset/topiclock"; }
+
+/*
+ * cs_set_noexpire
+ *
+ * Provides the command chanserv/saset/noexpire.
+ *
+ * Used for setting noexpire, which prevents channels from expiring.
+ */
+module { name = "cs_saset_noexpire" }
+command { service = "ChanServ"; name = "SASET NOEXPIRE"; command = "chanserv/saset/noexpire"; permission = "chanserv/saset/noexpire"; }
+
+/*
+ * cs_suspend
+ *
+ * Provides the commands chanserv/suspend and chanserv/unsuspend.
+ *
+ * Used for suspending and unsuspending channels. Suspended channels can not be used but their settings are stored.
+ */
+module { name = "cs_suspend" }
+command { service = "ChanServ"; name = "SUSPEND"; command = "chanserv/suspend"; permission = "chanserv/suspend"; }
+command { service = "ChanServ"; name = "UNSUSPEND"; command = "chanserv/unsuspend"; permission = "chanserv/suspend"; }
+
+/*
+ * cs_sync
+ *
+ * Provides the command chanserv/sync.
+ *
+ * Used to sync users channel status modes with what access they have.
+ */
+module { name = "cs_sync" }
+command { service = "ChanServ"; name = "SYNC"; command = "chanserv/sync"; }
+
+/*
+ * cs_topic
+ *
+ * Provides the command chanserv/topic.
+ *
+ * Used for changing the channel topic. Usedful in conjunction with chanserv/set/topiclock.
+ */
+module { name = "cs_topic" }
+command { service = "ChanServ"; name = "TOPIC"; command = "chanserv/topic"; }
+
+/*
+ * cs_unban
+ *
+ * Provides the command chanserv/unban.
+ *
+ * Used for unbanning users from channels.
+ */
+module { name = "cs_unban" }
+command { service = "ChanServ"; name = "UNBAN"; command = "chanserv/unban"; }
+
+/*
+ * cs_xop
+ *
+ * Provides the commands chanserv/qop, chanserv/sop, chanserv/aop, chanserv/hop, and chanserv/vop.
+ * Provides the access system "XOP".
+ *
+ * Used for giving users access in channels.
+ */
+module { name = "cs_xop" }
+command { service = "ChanServ"; name = "QOP"; command = "chanserv/qop"; }
+command { service = "ChanServ"; name = "SOP"; command = "chanserv/sop"; }
+command { service = "ChanServ"; name = "AOP"; command = "chanserv/aop"; }
+command { service = "ChanServ"; name = "HOP"; command = "chanserv/hop"; }
+command { service = "ChanServ"; name = "VOP"; command = "chanserv/vop"; }
+
diff --git a/data/commands.example.conf b/data/commands.example.conf
deleted file mode 100644
index 6290dae6e..000000000
--- a/data/commands.example.conf
+++ /dev/null
@@ -1,341 +0,0 @@
-
-/*
- * [RECOMMENDED] Core modules and command configuration
- *
- * In Anope modules can provide (multiple) commands, each of which has a unique command name. Once these modules
- * are loaded you can then configure the commands to be added to any client you like with any name you like.
- *
- * Additionally, you may provide a permission name that must be in the opertype of users executing the command.
- *
- * Sane defaults are below.
- */
-
-module { name = "help" }
-command { service = "BotServ"; name = "HELP"; command = "generic/help"; }
-command { service = "ChanServ"; name = "HELP"; command = "generic/help"; }
-command { service = "Global"; name = "HELP"; command = "generic/help"; }
-command { service = "HostServ"; name = "HELP"; command = "generic/help"; }
-command { service = "MemoServ"; name = "HELP"; command = "generic/help"; }
-command { service = "NickServ"; name = "HELP"; command = "generic/help"; }
-command { service = "OperServ"; name = "HELP"; command = "generic/help"; }
-
-module { name = "bs_assign" }
-command { service = "BotServ"; name = "ASSIGN"; command = "botserv/assign"; }
-command { service = "BotServ"; name = "UNASSIGN"; command = "botserv/unassign"; }
-module { name = "bs_badwords" }
-command { service = "BotServ"; name = "BADWORDS"; command = "botserv/badwords"; }
-module { name = "bs_bot" }
-command { service = "BotServ"; name = "BOT"; command = "botserv/bot"; }
-module { name = "bs_botlist" }
-command { service = "BotServ"; name = "BOTLIST"; command = "botserv/botlist"; }
-module { name = "bs_control" }
-command { service = "BotServ"; name = "ACT"; command = "botserv/act"; }
-command { service = "BotServ"; name = "SAY"; command = "botserv/say"; }
-module { name = "bs_info" }
-command { service = "BotServ"; name = "INFO"; command = "botserv/info"; }
-module { name = "bs_kick" }
-command { service = "BotServ"; name = "KICK"; command = "botserv/kick"; }
-module { name = "bs_set" }
-command { service = "BotServ"; name = "SET"; command = "botserv/set"; }
-
-module { name = "cs_access" }
-command { service = "ChanServ"; name = "ACCESS"; command = "chanserv/access"; }
-command { service = "ChanServ"; name = "LEVELS"; command = "chanserv/levels"; }
-module { name = "cs_akick" }
-command { service = "ChanServ"; name = "AKICK"; command = "chanserv/akick"; }
-module { name = "cs_ban" }
-command { service = "ChanServ"; name = "BAN"; command = "chanserv/ban"; }
-command { service = "ChanServ"; name = "KB"; command = "chanserv/ban"; }
-module { name = "cs_clearusers" }
-command { service = "ChanServ"; name = "CLEARUSERS"; command = "chanserv/clearusers"; }
-module { name = "cs_clone" }
-command { service = "ChanServ"; name = "CLONE"; command = "chanserv/clone"; }
-module { name = "cs_drop" }
-command { service = "ChanServ"; name = "DROP"; command = "chanserv/drop"; }
-module { name = "cs_flags" }
-command { service = "ChanServ"; name = "FLAGS"; command = "chanserv/flags"; }
-module { name = "cs_getkey" }
-command { service = "ChanServ"; name = "GETKEY"; command = "chanserv/getkey"; }
-module { name = "cs_info" }
-command { service = "ChanServ"; name = "INFO"; command