documentation of de facto standards for chess variants
+
, e.g., +p
for a tokin.~
if the promotion status is relevant for the game, e.g., for crazyhouse since promoted pawns demote on capture when going to the opponent’s hand. In games where promoted pawns are commonly differentiated for displaying purposes, like makruk, this information can optionally be provided but the receiving side may discard it.rnabqkbcnr/pppppppppp/10/10/10/10/PPPPPPPPPP/RNABQKBCNR w KQkq - 0 1
.[]
, e.g., rnbqkb1r/ppp2ppp/5p2/3p4/8/8/PPPP1PPP/RNBQKBNR[Np] w KQkq - 0 4
. It is common to list the hand pieces in inverse order of value, but the order is not defined per specification. The notation for pieces in hand applies to S-Chess style gating pieces as well.
/
instead of square brackets to separate the hand pieces from the board pieces, e.g., rnbqkb1r/ppp2ppp/5p2/3p4/8/8/PPPP1PPP/RNBQKBNR/Np w KQkq - 0 4
. It is recommended to support this non-standard notation as input, but it is discouraged to follow this when outputting FENs.*
for wall squares that are neither accessible nor traversable by hoppers/sliders. This may, e.g., be used to represent non-rectangular boards._
for hole squares that are not accessible but traversable by sliders/hoppers.The color field is denoted as w
or b
as for standard chess FENs.
In chess variants the FEN castling field retains its original role, but might be extendend with additional information.
rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR[HEhe] w KQBCDFGkqbcdfg - 0 1
.
A
castling right in contrast to normal Chess960 doesn’t refer to a castling right but only to gating, and only if, e.g., AE
is present it means that both the rook and king are unmoved, so castling is possible as well. Therefore castling is encoded as the combination of a king and rook gating right.The en passant field can naturally be generalized by using the respective crossed square of any pawn double step, irrespective of its rank. Note that in the CECP/xboard protocol, for FENs of variants with 10 ranks the en passant square uses a zero-based rank counting, just like the moves. For berolina pawns the en passant field contains both the crossed square and the target square of the berolina double step, e.g., e3d4
, in order to disambiguate between two pawns that might both have crossed the same square via a double step, e.g., moves f2-d4 and d2-f4 for the e3 square.
For variants with endgame counting rules and where there is no en passant, such as Makruk, the en passant field is instead used in order to specify the counting limit in ply, e.g., 128
for 64 moves. In case no counting rule is active the field is 0
or -
.
Usually after the en passant field follows the halfmove clock. However, for variants with check counting, such as 3check, the check counts are an additional field inbetween. This does not apply for variants where the first check wins, since the counts are the same for all non-final positions. In order to be able to represent arbitrary check counting variants, the check counting field specifies the number of remaining checks for the winning condition, separated by a +
, e.g., rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 3+3 0 1
for the 3check starting position.
Note that lichess uses a different format incompatible with this standard. Instead of adding the remaining checks, it specifies the count of given checks for each side after a +
. E.g., the 3check starting position looks like rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1 +0+0
. Therefore it is recommended to support this non-standard notation as input, but it is discouraged to follow this when outputting FENs.
For variants with endgame counting rules, such as Makruk, the halfmove clock is used to specify the current count in ply. In case no counting rule is active the field specifies the usual halfmove clock as for all other variants.
The fullmove clock is the same as for standard chess FENs.