Docs

kyoRoulette

Configuration

General

Config.Framework = 'auto'      -- 'auto' | 'qbox' | 'qbcore' | 'esx'
Config.Inventory = 'auto'      -- 'auto' | 'ox_inventory' | 'qs-inventory' | 'origen_inventory' | 'qb-inventory' | 'default'
Config.Locale = 'en'           -- 'en' | 'es' | 'it' | 'de' | 'pt'
Config.NotifySystem = 'default' -- 'default' | 'kyoNotify' | 'vms_notifyV2' | 'ox_lib' | 'qb' | 'esx' | 'qbox' | false
Config.Debug = false

default uses your framework’s own notifications. false disables notifications.

Timings (seconds)

Config.RouletteInterval = 3600 -- between the end of one round and the next
Config.JoiningWindow = 60      -- time to type /roulette once a round opens
Config.ClaimTimeout = 45       -- the prize is delivered automatically after this
Config.NuiSafetyTimeout = 60   -- the interface releases the mouse if it stops responding

ClaimTimeout is a safety net: if a winner never presses Claim (crash, alt+F4), the server delivers the prize anyway.

Countdown

Config.NotificationTimes = { 30, 10, 5, 1 } -- minutes before a round opens
Config.SecondsNotifications = { 30, 10 }    -- seconds before a round opens

Permissions and integrations

Config.AdminGroups = { 'admin', 'superadmin', 'god' } -- can run /startroulette
Config.CoinsAccount = 'coins'      -- account / money type / item for 'coins' prizes
Config.VipCommand = 'setvip %s'    -- run for 'vip' prizes; %s = player id
Config.VipFallbackCoins = 10       -- coins given instead if the winner is already VIP
Config.ImagePath = 'auto'          -- item icons; 'auto' uses your inventory's image folder
Config.Webhook = ''                -- Discord webhook for prizes
Config.MaxParticipants = 0         -- 0 = unlimited

/startroulette is also ACE-restricted: add add_ace group.admin command.startroulette allow.

Config.ImagePath can be a custom URL template, with %s replaced by the item name.

Prizes

Config.Prizes = {
    { name = 'money_5k',  label = '5,000$',    type = 'money', amount = 5000,  weight = 15,  color = '#4caf50' },
    { name = 'armour_1',  label = 'Armor x1',  type = 'item',  item = 'armour', amount = 1, weight = 10, color = '#607d8b' },
    { name = 'coins_5',   label = '5 Coins',   type = 'coins', amount = 5,     weight = 0.5, color = '#ffeb3b' },
    { name = 'vip_access', label = 'VIP Access', type = 'vip',               weight = 0.1, color = '#e91e63' },
}
FieldDescription
nameUnique id
labelText shown on the roulette
typemoney, item, coins or vip
itemItem name (item prizes)
amountMoney, items or coins given
weightRelative chance. Decimals down to 0.01
colorColour of the slot (hex)

The chance of a prize is its weight divided by the sum of every weight.

VIP prizes

The server runs Config.VipCommand with the winner’s id, for example setvip 12 (kyoVipShop’s command). If the winner is already VIP, they get Config.VipFallbackCoins coins instead.