OrigenNetwork
Docs

Configuration · origen_banking

All configuration lives in config/main.lua. Server-only values are in config/server/webhooks.lua.


General

VariableDefaultDescription
Config.DebugfalsePrints debug output to the server console
Config.Language'en'Resource language — 'es' or 'en'
Config.MaxAccounts3Maximum number of accounts a player can own

Config.Framework is auto-detected in init.lua. Do not override it in the config file.


IBAN

Account IDs are generated as IBANPrefix followed by random digits, padded to IBANLength total characters.

VariableDefaultDescription
Config.IBANPrefix''Prefix prepended to every generated account ID
Config.IBANLength16Total length of the account ID, prefix included

Banks

Each entry creates a physical bank interaction point with a blip.

FieldTypeDescription
coordsvector3Required. Position of the bank interaction point
isCentralbooleanOptional, default false. When true, players can create new shared accounts from this branch
labelstringOptional. Text shown on the blip
lua
Config.Banks = {
    { coords = vector3(150.266, -1040.203, 29.374),  isCentral = false, label = 'Banco - Legion Square' },
    { coords = vector3(-1212.980, -330.841, 37.787), isCentral = false, label = 'Banco - Pillbox Hill' },
    { coords = vector3(-2962.582, 482.627, 15.703),  isCentral = false, label = 'Banco - Del Perro' },
    { coords = vector3(314.187, -278.621, 54.170),   isCentral = false, label = 'Banco - Alta Street' },
    { coords = vector3(-112.202, 6469.295, 31.626),  isCentral = true,  label = 'Banco Central - Paleto Bay' },
    { coords = vector3(246.727, 223.705, 106.286),   isCentral = true,  label = 'Banco Central - Vinewood Hills' },
    { coords = vector3(1830.41, 3850.33, 35.89),     isCentral = false, label = 'Banco - Sandy' },
    { coords = vector3(-351.04, -49.71, 49.04),      isCentral = false, label = 'Banco - Rockford Hills' },
}

Marker

Marker drawn at every bank interaction point.

lua
Config.Marker = {
    type = 20,
    color = {0, 0, 0, 200},
    size = vector3(0.3, 0.3, -0.3),
    coords = vector3(0.0, 0.0, 1.0),
    bobUpAndDown = false,
    faceCamera = false,
    rotate = true,
}

ATMs

ATM props are detected automatically by model — they have no blips.

VariableDefaultDescription
Config.ATM.Modelsprop_atm_01, prop_atm_02, prop_atm_03, prop_fleeca_atmProp models treated as ATMs
Config.ATM.DetectRadius1.5Distance in meters to show the text UI and allow interaction
Config.ATM.ShowSharedAccountstrueWhen true, shared accounts (job, gang, society) the player has access to are also usable from an ATM

ATM limits

Limits apply per account, per cycle, and only on the ATM channel. Bank branches are not limited.

VariableDefaultDescription
Config.ATM.Limits.EnabledtrueEnables the per-cycle limit system
Config.ATM.Limits.ResetMinutes20Real minutes before a cycle resets and limits go back to zero
Config.ATM.Limits.WithdrawPerCycle50000Maximum withdrawable per account per cycle
Config.ATM.Limits.DepositPerCycle50000Maximum depositable per account per cycle

Limits are cached in memory. Restarting the resource or the server resets every counter.


Loans

All validation — amounts, terms, eligibility and bank funds — is server-side. The UI only simulates and displays; it never decides.

Approval

VariableDefaultDescription
Config.Loans.EnabledtrueEnables the loan system
Config.Loans.AutoApproveUnder25000Loans at or below this amount are approved instantly; above it they go to the manual queue
Config.Loans.ApprovalJob'banker'Job allowed to approve loans, when grade is at least ApprovalGrade
Config.Loans.ApprovalGrade2Minimum job grade required to approve
Config.Loans.ApprovalAce'origen_banking.approve'ACE permission that also grants approval rights
Config.Loans.ApprovalCommand'loansadmin'Chat command that opens the NUI on the approval queue. Set to '' to disable

Global limits

VariableDefaultDescription
Config.Loans.MaxActiveLoans2Simultaneous active loans per player, pending ones included
Config.Loans.MinAmount1000Global minimum loan amount
Config.Loans.BlockIfOverduetrueBlocks new loans while the player has an overdue one

Penalties

VariableDefaultDescription
Config.Loans.Penalty.EnabledtrueEnables late payment penalties
Config.Loans.Penalty.RatePerMiss5.0Extra percentage added to the installment per missed payment
Config.Loans.Penalty.MaxMisses3Misses before the loan is marked defaulted and the collateral event fires

Early payoff

VariableDefaultDescription
Config.Loans.EarlyPayoff.EnabledtrueAllows paying the loan off before term
Config.Loans.EarlyPayoff.InterestRebate50Percentage of the remaining interest forgiven on early payoff

Loan types

FieldDescription
labelDisplay name shown in the UI
interestRateTotal interest percentage
minAmount / maxAmountAllowed principal range
allowedTermsArray of allowed installment counts
frequencyDays between installments
requiresCollateralRequires an asset reference (plate, property ID)
forceManualApprovalAlways sends the loan to the manual queue, ignoring AutoApproveUnder
lua
Config.Loans.Types = {
    personal = {
        label              = 'Personal',
        interestRate       = 12.0,
        minAmount          = 1000,
        maxAmount          = 50000,
        allowedTerms       = { 6, 12, 24 },
        frequency          = 7,
        requiresCollateral = false,
    },
    mortgage = {
        label               = 'Mortgage / Vehicle',
        interestRate        = 6.0,
        minAmount           = 25000,
        maxAmount           = 500000,
        allowedTerms        = { 24, 48, 96 },
        frequency           = 7,
        requiresCollateral  = true,
        forceManualApproval = true,
    },
}

Bridge providers

Defined in init.lua. Use "auto" to detect the active resource, or force a specific provider by name.

lua
BridgeConfig.HelpText  = "auto"
BridgeConfig.Notify    = "auto"
BridgeConfig.Inventory = "auto"

Webhooks

File: config/server/webhooks.lua

lua
Config.Webhook = {
    banking = "YOUR_DISCORD_WEBHOOK_URL"
}