> ## Documentation Index
> Fetch the complete documentation index at: https://docs.aps-store.com/llms.txt
> Use this file to discover all available pages before exploring further.

# config.server.lua

> Server settings of aps_banking: table names, security limits, the scheduler interval, admin access and the Discord webhooks.

`config/config.server.lua` holds these settings. Every option is explained in the comments below.

> [!NOTE]
>
> Runs on: **server**. This file stays editable when the resource is escrow-protected. Restart the resource after a change.

```lua theme={null}
Config = Config or {}

-- ─────────────────────────────────────────────
--  Database table names
-- ─────────────────────────────────────────────
Config.DB = {
    accounts     = 'aps_bank_accounts',
    members      = 'aps_bank_members',
    transactions = 'aps_bank_transactions',
    cards        = 'aps_bank_cards',
    loans        = 'aps_bank_loans',
    loanPayments = 'aps_bank_loan_payments',
    credit       = 'aps_bank_credit',
    creditLog    = 'aps_bank_credit_log',
    receipts     = 'aps_bank_receipts',
    scheduler    = 'aps_bank_scheduler',
    migrated     = 'aps_bank_migrated',
}

-- ─────────────────────────────────────────────
--  Security
--    callbackLimit / callbackWindow   requests per player per window (seconds)
--    maxAmount        highest amount of a single money action
--    maxDistance      a player further than this from where the session was
--                     opened can't move money any more (metres)
--    moneyCooldownMs  minimum time between two money actions of one player
--    allowClientOpen  the client export openBank() also works away from a branch.
--                     A cheat can call that too, so leave it off unless a phone
--                     or tablet script needs it (the server export needs no flag).
-- ─────────────────────────────────────────────
Config.Security = {
    callbackLimit   = 40,
    callbackWindow  = 5,
    maxAmount       = 100000000,
    maxDistance     = 15.0,
    moneyCooldownMs = 250,
    allowClientOpen = false,
}

-- ─────────────────────────────────────────────
--  Scheduler — how often due work is checked (minutes).
--  Interest and loans are stored per row, so a restart or a long downtime
--  never pays twice and never skips a period.
-- ─────────────────────────────────────────────
Config.Scheduler = { interval = 5 }

-- ─────────────────────────────────────────────
--  Bank admin panel
--    jobs     job → lowest grade with access
--    ace      players with this ace also get access ('' turns it off)
-- ─────────────────────────────────────────────
Config.Admin = {
    jobs = {
        banker = 0,
    },
    ace = 'aps_banking.admin',
}

-- ─────────────────────────────────────────────
--  Discord webhooks, one per category ('' = off)
-- ─────────────────────────────────────────────
Config.Webhooks = {
    username = 'APS Bank',
    color    = 10074317,
    urls = {
        money  = '',
        cards  = '',
        loans  = '',
        shared = '',
        admin  = '',
    },
    -- only money movements of at least this amount are posted
    minAmount = 0,
}
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.