Installation
1.
Download: Get the latest version of BlockChess from the project's releases page.
2.
Install: Place the downloaded `.jar` file into your server's `plugins` directory.
3.
Stockfish: Download the appropriate Fairy-Stockfish executable for your server's operating system from the
Fairy-Stockfish releases page.
4.
Configure: Place the Stockfish executable in the `plugins/BlockChess` directory and ensure the `engine.path` in the `config.yml` file is set correctly.
5.
Restart: Restart your server to enable the plugin.
Commands
General Commands:
- `/chess` - Open the main chess menu GUI
- `/chess info <player>` - View a player's chess statistics and rating
Player vs Player:
- /chess invite <player> - Invite a player to a chess match
- /chess accept <player> - Accept a chess match invitation
- /chess decline <player> - Decline a chess match invitation
Matchmaking:
- /chess leavequeue - Leave the matchmaking queue
Player vs Bot:
- /chess bot <1-12> - Start a match against the AI (difficulty 1-12)
Admin Commands:
- /chess admin elo set <player> <amount> - Set a player's ELO rating
- /chess admin elo add <player> <amount> - Add ELO to a player's rating
- /chess admin elo remove <player> <amount> - Remove ELO from a player's rating
Configuration
The
config.yml file allows you to configure the following options:
- resourcepack.enabled - (Default: `true`) Enable or disable the custom resource pack for chess pieces
- engine.path - (Default: `plugins/BlockChess/stockfish.exe`) Path to the Fairy-Stockfish executable
- bot_gamemode.enabled - (Default: `true`) Enable or disable the bot gamemode feature
Permissions
Player Permissions (default: true):
- blockchess.use - Open the main chess GUI
- blockchess.info - View player statistics
- blockchess.invite - Invite players to matches
- blockchess.accept - Accept match invitations
- blockchess.decline - Decline match invitations
- blockchess.bot - Play against the AI
- blockchess.leavequeue - Leave matchmaking queue
Admin Permissions (default: op):
- blockchess.admin - Access to all admin commands
- blockchess.admin.elo.set - Set player ELO ratings
- blockchess.admin.elo.add - Add ELO to players
- blockchess.admin.elo.remove - Remove ELO from players
- blockchess.* - All BlockChess permissions
Engine Communication
BlockChess communicates with the chess engine using the Universal Chess Interface (UCI) protocol. This allows the plugin to be compatible with any UCI-compliant chess engine, including the recommended Fairy-Stockfish.
Engine Strength
The bot's strength can be set from level 1 to 12. The simulation of strength is achieved through a combination of UCI parameters, including ELO rating and move time limits.
For levels 1 through 4, the engine's thinking time is artificially limited to simulate a weaker opponent:
- Level 1: 50ms per move
- Level 2: 100ms per move
- Level 3: 150ms per move
- Level 4: 200ms per move
For levels 5 and above, the engine uses the standard game timers (wtime and btime) to manage its thinking time, resulting in stronger play.
Additionally, for levels 1 through 11, the engine's strength is limited by setting the UCI_LimitStrength option to true and providing a specific ELO value. For level 12, UCI_LimitStrength is set to false, allowing the engine to play at its maximum potential.
Here is a breakdown of the ELO rating for each level:
| Level | ELO Rating |
|-------|------------|
| 1 | 200 |
| 2 | 500 |
| 3 | 820 |
| 4 | 1060 |
| 5 | 1350 |
| 6 | 1600 |
| 7 | 1900 |
| 8 | 2200 |
| 9 | 2500 |
| 10 | 2800 |
| 11 | 3050 |
| 12 | Max |