← modperf · analyzed mods

Paragon Storage

SUPPORT FOR THIS MOD HAS ENDED ON 4/6/2025. THIS MEANS THAT IF THE MOD BREAKS DUE TO A UPDATE I WILL NOT FIX IT. I DO ALLOW YOU TO FIX THE MOD THROUGH CONFIGS AND SCRIPTS THO. Feel free to use this on your servers Class names, types in pack in the extras folder I allow this mod to be used on monetized servers repacking without my permission will result in a DMCA… (more)

SUPPORT FOR THIS MOD HAS ENDED ON 4/6/2025. THIS MEANS THAT IF THE MOD BREAKS DUE TO A UPDATE I WILL NOT FIX IT. I DO ALLOW YOU TO FIX THE MOD THROUGH CONFIGS AND SCRIPTS THO. Feel free to use this on your servers Class names, types in pack in the extras folder I allow this mod to be used on monetized servers repacking without my permission will result in a DMCA ------------------------------------------------------------------------- discord- https://discord.gg/mHrQzD7uWP Copyright 202X This item is not authorized for posting on Steam, except under the Steam account named BreezyGoinCrazy this mod works with RA codelocks and the original codelock mod Paragon Storage Setup MAKE SURE TO GET THIS MOD - https://steamcommunity.com/sharedfiles/filedetails/?id=2225837273&searchtext=inventory+fix once you have the mod loaded and working on your server theres a few settings to change first is to setup the attach to for the codelocks go to your servers ServerProfile>CodeLock>CodeLockConfig.json and set CanAttachTents "true" now thats thats setup you can change how long you want the raid time to be and how many batteries each safe takes go to your servers ServerProfile>Paragon_Storage>TabletHacking.json Search engine stuff: armor stand gunrack paragon storage crates containers safe base boxes tool bench helicopter pad Credit to Helkhiana for the codelock scripts

Workshop 3010267444 · mod updated 2025-03-09 · analyzed 2026-10-03 01:58 UTC · history · 323 script files

AnimationCharacterEconomyEnvironmentEquipmentPropsTag ReviewWeapon 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
1 by design

1 chain break, all on specific classes the mod replaces wholesale — matters only if another mod patches the same classes.

Structural footprint 1.1
A
1 by design
Heavier than 35% of 328 scripted mods analyzed.

