Chess: config files
These files stay readable in every build (escrow too), so you can change them. Shown as shipped in version 1.0.0.
config.lua
lua
Config = {}
-- ════════════════════════════════════════════════════════════════════════════
-- Lumo Chess — configuration (chess + checkers on one board)
-- ════════════════════════════════════════════════════════════════════════════
-- Framework: 'auto' | 'qbx' | 'qb' | 'esx' | 'standalone'. Target: 'auto' | 'ox' | 'qb' | 'none'.
Config.Framework = 'auto'
Config.Target = 'auto'
-- Developer commands and console output. Keep false on a live server.
Config.Debug = false
-- ── Players ─────────────────────────────────────────────────────────────────
Config.Command = 'chess' -- opens the lobby while standing at a board
Config.LeaderboardCommand = 'chessboard'
Config.TableDistance = 1.8
Config.AllowSolo = true -- play against the AI
Config.AllowSpectators = true
Config.JoinDistance = 0.0
Config.FillEmptyWithAI = true -- host starts alone: the AI takes the other side
Config.AutoStartWhenFull = true
-- Seconds a player has for one move. When it runs out the game plays a quick
-- move for them; after AfkLimit timeouts in a row they lose.
Config.TurnSeconds = 90
Config.AfkLimit = 3
-- ── Games ───────────────────────────────────────────────────────────────────
-- Every table plays 'chess', 'checkers' or 'both' (the host picks). Placed
-- tables choose theirs in /chesstables.
Config.DefaultTableGames = 'both'
Config.BothIdleBoard = 'chess'
Config.Chess = {
aiDepth = 3, -- chess AI search depth in plies (2 = easy, 3 = normal, 4 = slow + strong)
checkersAiDepth = 6, -- checkers AI search depth
}
-- Invite another player through the target eye.
Config.Challenge = {
enabled = true,
tableDistance = 2.8,
playerDistance = 3.0,
timeoutSeconds = 15,
}
-- Optional cash stake: both players pay `amount`, the winner takes the pot, a
-- draw hands it back. Never applied to games against the AI. Ignored on standalone.
Config.Bet = {
enabled = false,
amount = 250,
account = 'cash',
}
Config.WinReward = {
enabled = false,
chance = 25,
items = {
{ item = 'water_bottle', amount = 1 },
},
}
-- ── Admin table placement ───────────────────────────────────────────────────
-- /chesstables: place a table + 2 chairs with the fly camera and the gizmo.
-- The board is 0.48 m square.
Config.Admin = {
command = 'chesstables',
permissions = { 'admin', 'god' },
ace = 'command',
maxPlaceDistance = 40.0,
spawnDistance = 80.0,
tableModels = {
{ model = 'prop_table_03', label = 'Café table' },
{ model = 'apa_mp_h_din_table_04', label = 'Round dining table' },
{ model = 'prop_chateau_table_01', label = 'Chateau table' },
{ model = 'none', label = 'None (use a world table)' },
},
chairModels = {
{ model = 'apa_mp_h_din_chair_08', label = 'Dining chair', yaw = 180.0, sitZ = 0.47 },
{ model = 'ch_prop_casino_chair_01a', label = 'Casino chair', yaw = 180.0, sitZ = 0.08 },
{ model = 'bkr_prop_clubhouse_chair_01', label = 'Clubhouse chair', yaw = 180.0, sitZ = 0.08 },
{ model = 'prop_chair_01a', label = 'Plastic chair', yaw = 180.0, sitZ = 0.05 },
{ model = 'none', label = 'None (use world chairs)', yaw = 0.0 },
},
chairGap = 0.42,
}
-- ── AI player ───────────────────────────────────────────────────────────────
Config.BotPeds = {
'a_m_m_indian_01', 'a_f_y_indian_01', 'a_m_y_business_02', 'a_f_y_business_02',
'a_m_m_bevhills_02', 'a_f_m_bevhills_01', 'a_m_y_hipster_02',
}
Config.BotNames = { 'Asha', 'Bikash', 'Kiran', 'Nisha', 'Rohan', 'Sunita', 'Prakash', 'Anita' }
Config.BotSitZ = 0.0
Config.Bot = {
thinkMs = 700, -- ms before the AI starts thinking (the search itself adds more)
}
Config.SeatPlayers = true
Config.SeatZOffset = 0.0
Config.Timing = {
moveMs = 550, -- one piece slide (a checkers multi-jump takes this per hop)
}
-- ── 3D board ────────────────────────────────────────────────────────────────
-- Click a piece, then where it goes. Wheel / V: close or whole-table view.
-- Backspace twice leaves (a game in progress is lost).
Config.Table3D = {
camHeight = 0.62,
camBack = 0.42,
camSway = false,
lightIntensity = 0.0, -- no added lamp/glare; raise slightly only for dark interiors
camFov = 44.0,
overview = { height = 1.3, back = 1.2, aim = 0.0, fov = 50.0 },
startView = 'focus',
surfaceOffset = 0.0,
fallbackHeight = 0.45,
boardYawOffset = 0.0,
hoverColour = { 182, 243, 106, 255 },
leaveKey = 194, -- Backspace (twice)
startKey = 191, -- Enter: the host starts the game
debugGrid = false,
faceFlipU = false,
faceFlipV = false,
debugCommand = 'chess3dtest',
}
Config.CamHideHud = true
-- ── Fixed tables (optional) ─────────────────────────────────────────────────
-- chairs: vector4 with the sit heading; 1 = white (-Y edge), 2 = black.
Config.UseConfigTables = false
Config.Tables = {}
if not Config.UseConfigTables then Config.Tables = {} end
Config.ShowBlips = false
Config.ShowMarkers = false
Config.BlipSprite = 680
Config.BlipColour = 25
Config.BlipName = 'Chess Table'
Config.DevPlaceCommand = 'chesstablehere'