Next: , Up: Options

4.1 Chess Engine Options

-tc or -timeControl minutes[:seconds]
Each player begins with his clock set to the timeControl period. Default: 5 minutes. The additional options movesPerSession and timeIncrement are mutually exclusive.
-mps or -movesPerSession moves
When both players have made movesPerSession moves, a new timeControl period is added to both clocks. Default: 40 moves.
-inc or -timeIncrement seconds
If this option is specified, movesPerSession is ignored. Instead, after each player's move, timeIncrement seconds are added to his clock. Use ‘-inc 0’ if you want to require the entire game to be played in one timeControl period, with no increment. Default: -1, which specifies movesPerSession mode.
-clock/-xclock or -clockMode true/false
Determines whether or not to display the chess clocks. If clockMode is false, the clocks are not shown, but the side that is to play next is still highlighted. Also, unless searchTime is set, the chess engine still keeps track of the clock time and uses it to determine how fast to make its moves.
-st or -searchTime minutes[:seconds]
Tells the chess engine to spend at most the given amount of time searching for each of its moves. Without this option, the chess engine chooses its search time based on the number of moves and amount of time remaining until the next time control. Setting this option also sets clockMode to false.
-depth or -searchDepth number
Tells the chess engine to look ahead at most the given number of moves when searching for a move to make. Without this option, the chess engine chooses its search depth based on the number of moves and amount of time remaining until the next time control. With the option, the engine will cut off its search early if it reaches the specified depth.
-firstNPS number
-secondNPS number
Tells the chess engine to use an internal time standard based on its node count, rather then wall-clock time, to make its timing decisions. The time in virtual seconds should be obtained by dividing the node count through the given number, like the number was a rate in nodes per second. Xboard will manage the clocks in accordance with this, relying on the number of nodes reported by the engine in its thinking output. If the given number equals zero, it can obviously not be used to convert nodes to seconds, and the time reported by the engine is used to decrement the XBoard clock in stead. The engine is supposed to report in CPU time it uses, rather than wall-clock time, in this mode. This option can provide fairer conditions for engine-engine matches on heavily loaded machines, or with very fast games (where the wall clock is too inaccurate). showThinking must be on for this option to work. Default: -1 (off). Not many engines might support this yet!
-firstTimeOdds factor
-secondTimeOdds factor
Reduces the time given to the mentioned engine by the given factor. If pondering is off, the effect is indistinguishable from what would happen if the engine was running on an n-times slower machine. Default: 1.
-timeOddsMode mode
This option determines how the case is handled where both engines have a time-odds handicap. If mode=1, the engine that gets the most time will always get the nominal time, as specified by the time-control options, and its opponent's time is renormalized accordingly. If mode=0, both play with reduced time. Default: 0.
-hideThinkingFromHuman true/false
Controls the Hide Thinking option. See Options Menu. Default: true. (Replaces the Show-Thinking option of older xboard versions.)
-thinking/-xthinking or -showThinking true/false
Forces the engine to send thinking output to xboard. Used to be the only way to control if thinking output was displayed in older xboard versions, but as the thinking output in xboard 4.3 is also used for several other purposes (adjudication, storing in PGN file) the display of it is now controlled by the new option Hide Thinking. See Options Menu. Default: false. (But if xboard needs the thinking output for some purpose, it makes the engine send it despite the setting of this option.)
-ponder/-xponder or -ponderNextMove true/false
Sets the Ponder Next Move menu option. See Options Menu. Default: true.
-smpCores number
Specifies the maximum number of CPUs an SMP engine is allowed to use. Only works for engines that support the XBoard/WinBoard-protocol cores feature.
-mg or -matchGames n
Automatically runs an n-game match between two chess engines, with alternating colors. If the loadGameFile or loadPositionFile option is set, XBoard starts each game with the given opening moves or the given position; otherwise, the games start with the standard initial chess position. If the saveGameFile option is set, a move record for the match is appended to the specified file. If the savePositionFile option is set, the final position reached in each game of the match is appended to the specified file. When the match is over, XBoard displays the match score and exits. Default: 0 (do not run a match).
-mm/-xmm or -matchMode true/false
Setting matchMode to true is equivalent to setting matchGames to 1.
-sameColorGames n
Automatically runs an n-game match between two chess engines, without alternating colors. Otherwise the same applies as for the ‘-matchGames’ option, over which it takes precedence if both are specified. (See there.) Default: 0 (do not run a match).
-fcp or -firstChessProgram program
Name of first chess engine. Default: Fairy-Max.
-scp or -secondChessProgram program
Name of second chess engine, if needed. A second chess engine is started only in Two Machines (match) mode. Default: Fairy-Max.
-fe or -firstEngine nickname
This is an alternative to the fcp option for specifying the first engine, for engines that were already configured (using the ‘Load Engine’ dialog) in XBoard's settings file. It will not only retrieve the real name of the engine, but also all options configured with it. (E.g. if it is UCI, whether it should use book.)
-se or -secondEngine nickname
As fe, but for the second engine.
-fb/-xfb or -firstPlaysBlack true/false
In games between two chess engines, firstChessProgram normally plays white. If this option is true, firstChessProgram plays black. In a multi-game match, this option affects the colors only for the first game; they still alternate in subsequent games.
-fh or -firstHost host
-sh or -secondHost host
Hosts on which the chess engines are to run. The default for each is localhost. If you specify another host, XBoard uses rsh to run the chess engine there. (You can substitute a different remote shell program for rsh using the remoteShell option described below.)
-fd or -firstDirectory dir
-sd or -secondDirectory dir
Working directories in which the chess engines are to be run. The default is "", which means to run the chess engine in the same working directory as XBoard itself. (See the CHESSDIR environment variable.) This option is effective only when the chess engine is being run on the local host; it does not work if the engine is run remotely using the -fh or -sh option.
-initString string or -firstInitString
-secondInitString string
The string that is sent to initialize each chess engine for a new game. Default:

