* Split Mad Scientist Related changes: - MS now honors all protections instead of only caring about blessed villagers - Allow FA to bypass protection even if FA is applied as a template - Make bodyguard swap themselves in as the assassination target rather than blocking the attempt outright and suiciding. This means that active protections on the bodyguard have a chance to save them as well. - Redo some messages to make the above sound nice in the bot. - Add some additional params to the assassinate event to see WHY the assassination is happening (source) and WHO is doing the assassination (killer; currently a nick but should be a user sometime in the future). - Add a target data item to teh assassinate event so that listeners can change who is being assassinated. Protection boilerplate has been adjusted to account for this. - Add helper function to get the targets, avoiding code duplication
This is the Werewolf game bot for ##werewolf on freenode. It's a fork of lycanthrope, which was the last bot used in #wolfgame before it died.
We have an active community, and we'd love for you to join us!
Running your own copy
You need Python 3.3 or newer to run the bot. Python 3.4 and higher is recommended.
SQLite3 is required for the bot's database. If compiling Python from source, you may need to install the appropriate SQLite3 development libraries for your distribution first.
Copy botconfig.py.example
to botconfig.py
and modify the settings as needed. You can also copy-paste individual settings from src/settings.py
into botconfig.py
if you want to modify them. You may also add or customize your own game modes by renaming gamemodes.py.example
to gamemodes.py
and using the same layout used in src/gamemodes.py
.
Note: you should never alter files under the src
folder directly (unless you are submitting a change to the code), use botconfig.py
and gamemodes.py
for related changes.
To start the bot, run ./wolfbot.py
. You can use --verbose
to log all raw IRC messages and --debug
to enable some debugging features. These options should not be used in production.