diff --git a/exec/ircbots/admin_commands.js b/exec/ircbots/admin_commands.js
deleted file mode 100644
index 3cb35e9e2a68660c84121f81525726b3c0c66b91..0000000000000000000000000000000000000000
--- a/exec/ircbots/admin_commands.js
+++ /dev/null
@@ -1,565 +0,0 @@
-// $Id$
-/*
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details:
- http://www.gnu.org/licenses/gpl.txt
-
- Synchronet IRC Daemon as per RFC 1459, link compatible with Bahamut
-
- Copyright 2010 Randolph Erwin Sommerfeld <sysop@rrx.ca>
-
- An IRC bot written in JS that interfaces with the local BBS.
-
-*/
-
-this.Bot_Commands["WHOIS"] = new Bot_Command(0,false,false);
-this.Bot_Commands["WHOIS"].usage =
-	get_cmd_prefix() + "WHOIS <nick>";
-this.Bot_Commands["WHOIS"].help =
-	"Brings up information about a user.  If the <nick> argument is omitted, "
-	+ "then it will display information about you.";
-this.Bot_Commands["WHOIS"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	if (!cmd[1]) {
-		srv.o(target,"You are recognized as access level " + lvl);
-		cmd[1] = onick;
-	}
-	var usr = new User(system.matchuser(cmd[1]));
-	if (usr.number > 0) {
-		srv.o(target,usr.alias+" has an access level of "
-			+usr.security.level+". (UID: " + usr.number + ")");
-		if (masks[usr.number])
-			srv.o(target,"Masks: " + masks[usr.number].join(" "));
-		else
-			srv.o(target,usr.alias + " has no IRC masks defined.");
-		srv.o(target,usr.alias + " last signed on "
-			+ strftime("%m/%d/%Y %H:%M",usr.stats.laston_date) + " via "
-			+ usr.connection + ".");
-	} else {
-		srv.o(target,"I have no such user in my database.");
-	}
-	return;
-}
-
-this.Bot_Commands["ADDMASK"] = new Bot_Command(50,1,false);
-this.Bot_Commands["ADDMASK"].usage =
-	get_cmd_prefix() + "ADDMASK <nick> <user>@<host>";
-this.Bot_Commands["ADDMASK"].help =
-	"Stores information used by the bot to identify you.";
-this.Bot_Commands["ADDMASK"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	var addmask = false;
-	var delmask = false;
-	if (cmd[0] == "ADDMASK") {
-		addmask = true;
-	} else if (cmd[0] == "DELMASK") {
-		delmask = true;
-	}
-	if (!addmask && !delmask) {
-		srv.o(target,"Huh? I'm confused :(");
-		return;
-	}
-	if (!cmd[2]) {
-		cmd[2] = cmd[1];
-		cmd[1] = onick;
-	}
-	if (!cmd[2].match(/[@]/)) {
-		srv.o(target,"Typically, hostmasks need a '@' in them.");
-		return;
-	}
-	var usr = new User(system.matchuser(cmd[1]));
-	if (usr.number == 0) {
-		srv.o(target,"That user doesn't exist!");
-		return;
-	}
-	var self_change = (onick.toUpperCase() == cmd[1].toUpperCase());
-	if ( (lvl < 80) && !self_change) {
-		srv.o(target,"You do not have permission to change IRC masks "
-			+ "for other users.");
-		return;
-	}
-	if ((usr.security.level >= lvl) && !self_change) {
-		srv.o(target,"You cannot add or delete masks for a user whose "
-			+ "access level is equal to or greater than yours.");
-		return;
-	}
-	if (addmask) {
-		for (m in masks[usr.number]) {
-			if (wildmatch(cmd[2],masks[usr.number][m])) {
-				srv.o(target,"This user already has a mask matching that. "
-					+ "Try deleting it with 'DELMASK' first.");
-				return;
-			}
-		}
-	}
-	if (delmask) {
-		for (m in masks[usr.number]) {
-			if (masks[usr.number][m].toUpperCase() == cmd[2].toUpperCase()) {
-				masks[usr.number].splice(m,1);
-				srv.o(target,"Mask deleted for user " + usr.alias + ": "
-					+ cmd[2]);
-				return;
-			}
-		}
-		srv.o(target,"Couldn't find the mask you were looking for.");
-	} else if (addmask) {
-		if (!masks[usr.number])
-			masks[usr.number] = new Array();
-		masks[usr.number].push(cmd[2]);
-		srv.o(target,"Mask added for user " + usr.alias + ": " + cmd[2]);
-	}
-	return;
-}
-this.Bot_Commands["DELMASK"] = this.Bot_Commands["ADDMASK"];
-
-this.Bot_Commands["ADDUSER"] = new Bot_Command(80,2,false);
-this.Bot_Commands["ADDUSER"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	if (IRC_check_nick(cmd[1],40)) {
-		srv.o(target,cmd[1] + " isn't a valid nickname.");
-		return;
-	}
-	var usr = cmd[1].toUpperCase();
-	var syncusr = new User(system.matchuser(cmd[1]));
-	if (!srv.users[usr] && !cmd[2]) {
-		srv.o(target,cmd[1] + " is not on any channels that I'm currently on. "
-			+ "To force an add for this user, please specify a mask.");
-		return;
-	} else if (syncusr.number > 0) {
-		srv.o(target,cmd[1] + " already exists in my database!");
-		return;
-	}
-	var mask;
-	var level = 50;
-	if (cmd[2] && cmd[2].match(/[.]/)) {//2nd arg is a mask
-		mask = cmd[2];
-	} else if (cmd[2]) { // must be a level.
-		if (!srv.users[usr] && !cmd[3]) {
-			srv.o(target,cmd[1] + " is not on any channels that I'm "
-				+ "currently on.  To force an add for this user, please "
-				+ "specify a mask.");
-			return;
-		}
-		level = parseInt(cmd[2]);
-		if (level >= lvl) {
-			srv.o(target,"You may only add users with a lower access level "
-				+ "than your own.");
-			return;
-		}
-	}
-	if (cmd[3] && !mask)
-		mask = cmd[3];
-	// create a mask for this user.
-	if (!mask)
-		mask = IRC_create_default_mask(srv.users[usr].uh);
-	if (!mask && !level) {
-		srv.o(target,"Uh oh, something bogus happened.  "
-			+ "Alert the bot owner.  (!mask && !level)");
-		return;
-	}
-	var mask_array = mask.split(",");
-	var inval_mask = false;
-	for (my_mask in mask_array) {
-		if (IRC_check_host(mask_array[my_mask],true,true,false)) {
-			srv.o(target,"The mask (" + mask_array[my_mask] + ") is "
-				+ "invalid.  No user added.");
-			inval_mask = true;
-			return;
-		}
-	}
-	if (inval_mask)
-		return;
-	srv.o(target,"Added " + cmd[1] + " as level " + level
-		+ " with mask(s): " + mask);
-	srv.o(target,"This user should now set a password with /MSG " + srv.nick
-		+ " PASS");
-	var newuser = system.new_user(cmd[1]);
-	masks[newuser.number] = mask_array;
-	login_user(newuser);
-	newuser.settings |= USER_INACTIVE;
-	newuser.security.level = level;
-	return;
-}
-
-this.Bot_Commands["CHANGE"] = new Bot_Command(80,2,false);
-this.Bot_Commands["CHANGE"].usage =
-	get_cmd_prefix() + "CHANGE <nick> <security_level>";
-this.Bot_Commands["CHANGE"].help =
-	"Allows you to change the security level of users with a lower level " +
-	"than you up to, but not including yours.";
-this.Bot_Commands["CHANGE"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	var usr = new User(system.matchuser(cmd[1]));
-	if (usr.number == 0) {
-		srv.o(target,"The user " + cmd[1] + " doesn't exist in my database.");
-		return;
-	}
-	if (lvl <= usr.security.level) {
-		srv.o(target,"You can only use the change command on users with a "
-			+ "lower level than yours. (" + lvl + ")  "
-			+ "This error message Copyright 2006 Deuce. ;)");
-		return;
-	}
-	if (parseInt(cmd[2]) >= lvl) {
-		srv.o(target,"You cannot change an access level to be higher or equal "
-			+ "to your own. (" + lvl + ")");
-		return;
-	}
-	srv.o(target,"Access level for " + usr.alias + " changed to "
-		+ parseInt(cmd[2]));
-	usr.security.level = parseInt(cmd[2]);
-	return;
-}
-
-this.Bot_Commands["RESETPASS"] = new Bot_Command(90,true,false);
-this.Bot_Commands["RESETPASS"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	var usr = new User(system.matchuser(cmd[1]));
-	if (usr.number > 0) {
-		srv.o(target,usr.alias + "'s password has been reset.  "
-			+ "They should now set a new one with /MSG " + srv.nick + " "
-			+ "PASS <newpass>");
-		usr.security.password = "";
-		usr.settings |= USER_INACTIVE;
-	} else {
-		srv.o(target,cmd[1] + " doesn't exist in my database!");
-	}
-	return;
-}
-
-this.Bot_Commands["PASS"] = new Bot_Command(50,true,false);
-this.Bot_Commands["PASS"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	if ((target[0] == "#") || (target[0] == "&")) {
-		srv.o(target,"Fool!  I'm not setting your password to something "
-			+ "you broadcast in a public channel.  Pick a new password and "
-			+ "then /MSG " + srv.nick + " PASS <newpass>");
-		return;
-	}
-	var usr = new User(system.matchuser(onick));
-	if (usr.number == 0) {
-		srv.o(target,"Huh?  You don't exist.  Inform the bot owner  (!usr)");
-		return;
-	}
-	if (usr.security.password != "") {
-		if (!cmd[2]) {
-			srv.o(target,"I need your old password too, bud.  "
-				+ "/MSG " + srv.nick + " PASS <newpass> <oldpass>");
-			return;
-		}
-		if (cmd[2].toUpperCase() != usr.security.password) {
-			srv.o(target,"Password mismatch.  /MSG " + srv.nick + " PASS "
-				+ "<newpass> <oldpass>");
-			return;
-		}
-	}
-	srv.o(target,"Your password has now been set to '" + cmd[1] + "', "
-		+"don't forget it!");
-	usr.security.password = cmd[1];
-	if (usr.settings&USER_INACTIVE)
-		usr.settings &= ~USER_INACTIVE;
-	return;
-}
-
-this.Bot_Commands["IDENT"] = new Bot_Command(0,true,false);
-this.Bot_Commands["IDENT"].usage =
-	"/MSG %s IDENT <nick> <pass>";
-this.Bot_Commands["IDENT"].help =
-	"Identifies a user by alias and password. Use via private message only.";
-this.Bot_Commands["IDENT"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	var usr = new User(system.matchuser(onick));
-	if (cmd[2]) { /* Username passed */
-		usr = new User(system.matchuser(cmd[1]));
-		cmd[1] = cmd[2];
-	}
-	if (!usr.number) {
-		srv.o(target,"No such user.");
-		return;
-	}
-	if ((target[0] == "#") || (target[0] == "&")) {
-		if (lvl >= 50) {
-			srv.o(target,"Fool!  You've just broadcasted your password to "
-				+ "a public channel!  Because of this, I've reset your "
-				+ "password.  Pick a new password, then /MSG " + srv.nick + " "
-				+ "PASS <newpass>");
-			usr.security.password = "";
-		} else {
-			srv.o(target,"Is broadcasting a password to a public channel "
-				+ "really a smart idea?");
-		}
-		return;
-	}
-	if (usr.security.password == "") {
-		srv.o(target,"Your password is blank.  Please set one with /MSG "
-			+ srv.nick + " PASS <newpass>, and then use IDENT.");
-		return;
-	}
-	if (cmd[1].toUpperCase() == usr.security.password) {
-		srv.o(target,"You are now recognized as user '" + usr.alias + "'");
-		srv.users[onick.toUpperCase()].ident = usr.number;
-		login_user(usr);
-		return;
-	}
-	srv.o(target,"Incorrect password.");
-	return;
-}
-
-this.Bot_Commands["EVAL"] = new Bot_Command(0,true,false);
-this.Bot_Commands["EVAL"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	var query = "";
-
-	var usr = new User(system.matchuser(onick));
-	if (usr.number) {
-		var uid_str = format("%04u", usr.number);
-		var user_js = "/home/bbs/data/user/" +uid_str+ ".eval.js";
-		if (file_exists(user_js)) {
-			var user_file = new File(user_js);
-			if (user_file.open('r+')) {
-				var str;
-				while ((str=user_file.readln())!=null) {
-					query += str;
-				}
-				user_file.close();
-			}
-		}
-	}
-
-	cmd.shift();
-	query += cmd.join(" ");
-	js.branch_limit=1000; // protection
-	js.branch_counter=0; // reset
-	var result = js.eval(query);
-	if(result)
-		result = strip_ctrl(result.toString().slice(0,512));
-	else if (result==undefined)
-		result = system.popen("tail -1 /home/bbs/log/ircbot/stderr");
-	srv.o(target,result);
-	js.branch_limit=0; // protection off
-	return;
-}
-
-this.Bot_Commands["SEVAL"] = new Bot_Command(99,true,true);
-this.Bot_Commands["SEVAL"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	cmd.shift();
-	var query = cmd.join(" ");
-	try {
-		srv.o(target,eval(query));
-	} catch(e) {
-		srv.o(target,"ERROR: "+e);
-	}
-	return;
-}
-
-this.Bot_Commands["GROUPS"] = new Bot_Command(50,true,false);
-this.Bot_Commands["GROUPS"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	for (g in msg_area.grp_list) {
-		srv.o(target,"[" + msg_area.grp_list[g].number + "] "
-			+ msg_area.grp_list[g].description);
-	}
-	return;
-}
-
-this.Bot_Commands["SUBS"] = new Bot_Command(50,true,false);
-this.Bot_Commands["SUBS"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	var groupnum = parseInt(cmd[1]);
-	if (!msg_area.grp_list[groupnum]) {
-		srv.o(target,"Group number " + cmd[1] + " doesn't exist!");
-		return;
-	}
-	var sg = msg_area.grp_list[groupnum].sub_list;
-	for (g in msg_area.grp_list[groupnum].sub_list) {
-		srv.o(target,"[" + sg[g].number + "] " + sg[g].description
-			+ " (" + sg[g].code + ")");
-	}
-	return;
-}
-this.Bot_Commands["SUBGROUPS"] = this.Bot_Commands["SUBS"];
-
-this.Bot_Commands["READ"] = new Bot_Command(50,true,false);
-this.Bot_Commands["READ"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	if (!cmd[2]) { // user wants to list msgs?
-		var msgs = new MsgBase(cmd[1]);
-		if(!msgs) {
-			srv.o(target,"No such message base!");
-			return;
-		}
-		msgs.open();
-		srv.o(target,"There are " + msgs.total_msgs + " messages to read from "
-			+ msgs.first_msg + " to " + msgs.last_msg);
-		msgs.close();
-		return;
-	} else if (cmd[2]) { // reading a msg
-		var msgs = new MsgBase(cmd[1]);
-		if(!msgs) {
-			srv.o(target,"No such message base!");
-			return;
-		}
-		var mn = parseInt(cmd[2]);
-		msgs.open();
-		var mh = msgs.get_msg_header(mn);
-		srv.o(target,"  To: " + mh.to);
-		srv.o(target,"From: " + mh.from);
-		srv.o(target,"Subj: " + mh.subject);
-		var my_msg = msgs.get_msg_body(mn).split("\r\n");
-		for (line in my_msg) {
-			if (!my_msg[line])
-				my_msg[line] = " ";
-			srv.o(target, my_msg[line]);
-		}
-		msgs.close();
-		return;
-	}
-	return;
-}
-
-this.Bot_Commands["FINGER"] = new Bot_Command(50,true,false);
-this.Bot_Commands["FINGER"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	var udpfinger = false;
-	if (cmd[0] == "UDPFINGER")
-		udpfinger = true;
-	var f_host;
-	var f_user;
-	if (cmd[1].match(/[@]/)) { // user@host
-		f_host = cmd[1].split("@")[1];
-		f_user = cmd[1].split("@")[0];
-	} else { // assume just host
-		f_host = cmd[1];
-		f_user = "";
-	}
-	var f_sock;
-	if (udpfinger) {
-		f_sock = new Socket(SOCK_DGRAM);
-		f_sock.nonblocking = true;
-	} else {
-		f_sock = new Socket();
-	}
-	if (!f_sock.connect(f_host,79)) {
-		srv.o(target,"Couldn't connect to "+ f_host +": " + f_sock.last_error);
-		return;
-	} else {
-		f_sock.send(f_user + "\r\n");
-		var f_line_count = 0;
-		var timeout = time()+10;
-		while(f_sock.is_connected) {
-			if (udpfinger) {
-				var tmp = f_sock.read();
-				if (tmp) {
-					var udp_lines = tmp.split("\r\n");
-					for (ul in udp_lines) {
-						srv.o(target, strip_ctrl(udp_lines[ul]));
-						f_line_count++;
-						if ((f_line_count > 10) && (lvl < 75) &&
-						    ((target[0] == "#") || (target[0] == "&")) ) {
-							srv.o(target,"*** Connection Terminated "
-								+ "(output squelched after 10 lines)");
-							return;
-						}
-					}
-					return;
-				}
-			 } else {
-				srv.o(target, strip_ctrl(f_sock.readline()));
-				f_line_count++;
-				if ((f_line_count > 10) &&
-				    (lvl < 75) &&
-				    ((target[0] == "#") ||
-				     (target[0] == "&")) ) {
-					srv.o(target,"*** Connection Terminated "
-						+"(output squelched after 10 lines)");
-					return;
-				}
-			}
-			if (time() >= timeout) {
-				srv.o(target,"*** Your query timed out after 10 seconds.");
-				return;
-			}
-		}
-		f_sock.close();
-	}
-	return;
-}
-this.Bot_Commands["UDPFINGER"] = this.Bot_Commands["FINGER"];
-
-this.Bot_Commands["EXEC"] = new Bot_Command(99,true,true);
-this.Bot_Commands["EXEC"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	cmd.shift();
-	var query = cmd.join(" ");
-	var this_poutput = system.popen(query);
-	if (!this_poutput) {
-		srv.o(target,"Command failed. :(");
-		return;
-	}
-	for (line in this_poutput) {
-		if (!this_poutput[line])
-			this_poutput[line] = " ";
-		srv.o(target, this_poutput[line]);
-	}
-	return;
-}
-
-this.Bot_Commands["ADDQUOTE"] = new Bot_Command(80,true,false);
-this.Bot_Commands["ADDQUOTE"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	cmd.shift();
-	var the_quote = cmd.join(" ");
-	quotes.push(the_quote);
-	srv.o(target,"Thanks for the quote!");
-	return;
-}
-
-this.Bot_Commands["QUOTE"] = new Bot_Command(0,false,false);
-this.Bot_Commands["QUOTE"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	if (cmd[1]) {
-		cmd.shift();
-		var searched_quotes = new Object();
-		var search_params = cmd.join(" ");
-		var lucky_number;
-		while (true_array_len(searched_quotes) < quotes.length) {
-			lucky_number = random(quotes.length);
-			if (!searched_quotes[lucky_number]) {
-				if (quotes[lucky_number].toUpperCase().match(search_params.toUpperCase())) {
-					srv.o(target, quotes[lucky_number]);
-					return;
-				}
-				searched_quotes[lucky_number] = true;
-			}
-		}
-		srv.o(target,"Couldn't find a quote that matches your criteria.");
-		return;
-	}
-	srv.o(target, quotes[random(quotes.length)]);
-	return;
-}
-
-this.Bot_Commands["SAY"] = new Bot_Command(80,true,false);
-this.Bot_Commands["SAY"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	cmd.shift();
-	var say_target = cmd.shift();
-	if ( (say_target[0] != "#") && (say_target[0] != "&")
-		&& (lvl<99) ) {
-		srv.o(target, "Can only 'say' to a channel when access level < 99.");
-		return;
-	}
-	var query = cmd.join(" ");
-	srv.o(say_target, strip_ctrl(query));
-	return;
-}
-
-this.Bot_Commands["LASTSPOKE"] = new Bot_Command(0,false,false);
-this.Bot_Commands["LASTSPOKE"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	if (!cmd[1]) {
-		srv.o(target,"You spoke just now, chief.");
-		return;
-	}
-	var usr = new User(system.matchuser(cmd[1]));
-	var srv_usr=srv.users[cmd[1].toUpperCase()];
-	if (usr.number > 0 && srv_usr && srv_usr.last_spoke>0) {
-		var last_date=strftime("%m/%d/%Y",srv_usr.last_spoke);
-		var last_time=strftime("%H:%M",srv_usr.last_spoke);
-		srv.o(target,usr.alias + " last spoke on " + last_date + " at " + last_time + ".");
-	} else {
-		srv.o(target,"I have no such user in my database.");
-	}
-	return;
-}
diff --git a/exec/ircbots/admin_functions.js b/exec/ircbots/admin_functions.js
deleted file mode 100644
index 8ef5f46529bf41cdf0ae195d3f7b8e450ed919dc..0000000000000000000000000000000000000000
--- a/exec/ircbots/admin_functions.js
+++ /dev/null
@@ -1,29 +0,0 @@
-// $Id$
-/*
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details:
- http://www.gnu.org/licenses/gpl.txt
-
- Copyright 2010 Randolph E. Sommerfeld <sysop@rrx.ca>
-
-*/
-
-/********** Command Processors. **********/
-this.Server_command=function(srv,cmdline,onick,ouh) {
-	var cmd=IRC_parsecommand(cmdline);
-	switch (cmd[0]) {
-		case "PRIVMSG":
-			if(srv.users[onick.toUpperCase()]) srv.users[onick.toUpperCase()].last_spoke=time();
-		default:
-			break;
-	}
-}
-
diff --git a/exec/ircbots/dicebot.js b/exec/ircbots/dicebot.js
deleted file mode 100644
index 1f19a94226771c7e61aab93dc0df8808ee621dd5..0000000000000000000000000000000000000000
--- a/exec/ircbots/dicebot.js
+++ /dev/null
@@ -1,31 +0,0 @@
-/*
-	IRC bot module - by Matt Johnson (MCMLXXIX) - 2010
-	This is a sample IRC bot module to demonstrate how such modules work.
-	More than one module can be loaded into the main IRC bot at a time,
-	but be careful when setting your bot commands (in '<botname>_commands.js')
-	if there are duplicate command names, they will be superseded in the order
-	in which they are loaded (in the order they are listed in ircbot.ini).
-*/
-var working_dir=this.dir;
-
-/* This method is executed by the IRCBot during its "save_everything()" cycle */
-this.save=function()
-{
-	//var s_file=new File(working_dir + "file.ini");
-	//if(!s_file.open(file_exists(s_file.name)?"r+":"w+")) return false;
-	
-	/*
-		do some work, save some data.....
-	*/
-	
-	//s_file.close();
-}
-/* This method is executed by the IRCBot during its "main()" loop, once per cycle (DO NOT MAKE A LOOP) */
-this.main=function(srv)
-{	
-	/*	Do some work here.
-		You can use a timer to time events or process scores.
-		You have access to server methods and properties.	*/
-}
-
-/* Module objects here: Everything here is loaded within the context of the "Modules()" object */
\ No newline at end of file
diff --git a/exec/ircbots/dicebot_commands.js b/exec/ircbots/dicebot_commands.js
deleted file mode 100644
index b33f382409c02305579008fa5a701ce646cbc357..0000000000000000000000000000000000000000
--- a/exec/ircbots/dicebot_commands.js
+++ /dev/null
@@ -1,39 +0,0 @@
-this.Bot_Commands["ROLL"] = new Bot_Command(0,false,false);
-this.Bot_Commands["ROLL"].usage = 
-	get_cmd_prefix() + "ROLL <num_dice>d<num_sides>";
-this.Bot_Commands["ROLL"].help = 
-	"This is the command used to roll dice.";
-this.Bot_Commands["ROLL"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	cmd.shift();
-	var num_dice;
-	var sides_per_die;
-	
-	if(!cmd[0]) {
-		/* If no arguments are supplied, assume a roll of two six-sided dice.	*/
-		num_dice=2;
-		sides_per_die=6;
-	} else {
-		var args=cmd[0].toUpperCase().split("D");
-		num_dice=args[0];
-		sides_per_die=args[1];
-	}
-	if(!num_dice>0 || !sides_per_die>0) {
-		srv.o(target,"Invalid arguments.");
-		return;
-	}
-	
-	var total=roll_them_dice(num_dice,sides_per_die);
-	srv.o(target,onick + " rolled: " + total);
-	return;
-}
-
-this.Bot_Commands["DICE"] = new Bot_Command(0,false,false);
-this.Bot_Commands["DICE"].help = 
-	"To roll some dice, type '" + get_cmd_prefix() + "ROLL <num_dice>d<num_sides>'. " +
-	"For a full list of commands, type '" + get_cmd_prefix() + "HELP'.";
-this.Bot_Commands["DICE"].command = function (target,onick,ouh,srv,lvl,cmd) {
-	srv.o(target,"Help: " + this.help);
-	return;
-}
-
-
diff --git a/exec/ircbots/dicebot_functions.js b/exec/ircbots/dicebot_functions.js
deleted file mode 100644
index f9d6751232522df2092b8fc2fe601fd8b54b750f..0000000000000000000000000000000000000000
--- a/exec/ircbots/dicebot_functions.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/* 	IRC Bot Module - Server Commands
-	You would place all of your module functions in this file.	*/
-	
-this.Server_command=function(srv,cmdline,onick,ouh) 
-{
-	var cmd=IRC_parsecommand(cmdline);
-	switch (cmd[0]) {
-		case "JOIN":
-			if (onick == srv.curnick) break;
-			
-			// Someone else joining? Let's send them a private welcome message!
-			srv.o(onick,"Welcome to the DiceBot show!");
-			srv.o(onick,"This is a module for IRCBot - by Cyan");
-			break;
-		case "PRIVMSG":
-			if ((cmd[1][0] == "#") || (cmd[1][0] == "&")) {
-				var chan = srv.channel[cmd[1].toUpperCase()];
-				if (!chan)
-					break;
-				if (!chan.is_joined)
-					break;
-				if(srv.users[onick.toUpperCase()]) {
-					/* 	You can do special command processing here, if you like.
-						This is currently set up to parse public room messages for
-						things like trivia answers, or other responses that
-						are inconvenient for users to submit with a command prefix */
-				}
-			}
-			break;
-		default:
-			break;
-	}
-}
-
-function roll_them_dice(num_dice,num_sides)
-{
-	var total=0;
-	for(var d=0;d<num_dice;d++) {
-		total+=random(num_sides)+1;
-	}
-	return total;
-}
\ No newline at end of file