less than 0.001% of each server frame at 100 players (0.001 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; 32 others share it. Ranked list.

20
40
60
  • 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
  • 37 mods
    0.0001 to 0.00022 ms/s · grade A
  • 26 mods
    0.00022 to 0.00046 ms/s · grade A
  • This mod
  • 22 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
  • 41 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.001 ms/s in all.

99%Event hooks · 99%
4 hooks · 0.00079 ms/s
Lifecycle hooks · 0.3%
1 hook · 0.000002 ms/s
Event hooksrun when something happens: an inventory move, a hit, an action 4 hooks 0.00079 ms/s 99% CodeLock.SetActions, Hammer.SetActions, Pliers.SetActions and 1 more
Lifecycle hooksrun when an entity is created, loaded or deleted 1 hook 0.000002 ms/s 0.3% 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.

Chain breaks, by consequence

1 override that skip super(), ranked by how much they can affect. On any server a break replaces vanilla's behaviour on that method and silences every earlier-loaded mod hooking it.

By design
Leaf class · ActionDigGardenPlot
ActionDigGardenPlot replaced on 1 method · 1 override

OnFinishProgressServer

Only this class is affected. Matters only if another mod in your stack patches the same class.

1 classActionDigGardenPlot
1 locationParagonStorage.pbo::scripts\4_world\DeployableStorage\Extra\ActionFixPlots.c:3

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 × 4 classes
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 70 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 ✓ ParagonStorage.pbo::scripts\4_world\Actions\ActionConstructor.c:3
ActionConstructor.RegisterActions — yes ✓ ParagonStorage.pbo::scripts\4_world\DeployableStorage\moddedActionConstructor.c:3
ActionConstructor.RegisterActions — yes ✓ TabletHacking.pbo::scripts\4_World\TabletHacking\Classes\UserActionsComponent\ActionConstructor.c:3
ActionDigGardenPlot.OnFinishProgressServer — yes ✗ none ParagonStorage.pbo::scripts\4_world\DeployableStorage\Extra\ActionFixPlots.c:3
ArmoredDoor_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:5
ArmoredDoor_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:11
BigSafe_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:19
BigSafe_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:25
BigTent_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:33
BigTent_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:39
BunkerDoor_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:47
BunkerDoor_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:53
CodeLock.NewUnlockServer — yes ✓ ParagonStorage.pbo::scripts\4_world\CodeLock\CodeLock.c:4
CodeLock.SetActions T2 yes ✓ ParagonStorage.pbo::scripts\4_world\CodeLock\CodeLock.c:20
CodeLockServerRPC.OpenTarget — yes ✓ ParagonStorage.pbo::scripts\4_world\CodeLock\CodeLockServerRPC.c:4
Compound_Gate_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:61
Compound_Gate_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:67
Container_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:75
Container_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:81
Double_Gun_Case_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:89
Double_Gun_Case_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:95
Dumpster_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:103
Dumpster_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:109
Fridge_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:117
Fridge_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:123
GraffitiCan_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:131
GraffitiCan_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:137
Gun_Case_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:145
Gun_Case_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:151
Hammer.SetActions T2 yes ✓ ParagonStorage.pbo::scripts\4_world\DeployableStorage\DismantleTool\DismantleTools.c:274
Hologram.ProjectionBasedOnParent — yes conditional ParagonStorage.pbo::scripts\4_world\DeployableStorage\Holograms.c:3
Hologram.PlaceEntity — yes ✗ none ParagonStorage.pbo::scripts\4_world\DeployableStorage\Holograms.c:525
Hologram.EvaluateCollision — yes conditional ParagonStorage.pbo::scripts\4_world\DeployableStorage\Holograms.c:544
IceBox_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:159
IceBox_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:165
IceCeramFreezer_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:173
IceCeramFreezer_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:179
Locker_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:187
Locker_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:193
MediumCrate_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:201
MediumCrate_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:207
MilitaryCrate_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:215
MilitaryCrate_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:221
MilitaryLocker_Colorbase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:229
MilitaryLocker_Colorbase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:235
MissionGameplay.OnMissionStart T3 yes ✓ TabletHacking.pbo::scripts\5_Mission\TabletHacking\mission\MissionGameplay.c:11
MissionServer.OnInit T3 yes ✓ TabletHacking.pbo::scripts\5_Mission\TabletHacking\mission\MissionServer.c:3
ModItemRegisterCallbacks.RegisterHeavy — yes ✓ ParagonStorage.pbo::scripts\4_world\entities\ModdedPlayercfgBase.c:3
Paragon_GreenHouse.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:257
Paragon_GreenHouse.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:263
Paragon_LargeGreenHouse.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:271
Paragon_LargeGreenHouse.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:277
Paragon_PlanterBox.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:243
Paragon_PlanterBox.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:249
Pliers.SetActions T2 yes ✓ ParagonStorage.pbo::scripts\4_world\DeployableStorage\DismantleTool\DismantleTools.c:3
ReinforcedDoor_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:285
ReinforcedDoor_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:291
Safe_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:299
Safe_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:305
Screwdriver.SetActions T2 yes ✓ ParagonStorage.pbo::scripts\4_world\DeployableStorage\DismantleTool\DismantleTools.c:138
SmallCrate_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:313
SmallCrate_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:319
SmallSafe_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:327
SmallSafe_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:333
TinyCrate_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:341
TinyCrate_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:347
WaterBarrel_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:355
WaterBarrel_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:361
WeaponsLocker_ColorBase.GetCostToUpkeep — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:369
WeaponsLocker_ColorBase.GetTimeToDecay — yes ✗ none ParagonStorage.pbo::scripts\4_world\Decay\StorageDecay.c:375
Dispatch surfaces and timers the grade prices
surfacetierrate (Hz)rate sourcems/s
CodeLock.SetActionsT2 8.0placeholder0.0002
Pliers.SetActionsT2 8.0placeholder0.0002
Screwdriver.SetActionsT2 8.0placeholder0.0002
Hammer.SetActionsT2 8.0placeholder0.0002
MissionServer.OnInitT3 0.1placeholder0.0000

Includes 0.001 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.

ParagonStorage.pbo

  • Paragon_ArmoredDoor requiredVersion 0.1 — requires DZ_Data
  • Paragon_Safe requiredVersion 0.1 — requires DZ_Data
  • Paragon_BigTent requiredVersion 0.1 — requires DZ_Data
  • Paragon_BunkerDoor requiredVersion 0.1 — requires DZ_Data
  • Paragon_Compound requiredVersion 0.1 — requires DZ_Data
  • Paragon_Storage requiredVersion 0.1 — requires DZ_Data, DZ_Scripts, DZ_Weapons_Melee, DZ_Characters_Vests, DZ_Gear_Tools, DZ_Gear_Camping, DZ_Weapons_Firearms, DZ_Gear_Containers
  • Paragon_Container requiredVersion 0.1 — requires DZ_Data
  • Paragon_Double_Gun_Case requiredVersion 0.1 — requires DZ_Data
  • Paragon_DoubleGunRack requiredVersion 0.1 — requires DZ_Data
  • Paragon_Dumpster requiredVersion 0.1 — requires DZ_Data
  • Paragon_Fridge requiredVersion 0.1 — requires DZ_Data
  • Paragon_GearStand requiredVersion 0.1 — requires DZ_Data
  • Paragon_GraffitiCan requiredVersion 0.1 — requires DZ_Data
  • Paragon_Gun_Case requiredVersion 0.1 — requires DZ_Data
  • Paragon_GunRack requiredVersion 0.1 — requires DZ_Data
  • Paragon_GunWall requiredVersion 0.1 — requires DZ_Data
  • Paragon_HeliPad requiredVersion 0.1 — requires DZ_Data
  • Paragon_HotDog requiredVersion 0.1 — requires DZ_Data
  • Paragon_IceBox requiredVersion 0.1 — requires DZ_Data
  • Paragon_IceCeramFreezer requiredVersion 0.1 — requires DZ_Data
  • Paragon_Locker requiredVersion 0.1 — requires DZ_Data
  • Paragon_MediumCrate requiredVersion 0.1 — requires DZ_Data
  • Paragon_MetalRack requiredVersion 0.1 — requires DZ_Data
  • Paragon_Military_Cabinet requiredVersion 0.1 — requires DZ_Data
  • Paragon_MilitaryCrate requiredVersion 0.1 — requires DZ_Data
  • Paragon_MilitaryLocker requiredVersion 0.1 — requires DZ_Data
  • Paragon_Pallet_Storage requiredVersion 0.1 — requires DZ_Data
  • Paragon_PlanterBox requiredVersion 0.1 — requires DZ_Data
  • Paragon_ReinforcedDoor requiredVersion 0.1 — requires DZ_Data
  • Paragon_Safe requiredVersion 0.1 — requires DZ_Data
  • SmallSign requiredVersion 0.1 — requires DZ_Data
  • Paragon_SmallCrate requiredVersion 0.1 — requires DZ_Data
  • Paragon_SmallSafe requiredVersion 0.1 — requires DZ_Data
  • Paragon_StorageBox — requires DZ_Data
  • Paragon_TinyCrate requiredVersion 0.1 — requires DZ_Data
  • Paragon_Tool_Bench requiredVersion 0.1 — requires DZ_Data
  • Paragon_TrashCan requiredVersion 0.1 — requires DZ_Data
  • Paragon_WallRack requiredVersion 0.1 — requires DZ_Data
  • Paragon_WaterBarrel requiredVersion 0.1 — requires DZ_Data
  • Paragon_Weapons_Locker requiredVersion 0.1 — requires DZ_Data
  • Paragon_Weapons_Rack requiredVersion 0.1 — requires DZ_Data
  • Paragon_Wood_Crate requiredVersion 0.1 — requires DZ_Data

TabletHacking.pbo

  • TabletHacking requiredVersion 0.1 — requires DZ_Data

census 1.1 · findings 1.1 · hash d030e6fe02d97556