Can I Link Two Channels?

One question that is routinely asked in #help is how a channel owner can forward users from one channel to another. They usually ask this because they have changed channel names, and there is no other method available to regular users (as opposed to those with access to the IRCd configuration files); however it is also useful if the group that the channel is used by is hosting an event, and to keep the main channel manageable, want to limit it to only X amount of people, and have users that join after that go to an overfill channel.

In any case, linking two channels together is very easy, as it only involves setting two channel modes – the first sets a limit of X people that can be in the channel, and the second sets the channel to send people to after X people have joined the main channel. Also, you are not limited in the number of channels that can be linked together, with the exception that a channel can only forward users to one channel. #Chan1 can forward to #chan2, which can forward to #chan3, etc.
l = Channel may hold at most of users [o] (This mode is a lowercase L, not a capital i)
L = Channel link (If +l is full, the next user will auto-join ) [q]
So if I wanted to forward my channel #Inara to #Adria, I would do the following: /mode #Inara +lL 1 #Adria. If I wanted to always have the channel set like that, so that nobody could change it, I would use chanserv’s mlock option, and do: /msg chanserv set #Inara mlock +lL 1 #Adria.

If you are linking an old channel to a new one (i.e. you’ve moved channels), the number must be 1, and there must be someone in the channel for it to work (note: botserv bots do not count. It can be a bot that you run though). If you have linked a primary channel to an overfill one, the number can be anything equal to or greater than 1.

NOTE: Linked channels do not share the same permissions, you will need to add people to the aop/sop/hop/vop lists in each channel.

Should you have any questions about linking channels, feel free to leave a comment here, or to join #help and ask in there.

How Do I Embed My Chatroom Onto My Website?

One of the more frequent questions we see is people wondering how do they embed their chatroom on their website, and more often than not, it’s run off of WordPress. Although I wrote this while going through the steps on a site using WordPress, the process should be similar on Drupal, Joomla, or any other CMS.

One thing to note before starting is that you need to be able to post HTML, and not have it filtered. If you are using, or WPMU and are not the site/super admin, your HTML is filtered and you will not be able to see the chat box when you post the post/page you’re trying to put it onto. If you cannot post HTML, it will not work because it will treat the code as text instead.

Having said that, here are 5 easy steps to embedding your chat onto a site.

  1. Get the embed code from our website. At the very minimum, you should change the channel name. Unless you know better dimensions for your site’s layout, it might be best to leave the default size; you can always change that later (it is just two variables in the embed code).
  2. Add a new Page or Post like you normally would, and give it a title. While still in the visual editor (if you use it), feel free to add anything that you would like above and/or below the chat box and associated items.
  3. Next, if you aren’t already in HTML mode, click on the HTML button.
  4. Paste in the code you copied from step 1 in the appropriate place (depending on if you added text for above/below [step 2]). At this point, you will see the code, which may not make sense to you. Click the Save Draft button, then Preview.
  5. Depending on your theme, you might need to change the size of the chat. Once you are happy with how it looks, Publish the post.
Still have questions? Feel free to ask in #help, or post in the forums

GeekShed Management Script

GeekShed has an officially supported management script written by the GeekShed staff along with users Zetacon and GrimReaper. It offers a range of features including canned messages to help people with common questions as well as some decent channel and nickname management features.

We have checked out the tags directory at so you can find each version of the script. We recommend using the latest version (i.e. the one with the highest version number). The script is the one ending in .mrc. The .sig file is the GPG signature of the script and has been included from versions 1.8 for posterity. Public key Phil Lavin (Freelance Programmer) can be found on major key synchronizing servers.

Load it into the remotes section of your script editor just like any other script or place it in your mIRC install dir and type:

/load -rs gs-chanscript.mrc
Any problems, come see us in #help on

Access System Tutorial

On GeekShed, we have two access systems. Standard access system, and XOP. XOP is a simplification of the access system to make things a bit easier. However, with simplification comes a loss of features.

XOP is enabled by default for newly registered channels. It has 4 ChanServ commands – VOP, HOP, AOP and SOP for auto voice, auto halfop, auto op and auto admin, respectively. See ChanServ Commands for help with those commands.

The regular access system really isn’t very difficult to get your head around and provides you with much more control over your channel. To use it, you must first turn XOP off with the command:

/cs set #channel xop off

