hexakosioihexekontahexaphobia
A (kinda) advanced Bomb Party training bot and Bot Manager built in Python with Selenium.
Handles auto-reconnects, proxy rotation, human-like typing, and bonus-letter strategy.
- https://bombpartybot.duckdns.org/
- currently limited to one person at a time due to resource intensive nature of selenium.
- will be migrated to a more efficient bot framework in the future (playwright or puppeteer)
- Uses Flask, flask-limiter, flask-talisman, and csrf-protect for backend and security.
- Runs on gunicorn wsgi server behind nginx.
-
Bot Manager
Handles bot persistence, auto-reconnect, and proxy rotation. Tracks lives and has multiple strategies. -
Custom Dictionaries
Load your own wordlists via plaintext and/or URLs. Default english only. -
Proxy
Supports static and authenticated proxies.Human-Like Typing
- Dynamic typing delays based on word length, frequency, and typing randomness
- Burst typing, frantic typing (when low on lives or after mistakes), and typo simulation
- Spam typing for long answers or after losing lives
-
Word Selection Options
Modes include:'sneaky','short','average','regen','long','common'- Special strategies like
sneakyRegen,regenIfNeeded, and stockpiling bonus letters
-
Configurable Mistakes
Simulates typos withmistakeChanceand adjacent-key selection.
- Python
- Selenium
- mitmproxy (for proxy)
- wordfreq (for common word selection and realistic typing)
-
Clone the repository:
git clone https://github.com/funnymonke0/bomb_party_bot.git cd bomb_party_bot -
Install dependencies: Make sure you have uv installed. Then run:
uv sync
All settings are loaded from settings.config. Change only what you understand, make sure types and setting keys are correct as it will throw an exception otherwise.
{
"selectMode":"common",
"regenIfNeeded":true,
"sneakyRegen":true,
"stockpile":false,
"greedLong":false,
"timeConstraint":true,
"cyberbullying":false,
"mistakes":true,
"burstType":true,
"spamType":true,
"dynamicRate":false,
"dynamicPauses":true,
"dynamicMistakes":true,
"minWait":1.0,
"maxWait":3.2,
"mistakePause":0.100,
"miniPause": 0.330,
"minWpm":70,
"maxWpm":120,
"spamWpm":1000,
"burstChance":0.50,
"minMistakeChance":0.01,
"maxMistakeChance":0.15,
"spamChance":0.10,
"jitterPercent": 0.50
}
ip:port:user:password
ip:port
Supports authenticated and unauthenticated proxies.
- Add word sources by URL:
https://raw.githubusercontent.com/YoungsterGlenn/bpDictionaryStatistics/master/dictionary.txt
https://norvig.com/ngrams/sowpods.txt
https://norvig.com/ngrams/enable1.txt
- Or add individual words:
hyperventilate
photosynthesis
xylophone
- Words that are outdated can be stored here.
- Bot avoids using these words again.
python3 cli.pyOR
uv run cli.pyYou’ll be prompted for:
- Room Code (e.g.,
ABCD) - Username (leave blank for random)
The Bot Manager will:
- Load your settings, proxies, and dictionaries
- Spawn and manage the bot
- Reconnect automatically if disconnected
- Clone repo and install dependencies (see above):
git clone https://github.com/funnymonke0/bomb_party_bot.git
cd bomb_party_bot
uv sync-
Configure your proxies (optional) in
proxies.config. -
Add dictionaries in
dictionaries.config. Defaults are safe. -
(Optional) Adjust typing and bot behavior in
settings.config. Defaults are safe. -
Run the bot:
python3 cli.pyOR
uv run cli.py
- Enter your room code and username (leave username blank for random).
The bot will automatically connect to the room and start playing.
- track room codes when rooms change
- no backup files so if you delete a config file, you will have to copy again
- migrate to playwright because selenium is evil and needs webdrivers
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
If you modify or use this code, please preserve the original copyright notice and link back to this repository.