Building Fortifications
Huge Shout out to Asmondian for his Artwork and Graphics donated to this project 🔨 Building Fortifications ‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒ CREATED BY DUMPGRAH, THE BUILDING FORTIFICATION MOD ADDS COMPLETE NEW MODELS AND CRAFTING RECIPIES TO THE DAYZ BASEBUILDING FEATURE TO BE ABLE TO TAKE ADVANTAGE OF THE CURRENT MAP BUILDINGS FORTIFYING ITS DOORS AND WINDOWS. IS AN INTERMEDIATE (AND COMPLEMENTARY) ALTERNATIVE TO… (more)
Huge Shout out to Asmondian for his Artwork and Graphics donated to this project 🔨 Building Fortifications ‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒ CREATED BY DUMPGRAH, THE BUILDING FORTIFICATION MOD ADDS COMPLETE NEW MODELS AND CRAFTING RECIPIES TO THE DAYZ BASEBUILDING FEATURE TO BE ABLE TO TAKE ADVANTAGE OF THE CURRENT MAP BUILDINGS FORTIFYING ITS DOORS AND WINDOWS. IS AN INTERMEDIATE (AND COMPLEMENTARY) ALTERNATIVE TO THE VANILLA BASEBUILDING SYSTEM (EVEN COMPATIBLE WITH OTHER MODDED SYSTEMS) THAT OFFERS A MORE ORGANIC ALTERNATIVE WHILE ENRICHING THE ORIGINAL EXPERIENCE. IS COMPOSED MAINLY OF TWO MAJOR ELEMENTS: 1) WINDOWS BARRICADE 2) DOOR BARRICADE 🔨 General Features ‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒ THE CONSTRUCTION PROCESS IS QUITE INTUITIVE AND IN ACCORDANCE WITH THE METHOD USED IN VANILLA CONSTRUCTIONS. EACH PART OR PORTION OF A WINDOW OR DOOR BARRICADE WILL REQUIRE A NUMBER OF ITEMS FOR ITS CONSTRUCTION, WHICH ARE DETAILED IN THE INFOGRAPHICS PRESENT IN THIS MOD. BOTH THE DURABILITY, THE METHOD OF DESTRUCTION AND ITS HEALTH VALUE CAN BE CUSTOMIZED AS I ACCOMPANY A CUSTOM FILE THAT YOU CAN FIND AND ADD TO YOUR SERVER, AS WELL AS AN EXPLANATORY DOCUMENT OF ITS OPERATION. 🔨 Upcoming developments ‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒‒ THIS IS JUST THE BEGINNING OF MY IDEAS TO OFFER AN ORGANIC AND COMPLEMENTARY ALTERNATIVE TO VANILLA BASEBUILDING IN ORDER TO SECURE STATIC BUILDINGS AROUND THE MAP (CHERNARUS, LIVONIA OR ANY OTHER COMMUNITY MAP). YOU CAN FOLLOW ME ON DISCORD OR TWITTER TO BE MORE INFORMED ABOUT DEVELOPMENTS AND NEWS. 🔨 This mod is Open source and free to use under the GNU AGPL 3.0 License v3.0. ‒‒‒‒‒‒‒‒‒‒‒‒‒‒ https://github.com/Dumpgrah/Public-BuildingFortification Source Code Rules For anyone interested in repacking please read all this 1st I heavily discourage Repacking/Building from my source code, as it would greatly impact your ability to receive feature updates and bug fixes 2nd I will not support any repacks if its is causing conflict that I can't reproduce with the my published mod 3rd YOU MUST PROVIDE CREDIT on the steam page and you must link to the Original Mod or the Source Code This Mod Content or items may never be monetized. This includes forcing players to pay for content included in this mod or behind any paywall or locked behind any perks or Donator package and must not breach DayZ's EULA. Any reports given of this mod being monetized and you will be asked to remove the mod from your server. This mod and its contents shall remain free. THIS MODS CONTENT OR ITEMS MAY NEVER BE MONETIZED. THIS INCLUDES FORCING PLAYERS TO PAY FOR CONTENT INCLUDED IN THIS MOD OR BEHIND ANY PAYWALL OR LOCKED BEHIND ANY PERKS OR DONATOR PACKAGE AND MUST NOT BREACH DAYZ'S EULA. ANY REPORTS GIVEN OF THIS MOD BEING MONETIZED AND YOU WILL BE ASKED TO REMOVE THE MOD FROM YOUR SERVER. THIS MOD AND ITS CONTENTS SHALL REMAIN FREE. Monetized Allowed Priority Que from Bohemia Interactive is Allowed
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.099% of each server frame at 100 players (0.990 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; 27 others share it. Ranked list.
Repeating timers carry 99.9% of this mod's structural load. 0.990 ms/s in all.
6 hooks · 0.0012 ms/s
2 hooks · 0.000004 ms/s
6 timers · 0.99 ms/s
| Event hooksrun when something happens: an inventory move, a hit, an action | 6 hooks | 0.0012 ms/s | 0.1% | ActionDialCombinationLockOnTarget.ActionCondition, ActionNextCombinationLockDialOnTarget.ActionCondition, CodeLock.SetActions and 3 more |
| Lifecycle hooksrun when an entity is created, loaded or deleted | 2 hooks | 0.000004 ms/s | <0.1% | MissionServer.InvokeOnConnect, MissionServer.OnInit |
| Repeating timersstay in the timer queue, which is walked every frame | 6 timers | 0.99 ms/s | 99.9% | 6 × every frame |
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.
OnFinishProgressServer
Only this class is affected. Matters only if another mod in your stack patches the same class.
1 class
ActionDialCombinationLockOnTarget1 location
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Contininues\Modded\ActionDialCombinationLockOnTarget.c:27Where 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.
ActionCondition on ActionDialCombinationLockOnTargetActionCondition on ActionNextCombinationLockDialOnTargetOther findings
super() only on some paths · 7 · warning
- ActionDialCombinationLockOnTarget.ActionCondition returns true without consulting super.ActionCondition() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Contininues\Modded\ActionDialCombinationLockOnTarget.c:3 - CombinationLock.IsLockAttached returns true without consulting super.IsLockAttached() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\CombinationLock.c:50 - CombinationLock.IsLockedOnGate returns true without consulting super.IsLockedOnGate() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\CombinationLock.c:36 - CombinationLock.UnlockOnServer calls super.UnlockOnServer() only on some paths — on the others the chain below this mod is dropped.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\CombinationLock.c:4 - Construction.ReceiveMaterialsServer calls super.ReceiveMaterialsServer() only on some paths — on the others the chain below this mod is dropped.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Classes\BaseBuilding\Construction.c:197 - Construction.TakeMaterialsServer calls super.TakeMaterialsServer() only on some paths — on the others the chain below this mod is dropped.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Classes\BaseBuilding\Construction.c:108 - Construction.HasMaterials vetoes early (returns false) on some paths and defers to super.HasMaterials() otherwise — composes safely with vanilla's and earlier mods' conditions.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Classes\BaseBuilding\Construction.c:23
- ActionDialCombinationLockOnTarget.ActionCondition returns true without consulting super.ActionCondition() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
Checks answered without super() · 2 · warning
- ActionDismantlePart.DismantleCondition returns its own answer without consulting super.DismantleCondition() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Contininues\Modded\ActionDismantlePart.c:4 - ActionNextCombinationLockDialOnTarget.ActionCondition returns its own answer without consulting super.ActionCondition() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Contininues\Modded\ActionNextCombinationLockDialOnTarget.c:3
- ActionDismantlePart.DismantleCondition returns its own answer without consulting super.DismantleCondition() — vanilla's conditions on this check, and those of every earlier-loaded mod, no longer apply. Intended when a mod owns the rule outright; otherwise it is how another mod's restriction quietly stops working.
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 21 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 | ✓ | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\ActionConstructor.c:3 |
ActionDialCombinationLockOnTarget.ActionCondition |
T2 | yes | conditional | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Contininues\Modded\ActionDialCombinationLockOnTarget.c:3 |
ActionDialCombinationLockOnTarget.OnFinishProgressServer |
— | yes | ✗ none | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Contininues\Modded\ActionDialCombinationLockOnTarget.c:27 |
ActionDismantlePart.DismantleCondition |
— | yes | ✗ none | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Contininues\Modded\ActionDismantlePart.c:4 |
ActionNextCombinationLockDialOnTarget.ActionCondition |
T2 | yes | ✗ none | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Contininues\Modded\ActionNextCombinationLockDialOnTarget.c:3 |
CodeLock.SetActions |
T2 | yes | ✓ | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Actions\Instant\ActionManageLockOnDoor.c:231 |
CombinationLock.UnlockOnServer |
— | yes | conditional | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\CombinationLock.c:4 |
CombinationLock.IsLockedOnGate |
— | yes | conditional | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\CombinationLock.c:36 |
CombinationLock.IsLockAttached |
— | yes | conditional | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\CombinationLock.c:50 |
Construction.HasMaterials |
— | yes | conditional | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Classes\BaseBuilding\Construction.c:23 |
Construction.TakeMaterialsServer |
— | yes | conditional | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Classes\BaseBuilding\Construction.c:108 |
Construction.ReceiveMaterialsServer |
— | yes | conditional | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Classes\BaseBuilding\Construction.c:197 |
DayZGame.OnRPC |
T2 | yes | ✓ | BuildingFortifications.pbo::scripts\3_Game\BuildingFortifications\DayZGame.c:9 |
ExpansionCodeLock.UpdateVisuals_Deferred |
— | yes | ✓ | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\ExpansionCodeLock.c:4 |
Hacksaw.SetActions |
T2 | yes | ✓ | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\SledgeHammer.c:17 |
HDSN_DestructionManager.GetWallType |
— | yes | ✓ | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\Classes\Modded Class\BreachingCharge_Desctructionmanger.c:39 |
MissionServer.OnInit |
T3 | yes | ✓ | BuildingFortifications.pbo::scripts\5_Mission\BuildingFortifications\MissionServer.c:3 |
MissionServer.InvokeOnConnect |
T3 | yes | ✓ | BuildingFortifications.pbo::scripts\5_Mission\BuildingFortifications\MissionServer.c:12 |
ModItemRegisterCallbacks.RegisterHeavy |
— | yes | ✓ | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ModItemRegisterCallbacks.c:4 |
PluginRecipesManager.RegisterRecipies |
— | yes | ✓ | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\PluginRecipesManager.c:3 |
SledgeHammer.SetActions |
T2 | yes | ✓ | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\ItemBase\SledgeHammer.c:8 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
DayZGame.OnRPC | T2 | 8.0 | placeholder | 0.0002 |
ActionDialCombinationLockOnTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionNextCombinationLockDialOnTarget.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
CodeLock.SetActions | T2 | 8.0 | placeholder | 0.0002 |
SledgeHammer.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Hacksaw.SetActions | T2 | 8.0 | placeholder | 0.0002 |
MissionServer.OnInit | T3 | 0.1 | placeholder | 0.0000 |
MissionServer.InvokeOnConnect | T3 | 0.1 | placeholder | 0.0000 |
Repeating timers
| period (ms) | residency ms/s | firing ms/s | where |
|---|---|---|---|
| 0 | 0.1400 | 0.024800 | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\BuildingFortifications\BF_DoorBarricade.c:540 |
| 0 | 0.1400 | 0.024800 | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\BuildingFortifications\BF_DoorBarricade.c:586 |
| 0 | 0.1400 | 0.024800 | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\BuildingFortifications\BF_DoubleDoorBarricade.c:606 |
| 0 | 0.1400 | 0.024800 | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\BuildingFortifications\BF_DoubleDoorBarricade.c:649 |
| 0 | 0.1400 | 0.024800 | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\BuildingFortifications\BF_WindowBarricade.c:417 |
| 0 | 0.1400 | 0.024800 | BuildingFortifications.pbo::scripts\4_World\BuildingFortifications\BuildingFortifications\BF_WindowBarricade.c:447 |
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.
0_BF_Define.pbo
BF_DefinerequiredVersion 0.1 — no requiredAddonsBF_DefinerequiredVersion 0.1 — no requiredAddons
BuildingFortifications.pbo
BuildingFortifications_Data— no requiredAddonsBuildingFortifications_Data— no requiredAddonsBuildingFortifications_GUI— no requiredAddonsBuildingFortifications_GUI— no requiredAddonsBuildingFortifications_LanguageCorerequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Gear_ConsumablesBuildingFortifications_LanguageCorerequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Gear_ConsumablesBuildingFortificationsrequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Gear_Consumables,BuildingFortifications_Data,BuildingFortifications_LanguageCore,BuildingFortifications_GUIBuildingFortificationsrequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts,DZ_Gear_Consumables,BuildingFortifications_Data,BuildingFortifications_LanguageCore,BuildingFortifications_GUI
census 1.1 · findings 1.1 · hash 604074a8283468e4