~/docs/chess/configuration/exports
chess docs›
Chess
Exports
-- 11 code blocks · 1 min read
The server exports are callable server-side only, the client exports client-side only.
Server
GetMatch
exports['var_chess']:GetMatch(tableId)
Returns a safe snapshot of the match at tableId, or nil if the id is invalid.
-- { id, status, seats = { white, black }, turn, bet = { white, black }, winner, reason }
-- seats: a server id (number) | 'AI' | false. turn: 'w' | 'b' | nil. status: idle | waiting | playing | over.
local match = exports['var_chess']:GetMatch(1)
GetPlayerMatch
exports['var_chess']:GetPlayerMatch(serverId)
Returns the table a player is seated at, or nil.
-- { tableId, color = 'white' | 'black', status }
local seat = exports['var_chess']:GetPlayerMatch(source)
IsPlayerInGame
exports['var_chess']:IsPlayerInGame(serverId)
Returns true only if the player is seated in a match that is currently playing.
if exports['var_chess']:IsPlayerInGame(source) then
-- block teleport / job actions while a wagered game is live
end
GetActiveMatches
exports['var_chess']:GetActiveMatches()
Returns a list of matches in progress.
-- { { tableId = 1, status = 'playing' }, ... }
local active = exports['var_chess']:GetActiveMatches()
StartAIGame
exports['var_chess']:StartAIGame(serverId, tableId, side, level, bet)
Seats the player against the AI and starts the game. side is 'white', 'black' or nil (defaults to white), level is a Config.AI.levels id, bet is sanitized server-side. Returns true on success, false if the table is busy, the AI is disabled or the player cannot afford the wager.
local ok = exports['var_chess']:StartAIGame(source, 1, 'white', 'hard', 500)
ForceEndMatch
exports['var_chess']:ForceEndMatch(tableId, winnerColor)
Ends an in-progress match. winnerColor is 'white', 'black' or nil for a draw. Settlement (payout / refund) runs as usual. Returns true if a playing match was ended.
exports['var_chess']:ForceEndMatch(1, 'white')
Client
IsSeated
exports['var_chess']:IsSeated() returns true if the local player is seated at a board.
local seated = exports['var_chess']:IsSeated()
IsInGame
exports['var_chess']:IsInGame() returns true if the local player is seated in a match that is playing.
if exports['var_chess']:IsInGame() then return end
GetCurrentTable
exports['var_chess']:GetCurrentTable() returns the local player's current table id, or nil.
local tableId = exports['var_chess']:GetCurrentTable()
GetColor
exports['var_chess']:GetColor() returns 'white', 'black' or nil.
local color = exports['var_chess']:GetColor()
OpenLobby
exports['var_chess']:OpenLobby(tableId) opens the chess menu for a nearby (spawned) table. Returns false if the table is not in range.
exports['var_chess']:OpenLobby(1)