Skip to content

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
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 ​

OptionTypeDescription
m_EnableboolEnables the module with 1. With 0, configured ATMs and banking operations are disabled.
m_LoggingboolWith 1, records deposits and withdrawals in the module logs. With 0, disables these records.
m_ATMsarray<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_PayCheckobjectConfiguration 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_Walletsarray<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.

OptionTypeDescription
m_NamestringReference name for the location in the configuration; it does not change the ATM class.
m_ClassstringATM class to create. Available classes are listed under Configuration classes.
m_PositionobjectWorld position in meters. Adjust the coordinates to the server map.
m_OrientationobjectRotation in degrees.

m_ATMs[].m_Position ​

OptionTypeDescription
m_XfloatHorizontal X coordinate.
m_YfloatHeight.
m_ZfloatHorizontal Z coordinate.

m_ATMs[].m_Orientation ​

OptionTypeDescription
m_YawfloatATM direction.
m_PitchfloatPitch angle.
m_RollfloatRoll angle.

m_PayCheck ​

OptionTypeDescription
m_AmountfloatBase 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_WalletstringName 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_MinPlayerCountintMinimum number of connected players required to credit payments. The condition is checked for each request; with 0, there is no minimum population requirement.
m_Groupsarray<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[] ​

OptionTypeDescription
m_DescriptionstringAdministrative description of the group; it does not define a permission or change the payment.
m_Steamarray<string>Steam IDs of players receiving the group bonus. Replace the example identifier with actual 17-digit Steam IDs.
m_BonusfloatAdditional 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[] ​

OptionTypeDescription
m_NamestringWallet 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_DepositboolWith 1, enables the deposit button in the menu. With 0, disables that button.
m_WithdrawboolWith 1, enables the withdrawal button in the menu. With 0, disables that button.
m_MaxBalanceintLimit 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_StartBalanceintBalance assigned when the player’s record for this wallet is created. Changing this value does not reset existing balances.
m_MoneystringCurrency 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.

ClassPurpose
AC_Banking_ATMDefault ATM.
AC_Banking_ATM_BlueBlue ATM.
AC_Banking_ATM_GreenGreen ATM.
AC_Banking_ATM_RedRed 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: banking identifies the module to reload.
  • Permission: command.reload or root.
  • 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.

Released under the MIT License.