Page cover

βš™οΈConfiguration

Configuration for KS-Bank

🌍 Locale & Notificationsù

Config.Locale = 'en'
Config.NotificationSystem = 'custom' -- Options: 'esx', 'ox', 'custom'

πŸ—£οΈ Locale Selection

You can choose the language of the interface and system messages. By default, we provide the following languages:

  • en β€” English

  • it β€” Italian

Set Config.Locale = 'en' or Config.Locale = 'it' depending on your server's target audience.

πŸ”” Notification System

You can choose the notification system used to display messages to players:

  • ox β€” Uses ox_lib for styled notifications.

  • esx β€” Uses native esx:showNotification.

  • custom β€” Triggers a client event (showNotification) that you can customize yourself.

🧩 Custom Types

You can define the notification types and functions under:

Config.NotificationTypes = {
    error = 'errore',
    success = 'successo',
}

You can also override how each type is handled using:

Config.NotificationFunctions = {
    ox = function(src, type, message, duration)
        TriggerClientEvent('ox_lib:notify', src, {
            description = message,
            duration = duration,
            type = type or 'inform'
        })
    end,

    esx = function(src, _, message)
        TriggerClientEvent('esx:showNotification', src, message)
    end,

    custom = function(src, type, message, duration)
        TriggerClientEvent('showNotification', src, type, message, duration)
    end,
}

Config.NotificationFunctionsClient = {
    ox = function(_, type, message, duration)
        lib.notify({
            description = message,
            duration = duration,
            type = type
        })
    end,

    esx = function(_, _, message)
        ESX.ShowNotification(message)
    end,

    custom = function(_, type, message, duration)
        TriggerEvent('showNotification', type, message, duration)
    end,
}

🧾 Billing System

Config.BillingSystem = true -- or you can set false for custom billing

This enables or disables the built-in billing system. If set to false, you can integrate your own custom system.

πŸ“ Billing System Locations

Config.BillingSystemLocation = {
    {
        coords = vec3(246.6120, 214.0744, 106.2868),
        job = "police",
        grades = {1, 2, 3}
    },
    {
        coords = vec3(241.8473, 214.9330, 106.2868),
        job = "ambulance",
        grades = {2, 4}
    }
}

This defines locations where authorized jobs can access the billing system.

function AddMoneyToSocietyAccount(job, amount)
    TriggerEvent('esx_addonaccount:getSharedAccount', ('society_%s'):format(job), function(account)
        if account then
            account.addMoney(amount)
        end
    end)
end

This server-side utility function adds money to a society (shared) account for a given job, using the esx_addonaccount system.

πŸ’° Starting Balances

Config.StartingBalance = {
    ['personal'] = 1000,
    -- ['savings'] = 5000, -- (Work in progress)
    -- ['business'] = 10000 -- (Work in progress)
}

Config.StartingCrypto = 0.000000
Config.MaxAccountsPerLicense = 1

🏦 Account Balance

  • Config.StartingBalance: Defines the starting balance for new accounts. Currently, only the personal (personal) account type is supported. Other types like savings (savings) and business (corporate) are under development and will be added in future updates.

πŸͺ™ Crypto Balance

  • Config.StartingBalance: Sets the initial amount of cryptocurrency a user will have when their bank account is created.

πŸ” Max Accounts Per License

  • Config.StartingBalance: Limits the number of bank accounts that can be created per FiveM license. Default is 1 β€” this means each player can only register one bank account.

πŸ‘€ Default Avatar

Config.DefaultAvatar = "https://r2.fivemanage.com/sgW1Sxe8xwnGFvfmYHOpZ/logo_discord_bot.png"
  • URL used when a user does not upload a profile picture.

πŸ’³ Card System

The banking system supports the use of multiple card types, including debit, prepaid, and credit cards. It includes generation cooldowns, configurable spending and balance limits, and custom metadata for identity documents.

πŸ•’ Card Regeneration Cooldowns

