A few people on the Skulltag side wanted to know what the channel/user modes do, so without further ado...
Channel modes:
Standard modes:
+n = No external messages, you must be in channel to talk
+t = Only Ops set topic
+i = Invite only
+m = Channel is moderated, you must have +v to talk
+k = Channel key, blocks other users who do not know the channel key.
+l = Channel limit, when it reaches this many users no one else is allowed to join. Some bots set this dynamically to prevent join floods.
+p = Private channel - will not show up on /list. (However, any other operation such as /who, /names, or /mode will work)
+s = Secret channel - Completely hides the channel unless you join it.
+o <user> = Gives a person operator access to the channel. Not recommended unless you explicitly trust them, use half-ops instead.
+h <user> = Gives a person half-operator access to the channel. Can do everything an op can do, except kick other half-ops or ops, or even set such modes. (Can, however, set any other mode, including voice)
+v <user> = Gives a person voice in the channel. If a channel is +m, this is required in order for them to communicate.
+b <mask> = Banning - works as a targeted +m when used without /kick, and also prevents the specified user mask from joining the channel at all if they leave. If you +b a user in a channel without kicking them, it will also block any /nick requests, and when they part or quit the channel their reason will not show.
ircd-specific modes: (These may change, though hopefully not anytime soon)
+D = Delayed join (Auditorium) - hides non-opers non-voices who join. This is useful when having a public meeting in a moderated channel but you don't want other users to make their presence known. To "fix" after removing the mode, refer
here.
+d = Warns you that you still have invisible users after removing +D. Not settable. See +D how to remove.
+c = No colors - if someone uses mIRC color codes, their message will be stripped of them before it's sent.
+C = No CTCP - Disallows sending CTCP's to the channel (other than ACTION, aka /me).
+N = No /notices - Disallows sending /notices to the channel.
+u = No part/quit reasons - useful in moderated channels if people start joining and leaving demanding voice.
+r = Block anyone not authed with NickServ from joining the channel.
User Modes
Standard modes (common to all nets)
+d = Deaf, does not receive messages sent in channel. Not very useful except for bots.
+s = Server notices - allows you to see net-splits and stuff. In our current setup, this is disabled for normal users.
+w = Receive wallops. In our current setup, users with this mode cannot see anything except /wallusers.
+o = Network IRC Op. This allows the user certain network-wide privileges, such as /kill (disconnecting) other users, /squit (disconnecting) other servers, /connect (to reconnect servers to other servers), the ability to use OpServ, and the ability to issue local (or sometimes global) G-Lines (which prevent a user from connecting to the network).
+O = Local IRC Op. Can usually do everything a net IRC op can do, except they can only affect the server they're on. So /kills will not go past the local level, same with /gline, and they can only /connect or /squit other servers locally.
ircd-specific modes: (These may change, though hopefully not anytime soon)
+g = Debug notices (aka "Hacks") - when services or a service bot or an IRC operator sets modes without privileges in a channel, this generates a *** HACK(4) notice if the mode was successful, or *** HACK(2) if the mode was blocked. Not settable by normal users.
+k = This is a special mode set by service bots, but in our ircd, can be set by irc ops. If fixing a channel take-over, this is a very useful umode to set. It blocks any non-service user from kicking or deopping you in any channel, and other IRC ops also cannot /kill you. Also hides the channel list in /whois.
+r <account name> (only settable by services) = Registers you as <account name> - this is shown on your /whois, and also allows services to recognize you even after a netsplit.
+h <host> <password> = Settable by non-IRC ops - if there is a virtual host login available (S-line), allows you to use it, and changes your effective hostname on /whois.
+h <ident@host>, or <host> = Settable by IRC ops, allows freeform changing of their own hostname on whois.