Following this, you must use the access level system to give people certain privileges in your channel. The access level system uses numbers to represent access. They range between -2 and 10000. The list below shows which levels, by default, map to which access within the IRC server:

-2 – Unable to join the channel
-1 – Not allowed to be oped in the channel
0 – Regular user
3 – Voiced user
4 – Halfop user
5 – Full op user
10 – Admin user
9999 – Channel owner

To change the access level of a user, use the following command:

/cs access #channel add

An example of the use of this command is:

/cs access #chills add Phil 5

This would make Phil level 5 (an op, by default) in #chills.

However, there is much more to the access system than this. You can customize many aspects of your channel.

These are:

AUTODEOP :: Channel operator status disallowed
AUTOHALFOP :: Automatic mode +h
AUTOOP :: Automatic channel operator status
AUTOPROTECT :: Automatic mode +a
AUTOVOICE :: Automatic mode +v
NOJOIN :: Not allowed to join channel
SIGNKICK :: No signed kick when SIGNKICK LEVEL is used
ACC-LIST :: Allowed to view the access list
ACC-CHANGE :: Allowed to modify the access list
AKICK :: Allowed to use AKICK command
SET :: Allowed to use SET command (not FOUNDER/PASSWORD)
BAN :: Allowed to use BAN command
BANME :: Allowed to ban him/herself
CLEAR :: Allowed to use CLEAR command
GETKEY :: Allowed to use GETKEY command
HALFOP :: Allowed to use HALFOP/DEHALFOP commands
HALFOPME :: Allowed to (de)halfop him/herself
INFO :: Allowed to use INFO command with ALL option
KICK :: Allowed to use KICK command
KICKME :: Allowed to kick him/herself
INVITE :: Allowed to use INVITE command
OPDEOP :: Allowed to use OP/DEOP commands
OPDEOPME :: Allowed to (de)op him/herself
PROTECT :: Allowed to use PROTECT/DEPROTECT commands
PROTECTME :: Allowed to (de)protect him/herself
TOPIC :: Allowed to use TOPIC command
UNBAN :: Allowed to use UNBAN command
VOICE :: Allowed to use VOICE/DEVOICE commands
VOICEME :: Allowed to (de)voice him/herself
MEMO :: Allowed to list/read channel memos
ASSIGN :: Allowed to assign/unassign a bot
BADWORDS :: Allowed to use BADWORDS command
FANTASIA :: Allowed to use fantaisist commands
GREET :: Greet message displayed
NOKICK :: Never kicked by the bot’s kickers
SAY :: Allowed to use SAY and ACT commands

These levels are all minimum levels, except AUTODEOP and NOJOIN, which are maximum levels. Thus, any user with an access level higher than the one defined for a particular access level name will have permission to do that.

To see how these are currently configured in your channel, use the command:

/cs levels #channel list

Any of these can be customized using the command:

/cs levels #channel set

So… If you would like users of level 7 and above to be able to read channel memos in #chills, you would do:

/cs levels #chills set memo 7

As you can see, the power provided by the non-XOP access system is incredibly diverse. Give it a try – you never know, you might like it.

Any questions, ask in #help.

GeekShed comment avatars

GeekShed links its comments with to provide user avatars next to their comments. The comments on the GeekShed site are linked, via your e-mail address, with your account at

If you would like an avatar on the GeekShed site, register for a account and link your e-mail address and avatars to it. Once you have done this, your avatar will show up for all your GeekShed comments, old and new.

Note: It sometimes takes up to an hour for the systems to update and GeekShed to start showing your avatar. Ensure you have linked the e-mail address you used for your GeekShed comments to gravatar and all should work great.

Any questions, ask in #help on

How do I Add a BotServ Bot to my Channel?

Assigning a botserv bot to your channel is very easy to do. All that’s required is to do the following.

  1. Pick a name from the list of available bots below.
  2. /bs assign #yourChannel botNick
    (where botNick is the nick of the desired available bot)

At this point, the bot should have joined your channel, and be assigned channel mode +a (its nick will have an & prefixed to it in the nicklist).

Please keep the following in mind:

  • All of the bots perform the same functions; the only difference is their identifiable information – nick, ident, host, and real name.
  • If you feel you have a creative nick, ident, host, and real name for a new bot, please read Can I Make my own BotServ Bot? for information regarding that.

Available Bots

To get a list of available bots, use the command: /msg BotServ BOTLIST

