MedicalAttentionUpdated-Core
This is an updated version of MedicalAttention, kindly allowed to be modified and repacked by original author Lucian. I take no credit whatsoever for his work. You can find his original mod page here: MedicalAttention. This updated version works with DayZ 1.10 through 1.14 and fixes a few issues. Should Lucian ever want to return to working on his mod, I will gladly hand my small changes back over to him. This mod… (more)
This is an updated version of MedicalAttention, kindly allowed to be modified and repacked by original author Lucian. I take no credit whatsoever for his work. You can find his original mod page here: MedicalAttention. This updated version works with DayZ 1.10 through 1.14 and fixes a few issues. Should Lucian ever want to return to working on his mod, I will gladly hand my small changes back over to him. This mod includes the tiredness and drunkenness mechanics, optional medical report when using blood test kits, protective gear configuration and zones, but no arm fractures or changes to the vanilla medical system. If you want the 'full' MedicalAttention, subscribe to MedicalAttentionUpdated as well. Important Depending on if you are using Namalsk Survival or not, you need to subscribe to MedicalAttentionUpdated-DepHelper-Namalsk or MedicalAttentionUpdated-DepHelper-Vanilla (do not use both!). If you want to use MedicalAttentionUpdated-Core with Namalsk Survival, you need these mods: - Namalsk Survival - MedicalAttentionUpdated-DepHelper-Namalsk - MedicalAttentionUpdated-Core Otherwise, you need these mods: - MedicalAttentionUpdated-DepHelper-Vanilla - MedicalAttentionUpdated-Core Documentation READ FULL CONFIG GUIDE HERE (for server owners)
Patterns that can stall a single frame regardless of the load figure — see below.
Every server-visible override preserves its chain.
0.0158% of each server frame at 100 players (0.158 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.
Per-player hooks carry 94% of this mod's structural load. 0.158 ms/s in all.
2 hooks · 0.15 ms/s
14 hooks · 0.0088 ms/s
1 hook · 0.000002 ms/s
| Per-player hooksrun about 30 times a second for each player | 2 hooks | 0.15 ms/s | 94% | PlayerBase.CommandHandler, PlayerBase.OnScheduledTick |
| Event hooksrun when something happens: an inventory move, a hit, an action | 14 hooks | 0.0088 ms/s | 5.6% | PlayerBase.EEItemAttached, PlayerBase.EEItemDetached, ActionConsume.ActionCondition and 11 more |
| Lifecycle hooksrun when an entity is created, loaded or deleted | 1 hook | 0.000002 ms/s | <0.1% | 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.
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
- FeverMdfr.ActivateCondition returns true without consulting super.ActivateCondition() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
core.pbo::4_World\classes\playermodifiers\modifiers\conditions\fever.c:3 - ActionConsume.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\continuous\actionconsume.c:3 - ActionConsumeSingle.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\singleuse\actionconsumesingle.c:3 - ActionDrinkPondContinuous.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\continuous\actiondrinkpondcontinuous.c:3 - ActionDrinkWellContinuous.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\continuous\actiondrinkwellcontinuous.c:3 - ActionEatCan.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\continuous\actioneatcan.c:3 - ActionEatFruit.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\continuous\actioneatfruit.c:3 - ActionFillBottleBase.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\continuous\actionfillbottlebase.c:3 - ActionForceConsume.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\continuous\actionforceconsume.c:3 - ActionForceConsumeSingle.ActionCondition vetoes early (returns false) on some paths and defers to super.ActionCondition() otherwise — composes safely with vanilla's and earlier mods' conditions.
core.pbo::4_World\classes\useractionscomponent\actions\singleuse\actionforceconsumesingle.c:3
- FeverMdfr.ActivateCondition returns true without consulting super.ActivateCondition() on some paths — vanilla's conditions and every earlier-loaded mod's vetoes are bypassed there.
Per-player-per-frame hooks · 2 · warning
- PlayerBase.CommandHandler runs once per player per tick (~30 Hz/player): cost scales with population on the hottest per-player surface.
core.pbo::4_World\entities\manbase\playerbase.c:756 - PlayerBase.OnScheduledTick runs once per player per tick (~30 Hz/player): cost scales with population on the hottest per-player surface.
core.pbo::4_World\entities\manbase\playerbase.c:609
- PlayerBase.CommandHandler runs once per player per tick (~30 Hz/player): cost scales with population on the hottest per-player surface.
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 42 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 |
|---|---|---|---|---|
ActionCollectBloodSelf.OnEndServer |
— | yes | ✓ | core.pbo::4_World\classes\useractionscomponent\actions\continuous\medical\actioncollectbloodself.c:3 |
ActionCollectBloodTarget.OnEndServer |
— | yes | ✓ | core.pbo::4_World\classes\useractionscomponent\actions\continuous\medical\actioncollectbloodtarget.c:3 |
ActionConsume.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\continuous\actionconsume.c:3 |
ActionConsumeSingle.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\singleuse\actionconsumesingle.c:3 |
ActionDrinkPondContinuous.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\continuous\actiondrinkpondcontinuous.c:3 |
ActionDrinkWellContinuous.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\continuous\actiondrinkwellcontinuous.c:3 |
ActionEatCan.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\continuous\actioneatcan.c:3 |
ActionEatFruit.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\continuous\actioneatfruit.c:3 |
ActionFillBottleBase.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\continuous\actionfillbottlebase.c:3 |
ActionForceConsume.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\continuous\actionforceconsume.c:3 |
ActionForceConsumeSingle.ActionCondition |
T2 | yes | conditional | core.pbo::4_World\classes\useractionscomponent\actions\singleuse\actionforceconsumesingle.c:3 |
ActionGiveBloodSelf.OnEndServer |
— | yes | ✓ | core.pbo::4_World\classes\useractionscomponent\actions\continuous\medical\actiongivebloodself.c:3 |
ActionGiveBloodTarget.OnEndServer |
— | yes | ✓ | core.pbo::4_World\classes\useractionscomponent\actions\continuous\medical\actiongivebloodtarget.c:3 |
ActionGiveSalineSelf.OnEndServer |
— | yes | ✓ | core.pbo::4_World\classes\useractionscomponent\actions\continuous\medical\actiongivesalineself.c:3 |
ActionGiveSalineTarget.OnEndServer |
— | yes | ✓ | core.pbo::4_World\classes\useractionscomponent\actions\continuous\medical\actiongivesalinetarget.c:3 |
ActionTestBloodSelf.OnFinishProgressServer |
— | yes | ✓ | core.pbo::4_World\classes\useractionscomponent\actions\continuous\medical\actiontestbloodself.c:38 |
ActionTestBloodTarget.OnFinishProgressServer |
— | yes | ✓ | core.pbo::4_World\classes\useractionscomponent\actions\continuous\medical\actiontestbloodtarget.c:3 |
BleedingSourcesManagerServer.ProcessHit |
— | yes | ✓ | core.pbo::4_World\classes\bleedingsources\bleedingsourcesmanagerserver.c:3 |
EmoteManager.CanPlayEmote |
— | yes | ✓ | core.pbo::4_World\classes\emotemanager.c:3 |
Epinephrine.OnApply |
— | yes | ✓ | core.pbo::4_World\entities\itembase\gear\medical\epinephrine.c:3 |
FeverMdfr.ActivateCondition |
— | yes | conditional | core.pbo::4_World\classes\playermodifiers\modifiers\conditions\fever.c:3 |
IngameHud.Init |
— | yes | ✓ | core.pbo::5_Mission\gui\ingamehud.c:6 |
IngameHud.RefreshHudVisibility |
— | yes | ✓ | core.pbo::5_Mission\gui\ingamehud.c:16 |
IngameHud.SetTiredness |
— | yes | ✗ none | core.pbo::5_Mission\gui\ingamehud.c:28 |
IngameHud.ShowVehicleInfo |
— | yes | ✓ | core.pbo::5_Mission\gui\ingamehud.c:38 |
IngameHud.HideVehicleInfo |
— | yes | ✓ | core.pbo::5_Mission\gui\ingamehud.c:45 |
IngameHud.UpdateTirednessVisibility |
— | yes | ✗ none | core.pbo::5_Mission\gui\ingamehud.c:52 |
MissionServer.OnInit |
T3 | yes | ✓ | core.pbo::5_Mission\mission\missionserver.c:3 |
ModifiersManager.Init |
— | yes | ✓ | core.pbo::4_World\classes\playermodifiers\modifiersmanager.c:11 |
PlayerBase.Init |
— | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:507 |
PlayerBase.OnPlayerLoaded |
— | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:525 |
PlayerBase.OnVariablesSynchronized |
T2 | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:585 |
PlayerBase.OnScheduledTick |
T1 | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:609 |
PlayerBase.Consume |
— | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:738 |
PlayerBase.CommandHandler |
T1 | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:756 |
PlayerBase.EEHitBy |
T2 | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:811 |
PlayerBase.OnRPC |
T2 | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:838 |
PlayerBase.EEItemAttached |
T2 | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:871 |
PlayerBase.EEItemDetached |
T2 | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:911 |
PlayerBase.OnAttachmentRuined |
— | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:934 |
PlayerBase.OnUnconsciousStop |
— | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:988 |
PlayerBase.SpawnShockEffect |
— | yes | ✓ | core.pbo::4_World\entities\manbase\playerbase.c:997 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
PlayerBase.OnScheduledTick | T1 | 3000.0 | measured | 0.0744 |
PlayerBase.CommandHandler | T1 | 3000.0 | measured | 0.0744 |
PlayerBase.EEItemAttached | T2 | 130.0 | measured | 0.0032 |
PlayerBase.EEItemDetached | T2 | 130.0 | measured | 0.0032 |
ActionConsume.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionDrinkPondContinuous.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionDrinkWellContinuous.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionEatCan.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionEatFruit.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionFillBottleBase.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionForceConsume.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionConsumeSingle.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
ActionForceConsumeSingle.ActionCondition | T2 | 8.0 | placeholder | 0.0002 |
PlayerBase.OnVariablesSynchronized | T2 | 8.0 | placeholder | 0.0002 |
PlayerBase.EEHitBy | T2 | 8.0 | placeholder | 0.0002 |
PlayerBase.OnRPC | T2 | 8.0 | placeholder | 0.0002 |
MissionServer.OnInit | T3 | 0.1 | placeholder | 0.0000 |
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_core_preload.pbo
MedicalAttention_Core_PreloadrequiredVersion 0.1 — no requiredAddons
core.pbo
MedicalAttention_CorerequiredVersion 0.1 — requiresMedicalAttention_DepHelper
data.pbo
MedicalAttention_DatarequiredVersion 0.1 — no requiredAddonsMAYawnSoundsrequiredVersion 0.1 — requiresDZ_Sounds_Effects
census 1.1 · findings 1.1 · hash d1932ed6af277485