Config.CardRegeneration = {
    EnableCooldown = true,
    CooldownTime = 600, -- in seconds
    CardSpecificCooldowns = {
        debit = { enabled = true, time = 600 },
        creditCard = { enabled = true, time = 600 },
        prepaidCard = { enabled = true, time = 600 }
    }
}
  • Prevents users from generating cards too frequently.

  • You can enable cooldowns globally or per card type.

  • Cooldown time is in seconds (e.g., 600 = 10 minutes)

🎴 Card Item Identifiers

Config.CardItem = {
    DebitCard = 'debit_card',
    PrepaidCard = 'prepaid_card',
    CreditCard = 'credit_card'
}
  • These item names must match those registered in your inventory system

πŸ’Έ Spending & Balance Limits

Config.CardSpendingLimit = {
    PrepaidCard = 5000,
    CreditCard = 6000,
}

Config.CardBalanceLimit = {
    PrepaidCard = 20000,
    CreditCard = 60000,
}
  • CardSpendingLimit: Maximum amount that can be spent using the card before reset.

  • CardBalanceLimit: Maximum amount that a card can hold in total.

♻️ Automatic Limit Reset

Config.ResetCardLimitsInterval = 3600 -- in seconds
  • Automatically resets the card's ShopDispo (available spending amount) every defined interval.

πŸͺͺ Document System

Config.DocumentItem = {
	idcard = 'idcard',
	vhlicense = 'patente',
}
  • These item names must match those registered in your inventory system

  • When a card is issued, the corresponding item is added to the player's inventory.

πŸͺͺ Document Metadata Fields

Config.MetadataFields = {
    firstname = 'firstname',
    lastname = 'lastname',
    falso = 'falso',
    placeOfBirth = 'placeOfBirth',
    dob = 'dob',
    photo = 'photo'
}

This configuration defines the field mapping for metadata stored on document items such as ID cards, driver's licenses.

πŸ“Š Logging (Discord Webhooks)

Config.Log = {
	CreationAccount = '',
	BuyWareHouse = '',
	BankTransiction = '',
	RichargeCard = '',
	BlockCard = '',
	SendMoneyDashboard = '',
	DepositMoneyDashboard = '',
	TransferMoneyQuickDashboard = '',
	BlockCardBot = '',
	ChangePassword = '',
	DeleteCredential = '',
	SignOutAll = '',
	AddAccount = '',
	DeleteAccountPerma = '',
	WithdrawAtm = '',
	DepositAtm = '',
	SellCrypto = '',
	BuyCrypto = '',
    PinChangePrepaidCard = '',
    PinChangeDebitCard = '',
    PinChangeCreditCard = '',
}
  • Every critical action (withdrawal, card generation, money transfers, etc.) has its own webhook for audit logs.

🏦 Account Options

Config.CreationBankAccount = true
Config.BankSavingsAccount = false -- (WIP)
Config.JobBankAccount = false -- (WIP)
  • Enable/disable account types (more coming soon).

πŸ§ͺ Debug Mode

Config.BankDebugZone = false
  • Set to true to enable debug zone for bank locations.

πŸ›οΈ Bank Locations

Config.BankLocation = {
    Pacific = vec4(242.4305, 225.6224, 106.2779, 157.3414),
    Pacific2 = vec4(247.7906, 224.0964, 106.2779, 158.2072),
    Pacific3 = vec4(252.9351, 222.1956, 106.2779, 163.3276),
    Fleeca1 = vec4(149.6765, -1041.7236, 29.7347, 337.5768),
    Fleeca2 = vec4(-1212.1538, -331.6609, 37.8033, 24.3511),
    Fleeca3 = vec4(-351.2033, -50.9305, 49.0582, 343.0009),
    Fleeca4 = vec4(1174.9958, 2707.8840, 38.1096, 179.3972),
    Blaine = vec4(-112.2057, 6471.0278, 31.6267, 129.5908),
}
  • Define accessible bank locations where players can open the Bank.

🏧 ATM Configuration

Config.ATMModels = {
    'prop_atm_01',
    'prop_atm_02',
    'prop_atm_03',
	'prop_fleeca_atm'
}

Config.ATMInteractRange = 1.5
  • Define ATM models and interaction range.

