Banking
Description
Banking lets players store money in individual accounts and deposit or withdraw cash at ATMs. The server can offer multiple wallets with separate currencies and limits, as well as payments for time online and bonuses for groups of Steam IDs.
To use it, interact with an ATM, select a wallet and enter an amount. The menu shows the bank balance, money carried by the character and the account limit.
Configure the matching currencies in Money. Bank data is saved per Steam ID in $profile:AC/Modules/Banking/<SteamID>.json. Preserve these files to retain player balances.
Configuration
Default configuration
Banking.json
{
"m_Enable": 0,
"m_Logging": 1,
"m_ATMs": [
{
"m_Name": "Green Mountain",
"m_Class": "AC_Banking_ATM_Red",
"m_Position": {
"m_X": 3706.575927734375,
"m_Y": 402.0,
"m_Z": 5986.47314453125
},
"m_Orientation": {
"m_Yaw": 100.0,
"m_Pitch": 0.0,
"m_Roll": 0.0
}
}
],
"m_PayCheck": {
"m_Amount": 60.0,
"m_Wallet": "",
"m_MinPlayerCount": 10,
"m_Groups": [
{
"m_Description": "desc",
"m_Steam": [
"00000000000000000"
],
"m_Bonus": 60.0
}
]
},
"m_Wallets": [
{
"m_Name": "ruble",
"m_Deposit": 1,
"m_Withdraw": 1,
"m_MaxBalance": 50000,
"m_StartBalance": 1000,
"m_Money": "ruble"
}
]
}Options
| Option | Type | Description |
|---|---|---|
m_Enable | bool | Enables the module with 1. With 0, configured ATMs and banking operations are disabled. |
m_Logging | bool | With 1, records deposits and withdrawals in the module logs. With 0, disables these records. |
m_ATMs | array<object> | List of ATMs created by the module. Use [] to create no ATMs through this configuration. Each entry defines a class, position and orientation. |
m_PayCheck | object | Configuration for payments based on time online. The client calculates an installment every 60 seconds, and the server requires the minimum player count. Fractions accumulate until they form whole units. |
m_Wallets | array<object> | Available bank wallets. Each keeps an independent balance per player and uses a currency registered in the Money module. |
m_ATMs[]
Fields of each entry in m_ATMs.
| Option | Type | Description |
|---|---|---|
m_Name | string | Reference name for the location in the configuration; it does not change the ATM class. |
m_Class | string | ATM class to create. Available classes are listed under Configuration classes. |
m_Position | object | World position in meters. Adjust the coordinates to the server map. |
m_Orientation | object | Rotation in degrees. |
m_ATMs[].m_Position
| Option | Type | Description |
|---|---|---|
m_X | float | Horizontal X coordinate. |
m_Y | float | Height. |
m_Z | float | Horizontal Z coordinate. |
m_ATMs[].m_Orientation
| Option | Type | Description |
|---|---|---|
m_Yaw | float | ATM direction. |
m_Pitch | float | Pitch angle. |
m_Roll | float | Roll angle. |
m_PayCheck
| Option | Type | Description |
|---|---|---|
m_Amount | float | Base amount per hour. Each minute calculates m_Amount / 60; with 60.0, this equals 1 unit per minute. With 0, only the base amount is removed; group bonuses can still produce payments. |
m_Wallet | string | Name of the bank wallet receiving payments, matching m_Wallets[].m_Name. An empty value disables payments. To use the default wallet, enter "ruble"; its associated currency must also exist in the Money module. |
m_MinPlayerCount | int | Minimum number of connected players required to credit payments. The condition is checked for each request; with 0, there is no minimum population requirement. |
m_Groups | array<object> | Groups that add payment bonuses. A player belonging to more than one group receives the sum of the matching bonuses. Use [] to pay only the base amount. |
m_PayCheck.m_Groups[]
| Option | Type | Description |
|---|---|---|
m_Description | string | Administrative description of the group; it does not define a permission or change the payment. |
m_Steam | array<string> | Steam IDs of players receiving the group bonus. Replace the example identifier with actual 17-digit Steam IDs. |
m_Bonus | float | Additional hourly amount for group members, divided by 60 each minute. With the default base amount and one default bonus, the player receives 2 units per minute when payments are enabled and enough players are online. |
m_Wallets[]
| Option | Type | Description |
|---|---|---|
m_Name | string | Wallet identifier and name displayed in the menu. Use unique names. Saved balances are associated with this identifier; renaming it causes the wallet to be treated as a different account. |
m_Deposit | bool | With 1, enables the deposit button in the menu. With 0, disables that button. |
m_Withdraw | bool | With 1, enables the withdrawal button in the menu. With 0, disables that button. |
m_MaxBalance | int | Limit used for deposits. If the requested amount exceeds the limit, the deposit is reduced to the available capacity. The individual m_Balances[].m_Bonus is added to this limit. Periodic payments do not apply this cap and can exceed it. |
m_StartBalance | int | Balance assigned when the player’s record for this wallet is created. Changing this value does not reset existing balances. |
m_Money | string | Currency name in Money.json, matching an entry’s m_Name in that file. Defines which physical items are removed on deposit and given on withdrawal. A missing currency prevents these operations and payments for this wallet. |
Configuration classes
Use the ATM class names below in m_ATMs[].m_Class and configure their position and orientation in Banking.json. They are created by the module and must not be included in types.xml for regular spawning.
| Class | Purpose |
|---|---|
AC_Banking_ATM | Default ATM. |
AC_Banking_ATM_Blue | Blue ATM. |
AC_Banking_ATM_Green | Green ATM. |
AC_Banking_ATM_Red | Red ATM. |
Commands
/reload banking
Reloads Banking configuration through the general command from the Commands module. Banking does not register its own chat commands.
- Syntax:
/reload banking - Arguments:
bankingidentifies the module to reload. - Permission:
command.reloadorroot. - Example:
/reload banking
Reloading removes and recreates the ATMs generated by the module using the current configuration. Player balance files are preserved.
Permissions
Banking does not check specific permissions for opening an ATM, depositing or withdrawing. These operations are available through ATM interaction when the module is enabled.
To allow administrative reloads, add command.reload to the responsible group’s m_Permissions in $profile:AC/Permissions.json. This permission also allows reloading other modules; root grants full administrative access. See Permissions for the file structure.