Help! It didn’t work…

If you try to assign a bot and nothing happens, please check your status/server window for any error messages, as these often contain explanations as to why something didn’t work. For example, if you see “[04:10:51] -BotServ- Bot Socretes does not exist.”, you should check the spelling (the real bot is Socrates).

If you do no see an error message, or require further help, stop by #help and network staff will be happy to help you.

Why should I register my nickname and how do I do it?

Registering your nickname on GeekShed provides a number of benefits. The most notable of these is that registering your nickname prevents other people from using it. Once a user starts using the nickname, they will be asked to ‘identify’ to it with a password. If they fail to do so, their nickname will be changed. This helps to stop people posing as you.

Once you register your nickname, you can be added to the auto voice and op lists in other people’s channels. This enables you to be a permanent staff member in channels. You are also entitled to a vhost once you have been registered for 90 days.

Registration provides you with many benefits and is completely free.

To register your nickname on GeekShed, you must first be using it. If you are not currently using it, change to it with the command:

/nick <nickname>

For example:

/nick CrazyUser

Once you are using the nickname, you may register it in one of two ways. If you’re using GeekShed’s Flash client, register your nick from the “Options” menu at the top of the window. In most other clients, use the following command:

/ns register <password> <e-mail>

Note that some older clients do not recognize the abbreviated /ns syntax. Instead you must type out the full command:
/msg nickserv register <password> <e-mail>

For example:

/ns register supersecretpassword

Following this, you will be sent an e-mail giving you the details required to finish off the registration. Follow the instructions in the e-mail.

Each time you connect and start using the registered, you will be told that “This nick is owned by someone else”. You must ‘identify’ to it using the following command:

/ns identify <password>

For example:

/ns identify supersecretpassword

If you use mIRC, you can load the following script into the Remotes section of your script editor (press alt+R to access this) to identify you automatically. Just replace ‘YOURPASSWORDHERE’ with your actual password:

