Skip to content

Latest commit

 

History

25 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Chess

Complete timed chess matches in Minecraft's native Paper dialog UI

Build verification Discord community GitHub issues

Chess turns Paper's native dialog system into a live, clickable 8x8 board. Players can challenge each other, choose a time control, and play a complete match without inventory menus, physical boards, or extra runtime dependencies.

Features

  • A native Paper dialog with 64 individually clickable squares.
  • Legal-move, selected-square, last-move, and check highlighting.
  • Castling, en passant, promotion, checkmate, stalemate, and insufficient-material draws.
  • Seventeen clock presets, including increment modes from 1|1 through 15|10.
  • Player-relative board orientation plus an in-game flip control.
  • Live clocks, captured-piece displays, draw offers, and resign confirmation.
  • A bundled board resource pack with automatic ResourcePackManager integration.
  • A pack-free Unicode fallback when ui.dialog.use-glyphs is disabled.
  • Configurable sounds, dialog labels, player messages, request expiry, and UI behavior.
  • Folia-safe scheduling for commands, game state, clocks, dialogs, and pack delivery.

The board in action

A timed Chess match in Minecraft's native dialog UI

Requirements

  • Java 21.
  • Paper 1.21.11, or Folia based on the same API.
  • Clients must accept the resource pack for the textured board. A Unicode fallback is available.

Chess uses Paper's native Dialog API and therefore does not run on a standard Spigot server. ResourcePackManager is optional; the chess engine and resource pack are bundled into Chess.jar.

Installation

  1. Download Chess.jar and place it in the server's plugins directory.
  2. Start or restart the server once to generate plugins/Chess/settings.yml, messages.yml, and resourcepack.zip.
  3. Configure resource-pack delivery:
    • With ResourcePackManager installed, Chess registers its bundled pack automatically.
    • Without it, host plugins/Chess/resourcepack.zip and set its public URL at resource-pack.url in settings.yml.
    • To manage or merge the pack yourself, set resource-pack.use-resourcepack to false.
  4. Restart after changing configuration files.

Commands

Command Description
/chess duel <player> <time> Send a timed duel request.
/chess accept <player> Accept that player's request and open the board.
/chess decline <player> Decline that player's request.
/chess open Reopen the board for your active game.
/chess help Show the command reference in game.

The time argument is minutes, optionally followed by a | and increment seconds. Available modes are 1, 1|1, 2|1, 3, 3|2, 5, 5|2, 5|5, 10, 10|5, 15|10, 30, 60, 120, 180, 240, and 300. Tab completion lists every valid mode.

There are no permission nodes in version 1.0.0; every player can use /chess.

Configuration

  • settings.yml controls duel expiry, draw and resign timing, sounds, board rendering, and resource-pack delivery.
  • messages.yml contains player-facing chat messages and MiniMessage dialog labels.

The board can follow each player's color, show or hide coordinates, legal moves, last moves, captured pieces, and clocks, and use textured glyphs or standard Unicode pieces.

Easter eggs

Set easter-egg.enable-vertical-castling: true in settings.yml to allow vertical castling (the Pam-Krabbé castling). Promote a pawn to a rook on your king's own file and the king may castle with it straight up the board — it moves two squares towards the rook and the rook lands on the square the king crossed, so white Ke1 with a promoted rook on e8 becomes Ke3, Re2. Every normal castling restriction still applies: the king must not have moved, the file between them must be empty, and the king may not castle out of, through, or into check. Off by default.

Building

Chess uses Java 21 and Gradle. The rules engine is part of this repository, so there is nothing else to fetch or install.

git clone https://github.com/castledking/Chess.git
cd Chess
gradle clean build

The publishable shaded artifact is build/libs/Chess.jar.

Support

About

No description, website, or topics provided.

Resources

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages