StackWorks — Classic Chess Help & Rules
Classic Chess uses standard chess movement and check rules:
check, checkmate, stalemate, castling,
en passant, and promotion.
Table of Contents
Rules Overview
Movement (Chess)
-
Pieces move like chess: King, Queen, Rook, Bishop, Knight, Pawn.
-
Check rules apply: you may not make a move that leaves your
king in check.
-
Castling and en passant exist when allowed by the current state.
- Promotion happens on reaching the final rank.
Repetition & Draws (Chess-style)
-
Threefold repetition (claimable draw): if the same position
occurs at least 3 times, the player to move may claim a draw.
-
Fivefold repetition (automatic draw): if the same position
occurs at least 5 times, the game is drawn automatically.
Movement & Check
Select a piece to see legal destinations. Legal moves are highlighted.
Check reminder: A move is illegal if it leaves your king in
check.
Special Moves
Castling
-
Castling is a king move of two squares on the home rank; the rook
moves to the square next to the king.
- You cannot castle out of, through, or into check.
En Passant
-
When a pawn advances two squares, it may be captured en passant on
the immediately following move.
Promotion
- When a pawn reaches the final rank, it is promoted.
Repetition & Draws
Repetition is based on repeating the same position, not repeating
the same moves.
The same position means: same player to move, same piece placement, and
the same relevant rights (castling rights and en passant state).
Using the Interface
- Undo/Redo are available in Option Actions.
- Flip board rotates the board 180°.
- Coordinates toggles file/rank labels.
-
Layout (Options → Layout) switches between
Panels (sidebars) and Menu (tap ☰ to open panel
sections as dialogs).
-
Evaluation (right panel → Evaluation) can show
Engine Eval (Stockfish), Material,
Mobility, Center, or Threats.
-
In Engine Eval mode, enable Show on board to display the
vertical eval bar beside the board.
-
Engine Eval also shows a move-by-move evaluation graph for the
current line. The graph follows the whole game, including terminal
mate/draw positions, and you can click it to jump to a position in
Move History.
-
Inside squares draws coordinates on the board itself: lowercase
file letters in the bottom row (lower-right of each square) and rank
numbers in the left column (upper-left of each square). The label
color uses the opposite square’s base color for contrast.
-
Board theme changes the checkerboard background
(Classic/Green/Blue/Stone/Burled Wood/Candy).
- Theme changes the piece style (2D/3D/Neo/Candy).
-
Save/Load lets you export or restore a game state. After
loading a Chess save, playback returns to Start so you can run
forward from the beginning of the saved line.
Keyboard shortcuts
Shortcuts use Ctrl (Windows/Linux) or Cmd
(macOS). Shortcuts are disabled while typing in a text field.
- Undo:
Ctrl/Cmd+Z
-
Redo:
Ctrl/Cmd+Y or Ctrl/Cmd+Shift+Z
- Save:
Ctrl/Cmd+S
- Toggle analysis:
Ctrl/Cmd+Shift+A
- Resign:
Ctrl/Cmd+Shift+X
-
Full Screen:
Ctrl/Cmd+Shift+F (or the Full Screen
button)
- Toggle layout:
Ctrl/Cmd+Shift+L
- Toggle toast messages:
Ctrl/Cmd+Alt+T
-
Playback play/pause:
Space (during playback)
-
Bot pause/resume:
Space (during live play when a
bot is enabled and playback is not active)
-
Bot speed:
Alt+↑/Alt+↓ (when the bot
speed control is available)
-
Playback speed:
Alt+Shift+↑/Alt+Shift+↓
-
Show keyboard shortcuts:
Ctrl/Cmd+Shift+? (also
works as Ctrl/Cmd+Shift+/)
-
Right-click menu: Right-click outside the board →
Show Keyboard Shortcuts
Analysis mode (private sandbox)
-
Toggle via the Analysis button or
Ctrl/Cmd+Shift+A.
-
In online rooms, moves made in Analysis mode are local-only and
are not submitted to the server.
-
Your opponent does not see your Analysis mode or analysis moves.
-
AI/bots are paused while analysis is enabled, and restored when you
exit.
-
Move any piece freely: Both sides' pieces are selectable—click
a piece of either color to move it using legal moves. The evaluation
panel stays live so you can assess each hypothetical position.
- Leaving Analysis returns you to the live game state.
Board visualization (arrows & highlights)
-
Draw arrows (desktop): Right-click and drag from one square to
another.
-
Knight arrows: If the drag is a knight move (2×1), the arrow
draws as a 90° “L” shape.
-
Highlight squares (desktop): Right-click a square (default, or
press
S).
-
Circle highlight: Press
C while / after
right-clicking.
-
Push pin: Press
N while / after right-clicking.
-
Protect: Press
P while / after right-clicking.
-
Number labels: Press
0-9, then
right-click a square.
-
Remove: Press
X on desktop to arm selective erase,
then right-click a square — removes number first, then pin/protect,
then square/circle.
-
Colors (desktop): Orange (default), Shift = Green, Ctrl = Red,
Alt = Blue.
-
Clear all annotations:
Alt+X (works even on
layouts where Alt changes the typed character).
Move Preview
In-game move previews are controlled via
left panel → Options → Move preview. This single selector
replaces the older split between preview hints and square-highlighting.
Use it to switch between Off, Classic,
Classic squares, and Modern, which emphasizes the selected
square and shows empty destinations as dots and occupied capture targets
as rings.
When Move preview is set to Off, the separate
Selection option lets you keep a Classic ring,
Classic square, or Modern selected-square highlight.
Touch / tablet (Analysis mode): On touch devices, a small swatch
palette appears below the board while Analysis is enabled.
-
Pick color: Tap a color swatch (Orange/Green/Red/Blue) to set
the annotation color.
- Draw arrows: Touch and drag from one square to another.
-
Play moves: Tap the Play type button, then tap squares
to move pieces. (Turning on Play disables Erase.)
-
Place annotation: Tap a type button (Square / Circle / Pin /
Protect / 0-9) then tap a square.
-
Remove annotation: Tap the Erase button then tap a
square; or tap the Remove type button (X) then tap a square —
removes number first, then pin/protect, then square/circle.
-
Clear all: Tap the Clear swatch (black square with a red
X).
PGN Import & Export
You can import/export games using PGN (Portable Game Notation).
This is useful for sharing games with other chess tools or importing a
game from elsewhere.
Import (Paste or Upload)
-
Open Option Actions and choose Import PGN (paste) or
upload a
.pgn/.txt file.
-
Import rebuilds the game from the standard starting position and
populates the Move History.
Note: PGN import is offline-only for now. In online
rooms, the server is authoritative and imported moves are blocked.
Warning: If a game is already in progress, clicking either
Import PGN button will show a confirmation prompt before proceeding.
The current game will be lost once you confirm.
Export (Current Line)
-
Export PGN exports the game up to the
currently selected
position in Move History.
-
If you've jumped back in history, exporting will export that line
(not necessarily the full game).
-
Games ended by resignation are exported correctly — the resignation
is recorded in the PGN result header and does not appear as a
phantom move.
-
Filenames: Chess PGN exports and Chess JSON saves use the
same filename format; only the extension differs (
.pgn
vs .json).
-
If a bot is playing a color, that color name is used in the filename
for that side (white or black). If a human player has
no name set, human is used.
-
The Include move times checkbox applies to both
Save Game and Export PGN. When enabled, JSON saves
keep recorded move times and PGN exports include
[%emt]
comments; when disabled, both exports omit move timing.
-
The Include engine evals checkbox applies to
Export PGN. When enabled, exported PGNs include cached engine
comments as
[%eval]. When importing a PGN that already
contains [%eval] comments, the evaluation panel and
graph replay those embedded values first and only fall back to
Stockfish for positions that do not have them.
FEN Copy/Share
FEN (Forsyth–Edwards Notation) is a compact string that describes a
single chess position.
Copy FEN from any move: Right-click any Move History entry and
choose Copy FEN. This copies the FEN for that exact position to
your clipboard.
You can paste the FEN into chess analysis tools, share it with a friend,
or use it to report/debug a position.
Players (Optional)
Classic Chess supports optional bot opponents. Open
Game Panel → Players. For each side, first choose Human or
Bot. If you choose Bot, a second dropdown lets you pick a
tier (Beginner / Intermediate / Advanced /
Master).
-
Speed uses a slider (milliseconds). The current value is shown
as an ms readout.
- Use the ↺ button to reset speed to the default.
Warmup note: The first time Stockfish loads, it may take a while
(WASM compile/download). The UI will show a warmup message while it
initializes.
Pause/resume: When the bot is paused on its turn, an on-screen
toast appears (for example:
“White’s turn. Tap here ore press spacebar to resume bot”). Tap
the toast itself to resume.
Playback timing: If Use recorded move times is checked in
Playback, the fixed playback speed slider is disabled and replay uses
the saved per-move timing instead.
Local engine option: If in-browser Stockfish doesn’t work well on
your device, you can run the local Stockfish HTTP server and configure
the web app with VITE_STOCKFISH_SERVER_URL.
Notation
The move list uses a simple square-to-square notation, using
→ for moves and × for captures.
Back to Game