Configuration
💎 PAID | Purchase on Tebex
Complete configuration reference for nc-atm. All settings are in config/config.lua.
Framework & Target
Config.Framework = 'auto' -- 'qbcore' | 'qbox' | 'esx' | 'ox' | 'auto'
Config.TargetSystem = 'auto' -- 'ox_target' | 'qb-target' | 'qtarget' | 'interact' | 'auto'
'auto'detects the first available resource'interact'= E key proximity (no target resource needed)
E Key Interaction
Used when no target system is detected:
Config.InteractKey = 38 -- E
Config.InteractPrompt = '[E]'
Config.InteractDrawDistance = 10.0
Config.InteractFontScale = 0.35
Config.InteractDistance = 2.5
Locale & Currency
Config.Locale = 'en'
Config.CurrencySymbol = '$'
Config.CurrencyPosition = 'before' -- 'before' → $1,000 | 'after' → 1,000$
Config.CurrencyLocale = 'en-US'
Config.CurrencyDecimals = 0
Database
Config.AutoInstallSQL = true -- auto-create tables on first start
PIN
Config.RequirePin = true -- require PIN on ATM login
Config.RequirePinOnATM = true -- (redundant guard)
Config.DefaultPin = '0000' -- PIN assigned to new players
Config.PinLength = 4 -- digits
Config.MaxPinAttempts = 5 -- failures before lockout
Config.PinLockoutTime = 30 -- lockout duration (seconds)
Transfer
Config.ATMTransferEnabled = true
Config.ATMTransferMode = 'serverid' -- only 'serverid' supported
Config.TransferCooldown = 5 -- seconds between transfers
Config.MinTransferAmount = 1
Config.MaxTransferAmount = 1000000
Notification
Config.NotificationType = 'ox_lib' -- 'ox_lib' | 'qb' | 'esx'
Sound
Config.MoneyCountVolume = 0.6 -- cash counting sound volume
Config.MoneyCountEndVolume = 0.7
Admin
Config.ATMSpawnCommand = 'atmspawn' -- /atmspawn [model]
Config.ATMDeleteCommand = 'atmdelete' -- /atmdelete
Config.AdminAcePermission = false -- false = everyone | 'nc-atm.admin' = ACE required
For production servers set
Config.AdminAcePermission = 'nc-atm.admin'and grant it viaadd_ace.
ATM Models
Models that receive target interaction:
Config.ATMModels = {
'prop_atm_01',
'prop_atm_02',
'prop_atm_03',
'prop_atm_04',
'prop_fleeca_atm',
'amb_prop_pine_atm',
}
Add any custom prop model names here.
ATM Spawn
Config.ATMSpawnEnabled = true
Config.ATMSpawnModel = 'prop_atm_01' -- default model for /atmspawn
Config.ATMSpawnBlip = {
enabled = true,
sprite = 108,
color = 2,
scale = 0.6,
label = 'ATM',
}
Camera Presets
Per-model camera settings used when a player opens the ATM. You can add custom presets for modded props.
Config.ATMCameraPresets = {
{
name = 'default',
enabled = true,
distance = 0.8, -- camera distance from ATM
rightOffset = 0.0, -- lateral offset
height = 1.4, -- camera height
lookAtHeight = 0.8, -- where camera looks vertically
fov = 42.0,
transitionMs = 800, -- smooth transition (ms)
dof = true, -- depth of field blur
dofNear = 0.3,
dofFar = 4.0,
dofStrength = 0.6,
models = { 'prop_atm_01' },
},
{
name = 'fleeca',
enabled = true,
distance = 0.6,
height = 1.6,
lookAtHeight = 1.1,
fov = 45.0,
transitionMs = 800,
dof = true,
dofNear = 0.3,
dofFar = 4.0,
dofStrength = 0.6,
models = { 'prop_fleeca_atm', 'prop_atm_02', 'prop_atm_03', 'prop_atm_04' },
},
}
NUI Overlay (ATMNUI)
Fallback screen and button positions used when no calibration file exists for the current model.
Config.ATMNUI = {
enabled = true,
debug = false, -- show bounding boxes in-game
-- Fallback screen position (% of viewport)
screen = { left = 38, top = 20, width = 24, height = 55 },
-- Fallback button size (vw%)
buttonWidth = 3.5,
buttonHeight = 3.5,
buttonGap = 0.8,
-- Left side buttons
leftButtons = {
{ label = 'Balance', event = 'checkBalance', top = 12 },
{ label = 'Deposit', event = 'deposit', top = 30 },
{ label = 'Withdraw', event = 'withdraw', top = 48 },
{ label = 'Transfer', event = 'transfer', top = 66 },
},
-- Right side buttons
rightButtons = {
{ label = 'PIN', event = 'changePin', top = 12 },
{ label = 'History', event = 'transactions', top = 30 },
{ label = '', event = '', top = 48 },
{ label = 'Cancel', event = 'close', top = 66 },
},
-- PIN pad position and size
pinPad = {
enabled = true,
left = 35,
bottom = 0,
width = 8,
height = 20,
keyGap = 6,
},
-- Default key layout (4-column)
pinKeys = {
{ '1', '2', '3', 'CANCEL' },
{ '4', '5', '6', 'CLEAR' },
{ '7', '8', '9', 'ENTER' },
{ '', '0', '', '' },
},
-- Per-model key layout overrides (3-column)
pinKeysPerModel = {
['prop_atm_01'] = {
{ '1', '2', '3' },
{ '4', '5', '6' },
{ '7', '8', '9' },
{ 'CANCEL', '0', 'ENTER' },
},
-- prop_fleeca_atm, amb_prop_pine_atm — same 3-column layout
},
}
Button event values
| Event | Action |
|---|---|
checkBalance |
Show current bank balance |
deposit |
Go to deposit amount screen |
withdraw |
Go to withdraw amount screen |
transfer |
Go to transfer screen |
changePin |
Go to PIN change flow |
transactions |
Show transaction history |
close |
Close the ATM |
ATM Calibration
Config.ATMCalibration = {
enabled = true,
debug = false,
command = 'atmcalibrate', -- /atmcalibrate
permission = false, -- false = everyone | true = AdminAcePermission | 'custom.ace' = specific
}
External UI Toggle
Auto-hide other resource UIs when the ATM opens:
Config.ExternalUIToggle = {
-- { resource = 'your-hud', export = 'ToggleHUD' },
}
Force Close Other NUI
Config.ForceCloseOtherNUI = false
Config.CloseResources = {
-- { resource = 'ox_inventory', export = 'closeInventory' },
}