Peak Chess Documentation
Welcome to the official documentation for Peak Chess, a standalone FiveM chess resource with PvP tables, AI games, spectator support, optional wagers, and a React/Vite NUI.
Overview
Peak Chess is designed to run with no mandatory framework, target system, database, or peak-bridge dependency. Standalone no-wager chess works by default. If peak-bridge, ESX, QBCore, or Qbox is present, the resource can use those integrations for identity, notifications, and money.
The only required asset for the full 3D table experience is the bzzz_chess prop pack.
Key Features
- Standalone PvP chess tables
- AI opponents with configurable easy, medium, and hard levels
- Spectator HUD for active matches
- Legal move validation, check, checkmate, stalemate, promotion, and resignation
- Optional wagers with server-side economy validation
- Optional
peak-bridgesupport - ESX, QBCore, and Qbox fallback wrappers
- Dependency-free
drawtextinteraction by default - Optional
ox_target,qb-target, andvar-interactsupport - React + Vite NUI with lobby, setup, HUD, promotion, and result states
- No
backdrop-filter,backdrop-blur, or blur overlay dependency in the chess UI
Installation
1. Resource Placement
Place the folder in your server resources as:
textresources/[peak]/peak-chess
2. Asset Pack
Install and ensure the bzzz_chess prop pack before peak-chess.
cfgensure your_bzzz_chess_prop_pack ensure peak-chess
If you use peak-bridge, start it before Peak Chess:
cfgensure peak-bridge ensure your_bzzz_chess_prop_pack ensure peak-chess
3. Configuration
Open shared/sh.lua and review:
Shared.Frameworkfor auto-detection or manual framework selectionConfig.Locationsfor table coordinatesConfig.Target.systemfor interaction handlingConfig.Bettingfor wager settingsConfig.AIfor engine levels and delays
Requirements
Required
- FiveM
ceruleanruntime bzzz_chessprop pack for the complete 3D chess table experience
Optional
peak-bridge- ESX
- QBCore
- Qbox
qbx_coreox_targetqb-targetvar-interact
There is no SQL requirement.
Framework And Bridge
With Shared.Framework.autoDetect = true, Peak Chess checks:
peak-bridgees_extendedqb-coreqbx_core- Standalone
peak-bridge is used only when it is started and ready. If it is absent, Peak Chess falls back to local ESX/QBCore/Qbox wrappers or standalone mode.
Betting
Standalone mode supports playable zero-wager chess. Non-zero wagers require a money provider through peak-bridge, ESX, QBCore, or Qbox.
If no money provider is available:
- The UI hides wager controls.
- Server-side wager values are sanitized to
0. - PvP and AI chess remain playable.
UI Development
The NUI source is in web/ and builds to web/build, which is the path loaded by fxmanifest.lua.
bashcd web npm install npm run build
Debug browser views:
text?debug=lobby ?debug=hud ?debug=promotion ?debug=all
Developer API
Server Exports
luaexports['peak-chess']:GetMatch(tableId) exports['peak-chess']:GetPlayerMatch(playerId) exports['peak-chess']:IsPlayerInGame(playerId) exports['peak-chess']:GetActiveMatches() exports['peak-chess']:StartAIGame(playerId, tableId, side, level, bet) exports['peak-chess']:ForceEndMatch(tableId, winnerColor)
Client Exports
luaexports['peak-chess']:IsSeated() exports['peak-chess']:IsInGame() exports['peak-chess']:GetCurrentTable() exports['peak-chess']:GetColor() exports['peak-chess']:OpenLobby(tableId)
NUI Messages
lobbyhudpromotiongameovercloseAll
NUI Callbacks
sitspectatestartAIsetReadyresignpromoteleavecloseLobby
Validation Checklist
- Start without
peak-bridgeand play a zero-wager PvP game. - Start with
peak-bridgeand confirm identity, notification, and money integration. - Start an AI game.
- Complete a PvP ready flow.
- Test legal and illegal moves.
- Promote a pawn.
- Resign a match.
- Reach checkmate and stalemate.
- Use spectator HUD.
- Restart the resource and confirm cleanup.
Support
Join the Peak Studios Discord for updates and support: Peak Studios Discord