Legacy Banking
Configuration
All Config keys in config.lua, with defaults and behavior notes.
Configuration
All keys live in config.lua (shared).
| Key | Type | Default | Description |
|---|---|---|---|
Config.Version |
string | '1.0.0' |
Informational version string. |
Config.Locale |
string | 'en' |
Locale identifier for UI language. Only locales/en.json ships — add matching locales/<code>.json files (same key set) to support more languages. |
Config.Debug |
boolean | true |
Enables verbose [legacy-banking:*] debug prints across atm.lua, cards.lua, locations.lua, server.lua. Set false in production. |
Config.AdminGroups |
table | { 'admin', 'god', 'superadmin' } |
ACE group names (checked as group.<name>) granted bank-admin access in addition to the framework's own admin check. {} removes the ACE bypass but does not lock out framework admins. |
Config.Currency |
string | '$' |
Currency symbol shown in UIs, receipts, and LB.FormatMoney. |
Config.AdminCommand |
string | 'bankmanage' |
Name of the command that opens the in-game bank placement creator. |
Config.InteractionDistance |
number | 2.5 |
Distance at which the bank teller target prompt becomes available. |
Config.PedPresets |
table | list of { label, model }, first is mp_m_freemode_01 |
Ped model presets in the admin placement dropdown. Non-player-model presets are ambient GTA peds that may be missing on heavily modded servers — placement silently falls back to mp_m_freemode_01 if a model can't load. |
Config.DefaultBlipSprite |
number | 108 |
Default blip sprite for new placements. |
Config.DefaultBlipColor |
number | 2 |
Default blip color for new placements. |
Config.DefaultBlipScale |
number | 0.8 |
Default blip scale for new placements. |
Config.Colors |
table | { Green = 'oklch(0.78 0.18 145)', GreenSoft = 'oklch(0.78 0.18 145 / 0.12)' } |
Brand colors. Green is overridden at runtime by legacy-lib's GetAccentColor export if present, for suite-wide theming. |
Config.AtmModels |
table | { prop_atm_01, prop_atm_02, prop_atm_03, prop_fleeca_atm } |
World prop models that receive the ATM target prompt — matched globally, any matching prop anywhere on the map becomes usable. |
Config.AtmDailyLimit |
number | 1000 |
Default daily ATM withdrawal cap (used when a card has no tier daily_limit override). |
Config.AtmRequiresCardItem |
boolean | false |
If true, requires holding Config.AtmCardItem in inventory to use an ATM. |
Config.AtmCardItem |
string | 'debit_card' |
Inventory item name required when Config.AtmRequiresCardItem is true. Inert while that flag is false. |
Config.AtmMaxPinAttempts |
number | 3 |
Wrong PIN attempts allowed at an ATM before the card locks for that session (tracked in-memory per player+card). |
Config.AtmDenomination |
number | 20 |
ATM withdrawal amounts must be an exact multiple of this or the withdrawal is rejected (reason = 'denomination'). |
Config.Cards |
table | see below | Card system config (see breakdown below). |
Config.Transfer |
table | { Fee = 0, MinAmount = 1, MaxAmount = 1000000 } |
Transfer rules. Recipients are always identified by IBAN — phone/citizen-id lookup is intentionally unsupported. |
Config.Shared |
table | { MaxMembers = 8, MaxAccountsPerOwner = 3, OpenCost = 100 } |
Shared-account limits and the $ cost (from owner's checking) to open one. |
Config.Society |
table | { DefaultStartingBalance = 0 } |
Starting balance for new job/society accounts. Payroll/salaries are handled by the framework, not this resource. |
Config.Webhooks |
table | { Transfer='', AtmWithdraw='', CardOrder='', PinChange='', SharedInvite='', LargeTransaction='', AccountFrozen='' } |
Discord webhook URLs per event. Empty string disables that webhook silently — there is no separate boolean toggle, and a malformed (non-empty) URL will likely error rather than no-op. |
Config.LargeTransactionThreshold |
number | 5000 |
Dollar amount above which a transfer/withdrawal also fires the LargeTransaction webhook. |
Config.Categories |
table | { 'Salary', 'Transfer', 'Bills', 'Food', 'Auto', 'Shopping', 'Leisure', 'ATM', 'Other' } |
Transaction categories for UI filtering and server-side tagging. Must be kept in sync with web/src/utils/categories.ts. |
Config.Cards breakdown
Designs— ordered list of card design IDs; first entry is the default design.Tiers— map keyed by design id:{ cost, atm_fee_rate, atm_fee_min, daily_limit, label, description }.PhysicalDeliveryMinutes— minutes until a physical card is delivered to inventory (default1440).DefaultDailyLimit— fallback daily ATM limit when a card's tier has nodaily_limit(default1000).MaxPerPlayer— max cards one player may hold (default5).0means unlimited, not zero cards.
Notes
Config.PedPresets,Config.Colors.Green, andConfig.Webhooksall have runtime behaviors described in Troubleshooting — read that page before assuming a config value is the final word.- Currency, categories, transfer limits, card limits, and shared limits are all surfaced to the client UI via the
legacy-banking:getInitDatacallback payload, so changing them takes effect the next time a player opens the bank UI (no restart needed once the resource is running, though a resource restart is safest for engine-level values likeConfig.AtmModels).