BlueMoonBot commited on
Commit
d6ae78b
·
verified ·
1 Parent(s): aef1699

Create config.yml

Browse files
Files changed (1) hide show
  1. config.yml +253 -0
config.yml ADDED
@@ -0,0 +1,253 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ token: "lip_jU7Lj0hTijvhwjJEZxvS" # Lichess OAuth2 Token.
2
+ url: "https://lichess.org/" # Lichess base URL.
3
+
4
+ engine: # Engine settings.
5
+ dir: "./fairy" # Directory containing the engine. This can be an absolute path or one relative to lichess-bot/.
6
+ name: "stockfish" # Binary name of the engine to use.
7
+ debug: False # When enabled, log all startup communication with the engine.
8
+ # interpreter: "java"
9
+ # interpreter_options:
10
+ # - "-jar"
11
+ working_dir: "" # Directory where the chess engine will read and write files. If blank or missing, the current directory is used.
12
+ # 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.
13
+ protocol: "uci" # "uci", "xboard" or "homemade"
14
+ ponder: true # Think on opponent's time.
15
+
16
+ polyglot:
17
+ enabled: false # Activate polyglot book.
18
+ book:
19
+ standard: # List of book file paths for variant standard.
20
+ - engines/book1.bin
21
+ - engines/book2.bin
22
+ # atomic: # List of book file paths for variant atomic.
23
+ # - engines/atomicbook1.bin
24
+ # - engines/atomicbook2.bin
25
+ # etc.
26
+ # Use the same pattern for 'chess960', 'giveaway' (antichess), 'crazyhouse', 'horde', 'kingofthehill', 'racingkings' and '3check' as well.
27
+ min_weight: 1 # Does not select moves with weight below min_weight (min 0, max: 100 if normalization isn't "none" else 65535).
28
+ 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).
29
+ max_depth: 20 # How many moves from the start to take from the book.
30
+ normalization: "none" # Normalization method for the book weights. One of "none", "sum", or "max".
31
+
32
+ draw_or_resign:
33
+ resign_enabled: false # Whether or not the bot should resign.
34
+ resign_score: -1000 # If the score is less than or equal to this value, the bot resigns (in cp).
35
+ resign_for_egtb_minus_two: true # If true the bot will resign in positions where the online_egtb returns a wdl of -2.
36
+ resign_moves: 3 # How many moves in a row the score has to be below the resign value.
37
+ offer_draw_enabled: true # Whether or not the bot should offer/accept draw.
38
+ 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).
39
+ 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.
40
+ offer_draw_moves: 10 # How many moves in a row the absolute value of the score has to be below the draw value.
41
+ offer_draw_pieces: 10 # Only if the pieces on board are less than or equal to this value, the bot offers/accepts draw.
42
+
43
+ online_moves:
44
+ 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.
45
+ max_retries: 2 # The maximum amount of retries when getting an online move.
46
+ # max_depth: 10 # How many moves from the start to take from online books. Default is no limit.
47
+ chessdb_book:
48
+ enabled: false # Whether or not to use chessdb book.
49
+ min_time: 20 # Minimum time (in seconds) to use chessdb book.
50
+ max_time: 10800 # Maximum starting game time (in seconds) to use chessdb book.
51
+ move_quality: "good" # One of "all", "good", "best".
52
+ min_depth: 20 # Only for move_quality: "best".
53
+ lichess_cloud_analysis:
54
+ enabled: false # Whether or not to use lichess cloud analysis.
55
+ min_time: 20 # Minimum time (in seconds) the bot must have to use cloud analysis.
56
+ max_time: 10800 # Maximum starting game time (in seconds) the bot must have to use cloud analysis.
57
+ move_quality: "best" # One of "good", "best".
58
+ max_score_difference: 50 # Only for move_quality: "good". The maximum score difference (in cp) between the best move and the other moves.
59
+ min_depth: 20
60
+ min_knodes: 0
61
+ lichess_opening_explorer:
62
+ enabled: false
63
+ min_time: 20
64
+ max_time: 10800 # Maximum starting game time (in seconds) the bot must have to use the lichess opening explorer.
65
+ source: "masters" # One of "lichess", "masters", "player"
66
+ player_name: "" # The lichess username. Leave empty for the bot's username to be used. Used only when source is "player".
67
+ sort: "winrate" # One of "winrate", "games_played"
68
+ min_games: 10 # Minimum number of times a move must have been played to be chosen.
69
+ online_egtb:
70
+ enabled: false # Whether or not to enable online endgame tablebases.
71
+ min_time: 20 # Minimum time (in seconds) the bot must have to use online EGTBs.
72
+ max_time: 10800 # Maximum starting game time (in seconds) the bot must have to use online EGTBs.
73
+ max_pieces: 8 # Maximum number of pieces on the board to use endgame tablebases.
74
+ source: "lichess" # One of "lichess", "chessdb".
75
+ 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).
76
+
77
+ lichess_bot_tbs: # The tablebases list here will be read by lichess-bot, not the engine.
78
+ syzygy:
79
+ enabled: false # Whether or not to use local syzygy endgame tablebases.
80
+ paths: # Paths to Syzygy endgame tablebases.
81
+ - "engines/syzygy"
82
+ max_pieces: 7 # Maximum number of pieces in the endgame tablebase.
83
+ 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).
84
+ gaviota:
85
+ enabled: false # Whether or not to use local gaviota endgame tablebases.
86
+ paths:
87
+ - "engines/gaviota"
88
+ max_pieces: 5
89
+ min_dtm_to_consider_as_wdl_1: 120 # The minimum DTM to consider as syzygy WDL=1/-1. Set to 100 to disable.
90
+ 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).
91
+
92
+ # engine_options: # Any custom command line params to pass to the engine.
93
+ # cpuct: 3.1
94
+
95
+ homemade_options:
96
+ # Hash: 256
97
+
98
+ uci_options: # Arbitrary UCI options passed to the engine.
99
+ Move Overhead: 100 # Increase if your bot flags games too often.
100
+ Threads: 4 # Max CPU threads the engine can use.
101
+ Hash: 512 # Max memory (in megabytes) the engine can allocate.
102
+ SyzygyPath: "./syzygy/" # Paths to Syzygy endgame tablebases that the engine reads.
103
+ UCI_ShowWDL: true # Show the chance of the engine winning.
104
+ # go_commands: # Additional options to pass to the UCI go command.
105
+ # nodes: 1 # Search so many nodes only.
106
+ # depth: 5 # Search depth ply only.
107
+ # movetime: 1000 # Integer. Search exactly movetime milliseconds.
108
+
109
+ # xboard_options: # Arbitrary XBoard options passed to the engine.
110
+ # cores: "4"
111
+ # memory: "4096"
112
+ # egtpath: # Directory containing egtb (endgame tablabases), relative to this project. For 'xboard' engines.
113
+ # gaviota: "Gaviota path"
114
+ # nalimov: "Nalimov Path"
115
+ # scorpio: "Scorpio Path"
116
+ # syzygy: "Syzygy Path"
117
+ # go_commands: # Additional options to pass to the XBoard go command.
118
+ # depth: 5 # Search depth ply only.
119
+ # Do note that the go commands 'movetime' and 'nodes' are invalid and may cause bad time management for XBoard engines.
120
+
121
+ silence_stderr: false # Some engines (yes you, Leela) are very noisy.
122
+
123
+ abort_time: 30 # Time to abort a game in seconds when there is no activity.
124
+ fake_think_time: false # Artificially slow down the bot to pretend like it's thinking.
125
+ rate_limiting_delay: 0 # Time (in ms) to delay after sending a move to prevent "Too Many Requests" errors.
126
+ move_overhead: 2000 # Increase if your bot flags games too often.
127
+ max_takebacks_accepted: 0 # The number of times to allow an opponent to take back a move in a game.
128
+ 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.
129
+
130
+ correspondence:
131
+ move_time: 60 # Time in seconds to search in correspondence games.
132
+ checkin_period: 300 # How often to check for opponent moves in correspondence games after disconnecting.
133
+ disconnect_time: 150 # Time before disconnecting from a correspondence game.
134
+ ponder: false # Ponder in correspondence games the bot is connected to.
135
+
136
+ challenge: # Incoming challenges.
137
+ concurrency: 1 # Number of games to play simultaneously.
138
+ sort_by: "best" # Possible values: "best" and "first".
139
+ preference: "none" # Possible values: "none", "human", "bot".
140
+ accept_bot: true # Accepts challenges coming from other bots.
141
+ only_bot: false # Accept challenges by bots only.
142
+ max_increment: 20 # Maximum amount of increment to accept a challenge in seconds. The max is 180. Set to 0 for no increment.
143
+ min_increment: 0 # Minimum amount of increment to accept a challenge in seconds.
144
+ max_base: 1800 # Maximum amount of base time to accept a challenge in seconds. The max is 10800 (3 hours).
145
+ min_base: 0 # Minimum amount of base time to accept a challenge in seconds.
146
+ max_days: 14 # Maximum number of days per move to accept a challenge for a correspondence game.
147
+ # Unlimited games can be accepted by removing this field or specifying .inf
148
+ min_days: 1 # Minimum number of days per move to accept a challenge for a correspondence game.
149
+ variants: # Chess variants to accept (https://lichess.org/variant).
150
+ - standard
151
+ # - fromPosition
152
+ # - antichess
153
+ # - atomic
154
+ # - chess960
155
+ # - crazyhouse
156
+ # - horde
157
+ # - kingOfTheHill
158
+ # - racingKings
159
+ # - threeCheck
160
+ time_controls: # Time controls to accept (bots are not allowed to play ultraBullet).
161
+ - bullet
162
+ - blitz
163
+ - rapid
164
+ - classical
165
+ # - correspondence
166
+ modes: # Game modes to accept.
167
+ - casual # Unrated games.
168
+ - rated # Rated games - must comment if the engine doesn't try to win.
169
+ # block_list: # List of users from which the challenges are always declined.
170
+ # - user1
171
+ # - user2
172
+ # online_block_list: # The urls from which to retrieve a list of bot names that will not be challenged. The list should be a text file where each line contains the name of a blocked bot
173
+ # - example.com/blocklist
174
+ # allow_list: # List of users from which challenges are exclusively accepted, all others being declined. If empty, challenges from all users may be accepted.
175
+ # - user3
176
+ # - user4
177
+ # recent_bot_challenge_age: 60 # Maximum age of a bot challenge to be considered recent in seconds
178
+ # max_recent_bot_challenges: 2 # Maximum number of recent challenges that can be accepted from the same bot
179
+ # min_rating: 0 # Minimum rating of the challenger to accept a challenge.
180
+ # max_rating: 4000 # Maximum rating of the challenger to accept a challenge. The maximum rating in lichess is 4000.
181
+ # rating_difference: 300 # Maximum rating difference between the bot and the challenger. Overrides min_rating and max_rating if set.
182
+ bullet_requires_increment: false # Require that bullet game challenges from bots have a non-zero increment
183
+ max_simultaneous_games_per_user: 5 # Maximum number of simultaneous games with the same user
184
+
185
+ greeting:
186
+ # Optional substitution keywords (include curly braces):
187
+ # {opponent} to insert opponent's name
188
+ # {me} to insert bot's name
189
+ # Any other words in curly braces will be removed.
190
+ 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
191
+ goodbye: "Good game!" # Message to send to opponent chat at the end of a game
192
+ 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
193
+ goodbye_spectators: "Thanks for watching!" # Message to send to spectator chat at the end of a game
194
+
195
+ # pgn_directory: "game_records" # A directory where PGN-format records of the bot's games are kept
196
+ # pgn_file_grouping: "game" # How to group games into files. Options are "game", "opponent", and "all"
197
+ # "game" (default) - every game is written to a different file named "{White name} vs. {Black name} - {lichess game ID}.pgn"
198
+ # "opponent" - every game with a given opponent is written to a file named "{Bot name} games vs. {Opponent name}.pgn"
199
+ # "all" - every game is written to a single file named "{Bot name} games.pgn"
200
+
201
+ matchmaking:
202
+ allow_matchmaking: false # Set it to 'true' to challenge other bots.
203
+ allow_during_games: false # Set it to 'true' to create challenges during long games.
204
+ challenge_variant: "random" # If set to 'random', the bot will choose one variant from the variants enabled in 'challenge.variants'.
205
+ challenge_timeout: 30 # Create a challenge after being idle for 'challenge_timeout' minutes. The minimum is 1 minute.
206
+ challenge_initial_time: # Initial time in seconds of the challenge (to be chosen at random).
207
+ - 60
208
+ - 180
209
+ challenge_increment: # Increment in seconds of the challenge (to be chosen at random).
210
+ - 1
211
+ - 2
212
+ # challenge_days: # Days for correspondence challenge (to be chosen at random).
213
+ # - 1
214
+ # - 2
215
+ # opponent_min_rating: 600 # Opponents rating should be above this value (600 is the minimum rating in lichess).
216
+ # opponent_max_rating: 4000 # Opponents rating should be below this value (4000 is the maximum rating in lichess).
217
+ opponent_rating_difference: 300 # The maximum difference in rating between the bot's rating and opponent's rating.
218
+ rating_preference: "none" # One of "none", "high", "low".
219
+ challenge_mode: "random" # Set it to the mode in which challenges are sent. Possible options are 'casual', 'rated' and 'random'.
220
+ 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'.
221
+ # block_list: # The list of bots that will not be challenged
222
+ # - user1
223
+ # - user2
224
+ # online_block_list: # The urls from which to retrieve a list of bot names that will not be challenged. The list should be a text file where each line contains the name of a blocked bot
225
+ # - example.com/blocklist
226
+ include_challenge_block_list: false # Do not challenge bots in the challenge: block_list in addition to the matchmaking block list.
227
+
228
+ # 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.
229
+ # 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).
230
+ # 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.
231
+ # challenge_initial_time:
232
+ # - 1
233
+ # - 2
234
+ # challenge_increment:
235
+ # - 0
236
+ # - 1
237
+ #
238
+ # easy_chess960:
239
+ # challenge_variant: "chess960"
240
+ # opponent_min_rating: 400
241
+ # opponent_max_rating: 1200
242
+ # opponent_rating_difference:
243
+ # challenge_mode: casual
244
+ #
245
+ # no_pressure_correspondence:
246
+ # challenge_initial_time:
247
+ # challenge_increment:
248
+ # challenge_days:
249
+ # - 2
250
+ # - 3
251
+ # challenge_mode: casual
252
+ #
253
+ # The following configurations cannot be overridden: allow_matchmaking, challenge_timeout, challenge_filter and block_list.