Describe the bug
I keep getting the following whenever I start a game:
Exception in thread Thread-5:
Traceback (most recent call last):
File "/usr/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
self.run()
File "/home/emptikbest/RaspberryIsFishy/game.py", line 34, in run
self.lichess_game = Lichess_Game(self.api, self.game_info, self.config)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/emptikbest/RaspberryIsFishy/lichess_game.py", line 44, in __init__
self.engine = self._get_engine()
^^^^^^^^^^^^^^^^^^
File "/home/emptikbest/RaspberryIsFishy/lichess_game.py", line 711, in _get_engine
engine.send_opponent_information(opponent=chess.engine.Opponent(self.game_info.opponent_username,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'SimpleEngine' object has no attribute 'send_opponent_information'
To Reproduce
Steps to reproduce the behavior:
I do not have a idea if this can be reproduced, I think this is similar to a error message I got before
Open BotLi
challenge someone
I got the error mentioned above
Expected behavior
To BotLi to play the game?
Information:
OS: Ubuntu
Python version: python 3.10
Engine: Stockfish
Locally / Cloud: Locally
Config:
Paste your config.yml here REMOVE YOUR TOKEN:
token: "removed" # Lichess OAuth2 Token.
engine: # Engine settings.
dir: "/home/emptikbest/RaspberryIsFishy/engines" # Directory containing the engine.
name: "./stockfish" # Binary name of the engine to use.
ponder: true # Think on opponent's time.
silence_stderr: false # Suppresses stderr output.
syzygy:
enabled: true # Activate local syzygy endgame tablebases.
paths: # Paths to local syzygy endgame tablebases.
- "/home/emptikbest/Syzygy"
max_pieces: 5 # Count of max pieces in the local syzygy endgame tablebases.
instant_play: true # Whether the bot should play directly from syzygy without engine if possible.
gaviota:
enabled: false # Activate local gaviota endgame tablebases.
paths: # Paths to local gaviota endgame tablebases.
- "/path/to/gaviota"
max_pieces: 5 # Count of max pieces in the local gaviota endgame tablebases.
uci_options: # Arbitrary UCI options passed to the engine. (Commenting allowed)
Move Overhead: 500 # Increase if your bot flags games too often.
Threads: 4 # Max CPU threads the engine can use.
Hash: 2048 # Max memory (in megabytes) the engine can allocate.
variants:
enabled: true # Activate seperate engine for other chess variants than standard and chess960.
dir: "/home/emptikbest/EmptikBot247/BotLi1/engines" # Directory containing the engine.
name: "./fairy-stockfish" # Binary name of the engine to use.
ponder: true # Think on opponent's time.
silence_stderr: false # Suppresses stderr output.
uci_options: # Arbitrary UCI options passed to the engine. (Commenting allowed)
Move Overhead: 500 # Increase if your bot flags games too often.
Threads: 4 # Max CPU threads the engine can use.
Hash: 2048 # Max memory (in megabytes) the engine can allocate.
EvalFile: "3check.nnue:antichess.nnue:atomic.nnue:crazyhouse.nnue:horde.nnue:kingofthehill.nnue:racingkings.nnue" # NNUE for fairy-stockfish (need to be downloaded seperately). Only compatible with Fairy Stockfish 14.0.1 or newer. If on windows, replace : with ; to seperate the file names.
opening_books:
enabled: true # Activate opening books.
priority: 400 # Priority with which this move source is used. Higher priority is used first.
books:
# white: # List of names of books to use as white.
# - "WhiteBook"
# black: # List of names of books to use as black.
# - "BlackBook"
standard: # List of names of books to use if there is no specific book for white, black or chess960.
- "HCanFree-Upd"
- "OlisFish030823"
- "Chucaro4upd2"
- "Solista-260822"
- "perfect1"
- "cumulated"
- "MANTIS-DH2"
- "LesChats070923"
- "Mustafacanseven"
- "Cevdet-X"
- "SolistaAttackv3"
- "SENTINEL"
- "Perfect2023"
- "callmeX"
- "Raid-TR"
- "best"
- "Hero-8-6-2023"
- "fruit"
- "Cerebellum3Merge"
- "OPTIMUS32"
- "Mini_Mighty"
- "SCCT-10.1"
- "BRAIN"
- "MANTIS-X5"
- "HannibalBookSmall"
- "NebulaRing178"
- "NebulaBlue110"
- "Titans"
- "xXx"
- "stockfish-211-book"
- "book"
- "SF-SE"
- "SF15f"
- "Book1"
- "book-mb3m5"
- "Book2"
- "Cacho"
- "komodo"
- "DarkGalactus"
- "Bigfoot"
- "BNX_3741_44"
- "Anand"
- "Botvinnik"
- "Carlsen"
- "Fischer"
- "Karpov"
- "Kasparov"
- "chiron15"
- "Deuterium"
- "Spassky"
- "Tal"
- "Hubble33"
- "StudentChess"
- "cute"
- "Ranomi_170527"
- "SF14h"
- "cani"
- "Thunderwizard"
- "HeroV1.15c"
- "emptikbot-09-07-23"
- "ST_Mix"
# chess960: # List of names of books to use for chess960.
# - "Chess960Book"
# Use the same pattern for 'antichess', 'atomic', 'crazyhouse', 'horde', 'kingofthehill', 'racingkings' and '3check' as well.
selection: "weighted_random" # Move selection is one of "weighted_random", "uniform_random" or "best_move".
# max_depth: 16 # Half move max depth. (Comment this line for max depth)
online_moves:
opening_explorer:
enabled: false # Activate online moves from Lichess opening explorer. The move that has performed best for this bot is played.
priority: 300 # Priority with which this move source is used. Higher priority is used first.
use_for_variants: false # Whether the Lichess opening explorer should be used for other variants than standard and chess960.
min_time: 20 # Time the bot must have at least to use the online move.
timeout: 5 # Time the server has to respond.
min_games: 5 # Minimum number of games in which the position must have occurred.
only_with_wins: false # Whether to play only moves that have won before.
selection: "performance" # Move selection is "performance" or "win_rate".
anti: false # Whether to play the moves in which the opponent performs the worst.
# max_depth: 16 # Half move max depth. (Comment this line for max depth)
# max_moves: 1 # Max number of moves played from Lichess opening explorer. (Comment this line for max moves)
lichess_cloud:
enabled: false # Activate online moves from Lichess cloud eval.
priority: 200 # Priority with which this move source is used. Higher priority is used first.
only_without_book: false # Whether the cloud should only be used if there is no matching book.
min_eval_depth: 10 # Minimum evaluation depth.
min_time: 20 # Time the bot must have at least to use the online move.
timeout: 5 # Time the server has to respond.
# max_depth: 16 # Half move max depth. (Comment this line for max depth)
# max_moves: 1 # Max number of moves played from Lichess cloud eval. (Comment this line for max moves)
chessdb:
enabled: false # Activate online moves from https://chessdb.cn/queryc_en/
priority: 100 # Priority with which this move source is used. Higher priority is used first.
min_eval_depth: 10 # Minimum evaluation depth.
min_time: 20 # Time the bot must have at least to use the online move.
timeout: 5 # Time the server has to respond.
# max_depth: 16 # Half move max depth. (Comment this line for max depth)
# max_moves: 1 # Max number of moves played from chessdb. (Comment this line for max moves)
online_egtb:
enabled: true # Activate online endgame tablebases from Lichess.
min_time: 10 # Time the bot must have at least to use the online move.
timeout: 2 # Time the server has to respond.
offer_draw:
enabled: true # Activate whether the bot should offer draw.
score: 10 # If the absolute value of the score is less than or equal to this value, the bot offers/accepts draw (in cp)
consecutive_moves: 10 # How many moves in a row the absolute value of the score has to be below the draw value
min_game_length: 35 # Earliest move in which draw is offered.
resign:
enabled: false # Activate whether the bot should resign games.
score: -1000 # If the score is less than or equal to this value, the bot resigns (in cp).
consecutive_moves: 5 # How many moves in a row the score has to be below the resign value.
move_overhead_multiplier: 1.1 # Increase if your bot flags games too often. Default move overhead is 1 second per 1 minute initital time.
challenge: # Incoming challenges. (Commenting allowed)
concurrency: 1 # Number of games to play simultaneously.
bullet_with_increment_only: true # Whether bullet games against BOTs should only be accepted with increment.
min_increment: 1 # Minimum amount of increment to accept a challenge.
max_increment: 1 # Maximum amount of increment to accept a challenge.
min_initial: 60 # Minimum amount of initial time to accept a challenge.
max_initial: 60 # Maximum amount of initial time to accept a challenge.
variants: # Chess variants to accept (https://lichess.org/variant).
- standard
# - chess960
# - fromPosition
# - antichess
# - atomic
# - crazyhouse
# - horde
# - kingOfTheHill
# - racingKings
# - threeCheck
time_controls: # Time controls to accept.
- bullet
# - blitz
# - rapid
# - classical
bot_modes: # Game modes to accept against BOTs.
# - casual # Unrated games.
- rated # Rated games
human_modes: # Game modes to accept against humans.
# - casual # Unrated games.
# - rated # Rated games
matchmaking:
initial_time: 60 # Initial time for matchmaking mode.
increment: 1 # Increment time for matchmaking mode.
rated: true # Activate rated games in matchmaking mode.
timeout: 30 # Time until a challenge is canceled.
variants: # Chess variants (https://lichess.org/variant) to challenge.
- standard
# - chess960
# - antichess
# - atomic
# - crazyhouse
# - horde
# - kingOfTheHill
# - racingKings
# - threeCheck
# min_rating_diff: 0 # Minimum rating distance to opponent. (Commenting allowed)
# max_rating_diff: 300 # Maximum rating distance to opponent. (Commenting allowed)
delay: 70 # Time in seconds the bot must be idle before a new challenge is started.
multiplier: 10 # Multiplier for calculating timeouts in matchmaking. Higher values lead to a wider range of opponents.
messages:
# Optional substitution keywords (include curly braces):
# {opponent} to insert the opponent's name
# {me} to insert our name
# {engine} to insert engine name
# {cpu} to insert CPU information
# {ram} to insert RAM size
# Any other words in curly braces will be removed.
greeting: "Hey, I'm running {engine} on a Raspberry Pi 4 Model B and 2GiB of RAM. Good luck! Type !help for a list of commands." # Message sent to the opponent at the beginning of a game.
goodbye: "Good game, well played. See you next time!" # Message sent to the opponent after the end of a game.
greeting_spectators: "Hey, I'm running {engine} on a Raspberry Pi 4 Model B and 2GiB of RAM. Type !help for a list of commands." # Message sent to the spectators at the beginning of a game.
goodbye_spectators: "Thanks for watching!" # Message sent to the spectators after the end of a game.
whitelist: # List of users whose challenges are always accepted.
- EmptikGod
blacklist: # List of users who are not challenged and whose challenges are declined.
- Elmichess
- Annie_Archy
- chessfyBOT
- actual_magnus
- ProteusSF
- ProteusSF-Open
- ProteusSF-Lite
- ProteusSF-Turbo
- ResoluteBot
- VariantsBot
- AshNostromo
- chat_bot
- Zagreus_engine
- caissa-test
- caissa-ai
- StreamerVSChat
- zulu_bot
- HistoryExplorer
- bekbot
- OldStockfish
- dark_angel_777
books: # Names of the opening books (to be used above in the opening_books section) and paths to the opening books.
OlisFish030823: "/home/emptikbest/books/OlisFish030823.bin"
Perfect2023: "/home/emptikbest/books/Perfect2023.bin"
Book1: "/home/emptikbest/books/Book1.bin"
Book2: "/home/emptikbest/books/Book2.bin"
Solista-260822: "/home/emptikbest/books/Solista-260822.bin"
perfect1: "/home/emptikbest/books/perfect1.bin"
Mustafacanseven: "/home/emptikbest/books/Mustafacanseven.bin"
komodo: "/home/emptikbest/books/komodo.bin"
HCanFree-Upd: "/home/emptikbest/books/HCanFree-Upd.bin"
cute: "/home/emptikbest/books/cute.bin"
Cevdet-X: "/home/emptikbest/books/Cevdet-X.bin"
cani: "/home/emptikbest/books/cani.bin"
BRAIN: "/home/emptikbest/books/BRAIN.bin"
book: "/home/emptikbest/books/book.bin"
StudentChess: "/home/emptikbest/books/StudentChess.bin"
Titans: "/home/emptikbest/books/Titans.bin"
Cerebellum3Merge: "/home/emptikbest/books/Cerebellum3Merge.bin"
book-mb3m45: "/home/emptikbest/books/book-mb3m45.bin"
fruit: "/home/emptikbest/books/fruit.bin"
OPTIMUS32: "/home/emptikbest/books/OPTIMUS32.bin"
stockfish-211-book: "/home/emptikbest/books/stockfish-211-book.bin"
Ranomi_170527: "/home/emptikbest/books/Ranomi_170527.bin"
HannibalBookSmall: "/home/emptikbest/books/HannibalBookSmall.bin"
Deuterium: "/home/emptikbest/books/Deuterium.bin"
chiron15: "/home/emptikbest/books/chiron15.bin"
ST_Mix: "/home/emptikbest/books/ST_Mix.bin"
xXx: "/home/emptikbest/books/xXx.bin"
SCCT-10.1: "/home/emptikbest/books/SCCT-10.1.bin"
SENTINEL: "/home/emptikbest/books/SENTINEL.bin"
SF-SE: "/home/emptikbest/books/SF-SE.bin"
SF15f: "/home/emptikbest/books/SF15f.bin"
LesChats070923: "/home/emptikbest/books/LesChats070923.bin"
Mini_Mighty: "/home/emptikbest/books/Mini_Mighty.bin"
Chucaro4upd2: "/home/emptikbest/books/Chucaro4upd2.bin"
Cacho: "/home/emptikbest/books/Cacho.bin"
cumulated: "/home/emptikbest/books/cumulated.bin"
DarkGalactus: "/home/emptikbest/books/DarkGalactus.bin"
Bigfoot: "/home/emptikbest/books/Bigfoot.bin"
BNX_3741_44: "/home/emptikbest/books/BNX_3741_44.bin"
Anand: "/home/emptikbest/books/Anand.bin"
Botvinnik: "/home/emptikbest/books/Botvinnik.bin" Carlsen: "/home/emptikbest/books/Carlsen.bin"
Fischer: "/home/emptikbest/books/Fischer.bin"
Karpov: "/home/emptikbest/books/Karpov.bin"
Kasparov: "/home/emptikbest/books/Kasparov.bin"
NebulaBlue110: "/home/emptikbest/books/NebulaBlue110.bin"
NebulaRing178: "/home/emptikbest/books/NebulaRing178.bin"
Spassky: "/home/emptikbest/books/Spassky.bin"
Tal: "/home/emptikbest/books/Tal.bin"
Hubble33: "/home/emptikbest/books/Hubble33.bin"
callmeX: "/home/emptikbest/books/callmeX.bin"
MANTIS-DH2: "/home/emptikbest/books/MANTIS-DH2.bin"
MANTIS-X5: "/home/emptikbest/books/MANTIS-X5.bin"
SF14h: "/home/emptikbest/books/SF14h.bin"
SolistaAttackv3: "/home/emptikbest/books/SolistaAttackv3.bin"
Thunderwizard: "/home/emptikbest/books/Thunderwizard.bin"
HeroV1.15c: "/home/emptikbest/books/HeroV1.15c.bin"
emptikbot-09-07-23: "/home/emptikbest/books/emptikbot-09-07-23.bin"
best: "/home/emptikbest/books/best.bin"
Hero-8-6-2023: "/home/emptikbest/books/Hero-8-6-2023.bin"
Raid-TR: "/home/emptikbest/books/Raid-TR.bin"
Additional context
None, using Stockfish armv8 binary compiled from source
Please read, understand and follow: https://lichess.org/@/thibault/blog/how-to-ask-technical-questions/1HSthDSX
Describe the bug I keep getting the following whenever I start a game:
To Reproduce Steps to reproduce the behavior: I do not have a idea if this can be reproduced, I think this is similar to a error message I got before
Expected behavior To BotLi to play the game?
Information:
Config: Paste your config.yml here REMOVE YOUR TOKEN:
Additional context None, using Stockfish armv8 binary compiled from source