← modperf · analyzed mods

Enhanced Banking

Enhanced Banking This mod will change your Servers Economy and brings it to the next level. Even if you already had a banking mod on your Server. This is different. Features - Easy import from Deadcraft's Banking or Advanced Banking by setting one option in the config (Mod does not need to be loaded for that) - Pesonal Bank account - Option to Rob ATMs - Group Bank Account (requires Advanced Groups) - Option to… (more)

Enhanced Banking This mod will change your Servers Economy and brings it to the next level. Even if you already had a banking mod on your Server. This is different. Features - Easy import from Deadcraft's Banking or Advanced Banking by setting one option in the config (Mod does not need to be loaded for that) - Pesonal Bank account - Option to Rob ATMs - Group Bank Account (requires Advanced Groups) - Option to required a Credit Card - Robbing ATMs depends either on luck or on how much money was deposited there (controllable via Config) - When robbing an ATM you must stay within a Radius, but you can still defend yourself - Option to announce when Player robbes an ATM and also mark it on the map - Works without a Trader Mod and with custom currencies (default are from the Trader mod) - Multipe ATM variantes included - Option to easily add your Own Models by letting the Object inherit "LB_ATM_Base" How to install With Advanced Groups Mod All your config Files will be located in your profiles/LBGroup folder Without Advanced Groups Mod All your config Files will be located in your profiles/LBBanking folder the two important files are ATMConfig.json - importFromDeadcraftBanking: 0 -> if set to 1, Enhanced Banking will try to import all Data from Deadcraft's Banking Mod (must not be installed) - importFromKRBanking: 0 -> if set to 1, Enhanced Banking will try to import all Data from the Advanced Banking Mod (must not be installed) - personalATMAccountEnabled: 1 -> controlls if the Personal Account should be available - personalATMAccountMaxMoney: 100000 -> Maximum Money a player can have (+ individual Bonus Limit) - personalATMStartMoney: 1000 -> Money a Player get's when using the ATM the first time - transactionDelayMS: 2000 -> Delay in Milliseconds between Transactions to prevent Spam - currencySuffix: "$" -> Custom currency Suffix if you use a different currency - hintRobAmount: 0 -> If set to 1, a hint with an estimated amount of money will be displayed before robbing the ATM (Hint messages and limits are set in robAmountHints !) - robMinimalAvailableMoney: 1000 -> Money, that must be available to rob. If expected Money is lower than the limit, the ATM cannot be robbed - markRobbedATMOnMap: 1 -> Will Mark the Position of the robbery on the Map (Only Advanced Groups or Basic Map) - robmarkerName: "" -> Name of the Marker. Will replace "$PLAYERNAME$" with the actual Playername of the robbing player - robmarkerIcon: "" -> Path to the Icon which will be used for the Map Marker - robbingTimeMinutes: 15 -> Time in minutes it takes to rob an ATM - minPlayersOnlineToStartRobbing: 25 -> Minimum Amount of Players online to allow ATM robbing - notifyAllPlayersWhenATMIsRobbed: 1 -> Will send a popup notification which will be displayed at the top to all Players. Will replace "$PLAYERNAME$" with the robbers name and "%ATM_POSITION%" with the position set in the ATMs config (see below) - robbingFinishedNotificationMessage: "" -> Message beeing displayed for everybody when the ATM was robbed successfully - robAmountHints: [] -> array which defines which hint will be displayed for a specific amount of money beeing available - minMoney: 0 -> Minimum Money beeing available for this hint to be displayed - description: "Low" -> The actual text, that will be shown - currencyValues: [] -> array which defines the value of each currency - itemclassname: "MoneyRuble1" -> Classname of the Item (Case sensitive !) - value: 1 -> Actual Value of the Item (if stackable, it's a single item of the stack) These options only apply if used together with the Advanced Groups Mod ! - groupATMAccountEnabled: 0 -> Enabled the Group Account feature - groupATMCreationCost: 10000 -> How much Money it costs to create a Group Account for the Own group (will be removed from the players inventory) - groupATMAccountBaseMoney: 20000 -> Maximum Money which every Group has independent of the membercount - groupATMAccountPerPlayer: 25000 -> Additional Amount of Maximum Money every Group has for each Member -> 2 Members * 25000 + BaseMoney = 50000 + BaseMoney = 70000 Maximum -> 5 Members * 25000 + BaseMoney = 125000 + BaseMoney = 145000 Maximum -> Higher Basemoney will give smaller groups an advantage - groupATMMinPlayers: Minimul amount of Players needed to create a Group Account. (Account can still be accessed if member count falls below this value after creating the Account) ATMPositions.json - classname: "LB_ATM_Green" -> Item Classname of the ATM which will be spawned - position: -> Position where the ATM is located - orientation: -> Orientation of the ATM - robPosition: "Green Mountain" -> Position which will be displayed in the Robbing Notification - canBeRobbed: 0 -> Defines if the ATM can be robbed or not. Should not be enabled for ATMs in the Safezone - needLockpickToRobATM: 1 -> Forces the Robber to have a Lockpick to rob the ATM - minutesLockedAfterRobbing: 10 -> Time in Minutes the ATM cannot be accessed by ANYONE after robbing was finished (both if successful or not) - minutesNotRobbableAfterRobbing: 60 -> Time in Minutes the ATM cannot be robbed by ANYONE after robbis was finished (both if successful or not) - minutesRobberNeedsToWaitBeforeRobbingAgain: 1440 -> Time in Minutes the Robber needs to wait until he can rob the ATM again (default is one Day) - useDepositedCashToCalculateRobbedMoney: 1 -> Use deposited Cash as base for the amount of money, that can be robbed from the ATM. (details below - cashDeposited: 0 -> Keeps track of how much money was deposited minus the withdrawn money. This value will be overwritten by the Server while running - depositedCashIncreasePerMin: 20 -> Amount of money added to cashDeposited every minute to make less frequently used ATMs more appealing for robbers - robbedDepositedCashPercent: 0.10 -> 0.10 = 10%, 0.20 = 20% .This Value affects the amount of money that will be robbed from the deposited Cash (see below) - maxMoneyRobbedFromDepositedMoney: 20000 -> Cap for the maximum Money that can be robbed when using useDepositedCashToCalculateRobbedMoney: 1 - staticMinRobbedCash: 10000 -> if using useDepositedCashToCalculateRobbedMoney: 0, a random number between this value and staticMaxRobbedCash will be picked - needCreditCard: 0 -> No Credit Card required to access the ATM needCreditCard: 1 means you need to have a Credit Card in your Hands to access the ATM - lastRobbers: -> Array which keeps track of the last robberies (expired will be deleted automatically) Robbed Money Calculation - if you have useDepositedCashToCalculateRobbedMoney set to 1: The exact formula would be cashDeposited * robbedDepositedCashPercent which is capped at maxMoneyRobbedFromDepositedMoney. -> 35000 * 0.10 = 3500 -> 75000 * 0.20 = 15000 -> 120000 * 0.20 = 24000 (capped at 20000) - if you have useDepositedCashToCalculateRobbedMoney set to 0: The exact formula would be a random Number between staticMinRobbedCash and staticMaxRobbedCash -> 10000, 20000 -> 12543 or any other number between 10000 and 20000 All Options not explained here should not be touched and are internal variables which can break the Mod if changed Copyright 2020 LBmaster. You are not allowed to publish this Object on Steam. Only the Steamaccount LBmaster is allowed to do so ! You are not allowed to repack / modify / reupload this mod or parts of it unless you have written Permission by me ! Also Thanks to DrJones for letting me use part of his Trader Money logic

Workshop 2454879181 · mod updated 2022-06-18 · analyzed 2026-10-03 07:38 UTC · history · 34 script files

EconomyMechanics Workshop tags, chosen by the author

Stall risks
None found

No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.

Compatibility
Chain-safe

Every server-visible override preserves its chain.

Structural footprint 1.1
A
clean
Heavier than 18% of 328 scripted mods analyzed.

less than 0.001% of each server frame at 100 players (0.000 ms/s). Counts hook dispatch and timers only, not what the hooks do inside. Methodology.

Where this mod sits

Structural load of the 328 scripted mods analyzed, lightest on the left. This mod's bar is lit; 36 others share it. Ranked list.

10
20
30
40
  • 24 mods
    0.0000022 to 0.0000046 ms/s · grade A
  • 7 mods
    0.0000046 to 0.00001 ms/s · grade A
  • 1 mod
    0.00001 to 0.000022 ms/s · grade A
  • 1 mod
    0.000022 to 0.000046 ms/s · grade A
  • This mod
  • 26 mods
    0.00022 to 0.00046 ms/s · grade A
  • 33 mods
    0.00046 to 0.001 ms/s · grade A
  • 23 mods
    0.001 to 0.0022 ms/s · grade A
  • 13 mods
    0.0022 to 0.0046 ms/s · grade A
  • 10 mods
    0.0046 to 0.01 ms/s · grade A
  • 5 mods
    0.01 to 0.022 ms/s · grade A
  • 18 mods
    0.022 to 0.046 ms/s · grade A
  • 17 mods
    0.046 to 0.1 ms/s · grade A
  • 40 mods
    0.1 to 0.22 ms/s · grade A
  • 26 mods
    0.22 to 0.46 ms/s · grade A
  • 28 mods
    0.46 to 1 ms/s · grade A
  • 8 mods
    1 to 2.2 ms/s · grade A to B
  • 10 mods
    2.2 to 4.6 ms/s · grade B
  • 1 mod
    4.6 to 10 ms/s · grade B to C
A316
B11
C1
D0
E0
ms/s, log scale: each labelled step is ten times the one before. Letter grade and mods holding it below the axis.
Where the load comes from

Event hooks carry 99% of this mod's structural load. 0.000 ms/s in all.

99%Event hooks · 99%
1 hook · 0.0002 ms/s
Lifecycle hooks · 1.0%
1 hook · 0.000002 ms/s
Event hooksrun when something happens: an inventory move, a hit, an action 1 hook 0.0002 ms/s 99% PlayerBase.SetActions
Lifecycle hooksrun when an entity is created, loaded or deleted 1 hook 0.000002 ms/s 1.0% MissionServer.OnInit

Counts how often each hook is dispatched and how many timers stay alive, not what the code inside does. Some rates are order-of-magnitude estimates; the methodology lists which.

Where this mod runs often

Hooks on per-frame and high-rate surfaces, with what their bodies call. Body work, not the hook itself, is what costs frame time.

SetActions on PlayerBase
per event
no I/O, timers or RPC

Other findings

What this report can tell you

Which vanilla methods the mod hooks, which of them drop the chain, how often each hook fires, and which risky calls sit inside hot hooks.

What it cannot

How long hook bodies take, network cost, or engine-side load. Measured across live fleets, most server lag comes from the engine and world state, not mod script chains — a light footprint does not clear a mod of lag, and a heavy one does not convict it. Methodology.

Everything else

All 15 overrides

Surface is the dispatch tier the rubric can price (— = unpriced); server is whether the override exists on a dedicated server; super() shows whether the vanilla chain is preserved on a server.

methodsurfaceserversuper()where
ActionConstructor.RegisterActions — yes ✓ LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\Classes\Action\ActionConstructor.c:3
LB_ATM_Playerbase.IsBankingAvailable — yes ✗ none LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\Entities\MoneyPlayer.c:3
LB_ATM_Playerbase.GetATMMoney — yes ✗ none LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\Entities\MoneyPlayer.c:7
LB_ATM_Playerbase.AddATMMoney — yes ✗ none LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\Entities\MoneyPlayer.c:12
LB_ATM_Playerbase.AddableATMMoney — yes ✗ none LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\Entities\MoneyPlayer.c:20
LB_ATM_Playerbase.RemoveATMMoney — yes ✗ none LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\Entities\MoneyPlayer.c:26
LBGroup.OnLoadServer — yes ✓ LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\config\LBGroup.c:5
MissionGameplay.OnGroupChanged — yes ✓ LBmaster_Groups_ATM.pbo::scripts\5_Mission\Groups-ATM\mission\missionGameplay.c:23
MissionGameplay.OnKeyPress — yes ✓ LBmaster_Groups_ATM.pbo::scripts\5_Mission\Groups-ATM\mission\missionGameplay.c:105
MissionGameplay.OnCreditCardDataReceived — yes ✗ none LBmaster_Groups_ATM.pbo::scripts\5_Mission\Groups-ATM\mission\missionGameplay.c:113
MissionGameplay.OnCreditCardPinChange — yes ✗ none LBmaster_Groups_ATM.pbo::scripts\5_Mission\Groups-ATM\mission\missionGameplay.c:119
MissionGameplay.OnUpdate T0 yes ✓ LBmaster_Groups_ATM.pbo::scripts\5_Mission\Groups-ATM\mission\missionGameplay.c:126
MissionServer.OnInit T3 yes ✓ LBmaster_Groups_ATM.pbo::scripts\5_Mission\Groups-ATM\mission\missionServer.c:5
ModItemRegisterCallbacks.RegisterOneHanded — yes ✓ LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\Entities\Animations.c:4
PlayerBase.SetActions T2 yes ✓ LBmaster_Groups_ATM.pbo::scripts\4_World\Groups-ATM\Entities\PlayerBase.c:17
Dispatch surfaces and timers the grade prices
surfacetierrate (Hz)rate sourcems/s
PlayerBase.SetActionsT2 8.0placeholder0.0002
MissionServer.OnInitT3 0.1placeholder0.0000

Includes 0.000 ms/s from placeholder-rated surfaces.

Load-order constraints (CfgPatches)

What each PBO declares: its addon identity and the addons it requires to be loaded first (requiredAddons). A partial load-order signal from the mod's own metadata.

LBmaster_Groups_ATM.pbo

  • LBmaster_Groups_ATM requiredVersion 0.1 — requires DZ_Scripts, LBmaster_Groups, DZ_Data

census 1.1 · findings 1.1 · hash 942648c8f733c7e9