SearchInventory
Many modded servers increase player inventory and inventory slots significantly over what vanilla DayZ has. It’s not uncommon to have inventory space in the thousands with nested pouches/containers and no easy way to locate an item other than scrolling through it all, looking at all your attachments and open every pouch and medkit to find what you’re looking for. Many servers also have traders and ability to grow… (more)
Many modded servers increase player inventory and inventory slots significantly over what vanilla DayZ has. It’s not uncommon to have inventory space in the thousands with nested pouches/containers and no easy way to locate an item other than scrolling through it all, looking at all your attachments and open every pouch and medkit to find what you’re looking for. Many servers also have traders and ability to grow and sell crops. There is no easy way in DayZ to transfer items between containers (to load up your car/heli for example) other than individually click and drag each item. If you loot items with inventory (such as clothing) DayZ will randomly put items in there and when you sell that item to a trader, you just lost whatever was in that item’s inventory. You have no easy way to know aggregate things about your inventory (such as: how much ammo do I have left on me) ----------------------------------------------------------------------- Reasons I created this mod: 1) Provide an easy and reliable way to locate items within your own inventory without having to scroll and open every pouch/container and attachment known to man 2) Provide useful information about your inventory such as numbers for total ammo, medication, list of damaged/ruined items, etc. 3) Display whether an item is empty or not, so you don't have to inspect every item individually before selling it (To avoid losing the inventory inside the item being sold). 4) Provide an easy way to transfer items from your own inventory to an open container in the vicinity without having to click and drag each item individually 5) Provide an easier way to "clean up" in servers with traders and trashcans as many players simply drop crap on the ground, often next to the trashcan because they don't want to individually click and drag items to the trashcan 6) Because I wanted to spin preview objects without being an admin on a server :D ----------------------------------------------------------------------- Features: Default Keybind to bring up the menu is “O” Dynamically updating list of items (item in your hands will turn green, dropping or moving am item will remove it from the list) Info panel gives total items of that kind along with total stacked items (like ammo, money, sticks, etc.) Search bar and categories for easy filtering Location tells you where in your inventory that particular item is (Your player name will be the location for items you are wearing) Damaged tab gives all the items which are not pristine. Items with inventory in them (Not Empty) and Ruined items are displayed at all panels Left Double-Click on any item from the main list will bring that item to your hands (If your hands are empty or if the mod can swap the item in your hands) Multiple Right Double-Click options: 1) 2-RightClicks: Drop Items to the ground 2) 2-RightClicks: Item assigned to QuickSlot1 3) 2-RightClicks: Move items to Container Moving to containers will only be enabled if the container has cargo space and the game allows the item you are selecting to be moved to the target container. The mod will automatically update with the name of the container and turn the text green once a valid container has been found, otherwise it won’t transfer any items even if you click. Bonus: Around Trashcans and Barrels any item in the vicinity/ground can be moved into the trashcan/barrel by simply double-right-clicking on the item. No more excuses to clean up trader zones ;) ----------------------------------------------------------------------- Notes: The options for dropping items on the ground or moving them to a container need to be checked every time the menu is opened as a “Are you sure?” feature to avoid mis-clicking and dropping/moving items accidentally. The mod disables item splitting only if they are on the ground and there is an open trashcan/barrel in the vicinity so trash items (such as bones) can be moved into the trashcan without being split This mod should have almost zero performance impact on any server. The only thing which needs server action/validation is the moving of items. All scanning and displaying is done on the client. ----------------------------------------------------------------------- Installation: This is a "normal" DayZ mod. This means that it needs to be added to the "-mod=" parameter of the server and it will run on both the server and the client. This is NOT a server-side only mod which get installed in "-serverMod=" ----------------------------------------------------------------------- NO Repacking allowed for this mod (Please respect this and save us all the paperwork). I have based the look and feel of my mod on VPPAdminTools and even though the underlying code is different, I don't want to create confusion or bad expectations. VPPAdminTools does not allow repacking and I want to respect the wishes of the creators even if this mod is only vaguely derivative. ----------------------------------------------------------------------- I want to give credit to the amazing work of the vpp-admin-tools dev(s) for their mod and code. I used their item manager as reference (I am sure many will notice the similarities in the UI). ----------------------------------------------------------------------- Copyright 2023 . This item is not authorized for posting, re-uploading or repacking on Steam, except under the Steam account named SometimesHuman
No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.
1 chain break, all on specific classes the mod replaces wholesale — matters only if another mod patches the same classes.
0.028% of each server frame at 100 players (0.280 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; 25 others share it. Ranked list.
Repeating timers carry 100% of this mod's structural load. 0.280 ms/s in all.
1 hook · 0.000002 ms/s
2 timers · 0.28 ms/s
| Lifecycle hooksrun when an entity is created, loaded or deleted | 1 hook | 0.000002 ms/s | <0.1% | MissionServer.OnInit |
| Repeating timersstay in the timer queue, which is walked every frame | 2 timers | 0.28 ms/s | 100% | 2 × every 100 ms |
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.
MouseClick
Only this class is affected. Matters only if another mod in your stack patches the same class.
1 class
VicinitySlotsContainer1 location
SearchInventory.pbo::Scripts\5_Mission\SearchInventory\modded_VicinitySlotsContainer.c:3Other findings
super() only on some paths · 1 · warning
- VicinitySlotsContainer.DoubleClick calls super.DoubleClick() only on some paths — on the others the chain below this mod is dropped.
SearchInventory.pbo::Scripts\5_Mission\SearchInventory\modded_VicinitySlotsContainer.c:38
- VicinitySlotsContainer.DoubleClick calls super.DoubleClick() only on some paths — on the others the chain below this mod is dropped.
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 7 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 |
|---|---|---|---|---|
MissionBase.CreateScriptedMenu |
— | yes | ✓ | SearchInventory.pbo::Scripts\5_Mission\UIHelper\UIMissionBase.c:2 |
MissionGameplay.OnUpdate |
T0 | yes | ✓ | SearchInventory.pbo::Scripts\5_Mission\SearchInventory\modded_MissionGameplay.c:3 |
MissionGameplay.OnKeyPress |
— | yes | ✓ | SearchInventory.pbo::Scripts\5_Mission\UIHelper\UIMissionGameplay.c:5 |
MissionGameplay.OnUpdate |
T0 | yes | ✓ | SearchInventory.pbo::Scripts\5_Mission\UIHelper\UIMissionGameplay.c:22 |
MissionServer.OnInit |
T3 | yes | ✓ | SearchInventory.pbo::Scripts\5_Mission\SearchInventory\modded_MissionServer.c:3 |
VicinitySlotsContainer.MouseClick |
— | yes | ✗ none | SearchInventory.pbo::Scripts\5_Mission\SearchInventory\modded_VicinitySlotsContainer.c:3 |
VicinitySlotsContainer.DoubleClick |
— | yes | conditional | SearchInventory.pbo::Scripts\5_Mission\SearchInventory\modded_VicinitySlotsContainer.c:38 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
MissionServer.OnInit | T3 | 0.1 | placeholder | 0.0000 |
Repeating timers
| period (ms) | residency ms/s | firing ms/s | where |
|---|---|---|---|
| 100 | 0.1400 | 0.000248 | SearchInventory.pbo::Scripts\5_Mission\UIHelper\UI\UISearchInventoryWindow.c:162 |
| 100 | 0.1400 | 0.000248 | SearchInventory.pbo::Scripts\5_Mission\UIHelper\UI\UISearchInventoryWindow.c:163 |
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.
SearchInventory.pbo
SIN_SearchInventory— requiresDZ_Data
census 1.1 · findings 1.1 · hash 8afe6a59d3b1a7a2