HOW TO: Advanced ChanServ (Disabling XOP)

  • Hey - turns out IRC is out and something a little more modern has taken it's place... A little thing called Discord!

    Join our community @ https://discord.gg/JuaSzXBZrk for a pick-up game, or just to rekindle with fellow community members.

Martz

Staff member
May 26, 2001
5,707
63
This guide is recommended for advanced users of the Services. Before attempting any of this you should be compitant with ChanServ and NickServ. You really should understand IRC and its concepts or you might find this confusing and possible wreck your channel setup if you do something wrong. I recommend registering a test channel and dropping it once you've finished (/msg chanserv DROP #channel)

In all instances in this HOWTO I have used the nickname Martz to represent the user you wish to modify , and #channel to represent the channel you are a Founder of.


Sumamary
By default the uta IRC services use the XOP system, which means adding users with levels VOP, AOP and SOP. This isn't very flexable though - but there is an alternative which allows things to be customised at a higher level. This means turning the XOP system off:

/msg chanserv set #channel XOP off

From now on, the VOP, AOP and SOP commands will be unavailable.

Instead, the alternatives are 2 other commands:

access
Example:
/msg chanserv access #channel list

This will list all users in #channel and their access level. The access level works on the basis that bigger is better, so normal users have an access level of 0. Existing AOPs will have an access level equal to 5, and SOP's and founders an access level equal to 10.

The access commands allows you to add a user anywhere between -2 and 20 (and smaller/larger, it's recommened that you stick to this numbering convention for ease of use). So, for a guest in your channel you might set their access to 3 or 4, while people you want to have ops set to 5. Powerusers or "high ranking" members of the channel you might set to 10, 12, 15 - anything you want. The reaons? The next command

levels
levels lets you customise what access level a registered member needs to perform the function. Here is the levels list from #utassault:

Access level settings for channel #utassault:

AUTODEOP -1
AUTOHALFOP 4
AUTOOP 5
AUTOPROTECT 10
AUTOVOICE 0
NOJOIN -2
SIGNKICK (disabled)
ACC-LIST 1
ACC-CHANGE 10
AKICK 10
SET 15
BAN 5
BANME 0
CLEAR (disabled)
GETKEY 5
HALFOP 5
HALFOPME 4
INFO (disabled)
KICK 5
KICKME 0
INVITE 5
OPDEOP 5
OPDEOPME 5
PROTECT (disabled)
PROTECTME 10
TOPIC 4
UNBAN 4
VOICE 5
VOICEME 0
MEMO 10
ASSIGN (disabled)
BADWORDS 10
FANTASIA 0
GREET 0
NOKICK 4
SAY 5

Each command (left) has an associated access number (right). So, for example, if you have a register user in your channel with an access level of 4, they would have access to the following commands (via chanserv):

AUTOHALFOP 4
BANME 0
HALFOPME 4
KICKME 0
TOPIC 4
UNBAN 4
VOICEME 0
FANTASIA 0
GREET 0
NOKICK 4

Another example, if you had a registered user with an access level of 5 they would be able to use these commands (via chanserv):


AUTOHALFOP 4
AUTOOP 5
BAN 5
BANME 0
GETKEY 5
HALFOP 5
HALFOPME 4
KICK 5
KICKME 0
INVITE 5
OPDEOP 5
OPDEOPME 5
TOPIC 4
UNBAN 4
VOICE 5
VOICEME 0
FANTASIA 0
GREET 0
NOKICK 4
SAY 5

The good thing is that you can customise the levels. So if you had a registered user with an access level of 4, and you didn't want them to have access to the unban command, you could change it to any other level you wanted - such as 6, 7 and 8. Then they wouldn't be able to use it. Obviously this works both ways, and you can change the level of a command such as BAN to 4, and let all your level 4 users ban people. The configuration is up to you. Want to try this out? Read on!

Using the NON XOP system (switching to advanced mode)

Firstly, you will need to turn the XOP system off. This is done by using the following command:

/msg chanserv set #channel XOP off

This lets you use the levels command. If you try and use the levels command with the XOP system still on, you will get a message alone the lines of:

"This command is useless in this mode."

The level command CANNOT be used with the XOP (basic) system turned on.

Using the ACCESS and LEVEL command

The ACCESS command
Syntax:

/msg chanserv ACCESS #channel function

Examples:

/msg chanserv ACCESS #channel list
This lists all the registered users who have access to #channel, and their respective access level

/msg chanserv ACCESS #channel add Martz 5
This would add Martz to the #channel access list with an access level of 5

If a user already exists with a level, (you typed access #channel list as above, and found Martz to have access level 12) you can overwrite it by simply readding them, such as:
/msg chanserv ACCESS #channel add Martz 16

This would upgrade (or downgrade if you choose a lesser number) their access without removing them from the list. Duplicates will not be added.


/msg chanserv ACCESS #channel del Martz
This would remove Martz from the access list on #channel

LEVELS

If you want to change the level of a command, use the following examples and sytax as guidlines:

/msg ChanServ LEVElS #channel set COMMAND VALUE

Examples of how to change the level of a command:

/msg chanserv LEVELS #channel SET BAN 5
This would set the level of the command BAN to 5, meaning only users with an access level of 5 or greater would be able to use the ban command.

/msg chanserv LEVELS #channel DISABLE BAN
This would disable the BAN command, and make it unavailable to any user apart from the Founder of the channel.

/msg chanserv LEVELS #channel ENABLE BAN
This would enable the BAN command, and set its access value to default.

/msg chanserv LEVELS #channel reset
Incase you fuck everything up, and it all goes wrong, use this command to reset everything to default values so you can start again. This will not reset any ACCESS values.

Cool stuff.

OK, so you've got the XOP switched off and advanced mode all configured and working hunky dorry - what can you do now that you couldn't before?

Well consider having an auto-voice system. If were using the basic system, you would have to add every single user as a VOP. Not good huh? With the advanced system you can make the AUTOVOICE command (or event, in this case) set to 0. Since all registered users (and not including non register users) have a level of 0, you can set the AUTOVOICE even to be equal to 0. Every user that joins will then get voiced. Be carefull though when setting the levels, if you set AUTOOP to 0, every user would be opped as soon as they join the channel!

Another recommened command/event to set to 0 is GREET. Every user who joins who has a greet message set with nickserv will have it displayed when they join. KICKME and BANME events allow users to bant themselves, so setting them to 0 they can (foolishly) kick and ban themselves by messaging chanserv. If they try and kick or ban another user in the channel, this comes under a different command (KICK and BAN) - so you would set that to level 5 for example. You dont want anyone to be able to ban anyone else in the channel do you? :P

For a complete list of help and futher instructions, you can also try these commands (make sure you have notices set to be in the active window, in mIRC change: File > Options > IRC Show In Active - Tick Notices):

/msg chanserv help access
(shows help for the access command)
/msg chanserv help levels
(Shows help for the levels command)
/msg chanserv help levels desc
(shows what each level command does, such as KICKME NOKICK, GETKEY etc)
 
only thing we need is a describtion of the different commands does...
like: NOKICK
?? that is?
 
/msg chanserv help levels desc


Shows what each one does or doesn't do.