DNA Keycards
DNA Keycards by Dirty n Arrakis We urge server owners to join the Discord for this mod: https://discord.gg/VKgt2Qv7yE This will ensure you get notified of any major updates that may require attention to the config. 100% Free, no catches, no locked server files from people you dont trust needed, just install from the workshop, edit your files in your server’s profile folder (will show as DNA_Keycards) and you are… (more)
DNA Keycards by Dirty n Arrakis We urge server owners to join the Discord for this mod: https://discord.gg/VKgt2Qv7yE This will ensure you get notified of any major updates that may require attention to the config. 100% Free, no catches, no locked server files from people you dont trust needed, just install from the workshop, edit your files in your server’s profile folder (will show as DNA_Keycards) and you are good to go When using this mod, we STRONGLY recommend restarting no less often than every 4 hours, after 4 hours some of the functions used become unreliable. (It's a Bohemia thing, nothing we can do about it) This mod contains a full keycard mod with 5 tiers of loot crates, 5 tiers of vaults (strongrooms) and 5 different holographic keycards. When a Keycard is spent it will show ERROR on the card. You can edit everything via the config files which will be in your server’s profile folder. You can change the order of the tiers, the colours round, the loot types, how it spawns, where it spawns, if its dynamic or manually located, everything. Includes: - Mod - Types - Trader Files - In Depth Instructions - Sample Config (Based on Chernarus.. Has some stuff from mods! Make sure to filter anything you don't have or want.) Keycards - 5 tiers of keycards - Lowest / highest (yellow, Green, Blue, Purple, Red) - These are glass illuminated holographic keycards that the player needs to open the Crates or the Vaults (Strongrooms). - The player will put the card into the card reader and then once they remove it the crate or vault will then open for them. This is to ensure they don’t leave keycards with multiple uses in the card readers by mistake. Loot Crates - 5 tiers of Crates - Lowest / highest (yellow, Green, Blue, Purple, Red) - These match the cards by colour on the front panel of the crate and are illuminated at night or low light conditions. - The Crates are all 1,000 slots and you can choose to load them however you wish Vaults (Strongrooms) - 5 tiers of strongroom - Lowest / highest (yellow, Green, Blue, Purple, Red) - These match the cards by colour of the strongroom text on the building, these signs are located on the front and the top rear/felt corner. They are illuminated at night or low light conditions clearly showing which tier the strongroom belongs to. - The strongroom has 2 floors: Ground floor: This has 2 entrances and the vault. Once the vault is activated it will go through a 4-stage opening process that takes 9 seconds. First floor: This floor has 1 entrance via a fire escape from the and a staircase from the main room to gain access. The building is designed with multiple ways in and multiple ways to protect, guard or attack. There are windows on the top floor that can be shot out of, and grenades thrown in. the workbenches can be climbed on to look out. - The first floor has been designed with close-quarter-combat in mind to add a bit of tactics to the event. Keycard Doors Added 5 tiers of doors that can be used to make your own locked locations Also added 6 walls so you can fine tune how you place the doors - W6 Shed specific wall (its the big shed) - Bars to block halls and windows - 4 walls which are tall, wide or both All these can be added in the editor and they just work, no config needed :) Pics Added Dynamic spawning of Crates and Vaults (Strongrooms) - By default, dynamic spawning is turned off, - Static spawns use your own locations with Crates and Vaults (Strongrooms) and the configs for spawning loot will apply to them. Use DayZ Editor or like place the object. (Please see support for those mods on instructions how to do this) Trader files and Types are included, which is only needed for the keycards should you wish to add them. Any issues please let us know and we will look into it ASAP, we will mark this as testing for now so people can get in any thing they find. Its been tested but you know what things are like when 50,000 people start using it. IF YOU PLAN TO DMCA OUT OF SPITE…. - All scripts were written from the ground up by oSoDirty, over a 3-month period, with all the work time stamped and evidencable. - All models and sounds were created by Arrakis from scratch, using Blender, Substance Painter, and have all the source files. - This is a community add-on for the betterment of the game and enjoyment of the players. That’s why this is free and always will be. - We understand you have a paid for mod, if its so good then you have nothing to worry about. - Don’t be a DMCA toaster. //////////////////////////////////////////// ////////// COPYRIGHTS ////////// //////////////////////////////////////////// ***** This mod can be uploaded only from oSoDirtys and/or Arrakis' Steam accounts ***** ***** All content is made by oSoDirty and I to which we own all intellectual rights, we decide who can use it and where ***** ***** Modification, or repacking of this mod is prohibited ***** ***** Publication of this mod without our permission is prohibited ***** ***** You may use this mod on monetised servers but the mod itself cannot be monetised ***** ***** Any violation of the above will result in a DMCA request without warning ***** //////////////////////////////////////////// Why we don’t allow repacking and the use of this mod in a server-pack? 1) As we update, change, improve or fix things, you won’t get these updates and inevitably things will eventually break your end and it will look like the mod is the issue, when it’s not. 2) Support issues are 99% because of server mod-packs being out of date and it wastes our time helping. 3) It devalues the number of people using it in the workshop so it looks like a dead mod. We want this mod to be popular so we can then justify our time making you other cool mods. 4) It does not help your server performance running it in your server mod pack, this is a Myth that packing mods helps with server fps… you don’t believe Spider Man is real… so don’t believe this please. 5) You are forcing players to download and store the same data over and over for no good reason. Players don’t want to download a 300MB mod 1,231 times. //////////////////////////////////////////// Special thanks to: InclementDab : Spawner Method for buildings. Zedmag : Dynamic Attachments. Tyson: Fixing my disaster attempt of creating a buildable workbench. (Seriously, thank you! :D ) onderwish : Alarm Tone for opening doors/crates - find it here - https://freesound.org/people/onderwish/sounds/470504/ ////////////////////////////////////////////
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.0141% of each server frame at 100 players (0.141 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; 40 others share it. Ranked list.
Repeating timers carry 99% of this mod's structural load. 0.141 ms/s in all.
6 hooks · 0.0012 ms/s
1 hook · 0.000002 ms/s
1 timer · 0.14 ms/s
| Event hooksrun when something happens: an inventory move, a hit, an action | 6 hooks | 0.0012 ms/s | 0.8% | ActionCloseDoors.ActionCondition, ActionDeployObject.ActionCondition, ActionLockDoors.ActionCondition and 3 more |
| Lifecycle hooksrun when an entity is created, loaded or deleted | 1 hook | 0.000002 ms/s | <0.1% | MissionServer.OnMissionStart |
| Repeating timersstay in the timer queue, which is walked every frame | 1 timer | 0.14 ms/s | 99% | every 1 s |
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 · 7 · warning
- Hologram.ProjectionBasedOnParent calls super.ProjectionBasedOnParent() only on some paths — on the others the chain below this mod is dropped.
DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\entities\itembase\container_base\workbench\hologram.c:3 - ActionCloseDoors.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actionclosedoors.c:3 - ActionDeployObject.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actiondeployobject.c:3 - ActionLockDoors.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actionlockdoors.c:3 - ActionOpenDoors.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actionopendoors.c:3 - ActionTogglePlaceObject.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actiondeployobject.c:17 - ActionUnlockDoors.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actionunlockdoors.c:3
- Hologram.ProjectionBasedOnParent calls super.ProjectionBasedOnParent() 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 14 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 |
|---|---|---|---|---|
ActionCloseDoors.ActionCondition |
T2 | yes | conditional | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actionclosedoors.c:3 |
ActionConstructor.RegisterActions |
— | yes | ✓ | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\actionconstructor.c:3 |
ActionDeployObject.ActionCondition |
T2 | yes | conditional | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actiondeployobject.c:3 |
ActionLockDoors.ActionCondition |
T2 | yes | conditional | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actionlockdoors.c:3 |
ActionOpenDoors.ActionCondition |
T2 | yes | conditional | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actionopendoors.c:3 |
ActionTogglePlaceObject.ActionCondition |
T2 | yes | conditional | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actiondeployobject.c:17 |
ActionUnlockDoors.ActionCondition |
T2 | yes | conditional | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\useractionscomponent\actions\modded\actionunlockdoors.c:3 |
Hologram.ProjectionBasedOnParent |
— | yes | conditional | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\entities\itembase\container_base\workbench\hologram.c:3 |
MissionServer.OnMissionStart |
T3 | yes | ✓ | DNA_Keycards_Scripts.pbo::Scripts\5_Mission\DNA_Keycards\missionserver.c:21 |
ModItemRegisterCallbacks.RegisterOneHanded |
— | yes | ✓ | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\callbacks\ModItemRegisterCallbacks.c:4 |
ModItemRegisterCallbacks.RegisterHeavy |
— | yes | ✓ | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\callbacks\ModItemRegisterCallbacks.c:29 |
ModItemRegisterCallbacks.RegisterTwoHanded |
— | yes | ✓ | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\callbacks\ModItemRegisterCallbacks.c:36 |
PlayerBase.Init |
— | yes | ✓ | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\entities\manbase\playerbase.c:5 |
PluginRecipesManager.RegisterRecipies |
— | yes | ✓ | DNA_Keycards_Scripts.pbo::Scripts\4_World\DNA_Keycards\classes\recipes\recipes.c:3 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
ActionCloseDoors.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionDeployObject.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionTogglePlaceObject.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionLockDoors.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionOpenDoors.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionUnlockDoors.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
MissionServer.OnMissionStart | T3 | 0.1 | placeholder | 0.0000 |
Repeating timers
| period (ms) | residency ms/s | firing ms/s | where |
|---|---|---|---|
| 1000 | 0.1400 | 0.000025 | DNA_Keycards_Icons.pbo::Data\Icons\icons.c:42 |
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.
DNA_Keycards_Icons.pbo
DNA_Keycards_IconsrequiredVersion 1.25 — requiresJM_CF_Scripts
DNA_Keycards_Objects_Crafting.pbo
DNA_Keycards_Objects_CraftingrequiredVersion 0.1 — requiresDZ_Data,DNA_Keycards_Objects_Crate,DNA_Keycards_Objects_Keycard,DNA_Keycards_Icons,DNA_Keycards_Scripts
DNA_Keycards_Objects_Crate.pbo
DNA_Keycards_Objects_CraterequiredVersion 0.1 — requiresDZ_Data,DNA_Keycards_Objects_Keycard,DNA_Keycards_Sounds,DZ_Gear_Containers,DNA_Keycards_Scripts
DNA_Keycards_Objects_Keycard.pbo
DNA_Keycards_Objects_KeycardrequiredVersion 0.1 — requiresDNA_Keycards_Icons,DNA_Keycards_Scripts
DNA_Keycards_Objects_Lockouts.pbo
DNA_Keycards_Objects_LockoutsrequiredVersion 0.1 — requiresDZ_Data,DNA_Keycards_Objects_Keycard,DNA_Keycards_Sounds,DNA_Keycards_Objects_Crafting,DNA_Keycards_Scripts
DNA_Keycards_Objects_Strongroom.pbo
DNA_Keycards_Objects_StrongroomrequiredVersion 0.1 — requiresDNA_Keycards_Objects_Crate,DNA_Keycards_Icons,DNA_Keycards_Scripts
DNA_Keycards_Scripts.pbo
DNA_Keycards_ScriptsrequiredVersion 1.25 — requiresJM_CF_Scripts,DNA_Keycards_Icons
DNA_Keycards_Sounds.pbo
DNA_Keycards_SoundsrequiredVersion 0.1 — requiresDZ_Data
census 1.1 · findings 1.1 · hash 0c60696d71cc3103