lichess-bot-devs/lichess-bot

Matchmaking error

EmptikBest opened this issue · 2 comments

In my config.yml, the matchmaking section, I put a # before challenge_initial_time (also the things under it) and challenge_increment (also the things under it). The only thing that wasn't in # in the matchmaking section was challenge_days. But whenever I run the bot, it never challenges to correspondence, only 1+2 for some reason.

Here is my config.yml:

token: "sorry cant share this"    # Lichess OAuth2 Token.
url: "https://lichess.org/"  # Lichess base URL.

engine:                      # Engine settings.
  dir: "C:/Users/drvij/Documents/EmptikCorrespondence/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: true               # Think on opponent's time.

  polyglot:
    enabled: true            # Activate polyglot book.
    book:
      standard:              # List of book file paths for variant standard.
        - C:/Users/drvij/Documents/EmptikCorrespondence/OlisFish.bin
#     atomic:                # List of book file paths for variant atomic.
#       - engines/atomicbook1.bin
#       - engines/atomicbook2.bin
#     etc.
#     Use the same pattern for '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: "best_move"   # 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: 50            # How many moves from the start to take from the book.

  draw_or_resign:
    resign_enabled: false
    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: false
    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: 5      # 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.
    chessdb_book:
      enabled: false
      min_time: 20
      move_quality: "best"   # One of "all", "good", "best".
      min_depth: 20          # Only for move_quality: "best".
    lichess_cloud_analysis:
      enabled: false
      min_time: 20
      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
    online_egtb:
      enabled: false
      min_time: 20
      max_pieces: 7
      source: "lichess"      # One of "lichess", "chessdb".
      move_quality: "best"   # One of "good", "best", "suggest" (it takes all the "good" moves 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: true
      paths:
        - "C:/Syzygy"
      max_pieces: 6
      move_quality: "best"   # One of "good", "best", "suggest" (it takes all the "good" moves and tells the engine to only consider these; will move instantly if there is only 1 "good" move).
    gaviota:
      enabled: false
      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 "good", "best", "suggest" (it takes all the "good" moves 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: 1000      # Increase if your bot flags games too often.
    Threads: 2               # Max CPU threads the engine can use.
    Hash: 2048               # Max memory (in megabytes) the engine can allocate.
    SyzygyPath: "C:/Syzygy"  # Paths to Syzygy endgame tablebases
#   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: 20               # 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.

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

challenge:                   # Incoming challenges.
  concurrency: 50            # Number of games to play simultaneously.
  sort_by: "best"            # Possible values: "best" and "first".
  accept_bot: true           # Accepts challenges coming from other bots.
  only_bot: false            # Accept challenges by bots only.
  max_increment: 180         # Maximum amount of increment to accept a challenge. The max is 180. Set to 0 for no increment.
  min_increment: 0           # Minimum amount of increment to accept a challenge.
  max_base: 315360000        # Maximum amount of base time to accept a challenge. The max is 315360000 (10 years).
  min_base: 0                # Minimum amount of base time to accept a challenge.
  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.
#   - 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.
    - ProteusSF-Open
    - ProteusSF-Turbo
    - Elmichess
    - Zagreus_engine
    - dark_angel_777
    - caissa-ai
    - caissa-test
    - actual_magnus
    - Annie_archy
    - chessfyBOT
    - ResoluteBot
    - VariantsBot
    - AshNostromo
    - chat_bot
    - StreamerVSChat
    - zulu_bot
    - HistoryExplorer
    - bekbot
    - OldStockfish
# 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

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 EmptikCorrespondence(Bot). 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 {opponent]!" # Message to send to opponent chat at the end of a game
  hello_spectators: "Hi! I'm EmptikCorrespondence(Bot). 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 EmptikCorrespondence(Bot) vs [opponent]!" # 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

matchmaking:
  allow_matchmaking: true     # Set it to 'true' to challenge other bots.
  challenge_variant: "standard" # If set to 'random', the bot will choose one variant from the variants enabled in 'challenge.variants'.
  challenge_timeout: 1        # 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
#   - 120
# 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
    - 5
    - 10
    - 14
# 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: 2000 # The maximum difference in rating between the bot's rating and opponent's rating.
  opponent_allow_tos_violation: true # Set to 'false' to prevent challenging bots that violated Lichess Terms of Service.
  challenge_mode: "rated"    # 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
    - ProteusSF-Open
    - ProteusSF-Turbo
    - Elmichess
    - Zagreus_engine
    - dark_angel_777
    - caissa-ai
    - caissa-test
    - actual_magnus
    - Annie_archy
    - chessfyBOT
    - ResoluteBot
    - VariantsBot
    - AshNostromo
    - chat_bot
    - StreamerVSChat
    - zulu_bot
    - HistoryExplorer
    - bekbot
    - OldStockfish

Can you try #733? Your bot should have had only had a 50% chance of playing 1+2 not 100%.

#733 fixed this