Giter VIP home page Giter VIP logo

Comments (2)

BestV-Fish avatar BestV-Fish commented on June 2, 2024

My config :

token: "xxx"    # Lichess OAuth2 Token.
url: "https://lichess.org/"        # Lichess base URL.

engine:                            # Engine settings.
  dir: C:\Users\emman\Documents\Timothee\Echecs\BOT\SFDEV                # 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: false                 # Activate polyglot book.
    book:
      standard:                    # List of book file paths for variant standard.
        - C:\Users\emman\Documents\Timothee\Echecs\BOT\OpeningBooks\Perfect_2023\Perfect_2023\BIN\perfect2023.bin
        - C:\Users\emman\Documents\Timothee\Echecs\BOT\Optimus\Optimus.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: 1000                  # 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: 0      # 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.
        - C:\Users\emman\Documents\Timothee\Echecs\Graphiques\Syzygy\3-4-5_pieces_Syzygy\3-4-5\6_pieces_Syzygy_torrent\
      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.
    Threads: 4                     # Max CPU threads the engine can use.
    Hash: 512                      # Max memory (in megabytes) the engine can allocate.
    SyzygyPath:                    # 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: 100000000000000000000                     # 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.               # Increase if your bot flags games too often.

correspondence:
  move_time: 180                    # 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: 1             # 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: 0                # 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: 0                   # 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: 5                      # 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.
    - Nikitosik1708
    - Nikitosik-ai
    - NikitosikRandombot
    - NikitosikVariantsbot
    - Nikitosikbot
    - Atomic_Chess_Bot
    - HappyFarmerBot
    - catynok
    - nicolaf78
    - Alemor64
    - ProteusSF
    - ProteusSF-lite
    - ProteusSF-Turbo
    - ProteusSF-Aureo
    - ProteusSF-Godot
    - NIKITOSPROS
    - FireFishBOT
# 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}. You'll be crushed by my stockfishness :)" # Message to send to opponent chat at the start of a game
  goodbye: "Good game! Normally, you lost. If not, very good game! :)" # Message to send to opponent chat at the end of a game
  hello_spectators: "Hi! I'm {me}. Look me crush my opponent :)" # Message to send to spectator chat at the start of a game
  goodbye_spectators: "Thanks for watching my win. If it wasn't a win for ME, i must admit my opponent is very good :)" # 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.
  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.
  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

# 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.

from lichess-bot.

MarkZH avatar MarkZH commented on June 2, 2024

The value for abort_time is too large. Set it to 10000 and your bot will wait almost 3 hours for its opponent to make a move.

from lichess-bot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.