Bot Detector
Automatically detect and kick bots & cheaters in TF2.
Warning
This is very early in development, expect bugs.
If it works for you, feel free to keep using it, active development however has stopped. bd supports
importing and exporting TF2BD player and rule lists to help ease adoption to this new tool. His tool is
quite difficult to hack on, so one of the goals of this project was to simplify that to encourage more
outside contributions.
Current & Planned Features
- Automatically download updated remote TF2BD lists
- Cool logo
- Custom 3rd party links
- Discord rich presence
- Fetch profile summary and ban info from steam web api
- Detection Methods
- Steam ID
- Name Pattern
- Avatar Pattern
- Multi match
- Translations
- GUI
- Player status display list
- Current game chat dialogue
- Send in=game chat messages
- Player profile panel
- Show highest level of UGC/ETF2L/RGL league history achieved
- Logs.tf count
- Player all-time chat history dialogue
- Player all-time name history dialogue
- Track all-time k:d against players
- External link configuration dialogue
- List configuration dialogue
- Settings dialogue
- Rule creator & tester
- Auto start TF2 on launch & auto quit on game close.
Installation
Check the releases page for latest binaries. There is currently
no installers so just extract anywhere and run. All data will be stored in the same location.
Development
-
Windows
- golang 1.19+
- msys2
- Open "MSYS2 MinGW 64-bit" and run:
pacman -Syu && pacman -S git mingw-w64-x86_64-toolchain make
-
Linux (debian/ubuntu)
sudo apt-get install git golang gcc libgl1-mesa-dev xorg-dev make
Checkout source
# New checkout
git clone --recurse-submodules -j8 git://github.com/leighmacdonald/bd.git && cd bd
# (or) Existing repo and/or Old git version
git clone git://github.com/leighmacdonald/bd.git
cd bd && git submodule update --init --recursive
Linkers and static analysers
make check
Run tests
make test
Or, Build it and run it.
go build && ./bd
Releasing with cgo + windows is a bit annoying so we just use wsl for now. Feel free to improve via pr.
(wsl) $ goreleaser release --clean --split
(win) $ goreleaser release --clean --split
(wsl) $ cp -rv /mnt/c/projects/bd/dist/windows dist/
(wsl) $ goreleaser continue --merge
Editing Translations
New Language
- Make an empty translation file. e.g. for french:
internal/tr/translate.fr.yaml
- Generate translation file:
goi18n merge .\internal\tr\active.en.yaml .\internal\tr\translate.fr.yaml
- Edit
.\internal\tr\translate.fr.yaml
with translations
- Rename
.\internal\tr\translate.fr.yaml
to .\internal\tr\active.fr.yaml
- Merge changes:
make tr_merge
Updated Messages
make tr_extract
make tr_gen_translate
- Edit updated
interlal/tr/translate.*.yaml
files
make tr_merge
See go-i18n for more detailed instructions.