I. What is Fairy-Stockfish?
Fairy-Stockfish is a chess variant engine derived from Stockfish designed for the support of fairy chess variants and easy extensibility with more games. It can play various regional, historical, and modern chess variants as well as games with user-defined rules.
The goal of Fairy-Stockfish is to create an engine supporting a large variety of chess-like games, equipped with the powerful search of Stockfish.
In Chess.com, Custom Games Admins (CGAs) often use Fairy-Stockfish to evaluate 2-player New Custom Variants (NCVs).
II. How to use Fairy-Stockfish
You can play it online on https://fairyground.vercel.app. For analysis purpose, use it online on https://fairyground.vercel.app/advanced.html.
To analyze a custom position, first import that custom position's .ini file. If you don't have one, create it yourself.
1. How to create .ini file
.ini files are required elements to be able to analyze custom positions. .ini files are composed of 2 parts: Variant name, and Rule configurations
a) Variant name
Variant name is specified as a section in square brackets, followed by its rule configurations.
Eg: [Minihouse], [Rookmate], ...
b) Rule configurations
Rule configurations are the most important element in a .ini file. It is a set of rule definition and additional options, and can be divided into 3 parts:
Board and pieces: set the number of files (maxFile), ranks (maxRank), mapping of piece characters to images (pieceToCharTable), pieces' movement.
Rules definition options: the main part of Rule configurations, including promotions, dropping, explosion on capture, double step, triple step, en peasant, castling, check allowance, giveaway, enclosure, walls, gating, passing, stalemate rules, n-move rules, King of the Hill, etc.
Setup: set the starting position (startFen)
You can use almost anything to create .ini files, as long as the files are in .ini type. I normally use Replit to create .ini files myself.
Eg: Some of my .ini files (find it inside these 2 links)
https://replit.com/@chessfan725/Python#main.py
https://replit.com/@CheLiu4/Variants#main.py
Learn more at: https://github.com/fairy-stockfish/Fairy-Stockfish/blob/master/src/variants.ini
After importing custom position's .ini file, choose your position from VARIANT. To analyze the position, tick the box at the left of Analyse, then click Go.
2. Evaluation results
Evaluation results of a position is the line of result after Fairy-Stockfish analyzed that position. It is composed of many parts, but these 3 are important to know:
Depth: the depth number that Fairy-Stockfish analyzed. The more the number, the better.
Score: the evaluation score, using centipawn as a unit. Note that if the score is positive, that means the player that is having the move has an advantage.
Pv: the sequence of best moves in the position, the more the depth, the more accurate the sequence.
Learn more at: https://www.chessprogramming.org/Depth, https://www.chessprogramming.org/Score, and https://www.chessprogramming.org/Principal_Variation
Now that's everything you need to know about Fairy-Stockfish. Learn more at: https://fairy-stockfish.github.io/ and https://www.chessprogramming.org
Thanks for reading.