on 1:NOTICE:*This nickname is registered and protected*:?: {
   if ($nick == NickServ) {
      ns identify YOURPASSWORDHERE

on 1:NOTICE:*This nick is owned by someone else*:?: {
   if ($nick == NickServ) {
      ns identify YOURPASSWORDHERE

If you require help, come and see us in #help on

Channel Flood Protection Tutorial

The +f channel mode provides comprehensive flood protection for a channel. This mode allows you to prevent join, nick change, CTCP, text, and knock floods. The syntax for this mode’s parameter is as follows:

/mode #channel +f [{#}{,…}]:

The amount specifies the number of times the specified flood must occur before action is taken. Below are the available types:

Type Name Default Actions Other Actions
c CTCP +C (no channel CTCPs allowed) m (only voiced users can speak), M (only registered users can speak)
j Join +i (invite only) R (only registered users can join)
k Knock +K (no knocks allowed)  
m Messages +m (only voiced users can speak) +M (only registered users can speak)
n Nickname Change +N (no nickname changes allowed)  
t Text User is kicked from the channel +b (user is banned from the channel)

The difference between type m and t is that m is tallied for the entire channel whereas t is tallied per user.

If you choose to specify an action for a mode, you may also specify a time (in minutes) after which the specific action will be reversed.

An example of the use of this command is:

/mode #chills +f [2c#C5,6j#R3,3k#K10,15m#m5,5n#N3,5t#b60]:5

This means…

  • If there are 2 channel CTCP messages (2c) in 5 seconds(:5) set mode +C for 5 mins (#C5)
  • If there are 6 joins (6j) in 5 seconds (:5) set mode +R for 3 mins (#R3)
  • If there are 3 /KNOCK commands on the channel (3k) in 5 seconds (:5) set mode +K for 10 mins (#K10)
  • If there are 15 messages in total from all users (15m) in 5 seconds (:5) set mode +m for 5 mins (#m5)
  • If there are 5 nickname changes (n5) in 5 seconds (:5) set mode +N for 3 mins (#N3)
  • If there are 5 messages from any single user (5t) in 5 seconds (:5) ban the user for 60 mins (#b60)

It has been observed lately that bot nets are joining channels and rapidly joining and parting. In order to prevent this, you can use channel mode j. This mode will allow only x joins to your channel in y seconds for each client. The recommended setting for this is 1 join in 1 second as this will entirely eradicate join/part flooding from botnets. An example of the use of this is:

/mode #chills +j 1:1

If you need any help, come and see us in #help on

Can my GeekShed channel have more than one founder?

Yes, it can! You can have as many people with founder access as you like.

Each channel will still have 1 founder – i.e. the person listed in /cs info #channel and GeekShed staff will only deal with this person for channel administration issues.

However, if you set a user to access level 9999, they too will have founder permissions on the channel. To do this, you must temorarily turn off XOP, if you have it on. To do this, type:

/cs SET #channel XOP OFF

Now you can set the user to access level 9999 with the following command:

/cs ACCESS #channel ADD nickname 9999

Once this is done, the user MUST cycle the channel for the changes to become active.

Once the user has cycled the channel they will be given +q each time they join.

It is important that you do not turn xop back on as, once a user has logged out of their nickname, their founder status will be lost and not restored.

WARNING: Only give this access level to people that you trust wholeheartedly. If a user takes control of a channel and becomes the listed founder of the channel, GeekShed staff are not responsible for this and will see the listed founder as the authorized owner of the channel.

In order to prevent secondary founders from changing the listed founder of the channel, ensure SECUREFOUNDER is switched on. To do this, type:


Since XOP is now off, you must use the access system to manage your channels access list. See access system tutorial for information on how to do this.

Extended Bans Tutorial

Silencing Users with Extended Bans

You can use extended bans to set up an alternative kind of ban that will give you more options, like silencing users. You can also read about how to set a simple channel ban and how to set more specific channel bans.

When you silence a user, you allow the person to stay in the channel, but block the person’s ability to participate in the discussion or change nicks. It’s an online equivalent of a short timeout, where the person has to sit quietly for several minutes before rejoining discussion.

To silence a user manually, you’d type:

/mode #YourChannel +bb ~q:nick! ~n:nick!

That command sets two bans, which is why the host information is listed twice. The first one (~q:nick! prevents the user from participating in the discussion (unless the user is +v or higher). The ~q stands for quiet. The second one (~n: nick!ident prevents the user from changing nicks. The ~n stands for nick.

In #YourChannel, bans are normally set by the user’s host, so an example ban would look like this:

/mode #YourChannel +bb ~n:*!* 

That example bans anyone (with any nick or ident) with the hostmask


Removing a Silence Extended Ban

If you silence a user manually, you have to remove the ban manually as well. Since you set the ban with +b, you will remove it by using the same command, but with -b. So to remove the ban, you would type:

/mode #YourChannel -bb ~q:nick! ~n:nick!

Everything is the same. You’re just removing the ban. Here’s the way to remove the example ban from above:

/mode #YourChannel -bb ~n:*!* 

Setting a Channel Extended Ban

There are two other kinds of extended bans:

  • ~c sets an extended ban based on a channel users are in
  • ~r sets an extended ban based on a user’s real name

You are unlikely to need either of these bans, but for the sake of thoroughness here is how they work.

To set an extended channel ban, you’d type:

/mode #YourChannel +b ~c:#channel

That ban would prevent anyone in #channel from joining #YourChannel.

Let’s pretend there’s a channel called #YourChannelHaters. We might decide that we do not want anyone from #YourChannelHaters to join #YourChannel. We could use this extended ban to prevent them from joining #YourChannel:

/mode #YourChannel +b ~c:#YourChannelHaters

You remove this kind of ban by switching to -b, so I could remove the ban on folks from #YourChannelHaters like this:

/mode #YourChannel -b ~c:#YourChannelHaters

Setting a Real Name Extended Ban

To set an extended ban based on a user’s real name, you’d type:

/mode #YourChannel +b ~r:*real_name*

The * character works as a wildcard, just as it does in other bans. Use the underscore character ( _ ) to represent spaces in the user’s real name. The underscore is also interpreted as an actual underscore character. In other words, the ban above would block someone using either “real name” (with a space) or “real_name” (with an underscore).

Here’s an example:

/mode #YourChannel +b ~r:*Jane_Doe*

That ban would prevent anyone who was using the real name “Jane Doe” or “Jane_Doe” from joining #YourChannel. Because of the * wildcard, someone with a real name like “Jane Doe rules” or “Jane_Doe_rules” would also be banned.

You remove this kind of ban by switching to -b, so I could remove the ban on “Jane Doe ” like this:

/mode #YourChannel -b ~r:*Jane_Doe*

—posted by bunny/tengrrl