π§ Configuration
Configure BIT-Coin System to match your server's needs.
Framework Settings
-- Framework Configuration
Config.Framework = "esx" -- Use "esx" or "qb"
Config.ESXExport = "" -- ESX script name (if using newer versions)
Config.Core = "qb-core" -- Default ESX: "esx:getSharedObject" | Default QB: "qb-core"
Config.Mysql = "oxmysql" -- oxmysql, mysql-async, or ghmattisql
Discord Webhooks
Configure webhooks for logging different actions:
-- Discord Logging
Config.webhookcar = "" -- Vehicle purchases
Config.webhookname = "" -- Name changes
Config.webhookphone = "" -- Phone number changes
Config.webhookplate = "" -- Plate changes
Config.webhookweapon = "" -- Weapon purchases
Config.webhookmoney = "" -- Money transactions
Config.webhookgeneratedcode = "" -- Code generation
Config.webhookusedcode = "" -- Code redemption
Config.webhookpayments = "" -- Payments
Key Binding
-- Menu Controls
Config.OpenWithKey = true -- Allow opening with key press
Config.OpenKey = 170 -- F3 key (see FiveM controls documentation)
Service Pricing
Configure prices for character services (in coins):
-- Service Prices
changenameprice = "1000" -- Name change cost
changephonenumberprice = "1000" -- Phone number change cost
changeplateprice = "1000" -- Vehicle plate change cost
Admin Permissions
Define admin groups that can generate coin codes:
-- Admin Groups
Config.adminsGroups = {"admin", "superadmin", "god"}
Integration Settings
-- External Integrations
Config.useCDgarage = false -- Enable if using cd_garage
urlbuy = "https://bit.tebex.io" -- Your store URL for buying coins
-- BattlePass Integration
battlepass = true -- Enable if you have BIT-Battlepass
Money Packages
Configure money packages that players can purchase:
Money = {
[1] = {
name = "Cash Money",
type = "money", -- "money" or "blackmoney"
image = "./img/money1.png",
moneyprice = "1000", -- Cost in coins
moneyobtained = "100000" -- Amount of money received
},
[2] = {
name = "Black Money",
type = "blackmoney",
image = "./img/bmoney1.png",
moneyprice = "1000",
moneyobtained = "100000"
}
-- Add more packages as needed
}
Vehicle Shop
Configure vehicles available for purchase:
Cars = {
[1] = {
carprice = "1", -- Price in coins
carname = "Lexus LX",
carmodel = "t20", -- Spawn code
carimage = "./img/cars/1.jpg"
}
-- Add more vehicles as needed
}
Weapon Shop
Configure weapons available for purchase:
weapons = {
[1] = {
price = "150000", -- Price in coins
name = "Assault Rifle",
model = "weapon_assaultrifle",
image = "./img/weapons/1.jpg"
}
-- Add more weapons as needed
}
Custom Tab Actions
Customize what happens when clicking tabs:
-- Tab Customization
-- Leave empty to use default functions
-- Or set a command/URL to execute
Tabs.carsCommand = "" -- Command for cars tab
Tabs.carsURL = "" -- URL for cars tab
Tabs.plateCommand = "" -- Plate change command
Tabs.plateURL = ""
Tabs.numberCommand = "" -- Phone change command
Tabs.numberURL = ""
Tabs.nameCommand = "" -- Name change command
Tabs.nameURL = ""
Tabs.moneyCommand = "" -- Money command
Tabs.moneyURL = ""
Tabs.weaponsCommand = "" -- Weapons command
Tabs.weaponsURL = ""
Validation Functions
Phone Number Validation
function checkNumber(number)
-- Example: Check number starts with "123" and has minimum 5 digits
-- local stringNumber = string.sub(number, 1, 3)
-- if stringNumber == 123 and #number >= 5 then
-- return true
-- else
-- return false
-- end
-- No validation (default)
return true
end
Plate Validation
function checkPlate(plate)
-- Example: Check plate starts with "BIT" and has minimum 5 digits
-- local stringPlate = string.sub(plate, 1, 3)
-- if stringPlate == "BIT" and #plate >= 5 then
-- return true
-- else
-- return false
-- end
-- No validation (default)
return true
end
Vehicle Keys
Configure your vehicle keys system:
function giveKeys(vehicle)
-- Example with QBCore:
-- TriggerEvent("vehiclekeys:client:SetOwner", QBCore.Functions.GetPlate(vehicle))
-- Add your keys system integration here
end
Notifications
function notifications(notitype, message, time)
-- Change this trigger for your notification system
TriggerEvent('codem-notification', message, time, notitype)
end
-- Notification Types
Noti.info = 'info'
Noti.check = 'check'
Noti.error = 'error'
Noti.time = 5000 -- Duration in milliseconds
Language Configuration
Customize all notification messages:
-- Success Messages
receivedcar = "You have received a new vehicle!"
updatedname = "Name has been updated!"
updatednumber = "The phone number has been updated!"
updatedplate = "Plate has been updated!"
donemoney = "Cash has been correctly delivered"
codegenerated = "The code has been generated correctly"
correctcode = "The code has been redeemed, you have just received the coins!"
receivedweapon = "You have received a weapon!"
-- Error Messages
waitcar = "You must wait a little while to get another vehicle"
nomoney = "You do not have enough money"
nocar = "No vehicle nearby"
notextplate = "Cant apply empty plate"
notextphone = "Cant apply empty phone number"
notextname = "Cant apply empty name"
dataerror = "Error updating the information, check that the data is correct."
erroramount = "You must enter a number of coins for the code"
wait = "You must wait a few seconds to do this action again."
codeerror = "The code cannot be empty"
nocorrectcode = "The code entered is not correct, please check it or contact the staff"
updateerror = "The value entered does not meet the requirements"
[!CAUTION] Configuration Warnings:
- Do not modify the line:
Config, Tabs, Noti = {}, {}, {}- Test all webhook URLs before production use
- Validate coin prices match your server economy
- Backup configuration before making changes