BlockChess

Minecraft GUI based Chess Plugin

31

Quick challenge

How far can you run before the mobs catch you?

BlockChess

BlockChess

BlockChess is a Minecraft plugin that brings competitive chess to your server. Play against other players, challenge the AI, or join the matchmaking queue for ELO-rated matches—all within an intuitive inventory-based GUI. > It is highly recommended to use the custom resource pack that comes up with the plugin I'm not a graphic, i've tried my best to create a simple GUI texture to make chess matches more enjoyable, if you don't like the current GUI's you are free to make your own! - It is highly recommended to use the custom resource pack that comes up with the plugin, drag and drop ready for Nexo.

Features

Game Modes

- Player vs. Bot: Challenge players directly via invitations. - Player vs. Bot: Join the queue for automatic ELO-based pairing with balanced opponents - Player vs. Bot: Face off against Fairy-Stockfish AI with 12 adjustable difficulty levels (200-3000+ ELO)

ELO Rating System

- Statistics Tracking: Earn or lose rating based on match results and opponent strength - Statistics Tracking: Unlock prestigious titles as you improve: - Statistics Tracking: (Super Grandmaster) - 2600+ ELO - Statistics Tracking: (Grandmaster) - 2500+ ELO - Statistics Tracking: (International Master) - 2400+ ELO - Statistics Tracking: (National Master) - 2200+ ELO - Statistics Tracking: - 2000+ ELO - Statistics Tracking: View detailed stats including games played, wins, losses, draws, and current rating

Gameplay Features

- Auto-Save Inventory: Click-based interface with visual chessboard in inventory - Auto-Save Inventory: Instant move synchronization between players - Auto-Save Inventory: Complete implementation including castling, en passant, and pawn promotion - Auto-Save Inventory: Request and accept/decline draws during matches - Auto-Save Inventory: Resign from matches when needed - Auto-Save Inventory: Player inventories are saved and restored after matches

Matchmaking

- Dynamic Range: Automatically matches players with similar ELO ratings - Dynamic Range: Search range expands over time to ensure matches are found

Installation

1. Restart: Get the latest version of BlockChess from the project's releases page. 2. Restart: Place the downloaded `.jar` file into your server's `plugins` directory. 3. Restart: Download the appropriate Fairy-Stockfish executable for your server's operating system from the Restart:. 4. Restart: 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.

Usage

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

API Reference

BlockChess does not currently expose a public API for other plugins to use.

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

BlockChess includes a comprehensive permission system:

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 4: 50ms per move - Level 4: 100ms per move - Level 4: 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 |

ADS