The Open Mafia Engine is a flexible, open-source game engine for Mafia-like games.
See the Wikipedia article for information on what Mafia/Werewolf is.
The Open Mafia Engine actually allows a much broader type of game to be played, with custom roles and very intricate "setups". Most of these custom roles come from either "real-life" games or online forums such as MafiaScum and Bay12Games Mafia Subforum.
- Event-based architecture, which allows for very complex interactions.
- Many built-in abilities, victory conditions, etc. (Not "many" yet, but we're working on it!)
- Games are defined declaratively or using an parametrized GameBuilder.
- Open source & extensible.
Install the latest stable version, with recommended dependencies, via pip:
pip install open_mafia_engine[recommended]
See the dev docs to install for local development (using Poetry).
This example starts a 5-player "test" mafia game (1 mafioso vs 4 townies):
import open_mafia_engine.api as mafia
builder = mafia.GameBuilder.load("test")
players = ['Alice', 'Bob', 'Charlie', 'Dave', 'Eddie']
game = builder.build(players)
This repository includes an example text-based Mafia app, runnable like:
mafia-cli
# or
python -m open_mafia_engine.example.cli
This is what the UI looks like: