DayZ-Expansion-Market
Features Overview: Market System with trading zones, dynamic and static stock Default market item category configurations for all Vanilla and Expansion items. Default market world zone configuration for all Vanilla and Expansion items. Default trader configurations for all Vanilla and Expansion items. Default market trader spawn configurations and locations for Chernarus. Item condition affects sell price as well as… (more)
Features Overview: Market System with trading zones, dynamic and static stock Default market item category configurations for all Vanilla and Expansion items. Default market world zone configuration for all Vanilla and Expansion items. Default trader configurations for all Vanilla and Expansion items. Default market trader spawn configurations and locations for Chernarus. Item condition affects sell price as well as stock. Traders can be NPCs or static objects. Server owners can configure any item that has quantity or is stackable as currency - want a Zucchini-based economy? Go for it! We have added a lot of color settings for the market menu so you can create your own presets for the menu and its color style. Added a toggle button to collapse/expand all market category sections in the menu. Added support for eAI based Traders. We added the possibility to add and use item variations within the market item configurations. Item variations will always use the min/max price and min/max stock threshold of the base item if there is no existing separate configuration for this variation item. Every variation will still have a separate stock in market zones. All item variations will be displayed in a new dropdown selector in the detailed item section of the menu. Default market item variations configuration for all vanilla and expansion items. Default configuration for a Base-Building supply trader. Different sell/buy option filters within the menu. Search for items. Default min and max prices for all vanilla and expansion items. Option to the trader item settings to determine if an item can only be purchased/sold. And much more! Installation If you need help to install the mods or the mission files please follow this guide: https://steamcommunity.com/sharedfiles/filedetails/?id=2430317812 Guides: Please visit the Expansion Wiki for further info on how to use the mod: https://github.com/salutesh/DayZ-Expansion-Scripts/wiki/%5BServer-Hosting%5D-The-Market-System Feedback We're grateful to hear any feedback and suggestions from anyone, the best place to give it to us would be our Discord (https://discord.gg/rMZuS4F), please also join if you have any questions too! Thank you to everyone who has been supporting us on this journey during the past two years! Without everyone's continuous support, we might have never made it to this point. With DayZ Expansion out the gates, we can finally lean back for a moment and relax but don't worry, we've got many more things planned for the future of DayZ Expansion! Copyright 2021 DayZ Expansion Mod Team. This item is not authorized for posting on Steam, except under the Steam account https://steamcommunity.com/id/dayzexpansion/
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.
0.00056% of each server frame at 100 players (0.006 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; 9 others share it. Ranked list.
Event hooks carry 99.9% of this mod's structural load. 0.006 ms/s in all.
13 hooks · 0.0056 ms/s
| Event hooksrun when something happens: an inventory move, a hit, an action | 13 hooks | 0.0056 ms/s | 99.9% | ItemBase.EEItemLocationChanged, ActionCoverHeadTarget.ActionCondition, ActionDisinfectTarget.ActionCondition and 9 more |
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 · 10 · warning
- ItemBase.EEItemLocationChanged calls super.EEItemLocationChanged() only on some paths — on the others the chain below this mod is dropped.
market_scripts.pbo::4_World\DayZExpansion_Market\Entities\ItemBase.c:16 - ActionCoverHeadTarget.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionCoverHeadTarget.c:15 - ActionDisinfectTarget.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\SingleUse\Medical\ActionDisinfectTarget.c:15 - ActionForceConsume.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionForceConsume.c:15 - ActionForceConsumeSingle.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\SingleUse\ActionForceConsumeSingle.c:15 - ActionGagTarget.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionGagTarget.c:15 - ActionHandcuffTarget.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\SingleUse\ActionHandcuffTarget.c:15 - ActionInjectTarget.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\SingleUse\Medical\ActionInjectTarget.c:15 - ActionRestrainTarget.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionRestrainTarget.c:15 - ActionShaveTarget.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionShaveTarget.c:15
- ItemBase.EEItemLocationChanged calls super.EEItemLocationChanged() only on some paths — on the others the chain below this mod is dropped.
Several overrides of one hot surface · 1 · info
- 2 overrides of PlayerBase.SetActions within this mod.
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 23 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 | ✓ | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\ActionConstructor.c:18 |
ActionConstructor.RegisterActions |
— | yes | ✓ | p2pmarket_scripts.pbo::4_World\DayZExpansion_P2PMarket\Classes\UserActionsComponent\ActionConstructor.c:21 |
ActionCoverHeadTarget.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionCoverHeadTarget.c:15 |
ActionDisinfectTarget.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\SingleUse\Medical\ActionDisinfectTarget.c:15 |
ActionForceConsume.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionForceConsume.c:15 |
ActionForceConsumeSingle.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\SingleUse\ActionForceConsumeSingle.c:15 |
ActionGagTarget.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionGagTarget.c:15 |
ActionHandcuffTarget.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\SingleUse\ActionHandcuffTarget.c:15 |
ActionInjectTarget.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\SingleUse\Medical\ActionInjectTarget.c:15 |
ActionRestrainTarget.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionRestrainTarget.c:15 |
ActionShaveTarget.ActionCondition |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\UserActionsComponent\Actions\Continuous\ActionShaveTarget.c:15 |
DayZExpansion.OnLoaded |
— | yes | ✓ | market_scripts.pbo::5_Mission\DayZExpansion_Market\DayZExpansion.c:19 |
ExpansionSettings.Init |
— | yes | ✓ | market_scripts.pbo::3_Game\DayZExpansion_Market\Settings\ExpansionSettings.c:17 |
ExpansionSettings.Init |
— | yes | ✓ | p2pmarket_scripts.pbo::3_Game\DayZExpansion_P2PMarket\Settings\ExpansionSettings.c:17 |
ItemBase.EEItemLocationChanged |
T2 | yes | conditional | market_scripts.pbo::4_World\DayZExpansion_Market\Entities\ItemBase.c:16 |
ItemBase.CanRemoveFromCargo |
— | yes | ✓ | market_scripts.pbo::4_World\DayZExpansion_Market\Entities\Items\ExpansionMoneyBase.c:29 |
ItemBase.CanRemoveFromHands |
— | yes | ✓ | market_scripts.pbo::4_World\DayZExpansion_Market\Entities\Items\ExpansionMoneyBase.c:40 |
ItemBase.CanPutIntoHands |
T2 | yes | ✓ | market_scripts.pbo::4_World\DayZExpansion_Market\Entities\Items\ExpansionMoneyBase.c:51 |
MissionGameplay.Expansion_OnUpdate |
— | yes | ✓ | p2pmarket_scripts.pbo::5_Mission\DayZExpansion_P2PMarket\MissionGameplay.c:15 |
ModItemRegisterCallbacks.RegisterOneHanded |
— | yes | ✓ | market_scripts.pbo::4_World\DayZExpansion_Market\Classes\JMAnimRegister.c:15 |
MotorbikeScript.OnCEIterate |
— | yes | ✓ | market_scripts.pbo::4_World\DayZExpansion_Market\Entities\Vehicles\MotorbikeScript.c:5 |
PlayerBase.SetActions |
T2 | yes | ✓ | market_scripts.pbo::4_World\DayZExpansion_Market\Entities\ManBase\PlayerBase.c:29 |
PlayerBase.SetActions |
T2 | yes | ✓ | p2pmarket_scripts.pbo::4_World\DayZExpansion_P2PMarket\Entities\ManBase\PlayerBase.c:15 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
ItemBase.EEItemLocationChanged | T2 | 130.0 | measured | 0.0032 |
ActionCoverHeadTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionForceConsume.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionGagTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionRestrainTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionShaveTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionForceConsumeSingle.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionHandcuffTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionDisinfectTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionInjectTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ItemBase.CanPutIntoHands | T2 | 8.0 | placeholder | 0.0002 |
PlayerBase.SetActions | T2 | 8.0 | placeholder | 0.0002 |
PlayerBase.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Includes 0.002 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.
0_market_preload.pbo
DayZExpansion_Market_PreloadrequiredVersion 0.1 — no requiredAddons
0_p2pmarket_preload.pbo
DayZExpansion_P2PMarket_PreloadrequiredVersion 0.1 — no requiredAddons
languagecore_market.pbo
DayZExpansion_LanguageCore_MarketrequiredVersion 0.1 — no requiredAddons
market_gui.pbo
DayZExpansion_Market_GUIrequiredVersion 0.1 — requiresDayZExpansion_Core_GUI
market_objects.pbo
DayZExpansion_Market_ObjectsrequiredVersion 0.1 — requiresDZ_Data,DZ_Structures_Signs,DZ_Animals,DZ_Animals_Bliss,DZ_Characters,DZ_Characters_Zombies,DayZExpansion_Dta_Core,DayZExpansion_Core_Objects_Currencies,DayZExpansion_Core_Objects_Bases
market_scripts.pbo
DayZExpansion_Market_ScriptsrequiredVersion 0.1 — requiresDZ_Scripts,DayZExpansion_Core_Scripts
market_structures.pbo
DayZExpansion_Market_StructuresrequiredVersion 0.1 — requiresDZ_DataDayZExpansion_Market_StructuresrequiredVersion 0.1 — requiresDZ_Data
p2pmarket_gui.pbo
DayZExpansion_P2PMarket_GUIrequiredVersion 0.1 — no requiredAddons
p2pmarket_objects.pbo
DayZExpansion_P2PMarket_ObjectsrequiredVersion 0.1 — requiresDZ_Data,DZ_Characters,DayZExpansion_Dta_Core,DayZExpansion_Core_Objects_Bases
p2pmarket_scripts.pbo
DayZExpansion_P2PMarket_ScriptsrequiredVersion 0.1 — requiresDayZExpansion_Core_Scripts
census 1.1 · findings 1.1 · hash 0aa3e741a7c7749d