Skip to content
🔥 [TERRIBLE CODE] A simple, non-OOP, modular IRC bot. Written in PHP.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


suphpbot - A modular, non-OOP IRC bot written entirely in PHP
Version 0.4b - -
This is an IRC bot.
I highly recommend that you /not/ put this in a web-accessible location. The bot must be run from a command-line. Here are the requirements for installation:
	* PHP 5 or higher
	* Access to a shell account on your server
	* Sockets enabled on your PHP installation
That's pretty much it. To get started, first open the ircconfig.ini file in a text editor such as Notepad or gedit. Change the lines to match the values you need to connect to your IRC server. Information about the various configuration options can be found within the ircconfig.ini file itself.
NOTE: DO NOT put this bot in a public location. While it is not possible to run the bot from a web browser, people can still download your configuration files if you do not block access.
To run the bot, open up a shell and navigate to the directory where you extracted the files to. If you want to run it in the background as a service, use this command:
	php ./ircbot.php
If something is going wrong and you want to run it with verbose console output, use this command:
	php ./ircbot.php --running
If you want to use a configuration file other than ircconfig.ini, try this -
	php ./ircbot.php -c other-config-file.ini
To identify as an admin to the bot, first register a user. Type this into your irc client to create your account:
	/msg [name of bot] register [username] [password]
Then, to make yourself an admin, open the file data/users.csv and set the last field from 0 to 1. Now, you can type
	/msg [name of bot] identify [username] [password]
to log in to the bot. All passwords are hashed using the secure SHA256 algorithm.
To send a command to the bot, type your command character and the name of the command next to eachother into a channel in which the bot is present. For example, if you wanted to ping the bot:
[the default command character is ~]
Here is a list of the central core commands:
	* load [module name here] - Loads a phpbot module so its commands can be used.
	* unload [module name here] - Unloads a phpbot module from the command list.
	* list - Sends a list of the currently available commands.
	* whoami - Tells you who you are.
	* quit - Quits the IRC network and kills the bot.
	* join [channel] - Tells the bot to join a channel.
	* part [channel] - Tells the bot to part from a channel.
	* help [command] - Gives you help for the command. :)
The bot comes prepackaged with tons of configuration options, changeable with the "config" command (see help config for more info). Here are the meanings of each option in ircconfig.ini:
	* server - The hostname or IP of the IRC server to connect to.
	* port - The port of the IRC server, usually 6667.
	* ssl - If this is set to 1, the bot will attempt to connect via SSL using the port provided. Otherwise, set it to 0.
	* channels - A comma-separated list of channels to join on startup.
	* ignore - A comma-separated list of hostmasks to ignore.
	* nick - The nick of the bot. If the nick is not available, it will add a random number to the end of this value.
	* ident - The ident of the bot, used if you do not have an identd running.
	* realname - The realname of the bot.
	* quitmsg - The message the bot will send before quitting if it is shut down properly.
	* pass - The IRC server password. If there is none, leave it blank.
	* commandchar - The command character that all commands begin with.
	* nickserv_nick - The nick of the server's nick service.
	* nickserv_pass - The password for your bot's nick. If there is none, leave it blank.
	* module_preload - A comma-separated list of modules to load on startup.
	* maxlen - The maximum length of any output sent to the server.
	* maxsend - The maximum amount of messages the bot can send at once.
	* floodtimer - The time between commands a user must wait in seconds.
	* configprivate - Comma-separated list of config options that a normal user cannot view.
	* blockedcommands - Comma-separated list of commands that nobody is allowed to run for one reason or another.
	* control_codes - Should the bot send control codes on channels and in private messages? 1 for yes, 0 for no!
	* strikes - The number of times a hostmask can be detected flooding before they're ignored.
	* automode - The user modes sent on connection, in the MODE argument format.
	* censor_badwords - A comma-separated list of "bad words" the bot should not say.
	* censor_output - 1 if the bot should censor output, 0 if it should not.
	* censor_word - What to replace censored text with.\
	* logging - 1 to log raw input/output to a file, 0 to disable
	* logfile - name of the file to log to
	* message_style - Style of outputted messages - %nick% will be replaced with the user's nick and %message% will be replaced with the output message.
	* direct_search - Boolean value to allow searching without command character.
	* allowed_users - List of users that can use special features (Not admins).
Something went wrong with that request. Please try again.