lichess-bot-devs / lichess-bot

A bridge between Lichess bots and chess engines
GNU Affero General Public License v3.0
766 stars 449 forks source link

The python code in my cmd(Command Prompt) says that the python code is wrong #1013

Closed pGOD1000 closed 1 month ago

pGOD1000 commented 2 months ago

The python code in my cmd(Command Prompt) says that the python code is wrong

I think there must be something wrong with the python code.

AttackingOrDefending commented 2 months ago

Can you upload lichess_bot_auto_logs\old.log and lichess_bot_auto_logs\recent.log so we can look further into it?

pGOD1000 commented 2 months ago

Ok

pGOD1000 commented 2 months ago
2024-09-06 15:28:29,498 __main__ (lichess-bot.py:1180) INFO 
    .   _/|
    .  // o\
    .  || ._)  lichess-bot 2024.9.1.1 on Windows 10
    .  //__\
    .  )___(   Play on Lichess with a bot

2024-09-06 15:28:29,564 lib.config (config.py:396) ERROR There appears to be a syntax problem with your config.yml
Traceback (most recent call last):
  File "C:\Users\Microsoft\Downloads\lichess-bot-master (1)\lichess-bot-master\lib\config.py", line 394, in load_config
    CONFIG = yaml.safe_load(stream)
             ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\__init__.py", line 125, in safe_load
    return load(stream, SafeLoader)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\__init__.py", line 81, in load
    return loader.get_single_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\constructor.py", line 49, in get_single_data
    node = self.get_single_node()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 36, in get_single_node
    document = self.compose_document()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\parser.py", line 98, in check_event
    self.current_event = self.state()
                         ^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\parser.py", line 438, in parse_block_mapping_key
    raise ParserError("while parsing a block mapping", self.marks[-1],
yaml.parser.ParserError: while parsing a block mapping
  in "./config.yml", line 128, column 3
expected <block end>, but found '<block sequence start>'
  in "./config.yml", line 142, column 4
2024-09-06 15:28:29,822 __main__ (lichess-bot.py:1249) ERROR Quitting lichess-bot due to an error:
Traceback (most recent call last):
  File "C:\Users\Microsoft\Downloads\lichess-bot-master (1)\lichess-bot-master\lichess-bot.py", line 1246, in <module>
    start_lichess_bot()
  File "C:\Users\Microsoft\Downloads\lichess-bot-master (1)\lichess-bot-master\lichess-bot.py", line 1182, in start_lichess_bot
    CONFIG = load_config(args.config or "./config.yml")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\Downloads\lichess-bot-master (1)\lichess-bot-master\lib\config.py", line 394, in load_config
    CONFIG = yaml.safe_load(stream)
             ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\__init__.py", line 125, in safe_load
    return load(stream, SafeLoader)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\__init__.py", line 81, in load
    return loader.get_single_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\constructor.py", line 49, in get_single_data
    node = self.get_single_node()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 36, in get_single_node
    document = self.compose_document()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\parser.py", line 98, in check_event
    self.current_event = self.state()
                         ^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\parser.py", line 438, in parse_block_mapping_key
    raise ParserError("while parsing a block mapping", self.marks[-1],
yaml.parser.ParserError: while parsing a block mapping
  in "./config.yml", line 128, column 3
expected <block end>, but found '<block sequence start>'
  in "./config.yml", line 142, column 4
pGOD1000 commented 2 months ago

I hope this is ok

AttackingOrDefending commented 2 months ago

There is probably a difference in the indentation of the different lines. Make sure that the lines in config.yml are indented by 4 spaces. Can you post your config.yml with the token removed (without the first line)?

pGOD1000 commented 2 months ago

Ok

pGOD1000 commented 2 months ago
token: "xxxxxxxxxxxx"    # Lichess OAuth2 Token.
url: "https://lichess.org/"        # Lichess base URL.

engine:                            # Engine settings.
  dir: "./engines/"                # Directory containing the engine. This can be an absolute path or one relative to lichess-bot/.
  name: "stockfish.exe"              # Binary name of the engine to use.
  working_dir: ""                  # Directory where the chess engine will read and write files. If blank or missing, the current directory is used.
                                   # NOTE: If working_dir is set, the engine will look for files and directories relative to this directory, not where lichess-bot was launched. Absolute paths are unaffected.
  protocol: "uci"                  # "uci", "xboard" or "homemade"
  ponder: false                     # Think on opponent's time.

  polyglot:
    enabled: false                 # Activate polyglot book.
    book:
      standard:                    # List of book file paths for variant standard.
        - engines/book1.bin
        - engines/book2.bin
#     atomic:                      # List of book file paths for variant atomic.
#       - engines/atomicbook1.bin
#       - engines/atomicbook2.bin
#     etc.
#     Use the same pattern for 'chess960', 'giveaway' (antichess), 'crazyhouse', 'horde', 'kingofthehill', 'racingkings' and '3check' as well.
    min_weight: 1                  # Does not select moves with weight below min_weight (min 0, max: 65535).
    selection: "weighted_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: 20                  # How many moves from the start to take from the book.

  draw_or_resign:
    resign_enabled: false          # Whether or not the bot should resign.
    resign_score: -1000            # 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: 3                # How many moves in a row the score has to be below the resign value.
    offer_draw_enabled: true       # Whether or not the bot should offer/accept draw.
    offer_draw_score: 0            # 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: 10           # How many moves in a row the absolute value of the score has to be below the draw value.
    offer_draw_pieces: 10          # Only if the pieces on board are less than or equal to this value, the bot offers/accepts draw.

  online_moves:
    max_out_of_book_moves: 10      # Stop using online opening books after they don't have a move for 'max_out_of_book_moves' positions. Doesn't apply to the online endgame tablebases.
    max_retries: 2                 # The maximum amount of retries when getting an online move.
    # max_depth: 10                # How many moves from the start to take from online books. Default is no limit.
    chessdb_book:
      enabled: false               # Whether or not to use chessdb book.
      min_time: 20                 # Minimum time (in seconds) to use chessdb book.
      move_quality: "good"         # One of "all", "good", "best".
      min_depth: 20                # Only for move_quality: "best".
    lichess_cloud_analysis:
      enabled: false               # Whether or not to use lichess cloud analysis.
      min_time: 20                 # Minimum time (in seconds) the bot must have to use cloud analysis.
      move_quality: "best"         # One of "good", "best".
      max_score_difference: 50     # Only for move_quality: "good". The maximum score difference (in cp) between the best move and the other moves.
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: "masters"            # One of "lichess", "masters", "player"
      player_name: ""              # The lichess username. Leave empty for the bot's username to be used. Used only when source is "player".
      sort: "winrate"              # One of "winrate", "games_played"
      min_games: 10                # Minimum number of times a move must have been played to be chosen.
    online_egtb:
      enabled: false               # Whether or not to enable online endgame tablebases.
      min_time: 20                 # Minimum time (in seconds) the bot must have to use online EGTBs.
      max_pieces: 7                # Maximum number of pieces on the board to use endgame tablebases.
      source: "lichess"            # One of "lichess", "chessdb".
      move_quality: "best"         # One of "best" or "suggest" (it takes all the moves with the same WDL and tells the engine to only consider these; will move instantly if there is only 1 "good" move).

  lichess_bot_tbs:                 # The tablebases list here will be read by lichess-bot, not the engine.
    syzygy:
      enabled: false               # Whether or not to use local syzygy endgame tablebases.
      paths:                       # Paths to Syzygy endgame tablebases.
        - "engines/syzygy"
      max_pieces: 7                # Maximum number of pieces in the endgame tablebase.
      move_quality: "best"         # One of "best" or "suggest" (it takes all the moves with the same WDL and tells the engine to only consider these; will move instantly if there is only 1 "good" move).
    gaviota:
      enabled: false               # Whether or not to use local gaviota endgame tablebases.
      paths:
        - "engines/gaviota"
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120 # The minimum DTM to consider as syzygy WDL=1/-1. Set to 100 to disable.
      move_quality: "best"         # One of "best" or "suggest" (it takes all the moves with the same WDL and tells the engine to only consider these; will move instantly if there is only 1 "good" move).

# engine_options:                  # Any custom command line params to pass to the engine.
#   cpuct: 3.1

  homemade_options:
#   Hash: 256

  uci_options:                     # Arbitrary UCI options passed to the engine.
    Move Overhead: 100             # Increase if your bot flags games too often.
    Threads: 4                     # Max CPU threads the engine can use.
#    Hash: 512                      # Max memory (in megabytes) the engine can allocate.
    SyzygyPath: "./syzygy/"        # Paths to Syzygy endgame tablebases that the engine reads.
    UCI_ShowWDL: true              # Show the chance of the engine winning.
#   go_commands:                   # Additional options to pass to the UCI go command.
#     nodes: 1                     # Search so many nodes only.
#     depth: 5                     # Search depth ply only.
#     movetime: 1000               # Integer. Search exactly movetime milliseconds.

# xboard_options:                  # Arbitrary XBoard options passed to the engine.
#   cores: "4"
#   memory: "4096"
#   egtpath:                       # Directory containing egtb (endgame tablabases), relative to this project. For 'xboard' engines.
#     gaviota: "Gaviota path"
#     nalimov: "Nalimov Path"
#     scorpio: "Scorpio Path"
#     syzygy: "Syzygy Path"
#   go_commands:                   # Additional options to pass to the XBoard go command.
#     depth: 5                     # Search depth ply only.
#     Do note that the go commands 'movetime' and 'nodes' are invalid and may cause bad time management for XBoard engines.

  silence_stderr: false            # Some engines (yes you, Leela) are very noisy.

abort_time: 30                     # Time to abort a game in seconds when there is no activity.
fake_think_time: false             # Artificially slow down the bot to pretend like it's thinking.
rate_limiting_delay: 0             # Time (in ms) to delay after sending a move to prevent "Too Many Requests" errors.
move_overhead: 2000                # Increase if your bot flags games too often.
max_takebacks_accepted: 0          # The number of times to allow an opponent to take back a move in a game.
quit_after_all_games_finish: false # If set to true, then pressing Ctrl-C to quit will only stop lichess-bot after all current games have finished.

correspondence:
  move_time: 60                    # Time in seconds to search in correspondence games.
  checkin_period: 300              # How often to check for opponent moves in correspondence games after disconnecting.
  disconnect_time: 150             # Time before disconnecting from a correspondence game.
  ponder: false                    # Ponder in correspondence games the bot is connected to.

challenge:                         # Incoming challenges.
  concurrency: 1                   # Number of games to play simultaneously.
  sort_by: "best"                  # Possible values: "best" and "first".
  preference: "none"               # Possible values: "none", "human", "bot".
  accept_bot: true                 # Accepts challenges coming from other bots.
  only_bot: false                  # Accept challenges by bots only.
  max_increment: 20                # Maximum amount of increment to accept a challenge in seconds. The max is 180. Set to 0 for no increment.
  min_increment: 0                 # Minimum amount of increment to accept a challenge in seconds.
  max_base: 1800                   # Maximum amount of base time to accept a challenge in seconds. The max is 10800 (3 hours).
  min_base: 0                      # Minimum amount of base time to accept a challenge in seconds.
  max_days: 14                     # Maximum number of days per move to accept a challenge for a correspondence game.
                                   # Unlimited games can be accepted by removing this field or specifying .inf
  min_days: 1                      # Minimum number of days per move to accept a challenge for a correspondence game.
  variants:                        # Chess variants to accept (https://lichess.org/variant).
    - standard
   - fromPosition
#   - antichess
#   - atomic
#   - chess960
#   - crazyhouse
#   - horde
#   - kingOfTheHill
#   - racingKings
#   - threeCheck
  time_controls:                   # Time controls to accept (bots are not allowed to play ultraBullet).
    - bullet
    - blitz
    - rapid
    - classical
#   - correspondence
  modes:                           # Game modes to accept.
#    - casual                       # Unrated games.
    - rated                        # Rated games - must comment if the engine doesn't try to win.
# block_list:                      # List of users from which the challenges are always declined.
#   - user1
#   - user2
# allow_list:                      # List of users from which challenges are exclusively accepted, all others being declined. If empty, challenges from all users may be accepted.
#   - user3
#   - user4
# recent_bot_challenge_age: 60     # Maximum age of a bot challenge to be considered recent in seconds
# max_recent_bot_challenges: 2     # Maximum number of recent challenges that can be accepted from the same bot
  bullet_requires_increment: false # Require that bullet game challenges from bots have a non-zero increment

greeting:
  # Optional substitution keywords (include curly braces):
  #   {opponent} to insert opponent's name
  #   {me} to insert bot's name
  # Any other words in curly braces will be removed.
  hello: "Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond to." # Message to send to opponent chat at the start of a game
  goodbye: "Good game!" # Message to send to opponent chat at the end of a game
  hello_spectators: "Hi! I'm {me}. Type !help for a list of commands I can respond to." # Message to send to spectator chat at the start of a game
  goodbye_spectators: "Thanks for watching!" # Message to send to spectator chat at the end of a game

# pgn_directory: "game_records"    # A directory where PGN-format records of the bot's games are kept
# pgn_file_grouping: "game"        # How to group games into files. Options are "game", "opponent", and "all"
                                   # "game" (default) - every game is written to a different file named "{White name} vs. {Black name} - {lichess game ID}.pgn"
                                   # "opponent" - every game with a given opponent is written to a file named "{Bot name} games vs. {Opponent name}.pgn"
                                   # "all" - every game is written to a single file named "{Bot name} games.pgn"

matchmaking:
  allow_matchmaking: false         # Set it to 'true' to challenge other bots.
  allow_during_games: false        # Set it to 'true' to create challenges during long games.
  challenge_variant: "random"      # If set to 'random', the bot will choose one variant from the variants enabled in 'challenge.variants'.
  challenge_timeout: 30            # Create a challenge after being idle for 'challenge_timeout' minutes. The minimum is 1 minute.
  challenge_initial_time:          # Initial time in seconds of the challenge (to be chosen at random).
    - 60
    - 180
  challenge_increment:             # Increment in seconds of the challenge (to be chosen at random).
    - 1
    - 2
#  challenge_days:                 # Days for correspondence challenge (to be chosen at random).
#    - 1
#    - 2
# opponent_min_rating: 600         # Opponents rating should be above this value (600 is the minimum rating in lichess).
# opponent_max_rating: 4000        # Opponents rating should be below this value (4000 is the maximum rating in lichess).
  opponent_rating_difference: 300  # The maximum difference in rating between the bot's rating and opponent's rating.
  rating_preference: "none"        # One of "none", "high", "low".
  opponent_allow_tos_violation: false # Set to 'true' to allow challenging bots that violated the Lichess Terms of Service.
  challenge_mode: "random"         # Set it to the mode in which challenges are sent. Possible options are 'casual', 'rated' and 'random'.
  challenge_filter: none           # If a bot declines a challenge, do not issue a similar challenge to that bot. Possible options are 'none', 'coarse', and 'fine'.
# block_list:                      # The list of bots that will not be challenged
#   - user1
#   - user2
  include_challenge_block_list: false  # Do not challenge bots in the challenge: block_list in addition to the matchmaking block list.

# overrides:                       # List of overrides for the matchmaking specifications above. When a challenge is created, either the default specification above or one of the overrides will be randomly chosen.
#   bullet_only_horde:             # Name of the override. Can be anything as long as each override has a unique name ("bullet_only_horde" and "easy_chess960" in these examples).
#     challenge_variant: "horde"   # List of options to override. Only the options mentioned will change when making the challenge. The rest will follow the default matchmaking options above.
#     challenge_initial_time:
#       - 1
#       - 2
#     challenge_increment:
#       - 0
#       - 1
#
#   easy_chess960:
#     challenge_variant: "chess960"
#     opponent_min_rating: 400
#     opponent_max_rating: 1200
#     opponent_rating_difference:
#     challenge_mode: casual
#
#   no_pressure_correspondence:
#     challenge_initial_time:
#     challenge_increment:
#     challenge_days:
#       - 2
#       - 3
#     challenge_mode: casual
#
# The following configurations cannot be overridden: allow_matchmaking, challenge_timeout, challenge_filter and block_list.
pGOD1000 commented 2 months ago

This is it

pGOD1000 commented 2 months ago

Please is there a solution because I have been trying to make a lichess bot

AttackingOrDefending commented 2 months ago

Add one more space before - fromPosition. Change this:

  variants:                        # Chess variants to accept (https://lichess.org/variant).
    - standard
   - fromPosition

To this:

  variants:                        # Chess variants to accept (https://lichess.org/variant).
    - standard
    - fromPosition
pGOD1000 commented 2 months ago

Ok

pGOD1000 commented 2 months ago

It still doesn't work

AttackingOrDefending commented 2 months ago

Can you upload lichess_bot_auto_logs\recent.log? In your lichess-bot directory, there should be a folder called lichess_bot_auto_logs and inside it a file called lichess_bot_auto_logs\recent.log.

pGOD1000 commented 2 months ago

Ok

pGOD1000 commented 2 months ago

recent.log

pGOD1000 commented 2 months ago
2024-09-06 18:27:02,953 __main__ (lichess-bot.py:1180) INFO 
    .   _/|
    .  // o\
    .  || ._)  lichess-bot 2024.9.1.1 on Windows 10
    .  //__\
    .  )___(   Play on Lichess with a bot

2024-09-06 18:27:03,016 lib.config (config.py:396) ERROR There appears to be a syntax problem with your config.yml
Traceback (most recent call last):
  File "C:\Users\Microsoft\Downloads\lichess-bot-master (1)\lichess-bot-master\lib\config.py", line 394, in load_config
    CONFIG = yaml.safe_load(stream)
             ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\__init__.py", line 125, in safe_load
    return load(stream, SafeLoader)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\__init__.py", line 81, in load
    return loader.get_single_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\constructor.py", line 49, in get_single_data
    node = self.get_single_node()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 36, in get_single_node
    document = self.compose_document()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\parser.py", line 98, in check_event
    self.current_event = self.state()
                         ^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\parser.py", line 438, in parse_block_mapping_key
    raise ParserError("while parsing a block mapping", self.marks[-1],
yaml.parser.ParserError: while parsing a block mapping
  in "./config.yml", line 128, column 3
expected <block end>, but found '<block sequence start>'
  in "./config.yml", line 143, column 4
2024-09-06 18:27:03,263 __main__ (lichess-bot.py:1249) ERROR Quitting lichess-bot due to an error:
Traceback (most recent call last):
  File "C:\Users\Microsoft\Downloads\lichess-bot-master (1)\lichess-bot-master\lichess-bot.py", line 1246, in <module>
    start_lichess_bot()
  File "C:\Users\Microsoft\Downloads\lichess-bot-master (1)\lichess-bot-master\lichess-bot.py", line 1182, in start_lichess_bot
    CONFIG = load_config(args.config or "./config.yml")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\Downloads\lichess-bot-master (1)\lichess-bot-master\lib\config.py", line 394, in load_config
    CONFIG = yaml.safe_load(stream)
             ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\__init__.py", line 125, in safe_load
    return load(stream, SafeLoader)
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\__init__.py", line 81, in load
    return loader.get_single_data()
           ^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\constructor.py", line 49, in get_single_data
    node = self.get_single_node()
           ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 36, in get_single_node
    document = self.compose_document()
               ^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 55, in compose_document
    node = self.compose_node(None, None)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 133, in compose_mapping_node
    item_value = self.compose_node(node, item_key)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 84, in compose_node
    node = self.compose_mapping_node(anchor)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\composer.py", line 127, in compose_mapping_node
    while not self.check_event(MappingEndEvent):
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\parser.py", line 98, in check_event
    self.current_event = self.state()
                         ^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\yaml\parser.py", line 438, in parse_block_mapping_key
    raise ParserError("while parsing a block mapping", self.marks[-1],
yaml.parser.ParserError: while parsing a block mapping
  in "./config.yml", line 128, column 3
expected <block end>, but found '<block sequence start>'
  in "./config.yml", line 143, column 4
AttackingOrDefending commented 2 months ago

Make sure your config.yml starts like this:

token: "TOKEN HERE"  # (0 spaces before token)
url: "https://lichess.org/"  # (0 spaces before url)

engine:  # (0 spaces before engine)
  dir: "./engines/"  # (2 spaces before dir)
  name: "engine.exe"  # (2 spaces before name)
  working_dir: "./engines/"  # (2 spaces before working_dir)
pGOD1000 commented 2 months ago

Ok

pGOD1000 commented 2 months ago

Please I have upgraded the account to a bot account so should I still use python3 lichess-bot.py or python3 lichess-bot.py -v

pGOD1000 commented 2 months ago

It still doesn't work, I don't know why

pGOD1000 commented 2 months ago

Sir it almost work

pGOD1000 commented 2 months ago

This is the recent log

pGOD1000 commented 2 months ago
2024-09-08 18:24:50,040 __main__ (lichess-bot.py:1180) INFO 
    .   _/|
    .  // o\
    .  || ._)  lichess-bot 2024.9.7.1 on Windows 10
    .  //__\
    .  )___(   Play on Lichess with a bot

2024-09-08 18:24:50,256 lib.config (config.py:259) DEBUG Config:
token: logger
url: https://lichess.org/
engine:
  dir: ./engines/
  name: vice-main.exe
  working_dir: ''
  protocol: uci
  ponder: true
  polyglot:
    enabled: false
    book:
      standard:
      - engines/book1.bin
      - engines/book2.bin
    min_weight: 1
    selection: weighted_random
    max_depth: 20
  draw_or_resign:
    resign_enabled: false
    resign_score: -1000
    resign_for_egtb_minus_two: true
    resign_moves: 3
    offer_draw_enabled: true
    offer_draw_score: 0
    offer_draw_for_egtb_zero: true
    offer_draw_moves: 10
    offer_draw_pieces: 10
  online_moves:
    max_out_of_book_moves: 10
    max_retries: 2
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: good
      min_depth: 20
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      move_quality: best
      max_score_difference: 50
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: masters
      player_name: ''
      sort: winrate
      min_games: 10
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: lichess
      move_quality: best
  lichess_bot_tbs:
    syzygy:
      enabled: false
      paths:
      - engines/syzygy
      max_pieces: 7
      move_quality: best
    gaviota:
      enabled: false
      paths:
      - engines/gaviota
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120
      move_quality: best
  homemade_options: null
  uci_options:
    Move Overhead: 100
    Threads: 4
    Hash: 512
    SyzygyPath: ./syzygy/
    UCI_ShowWDL: true
  silence_stderr: false
abort_time: 30
fake_think_time: false
rate_limiting_delay: 0
move_overhead: 2000
max_takebacks_accepted: 0
quit_after_all_games_finish: false
correspondence:
  move_time: 60
  checkin_period: 300
  disconnect_time: 150
  ponder: false
challenge:
  concurrency: 1
  sort_by: best
  preference: none
  accept_bot: true
  only_bot: false
  max_increment: 20
  min_increment: 0
  max_base: 1800
  min_base: 0
  max_days: 14
  min_days: 1
  variants:
  - standard
  time_controls:
  - bullet
  - blitz
  - rapid
  - classical
  modes:
  - casual
  - rated
  bullet_requires_increment: false
greeting:
  hello: Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond
    to.
  goodbye: Good game!
  hello_spectators: Hi! I'm {me}. Type !help for a list of commands I can respond
    to.
  goodbye_spectators: Thanks for watching!
matchmaking:
  allow_matchmaking: false
  allow_during_games: false
  challenge_variant: random
  challenge_timeout: 30
  challenge_initial_time:
  - 60
  - 180
  challenge_increment:
  - 1
  - 2
  opponent_rating_difference: 300
  rating_preference: none
  opponent_allow_tos_violation: false
  challenge_mode: random
  challenge_filter: none
  include_challenge_block_list: false

2024-09-08 18:24:50,264 lib.config (config.py:260) DEBUG ====================
2024-09-08 18:24:50,291 lib.config (config.py:259) DEBUG Config:
token: logger
url: https://lichess.org/
engine:
  dir: ./engines/
  name: vice-main.exe
  working_dir: C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master
  protocol: uci
  ponder: true
  polyglot:
    enabled: false
    book:
      standard:
      - engines/book1.bin
      - engines/book2.bin
    min_weight: 1
    selection: weighted_random
    max_depth: 20
  draw_or_resign:
    resign_enabled: false
    resign_score: -1000
    resign_for_egtb_minus_two: true
    resign_moves: 3
    offer_draw_enabled: true
    offer_draw_score: 0
    offer_draw_for_egtb_zero: true
    offer_draw_moves: 10
    offer_draw_pieces: 10
  online_moves:
    max_out_of_book_moves: 10
    max_retries: 2
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: good
      min_depth: 20
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      move_quality: best
      max_score_difference: 50
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: masters
      player_name: ''
      sort: winrate
      min_games: 10
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: lichess
      move_quality: best
    max_depth: .inf
  lichess_bot_tbs:
    syzygy:
      enabled: false
      paths:
      - engines/syzygy
      max_pieces: 7
      move_quality: best
    gaviota:
      enabled: false
      paths:
      - engines/gaviota
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120
      move_quality: best
  homemade_options: null
  uci_options:
    Move Overhead: 100
    Threads: 4
    Hash: 512
    SyzygyPath: ./syzygy/
    UCI_ShowWDL: true
  silence_stderr: false
  uci_ponder: false
abort_time: 30
fake_think_time: false
rate_limiting_delay: 0
move_overhead: 2000
max_takebacks_accepted: 0
quit_after_all_games_finish: false
correspondence:
  move_time: 60
  checkin_period: 300
  disconnect_time: 150
  ponder: false
  uci_ponder: false
challenge:
  concurrency: 1
  sort_by: best
  preference: none
  accept_bot: true
  only_bot: false
  max_increment: 20
  min_increment: 0
  max_base: 1800
  min_base: 0
  max_days: 14
  min_days: 1
  variants:
  - standard
  time_controls:
  - bullet
  - blitz
  - rapid
  - classical
  modes:
  - casual
  - rated
  bullet_requires_increment: false
  block_list: []
  allow_list: []
greeting:
  hello: Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond
    to.
  goodbye: Good game!
  hello_spectators: Hi! I'm {me}. Type !help for a list of commands I can respond
    to.
  goodbye_spectators: Thanks for watching!
matchmaking:
  allow_matchmaking: false
  allow_during_games: false
  challenge_variant: random
  challenge_timeout: 30
  challenge_initial_time:
  - 60
  - 180
  challenge_increment:
  - 1
  - 2
  opponent_rating_difference: 300
  rating_preference: none
  opponent_allow_tos_violation: false
  challenge_mode: random
  challenge_filter: none
  include_challenge_block_list: false
  block_list: []
  challenge_days:
  - null
  opponent_min_rating: 600
  opponent_max_rating: 4000
  overrides: {}
pgn_directory: null
pgn_file_grouping: game

2024-09-08 18:24:50,291 lib.config (config.py:260) DEBUG ====================
2024-09-08 18:24:50,313 __main__ (lichess-bot.py:1249) ERROR Quitting lichess-bot due to an error:
Traceback (most recent call last):
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lichess-bot.py", line 1246, in <module>
    start_lichess_bot()
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lichess-bot.py", line 1182, in start_lichess_bot
    CONFIG = load_config(args.config or "./config.yml")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\config.py", line 406, in load_config
    validate_config(CONFIG)
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\config.py", line 280, in validate_config
    config_assert(os.path.isfile(engine) or CONFIG["engine"]["protocol"] == "homemade",
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\config.py", line 69, in config_assert
    raise Exception(error_message)
Exception: The engine ./engines/vice-main.exe file does not exist.
pGOD1000 commented 2 months ago

Sir this is the recent log

pGOD1000 commented 2 months ago
2024-09-08 19:30:11,653 __main__ (lichess-bot.py:1180) INFO 
    .   _/|
    .  // o\
    .  || ._)  lichess-bot 2024.9.7.1 on Windows 10
    .  //__\
    .  )___(   Play on Lichess with a bot

2024-09-08 19:30:11,815 lib.config (config.py:259) DEBUG Config:
token: logger
url: https://lichess.org/
engine:
  dir: ./engines/
  name: stockfish.exe
  working_dir: ./engines/
  protocol: uci
  ponder: true
  polyglot:
    enabled: false
    book:
      standard:
      - engines/book1.bin
      - engines/book2.bin
    min_weight: 1
    selection: weighted_random
    max_depth: 20
  draw_or_resign:
    resign_enabled: false
    resign_score: -1000
    resign_for_egtb_minus_two: true
    resign_moves: 3
    offer_draw_enabled: true
    offer_draw_score: 0
    offer_draw_for_egtb_zero: true
    offer_draw_moves: 10
    offer_draw_pieces: 10
  online_moves:
    max_out_of_book_moves: 10
    max_retries: 2
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: good
      min_depth: 20
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      move_quality: best
      max_score_difference: 50
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: masters
      player_name: ''
      sort: winrate
      min_games: 10
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: lichess
      move_quality: best
  lichess_bot_tbs:
    syzygy:
      enabled: false
      paths:
      - engines/syzygy
      max_pieces: 7
      move_quality: best
    gaviota:
      enabled: false
      paths:
      - engines/gaviota
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120
      move_quality: best
  homemade_options: null
  uci_options:
    Move Overhead: 100
    Threads: 4
    Hash: 512
    SyzygyPath: ./syzygy/
    UCI_ShowWDL: true
  silence_stderr: false
abort_time: 30
fake_think_time: false
rate_limiting_delay: 0
move_overhead: 2000
max_takebacks_accepted: 0
quit_after_all_games_finish: false
correspondence:
  move_time: 60
  checkin_period: 300
  disconnect_time: 150
  ponder: false
challenge:
  concurrency: 1
  sort_by: best
  preference: none
  accept_bot: true
  only_bot: false
  max_increment: 20
  min_increment: 0
  max_base: 1800
  min_base: 0
  max_days: 14
  min_days: 1
  variants:
  - standard
  time_controls:
  - bullet
  - blitz
  - rapid
  - classical
  modes:
  - casual
  - rated
  bullet_requires_increment: false
greeting:
  hello: Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond
    to.
  goodbye: Good game!
  hello_spectators: Hi! I'm {me}. Type !help for a list of commands I can respond
    to.
  goodbye_spectators: Thanks for watching!
matchmaking:
  allow_matchmaking: false
  allow_during_games: false
  challenge_variant: random
  challenge_timeout: 30
  challenge_initial_time:
  - 60
  - 180
  challenge_increment:
  - 1
  - 2
  opponent_rating_difference: 300
  rating_preference: none
  opponent_allow_tos_violation: false
  challenge_mode: random
  challenge_filter: none
  include_challenge_block_list: false

2024-09-08 19:30:11,818 lib.config (config.py:260) DEBUG ====================
2024-09-08 19:30:11,843 lib.config (config.py:259) DEBUG Config:
token: logger
url: https://lichess.org/
engine:
  dir: ./engines/
  name: stockfish.exe
  working_dir: ./engines/
  protocol: uci
  ponder: true
  polyglot:
    enabled: false
    book:
      standard:
      - engines/book1.bin
      - engines/book2.bin
    min_weight: 1
    selection: weighted_random
    max_depth: 20
  draw_or_resign:
    resign_enabled: false
    resign_score: -1000
    resign_for_egtb_minus_two: true
    resign_moves: 3
    offer_draw_enabled: true
    offer_draw_score: 0
    offer_draw_for_egtb_zero: true
    offer_draw_moves: 10
    offer_draw_pieces: 10
  online_moves:
    max_out_of_book_moves: 10
    max_retries: 2
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: good
      min_depth: 20
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      move_quality: best
      max_score_difference: 50
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: masters
      player_name: ''
      sort: winrate
      min_games: 10
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: lichess
      move_quality: best
    max_depth: .inf
  lichess_bot_tbs:
    syzygy:
      enabled: false
      paths:
      - engines/syzygy
      max_pieces: 7
      move_quality: best
    gaviota:
      enabled: false
      paths:
      - engines/gaviota
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120
      move_quality: best
  homemade_options: null
  uci_options:
    Move Overhead: 100
    Threads: 4
    Hash: 512
    SyzygyPath: ./syzygy/
    UCI_ShowWDL: true
  silence_stderr: false
  uci_ponder: false
abort_time: 30
fake_think_time: false
rate_limiting_delay: 0
move_overhead: 2000
max_takebacks_accepted: 0
quit_after_all_games_finish: false
correspondence:
  move_time: 60
  checkin_period: 300
  disconnect_time: 150
  ponder: false
  uci_ponder: false
challenge:
  concurrency: 1
  sort_by: best
  preference: none
  accept_bot: true
  only_bot: false
  max_increment: 20
  min_increment: 0
  max_base: 1800
  min_base: 0
  max_days: 14
  min_days: 1
  variants:
  - standard
  time_controls:
  - bullet
  - blitz
  - rapid
  - classical
  modes:
  - casual
  - rated
  bullet_requires_increment: false
  block_list: []
  allow_list: []
greeting:
  hello: Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond
    to.
  goodbye: Good game!
  hello_spectators: Hi! I'm {me}. Type !help for a list of commands I can respond
    to.
  goodbye_spectators: Thanks for watching!
matchmaking:
  allow_matchmaking: false
  allow_during_games: false
  challenge_variant: random
  challenge_timeout: 30
  challenge_initial_time:
  - 60
  - 180
  challenge_increment:
  - 1
  - 2
  opponent_rating_difference: 300
  rating_preference: none
  opponent_allow_tos_violation: false
  challenge_mode: random
  challenge_filter: none
  include_challenge_block_list: false
  block_list: []
  challenge_days:
  - null
  opponent_min_rating: 600
  opponent_max_rating: 4000
  overrides: {}
pgn_directory: null
pgn_file_grouping: game

2024-09-08 19:30:11,844 lib.config (config.py:260) DEBUG ====================
2024-09-08 19:30:11,849 __main__ (lichess-bot.py:1183) INFO Checking engine configuration ...
2024-09-08 19:30:11,883 lib.engine_wrapper (engine_wrapper.py:65) DEBUG Starting engine: ['C:\\Users\\Microsoft\\Downloads\\lichess-bot-master\\lichess-bot-master\\engines\\stockfish.exe']
2024-09-08 19:30:11,885 asyncio (proactor_events.py:634) DEBUG Using proactor: IocpProactor
2024-09-08 19:30:11,947 chess.engine (engine.py:1040) DEBUG <UciProtocol (pid=20728)>: Connection made
2024-09-08 19:30:11,949 chess.engine (engine.py:1062) DEBUG <UciProtocol (pid=20728)>: << uci
2024-09-08 19:30:21,953 __main__ (lichess-bot.py:1249) ERROR Quitting lichess-bot due to an error:
Traceback (most recent call last):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\tasks.py", line 520, in wait_for
    return await fut
           ^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 1510, in initialize
    return await self.communicate(UciInitializeCommand)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 1133, in communicate
    return await command.result
           ^^^^^^^^^^^^^^^^^^^^
asyncio.exceptions.CancelledError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lichess-bot.py", line 1246, in <module>
    start_lichess_bot()
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lichess-bot.py", line 1184, in start_lichess_bot
    with engine_wrapper.create_engine(CONFIG):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\engine_wrapper.py", line 66, in create_engine
    return Engine(commands, options, stderr, cfg.draw_or_resign, game, cwd=cfg.working_dir)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\engine_wrapper.py", line 493, in __init__
    self.engine = chess.engine.SimpleEngine.popen_uci(commands, timeout=10., debug=False, setpgrp=True, stderr=stderr,
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 3054, in popen_uci
    return cls.popen(UciProtocol, command, timeout=timeout, debug=debug, setpgrp=setpgrp, **popen_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 3046, in popen
    return run_in_background(background, name=f"{cls.__name__} (command={command!r})", debug=debug)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 201, in run_in_background
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\concurrent\futures\_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\concurrent\futures\_base.py", line 401, in __get_result
    raise self._exception
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 195, in background
    asyncio.run(coroutine(future))
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 3038, in background
    await asyncio.wait_for(protocol.initialize(), timeout)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\tasks.py", line 519, in wait_for
    async with timeouts.timeout(timeout):
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\timeouts.py", line 115, in __aexit__
    raise TimeoutError from exc_val
TimeoutError
pGOD1000 commented 2 months ago

Please I have a question

pGOD1000 commented 2 months ago

Do I have to upgrade the account to a bot account before I run the necessary programs?

AttackingOrDefending commented 2 months ago

You have to update your account to a bot account to play as a bot (which you can do by running python lichess-bot.py -u) but that isn't what is causing the problem here.

pGOD1000 commented 2 months ago

Ok

pGOD1000 commented 2 months ago

Sir this is the recent log

pGOD1000 commented 2 months ago
2024-09-08 19:57:36,683 __main__ (lichess-bot.py:1180) INFO 
    .   _/|
    .  // o\
    .  || ._)  lichess-bot 2024.9.7.1 on Windows 10
    .  //__\
    .  )___(   Play on Lichess with a bot

2024-09-08 19:57:36,793 lib.config (config.py:259) DEBUG Config:
token: logger
url: https://lichess.org/
engine:
  dir: ./engines/
  name: stockfish.exe
  working_dir: ./engines/
  protocol: uci
  ponder: true
  polyglot:
    enabled: false
    book:
      standard:
      - engines/book1.bin
      - engines/book2.bin
    min_weight: 1
    selection: weighted_random
    max_depth: 20
  draw_or_resign:
    resign_enabled: false
    resign_score: -1000
    resign_for_egtb_minus_two: true
    resign_moves: 3
    offer_draw_enabled: true
    offer_draw_score: 0
    offer_draw_for_egtb_zero: true
    offer_draw_moves: 10
    offer_draw_pieces: 10
  online_moves:
    max_out_of_book_moves: 10
    max_retries: 2
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: good
      min_depth: 20
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      move_quality: best
      max_score_difference: 50
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: masters
      player_name: ''
      sort: winrate
      min_games: 10
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: lichess
      move_quality: best
  lichess_bot_tbs:
    syzygy:
      enabled: false
      paths:
      - engines/syzygy
      max_pieces: 7
      move_quality: best
    gaviota:
      enabled: false
      paths:
      - engines/gaviota
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120
      move_quality: best
  homemade_options: null
  uci_options:
    Move Overhead: 100
    Threads: 4
    SyzygyPath: ./syzygy/
    UCI_ShowWDL: true
  silence_stderr: false
abort_time: 30
fake_think_time: false
rate_limiting_delay: 0
move_overhead: 2000
max_takebacks_accepted: 0
quit_after_all_games_finish: false
correspondence:
  move_time: 60
  checkin_period: 300
  disconnect_time: 150
  ponder: false
challenge:
  concurrency: 1
  sort_by: best
  preference: none
  accept_bot: true
  only_bot: false
  max_increment: 20
  min_increment: 0
  max_base: 1800
  min_base: 0
  max_days: 14
  min_days: 1
  variants:
  - standard
  - fromPosition
  time_controls:
  - bullet
  - blitz
  - rapid
  - classical
  modes:
  - rated
  bullet_requires_increment: false
greeting:
  hello: Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond
    to.
  goodbye: Good game!
  hello_spectators: Hi! I'm {me}. Type !help for a list of commands I can respond
    to.
  goodbye_spectators: Thanks for watching!
matchmaking:
  allow_matchmaking: false
  allow_during_games: false
  challenge_variant: random
  challenge_timeout: 30
  challenge_initial_time:
  - 60
  - 180
  challenge_increment:
  - 1
  - 2
  opponent_rating_difference: 300
  rating_preference: none
  opponent_allow_tos_violation: false
  challenge_mode: random
  challenge_filter: none
  include_challenge_block_list: false

2024-09-08 19:57:36,811 lib.config (config.py:260) DEBUG ====================
2024-09-08 19:57:36,835 lib.config (config.py:259) DEBUG Config:
token: logger
url: https://lichess.org/
engine:
  dir: ./engines/
  name: stockfish.exe
  working_dir: ./engines/
  protocol: uci
  ponder: true
  polyglot:
    enabled: false
    book:
      standard:
      - engines/book1.bin
      - engines/book2.bin
    min_weight: 1
    selection: weighted_random
    max_depth: 20
  draw_or_resign:
    resign_enabled: false
    resign_score: -1000
    resign_for_egtb_minus_two: true
    resign_moves: 3
    offer_draw_enabled: true
    offer_draw_score: 0
    offer_draw_for_egtb_zero: true
    offer_draw_moves: 10
    offer_draw_pieces: 10
  online_moves:
    max_out_of_book_moves: 10
    max_retries: 2
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: good
      min_depth: 20
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      move_quality: best
      max_score_difference: 50
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: masters
      player_name: ''
      sort: winrate
      min_games: 10
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: lichess
      move_quality: best
    max_depth: .inf
  lichess_bot_tbs:
    syzygy:
      enabled: false
      paths:
      - engines/syzygy
      max_pieces: 7
      move_quality: best
    gaviota:
      enabled: false
      paths:
      - engines/gaviota
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120
      move_quality: best
  homemade_options: null
  uci_options:
    Move Overhead: 100
    Threads: 4
    SyzygyPath: ./syzygy/
    UCI_ShowWDL: true
  silence_stderr: false
  uci_ponder: false
abort_time: 30
fake_think_time: false
rate_limiting_delay: 0
move_overhead: 2000
max_takebacks_accepted: 0
quit_after_all_games_finish: false
correspondence:
  move_time: 60
  checkin_period: 300
  disconnect_time: 150
  ponder: false
  uci_ponder: false
challenge:
  concurrency: 1
  sort_by: best
  preference: none
  accept_bot: true
  only_bot: false
  max_increment: 20
  min_increment: 0
  max_base: 1800
  min_base: 0
  max_days: 14
  min_days: 1
  variants:
  - standard
  - fromPosition
  time_controls:
  - bullet
  - blitz
  - rapid
  - classical
  modes:
  - rated
  bullet_requires_increment: false
  block_list: []
  allow_list: []
greeting:
  hello: Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond
    to.
  goodbye: Good game!
  hello_spectators: Hi! I'm {me}. Type !help for a list of commands I can respond
    to.
  goodbye_spectators: Thanks for watching!
matchmaking:
  allow_matchmaking: false
  allow_during_games: false
  challenge_variant: random
  challenge_timeout: 30
  challenge_initial_time:
  - 60
  - 180
  challenge_increment:
  - 1
  - 2
  opponent_rating_difference: 300
  rating_preference: none
  opponent_allow_tos_violation: false
  challenge_mode: random
  challenge_filter: none
  include_challenge_block_list: false
  block_list: []
  challenge_days:
  - null
  opponent_min_rating: 600
  opponent_max_rating: 4000
  overrides: {}
pgn_directory: null
pgn_file_grouping: game

2024-09-08 19:57:36,835 lib.config (config.py:260) DEBUG ====================
2024-09-08 19:57:36,835 __main__ (lichess-bot.py:1183) INFO Checking engine configuration ...
2024-09-08 19:57:36,851 lib.engine_wrapper (engine_wrapper.py:65) DEBUG Starting engine: ['C:\\Users\\Microsoft\\Downloads\\lichess-bot-master\\lichess-bot-master\\engines\\stockfish.exe']
2024-09-08 19:57:36,851 asyncio (proactor_events.py:634) DEBUG Using proactor: IocpProactor
2024-09-08 19:57:36,898 chess.engine (engine.py:1040) DEBUG <UciProtocol (pid=5800)>: Connection made
2024-09-08 19:57:36,898 chess.engine (engine.py:1062) DEBUG <UciProtocol (pid=5800)>: << uci
2024-09-08 19:57:41,208 chess.engine (engine.py:1059) DEBUG <UciProtocol (pid=5800)>: Process exited
2024-09-08 19:57:41,208 chess.engine (engine.py:1046) DEBUG <UciProtocol (pid=5800)>: Connection lost (exit code: 3221225501, error: None)
2024-09-08 19:57:41,213 __main__ (lichess-bot.py:1249) ERROR Quitting lichess-bot due to an error:
Traceback (most recent call last):
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lichess-bot.py", line 1246, in <module>
    start_lichess_bot()
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lichess-bot.py", line 1184, in start_lichess_bot
    with engine_wrapper.create_engine(CONFIG):
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\engine_wrapper.py", line 66, in create_engine
    return Engine(commands, options, stderr, cfg.draw_or_resign, game, cwd=cfg.working_dir)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\engine_wrapper.py", line 493, in __init__
    self.engine = chess.engine.SimpleEngine.popen_uci(commands, timeout=10., debug=False, setpgrp=True, stderr=stderr,
                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 3054, in popen_uci
    return cls.popen(UciProtocol, command, timeout=timeout, debug=debug, setpgrp=setpgrp, **popen_args)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 3046, in popen
    return run_in_background(background, name=f"{cls.__name__} (command={command!r})", debug=debug)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 201, in run_in_background
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\concurrent\futures\_base.py", line 456, in result
    return self.__get_result()
           ^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\concurrent\futures\_base.py", line 401, in __get_result
    raise self._exception
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 195, in background
    asyncio.run(coroutine(future))
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 194, in run
    return runner.run(main)
           ^^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\runners.py", line 118, in run
    return self._loop.run_until_complete(task)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\base_events.py", line 687, in run_until_complete
    return future.result()
           ^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 3038, in background
    await asyncio.wait_for(protocol.initialize(), timeout)
  File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.12_3.12.1520.0_x64__qbz5n2kfra8p0\Lib\asyncio\tasks.py", line 520, in wait_for
    return await fut
           ^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 1510, in initialize
    return await self.communicate(UciInitializeCommand)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.12_qbz5n2kfra8p0\LocalCache\local-packages\Python312\site-packages\chess\engine.py", line 1133, in communicate
    return await command.result
           ^^^^^^^^^^^^^^^^^^^^
chess.engine.EngineTerminatedError: engine process died unexpectedly (exit code: 3221225501, binary not compatible with cpu?)
pGOD1000 commented 2 months ago

You have to update your account to a bot account to play as a bot (which you can do by running python lichess-bot.py -u) but that isn't what is causing the problem here.

So sir does that mean that if I use curl -d '' https://lichess.org/api/bot/account/upgrade -H "Authorization: Bearer " and use this python lichess-bot.py -u at the same time it will work. This is according to the video that I watched

pGOD1000 commented 2 months ago

So sir please what do I need to do I need help

pGOD1000 commented 2 months ago

Please how do I run an engine that I made

pGOD1000 commented 2 months ago

Which settings do I have to change

pGOD1000 commented 2 months ago

And should I still use engine_name.exe or just the engine name

pGOD1000 commented 2 months ago

Sir this is the recent log after I made some adjustments in the config.yml

pGOD1000 commented 2 months ago
2024-09-08 21:33:36,532 __main__ (lichess-bot.py:1180) INFO 
    .   _/|
    .  // o\
    .  || ._)  lichess-bot 2024.9.7.1 on Windows 10
    .  //__\
    .  )___(   Play on Lichess with a bot

2024-09-08 21:33:36,641 lib.config (config.py:259) DEBUG Config:
token: logger
url: https://lichess.org/
engine:
  dir: ./engines/vice-main
  name: vice.c
  working_dir: ./engines/
  protocol: uci
  ponder: true
  polyglot:
    enabled: false
    book:
      standard:
      - engines/book1.bin
      - engines/book2.bin
    min_weight: 1
    selection: weighted_random
    max_depth: 20
  draw_or_resign:
    resign_enabled: false
    resign_score: -1000
    resign_for_egtb_minus_two: true
    resign_moves: 3
    offer_draw_enabled: true
    offer_draw_score: 0
    offer_draw_for_egtb_zero: true
    offer_draw_moves: 10
    offer_draw_pieces: 10
  online_moves:
    max_out_of_book_moves: 10
    max_retries: 2
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: good
      min_depth: 20
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      move_quality: best
      max_score_difference: 50
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: masters
      player_name: ''
      sort: winrate
      min_games: 10
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: lichess
      move_quality: best
  lichess_bot_tbs:
    syzygy:
      enabled: false
      paths:
      - engines/syzygy
      max_pieces: 7
      move_quality: best
    gaviota:
      enabled: false
      paths:
      - engines/gaviota
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120
      move_quality: best
  homemade_options: null
  uci_options:
    Move Overhead: 100
    Threads: 4
    SyzygyPath: ./syzygy/
    UCI_ShowWDL: true
  silence_stderr: false
abort_time: 30
fake_think_time: false
rate_limiting_delay: 0
move_overhead: 2000
max_takebacks_accepted: 0
quit_after_all_games_finish: false
correspondence:
  move_time: 60
  checkin_period: 300
  disconnect_time: 150
  ponder: false
challenge:
  concurrency: 1
  sort_by: best
  preference: none
  accept_bot: true
  only_bot: false
  max_increment: 20
  min_increment: 0
  max_base: 1800
  min_base: 0
  max_days: 14
  min_days: 1
  variants:
  - standard
  - fromPosition
  time_controls:
  - bullet
  - blitz
  modes:
  - rated
  bullet_requires_increment: false
greeting:
  hello: Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond
    to.
  goodbye: Good game!
  hello_spectators: Hi! I'm {me}. Type !help for a list of commands I can respond
    to.
  goodbye_spectators: Thanks for watching!
matchmaking:
  allow_matchmaking: true
  allow_during_games: false
  challenge_variant: random
  challenge_timeout: 30
  challenge_initial_time:
  - 60
  - 180
  challenge_increment:
  - 1
  - 2
  opponent_rating_difference: 300
  rating_preference: none
  opponent_allow_tos_violation: false
  challenge_mode: random
  challenge_filter: none
  include_challenge_block_list: false

2024-09-08 21:33:36,642 lib.config (config.py:260) DEBUG ====================
2024-09-08 21:33:36,664 lib.config (config.py:259) DEBUG Config:
token: logger
url: https://lichess.org/
engine:
  dir: ./engines/vice-main
  name: vice.c
  working_dir: ./engines/
  protocol: uci
  ponder: true
  polyglot:
    enabled: false
    book:
      standard:
      - engines/book1.bin
      - engines/book2.bin
    min_weight: 1
    selection: weighted_random
    max_depth: 20
  draw_or_resign:
    resign_enabled: false
    resign_score: -1000
    resign_for_egtb_minus_two: true
    resign_moves: 3
    offer_draw_enabled: true
    offer_draw_score: 0
    offer_draw_for_egtb_zero: true
    offer_draw_moves: 10
    offer_draw_pieces: 10
  online_moves:
    max_out_of_book_moves: 10
    max_retries: 2
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: good
      min_depth: 20
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      move_quality: best
      max_score_difference: 50
      min_depth: 20
      min_knodes: 0
    lichess_opening_explorer:
      enabled: false
      min_time: 20
      source: masters
      player_name: ''
      sort: winrate
      min_games: 10
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: lichess
      move_quality: best
    max_depth: .inf
  lichess_bot_tbs:
    syzygy:
      enabled: false
      paths:
      - engines/syzygy
      max_pieces: 7
      move_quality: best
    gaviota:
      enabled: false
      paths:
      - engines/gaviota
      max_pieces: 5
      min_dtm_to_consider_as_wdl_1: 120
      move_quality: best
  homemade_options: null
  uci_options:
    Move Overhead: 100
    Threads: 4
    SyzygyPath: ./syzygy/
    UCI_ShowWDL: true
  silence_stderr: false
  uci_ponder: false
abort_time: 30
fake_think_time: false
rate_limiting_delay: 0
move_overhead: 2000
max_takebacks_accepted: 0
quit_after_all_games_finish: false
correspondence:
  move_time: 60
  checkin_period: 300
  disconnect_time: 150
  ponder: false
  uci_ponder: false
challenge:
  concurrency: 1
  sort_by: best
  preference: none
  accept_bot: true
  only_bot: false
  max_increment: 20
  min_increment: 0
  max_base: 1800
  min_base: 0
  max_days: 14
  min_days: 1
  variants:
  - standard
  - fromPosition
  time_controls:
  - bullet
  - blitz
  modes:
  - rated
  bullet_requires_increment: false
  block_list: []
  allow_list: []
greeting:
  hello: Hi! I'm {me}. Good luck! Type !help for a list of commands I can respond
    to.
  goodbye: Good game!
  hello_spectators: Hi! I'm {me}. Type !help for a list of commands I can respond
    to.
  goodbye_spectators: Thanks for watching!
matchmaking:
  allow_matchmaking: true
  allow_during_games: false
  challenge_variant: random
  challenge_timeout: 30
  challenge_initial_time:
  - 60
  - 180
  challenge_increment:
  - 1
  - 2
  opponent_rating_difference: 300
  rating_preference: none
  opponent_allow_tos_violation: false
  challenge_mode: random
  challenge_filter: none
  include_challenge_block_list: false
  block_list: []
  challenge_days:
  - null
  opponent_min_rating: 600
  opponent_max_rating: 4000
  overrides: {}
pgn_directory: null
pgn_file_grouping: game

2024-09-08 21:33:36,664 lib.config (config.py:260) DEBUG ====================
2024-09-08 21:33:36,665 __main__ (lichess-bot.py:1249) ERROR Quitting lichess-bot due to an error:
Traceback (most recent call last):
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lichess-bot.py", line 1246, in <module>
    start_lichess_bot()
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lichess-bot.py", line 1182, in start_lichess_bot
    CONFIG = load_config(args.config or "./config.yml")
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\config.py", line 406, in load_config
    validate_config(CONFIG)
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\config.py", line 280, in validate_config
    config_assert(os.path.isfile(engine) or CONFIG["engine"]["protocol"] == "homemade",
  File "C:\Users\Microsoft\Downloads\lichess-bot-master\lichess-bot-master\lib\config.py", line 69, in config_assert
    raise Exception(error_message)
Exception: The engine ./engines/vice-main\vice.c file does not exist.
pGOD1000 commented 2 months ago

Please I want to run my lichess bot with my own engine, please how do I do it

AttackingOrDefending commented 2 months ago

Your engine must be an executable, not a c file. Since you seem to be using Vice, the repo shows how to download executables for it.

Edit: The link doesn't work but there are some old versions on the wayback machine (I found version 1.0 here).

pGOD1000 commented 2 months ago

Your engine must be an executable, not a c file. Since you seem to be using Vice, the repo shows how to download executables for it.

Edit: The link doesn't work but there are some old versions on the wayback machine (I found version 1.0 here).

Ok. Thank you

pGOD1000 commented 2 months ago

But please I am creating an engine in python, though I am not done yet but how do I execute it

pGOD1000 commented 2 months ago

And please could you recommend an engine that I can use

pGOD1000 commented 2 months ago

I am using this repository https://github.com/dereckpiche/chess_bot

AttackingOrDefending commented 2 months ago

And please could you recommend an engine that I can use

I would recommend any UCI/XBoard engine since they are simple to use. Probably not Stockfish though since it is very common. See here for a list of engines you can use (ignore the top 3 engines, you could for example use PlentyChess).

I am using this repository https://github.com/dereckpiche/chess_bot

The easiest way would be to take the file ChessEngine.py and turn it into a homemade engine. See here for instructions on how to do that.

pGOD1000 commented 2 months ago

And please could you recommend an engine that I can use

I would recommend any UCI/XBoard engine since they are simple to use. Probably not Stockfish though since it is very common. See here for a list of engines you can use (ignore the top 3 engines, you could for example use PlentyChess).

I am using this repository https://github.com/dereckpiche/chess_bot

The easiest way would be to take the file ChessEngine.py and turn it into a homemade engine. See here for instructions on how to do that.

Thank you. Please is Plentychess free

AttackingOrDefending commented 2 months ago

PlentyChess is free. You can find windows binaries here.

pGOD1000 commented 2 months ago

PlentyChess is free. You can find windows binaries here.

Thank you but for some reason I can't download it

AttackingOrDefending commented 1 month ago

This is a direct link to the file. Also, PlentyChess was just an example. You can use many different engines (e.g. Titan or Lizard).

MarkZH commented 1 month ago

@pGOD1000 Feel free to reopen if you need more help with this issue.