TOWK's Stashes
Join the discord!! https://discord.gg/pynR8P6eh TOWKStashes TOWKStashes is a configurable hidden stash system for DayZ built around randomized locations, custom stash containers, configurable loot pools, and lightweight spawning. Stashes can be placed across the map using simple coordinates and spawn groups. Each group can randomly select from multiple possible locations, use one of the included stash models, and… (more)
Join the discord!! https://discord.gg/pynR8P6eh TOWKStashes TOWKStashes is a configurable hidden stash system for DayZ built around randomized locations, custom stash containers, configurable loot pools, and lightweight spawning. Stashes can be placed across the map using simple coordinates and spawn groups. Each group can randomly select from multiple possible locations, use one of the included stash models, and pull loot from its own configurable loot pool. The system is designed to keep unnecessary server load down by staggering stash creation and only spawning the actual loot items when a stash is opened. Features Three custom hidden stash containers Randomized stash locations Separate configurable loot pools Weighted loot selection Loot generated only when a stash is first opened Configurable spawn pacing Configurable cleanup pacing Automatic stash refresh system Optional Discord webhook support Stashes reset on server restart Players cannot pick up or deploy the stashes Players cannot place items inside the stashes Players can only open, close, and remove the generated loot Hidden Stashes TOWKStashes currently includes three stash types: stash_barrel stash_crate stash_container Each stash functions as its own loot container. Players cannot pick the stash up, place it into another container, deploy it, or use it as permanent storage. The only intended interaction is: Open the stash Take the loot Close the stash Players cannot put their own items back inside. The display name also changes depending on its state: Hidden Stash (Closed) Hidden Stash (Opened) Randomized Spawning Stash locations are controlled through: $profile:TOWKStashes\Config.json Each area can contain multiple possible coordinates. Example: { "name": "MilitaryStashes", "maxRandomSpawns": 2, "storageType": "stash_crate", "lootPool": "Military", "spawns": [ { "x": 4748.25, "y": 338.665, "z": 9741.23 }, { "x": 4675.09, "y": 338.784, "z": 9872.3 }, { "x": 4741.87, "y": 338.66, "z": 9755.08 } ] } With: "maxRandomSpawns": 2 the system will randomly select two of those three locations during that spawn cycle. The available storage types are: stash_barrel stash_crate stash_container If the Y coordinate is set to: "y": 0 the mod will automatically use the terrain height at that location. Loot Pools Loot is configured separately through: $profile:TOWKStashes\LootPool.json Each stash area can select its own loot pool. The default configuration includes example pools for: Military Medical Survival The default loot configuration only uses vanilla DayZ items and is intended as a starting point for server owners. Each pool supports: minItems maxItems allowDuplicates weight Item weights are relative chances rather than percentages. For example: Item A - Weight 20 Item B - Weight 10 Item A is twice as likely to be selected as Item B. Lazy Loot Generation One of the main performance features of TOWKStashes is that the actual loot items are NOT created when the server starts. When a stash is spawned, the system selects the classnames for its loot. The actual DayZ item entities are only created when a player opens that stash for the first time. This means unopened stashes do not sit around the map containing unnecessary item entities. Once the loot has been generated, reopening the same stash will not generate another set of loot. Performance Settings Runtime and startup performance can be configured through: $profile:TOWKStashes\Settings.json The default settings are intentionally conservative. "startupDelayMs": 10000 "spawnAmountPerTick": 1 "spawnTickMs": 300 "wipePositionsPerTick": 3 "wipeDeletesPerTick": 3 "wipeTickMs": 250 "refreshTimer": 0 Rather than attempting to create every stash in a single frame, the default configuration gradually spawns them. By default: 1 stash every 300ms Cleanup is also processed in smaller batches instead of attempting to remove everything at once. Stash Refresh TOWKStashes supports automatic stash refreshes through: "refreshTimer": 0 The refresh timer is configured in minutes. Setting it to: 0 disables automatic runtime refreshes. With refresh disabled, the stash system resets during the next server restart. Example: "refreshTimer": 360 will perform a full stash refresh every 6 hours. A refresh removes the current stashes, rerolls their configured spawn locations, and gradually creates a fresh set. Configuration Files All configuration files are automatically created inside: $profile:TOWKStashes The system uses three main files: Config.json LootPool.json Settings.json Config.json Controls stash areas, coordinates, stash type, loot pool selection, and optional webhook settings. LootPool.json Controls available loot pools, item classnames, item counts, duplicate behavior, and weights. Settings.json Controls startup delay, staggered spawning, cleanup pacing, and automatic refresh timing. The generated configuration files include comments explaining the available settings. Discord Webhook Optional Discord webhook support is included. The webhook can be configured in: Config.json Leave: "webhookUrl": "" empty to disable webhook monitoring. No webhook URL is included by default. Classnames stash_barrel stash_crate stash_container Credits Author: The One Who Knocks Credits: Jay About TOWKStashes was built to provide configurable hidden loot caches without turning the system into a heavy constantly-running script. Spawn locations, loot pools, performance settings, and refresh behavior can all be configured without modifying the core scripts. The goal is a simple stash system that server owners can configure around their own map, loot economy, and restart schedule. Repacking If you would like to repack TOWK's Stashes into your server pack, then just leave a comment saying you are repacking the mod. I only ask that you give me credits in your mod pack and leave a link to this mod. Seriously
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.000 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; 23 others share it. Ranked list.
Lifecycle hooks carry 81% of this mod's structural load. 0.000 ms/s in all.
1 hook · 0.000002 ms/s
| Lifecycle hooksrun when an entity is created, loaded or deleted | 1 hook | 0.000002 ms/s | 81% | 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.
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 2 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 | ✓ | TOWKStashes.pbo::scripts\4_World\Actions\ActionConstructor.c:3 |
MissionServer.OnInit |
T3 | yes | ✓ | TOWKStashes.pbo::scripts\5_Mission\MissionServer.c:11 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
MissionServer.OnInit | T3 | 0.1 | placeholder | 0.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.
TOWKStashes.pbo
TOWKStashesrequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Gear_Containers
census 1.1 · findings 1.1 · hash 2488f6dec94d0dfb