BetterStash
BetterStash Here is a mod I made a little while back and decided to release it publically as a few have requested it. The mod adds a Plastic Barrel which functions similarly to the barrels in the game already, however you can use a shovel bury it to turn it into a hidden stash, inspired by the hidden caches in Tarkov. The Hidden stash differs from the buried stashes already in the game, as you can access the loot… (more)
BetterStash Here is a mod I made a little while back and decided to release it publically as a few have requested it. The mod adds a Plastic Barrel which functions similarly to the barrels in the game already, however you can use a shovel bury it to turn it into a hidden stash, inspired by the hidden caches in Tarkov. The Hidden stash differs from the buried stashes already in the game, as you can access the loot without requring a shovel each time to dig it up. The intended use is for servers with no base building, where it is difficult to store, for example, Namalsk Lore items. This give you a small amount of hidden storage that can be easily accessed, but you still run the risk of players finding it. It's suprsingingly well hidden in long grass and around trees. (Be careful, as with the vanilla stashes, they can sometimes become unreachable if placed too far into an object). Usage I do no permit people to repack this mod. I allow this mod to be used on monitised servers. Server Owners Theres a types.xml in the mod folder with a lifetime set to 14 days for the stash once it's in the ground (they are set up for namalsk so change usages accordingly). The stashes are logged when the are dug in and dug out, which will go into Profiles/Betterstash/logs folder. classnames: PlasticBarrel PlasticBarrelStash Credits Model Used Thanks to Syntax for the muddy retexture! Thanks to Designful for helping with the logging! “Copyright 2022 [Pope Leo.] This item is not authorized for posting on Steam, except under the Steam account named Pope Leo”
No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.
Every server-visible override preserves its chain.
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.
Structural load of the 328 scripted mods analyzed, lightest on the left. This mod's bar is lit; 32 others share it. Ranked list.
Event hooks carry 99.5% of this mod's structural load. 0.001 ms/s in all.
5 hooks · 0.00099 ms/s
1 hook · 0.000002 ms/s
| Event hooksrun when something happens: an inventory move, a hit, an action | 5 hooks | 0.00099 ms/s | 99.5% | ActionTogglePlaceObject.ActionCondition, FarmingHoe.SetActions, FieldShovel.SetActions and 2 more |
| Lifecycle hooksrun when an entity is created, loaded or deleted | 1 hook | 0.000002 ms/s | 0.2% | 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.
Other findings
super() only on some paths · 1 · warning
- ActionTogglePlaceObject.ActionCondition returns true without consulting super.ActionCondition() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
BetterStash.pbo::scripts\4_world\classes\UserActionComponent\Actions\SingleUse\ActionTogglePlaceObject.c:3
- ActionTogglePlaceObject.ActionCondition returns true without consulting super.ActionCondition() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
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.
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 8 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.
| method | surface | server | super() | where |
|---|---|---|---|---|
ActionConstructor.RegisterActions |
— | yes | ✓ | BetterStash.pbo::scripts\4_world\classes\UserActionComponent\ActionConstructor.c:3 |
ActionTogglePlaceObject.ActionCondition |
T2 | yes | conditional | BetterStash.pbo::scripts\4_world\classes\UserActionComponent\Actions\SingleUse\ActionTogglePlaceObject.c:3 |
FarmingHoe.SetActions |
T2 | yes | ✓ | BetterStash.pbo::scripts\4_world\Entities\ItemBase\Shovel.c:12 |
FieldShovel.SetActions |
T2 | yes | ✓ | BetterStash.pbo::scripts\4_world\Entities\ItemBase\Shovel.c:32 |
MissionServer.OnInit |
T3 | yes | ✓ | BetterStash.pbo::scripts\5_Mission\Mission\MissionServer.c:3 |
ModItemRegisterCallbacks.RegisterHeavy |
— | yes | ✓ | BetterStash.pbo::scripts\4_world\Entities\Manbase\DayZPlayer\DayZPlayerCfgBase.c:3 |
Pickaxe.SetActions |
T2 | yes | ✓ | BetterStash.pbo::scripts\4_world\Entities\ItemBase\Shovel.c:22 |
Shovel.SetActions |
T2 | yes | ✓ | BetterStash.pbo::scripts\4_world\Entities\ItemBase\Shovel.c:3 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
ActionTogglePlaceObject.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
Shovel.SetActions | T2 | 8.0 | placeholder | 0.0002 |
FarmingHoe.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Pickaxe.SetActions | T2 | 8.0 | placeholder | 0.0002 |
FieldShovel.SetActions | T2 | 8.0 | placeholder | 0.0002 |
MissionServer.OnInit | T3 | 0.1 | placeholder | 0.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.
BetterStash.pbo
BetterStashrequiredVersion 0.1 — requiresDZ_Data,DZ_Gear_Containers
census 1.1 · findings 1.1 · hash d56513839799836a