Setting this option from the command line is tricky, because you must type in real newline characters, including one at the very end. In most shells you can do this by entering a ‘\’ character followed by a newline. Using the character sequence ‘\n’ in the string should work too, though.

If you change this option, don't remove the ‘new’ command; it is required by all chess engines to start a new game.

You can remove the ‘random’ command if you like; including it causes GNU Chess 4 to randomize its move selection slightly so that it doesn't play the same moves in every game. Even without ‘random’, GNU Chess 4 randomizes its choice of moves from its opening book. Many other chess engines ignore this command entirely and always (or never) randomize.

You can also try adding other commands to the initString; see the documentation of the chess engine you are using for details.

-firstComputerString string
-secondComputerString string
The string that is sent to the chess engine if its opponent is another computer chess engine. The default is ‘computer\n’. Probably the only useful alternative is the empty string (‘’), which keeps the engine from knowing that it is playing another computer.
-reuse/-xreuse or -reuseFirst true/false
-reuse2/-xreuse2 or -reuseSecond true/false
If the option is false, XBoard kills off the chess engine after every game and starts it again for the next game. If the option is true (the default), XBoard starts the chess engine only once and uses it repeatedly to play multiple games. Some old chess engines may not work properly when reuse is turned on, but otherwise games will start faster if it is left on.
-firstProtocolVersion version-number
-secondProtocolVersion version-number
This option specifies which version of the chess engine communication protocol to use. By default, version-number is 2. In version 1, the "protover" command is not sent to the engine; since version 1 is a subset of version 2, nothing else changes. Other values for version-number are not supported.
-firstScoreAbs true/false
-secondScoreAbs true/false
If this option is set, the score reported by the engine is taken to be that in favor of white, even when the engine plays black. Important when XBoard uses the score for adjudications, or in PGN reporting.
-niceEngines priority
This option allows you to lower the priority of the engine processes, so that the generally insatiable hunger for CPU time of chess engines does not interfere so much with smooth operation of XBoard (or the rest of your system). Negative values could increase the engine priority, which is not recommended.
-firstOptions string
-secondOptions string
The given string is a comma-separated list of (option name=option value) pairs, like the following example: "style=Karpov,blunder rate=0". If an option announced by the engine at startup through the feature commands of the XBoard/WinBoard protocol matches one of the option names (i.e. "style" or "blunder rate"), it would be set to the given value (i.e. "Karpov" or 0) through a corresponding option command to the engine. This provided that the type of the value (text or numeric) matches as well.
-firstNeedsNoncompliantFEN string
-secondNeedsNoncompliantFEN string
The castling rights and e.p. fields of the FEN sent to the mentioned engine with the setboard command will be replaced by the given string. This can for instance be used to run engines that do not understand Chess960 FENs in variant fischerandom, to make them at least understand the opening position, through setting the string to "KQkq -". (Note you also have to give the e.p. field!) Other possible applications are to provide work-arounds for engines that want to see castling and e.p. fields in variants that do not have castling or e.p. (shatranj, courier, xiangqi, shogi) so that XBoard would normally omit them (string = "- -"), or to add variant-specific fields that are not yet supported by XBoard (e.g. to indicate the number of checks in 3check).
Forces shuffling of the opening setup in variants that normally have a fixed initial position. Shufflings are symmetric for black and white, and exempt King and Rooks in variants with normal castling. Remains in force until a new variant is selected.