πŸ’± Warehouse Seller NPC

Config.CryptoMine = {
	["Buy"] = {
		ActivateNpc = true,
		Npc = 's_m_m_highsec_02',
		LocationNPC = vector4(227.3799, 219.2854, 104.5499, 161.1501),
	},
}

🧍 NPC for Warehouse Purchase

This NPC allows players to buy warehouses from a designated in-game location.

  • ActivateNpc: Enables or disables the NPC interaction system.

  • Npc: The ped model used for the warehouse seller.

  • LocationNPC: Coordinates and heading where the NPC will be spawned.

πŸ‘” Job Bank Access (Work in Progress)

Config.JobBankGrade = {
    police = 'boss',
}

πŸ” Authorized Job-Based Account Creation

This configuration defines which jobs and job grades are allowed to create business bank accounts (also known as "business".

  • The key is the job name ('police')

  • The value is the required grade to access this feature ('boss')

⚠️ Note: This feature is currently under development and may not be fully functional in the current version.

πŸ“¦ Warehouses

Config.warehouses = {
    {
        id = 1,
        name = "Warehouse #1",
        description = "Sandy Shores Oasis Storage. Rural charm with all the modern amenities.",
        size = "Big",
        price = 750000,
        coords = vector3(173.1273, -26.0479, 68.3470)
    },
    -- More warehouses...
}

πŸ—οΈ Warehouse Configuration

Each warehouse entry defines a location that can be purchased by players. The following fields must be set:

  • id: A unique identifier for the warehouse (must be unique)

  • name: The name of the warehouse (must also be unique)

  • description: A short description shown in the UI

  • size: Can be "Small" (12 slot), "Medium" (42 slot), or "Big" (74 slot) (used for display or logic)

  • price: The cost of purchasing the warehouse

  • coords: The in-game position where the warehouse is located

⚠️ Important: Both the id and name must be unique. Duplicates may cause data conflicts, purchase errors, or UI issues.

πŸͺ™ Warehouse Equipment & Crypto Mining

πŸ“¦ Crate and Rig Pricing

Config.CratePrice = 1000
Config.RigPrice = 5000

These values define the purchase cost for equipment used in warehouses:

  • Config.CratePrice: The price (in $) to buy a crate, which expands warehouse storage.

  • Config.RigPrice: The price (in $) to buy a mining rig, which allows passive cryptocurrency generation.

⚑ Energy Cost & Crypto Yield

Config.PriceKw = 100
Config.CryptoProfitForMinuteForRig = 10

These values are used for managing the cost and yield of mining rigs:

  • Config.PriceKw: Price per kilowatt of power consumption. Used to simulate rig electricity costs.

  • Config.CryptoProfitForMinuteForRig: Amount of cryptocurrency generated per minute per rig.

πŸ’‘ Example: If a player owns 2 rigs, they will earn 20 crypto per minute (assuming 10 per rig), and be charged accordingly based on power consumption logic (if implemented).

πŸ“Έ Ads & Calendar Images

πŸ“’ Server Advertisement Banners

Config.AdsImage = {
    mangeaccountads = "IMAGE_URL",
    walletads = "IMAGE_URL"
}

These are image URLs used as banner ads inside the bank UI. You can use them to promote your server, events, or community content.

  • mangeaccountads: Displayed on the Manage Account page.

  • walletads: Displayed in the Exchange / Wallet section.

πŸ“… Calendar Monthly Images

Config.CalanderImage = {
    January = "",
    February = "",
    March = "",
    April = "",
    May = "",
    June = "",
    July = "",
    August = "",
    September = "",
    October = "",
    November = "",
    December = ""
}

These images are used to decorate the calendar UI and change automatically based on the current real-world month.

  • Each month key (January, February, etc.) corresponds to the image that will be shown in that month.

  • Leave the value empty ("") if no image should be shown for that month.

πŸ“¬ Need Help or Support?

If you have any questions, need help with setup, or want to report a bug, feel free to join our support Discord:

πŸ‘‰ Join our Discord server

Last updated