Hello friends! I just want to create a bot account that plays only chess variants but do the coding is very hard also I can't understand that. Also I created my bot account. But I'm struggling to convert it to a bot account. Can anyone help me in doing it correctly. Or spot my mistake and correct me. Thanks!
Requesting help in setting up a standard chess bot
I want only standard chess variants
@vincent @xblaaaaa @hastingshastings @statmatt please help me I really need one of your's help. Thanks.
I will repost this. I think maybe the problem is youre trying to do it on a phone when it is impossible. You need PC. The account will only upgrade to a bot account at stage `1`3/14, the first time its run. And the video, you can use it like it is screenshots. Just keep pausing so you can see what they are doing.
1. Install Python
Go here: www.python.org/downloads/
Download and install it.
2. Install Notepad++
notepad-plus-plus.org/downloads/
3. Install 7-Zip
www.7-zip.org/
4. Download the bot files
Go here: github.com/Mind-Sports-Games/playstrategy-bot
Click Code → Download ZIP
Extract it using 7-Zip
Move the folder to your Desktop
5. Download Fairy Stockfish
fairy-stockfish.github.io/download/
Put it inside the engines folder
Rename it to stockfish.exe
Which version to use:
32-bit PC → use 32-bit Stockfish
64-bit PC:
bmi2 (best, for i3/i5/i7/i9 CPUs)
modern (ok)
x64 (weakest)
6. Create a bot account
Go to PlayStrategy
👉 playstrategy.org/signup
Make a NEW account (this is your BOT)
Do NOT play games on it
Verify your email
7. Get your API token
Go here: playstrategy.org/account/oauth/token
Name: Bot token
Tick all boxes
Copy the token
8. Edit config file
Open config.yml.default
Paste your token
Change this line:
url: playstrategy.org
Set anything else you want (time controls, variants, its here you can choose standard only)
9. (OPTIONAL) Make the bot weaker
Open your config and find the engine / UCI options section, then add or edit:
uci_options:
Skill Level: Your choice
Nodes: Your choice
What these do:
Skill Level (0–20): lower = weaker
Nodes: limits how much the engine thinks (lower = weaker/faster)
10. Save the file
Rename:
config.yml.default → config.yml
11. Open Command Prompt
12. Install required stuff
Run these one by one:
python --version
python -m pip install virtualenv
python -m pip install --upgrade pip
13. Set up the bot
virtualenv .\.venv -p python
.\.venv\Scripts\activate
pip install -r requirements.txt
14. Run the bot
python lichess-bot.py -u
15. When you want to run it again later.
cd C:\Users\YOURNAME\Desktop\YOURFOLDER\lichess-bot-master
python lichess-bot.py -u
www.youtube.com/watch?v=oTuZrYCpxNU
@hastingshastings I have a pc but it is like 15 years old and it doesn't support some coding platforms like notepad++ and my pc doesn't support python, zip, stockfish on windows 10 properly or I can't understand these steps. Can you instead screenshot the process and send me in DMs
Notepad isn't a coding platform. It literally is just a notepad/word document. It likely is already on your PC. And you also may already have something to extract zip files too, like WinRar, I use Peazip. So you might be able to skip that. But you do need Python. You do need an engine. All PC's support Python. All PC's can download Stockfish.
I'll try. And what's the purpose of notepad++?
Inside the notepad is where all the settings to calibrate the bot are saved. Then when you run the bot, it reads the notepad. This is the settings on my Genesis bot. It looks like this.
url: "playstrategy.org/" # base URL.
engine: # Engine settings.
dir: "./engines/" # Directory containing the engine. This can be an absolute path or one relative to lichess-bot/.
name: "fairy18.exe" # Binary name of the engine to use.
protocol: "uci" # "uci" or "xboard"
polyglot:
enabled: true # Activate polyglot book.
book:
standard: # List of book file paths for variant standard.
- engines/GenesisWhite.bin
- engines/GenesisBlack.bin
min_weight: 0 # Does not select moves with weight below min_weight (min 0, max: 65535).
selection: "uniform_random" # Move selection is one of "weighted_random", "uniform_random" or "best_move" (but not below the min_weight in the 2nd and 3rd case).
max_depth: 4 # Half move max depth.
draw_or_resign:
resign_enabled: true
resign_score: -3500 # If the score is less than or equal to this value, the bot resigns (in cp).
resign_for_egtb_minus_two: true # If true the bot will resign in positions where the online_egtb returns a wdl of -2.
resign_moves: 47 # How many moves in a row the score has to be below the resign value.
offer_draw_enabled: true
offer_draw_score: 103 # If the absolute value of the score is less than or equal to this value, the bot offers/accepts draw (in cp).
offer_draw_for_egtb_zero: true # If true the bot will offer/accept draw in positions where the online_egtb returns a wdl of 0.
offer_draw_moves: 3 # How many moves in a row the absolute value of the score has to be below the draw value.
offer_draw_pieces: 31 # Only if the pieces on board are less than or equal to this value, the bot offers/accepts draw.
uci_options: # Arbitrary UCI options passed to the engine.
Move Overhead: 500 # Increase if your bot flags games too often.
Threads: 1 # Max CPU threads the engine can use.
Hash: 2 # Max memory (in megabytes) the engine can allocate.
Skill Level: -3
go_commands: # Additional options to pass to the UCI go command.
nodes: 99 # Search so many nodes only.
depth: 1 # Search depth ply only.
movetime: 2000 # Integer. Search exactly movetime milliseconds.
abort_time: 45 # Time to abort a game in seconds when there is no activity.
rate_limiting_delay: 500 # Time (in ms) to delay after sending a move to prevent "Too Many Requests" errors.
move_overhead: 1000 # Increase if your bot flags games too often.
challenge: # Incoming challenges.
concurrency: 6 # Number of games to play simultaneously.
sort_by: "best" # Possible values: "best" and "first".
accept_bot: true # Accepts challenges coming from other bots.
only_bot: false # Accept challenges by bots only.
max_increment: 7 # Maximum amount of increment to accept a challenge. The max is 180. Set to 0 for no increment.
min_increment: 2 # Minimum amount of increment to accept a challenge.
max_base: 1500 # Maximum amount of base time to accept a challenge. The max is 315360000 (10 years).
min_base: 15 # Minimum amount of base time to accept a challenge.
variants: # Chess variants to accept (lichess.org/variant).
- standard
- horde
- kingOfTheHill
- atomic
- threeCheck
- crazyhouse
- chess960
time_controls: # Time controls to accept.
- bullet
- blitz
- rapid
- classical
modes: # Game modes to accept.
- casual # Unrated games.
- rated # Rated games - must comment if the engine doesn't try to win.
greeting:
hello: "Hi! I'm {me}. Good luck!" # Message to send to chat at the start of a game
goodbye: "Good game!" # Message to send to chat at the end of a game
That's bit complicated. Also can you tell which engine should I use for my bot so its like @stockfish-level6 ?
But only standard chess. Bullet, blitz, rapid, classical and chess960.