GraveCross
This mod has not been tested at high scale and could *maybe* cause problems. I don't think it will, but I can not say for certain. I'll update this description in a few days after I've gotten a bit of feedback on the mod. Update: Has been on a few large servers a while with no reported issues! Have you ever killed someone, and taken a few minutes to make sure the coast is clear before looting them just to find that… (more)
This mod has not been tested at high scale and could *maybe* cause problems. I don't think it will, but I can not say for certain. I'll update this description in a few days after I've gotten a bit of feedback on the mod. Update: Has been on a few large servers a while with no reported issues! Have you ever killed someone, and taken a few minutes to make sure the coast is clear before looting them just to find that the body despawned in just a few minutes? Very infuriating, and that's what drove me to make this mod. This mod makes it so when a player dies, a cross is created nearby and all of their gear is moved to it as attachments. What was in their hands will still drop to the ground. There are two types of crosses currently, a regular one, and a "died on the coast" cross. These two crosses can have their lifetime values set independently. So you can make it so players who killed themselves on the coast or died in a boxing match only have their cross stick around a few minutes, but anyone off the coast (and presumably having worthwhile gear) can last 25 minutes instead. See the types xml file provided for instructions. The crosses can be destroyed with most tools you'd carry on your back like an axe or a shovel. The default values are 5 minutes for coastal crosses, and 25 minutes for others. I may add other cross variants in the future to fine tune these settings, or implement a better system for the "coast" crosses (currently it's just a location check, if you're on the coast within set bounds) I eventually want to update this to be a bit more visually pleasing, with bag showing on the cross, helmet shown hanging on the top of the cross, clothes/other gear shown on the ground at the foot of the cross, and also more random variations of crosses.
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.
less than 0.001% of each server frame at 100 players (0.001 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; 21 others share it. Ranked list.
Event hooks carry 99.6% of this mod's structural load. 0.001 ms/s in all.
7 hooks · 0.0014 ms/s
1 hook · 0.000002 ms/s
| Event hooksrun when something happens: an inventory move, a hit, an action | 7 hooks | 0.0014 ms/s | 99.6% | FirefighterAxe.SetActions, Hammer.SetActions, Hatchet.SetActions and 4 more |
| Lifecycle hooksrun when an entity is created, loaded or deleted | 1 hook | 0.000002 ms/s | 0.1% | DayZPlayerImplement.EEKilled |
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.
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 9 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 | ✓ | GraveCross.pbo::scripts\4_World\Classes\UserActionsComponent\ActionConstructor.c:3 |
DayZPlayerImplement.EEKilled |
T3 | yes | ✓ | GraveCross.pbo::scripts\4_World\Entities\DayZPlayerImplement.c:3 |
FirefighterAxe.SetActions |
T2 | yes | ✓ | GraveCross.pbo::scripts\4_World\Entities\ItemBase\GraveCrossDestroyItems.c:21 |
Hammer.SetActions |
T2 | yes | ✓ | GraveCross.pbo::scripts\4_World\Entities\ItemBase\GraveCrossDestroyItems.c:3 |
Hatchet.SetActions |
T2 | yes | ✓ | GraveCross.pbo::scripts\4_World\Entities\ItemBase\GraveCrossDestroyItems.c:12 |
Pickaxe.SetActions |
T2 | yes | ✓ | GraveCross.pbo::scripts\4_World\Entities\ItemBase\GraveCrossDestroyItems.c:39 |
Shovel.SetActions |
T2 | yes | ✓ | GraveCross.pbo::scripts\4_World\Entities\ItemBase\GraveCrossDestroyItems.c:57 |
SledgeHammer.SetActions |
T2 | yes | ✓ | GraveCross.pbo::scripts\4_World\Entities\ItemBase\GraveCrossDestroyItems.c:48 |
WoodAxe.SetActions |
T2 | yes | ✓ | GraveCross.pbo::scripts\4_World\Entities\ItemBase\GraveCrossDestroyItems.c:30 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
Hammer.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Hatchet.SetActions | T2 | 8.0 | placeholder | 0.0002 |
FirefighterAxe.SetActions | T2 | 8.0 | placeholder | 0.0002 |
WoodAxe.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Pickaxe.SetActions | T2 | 8.0 | placeholder | 0.0002 |
SledgeHammer.SetActions | T2 | 8.0 | placeholder | 0.0002 |
Shovel.SetActions | T2 | 8.0 | placeholder | 0.0002 |
DayZPlayerImplement.EEKilled | T3 | 0.1 | placeholder | 0.0000 |
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.
GraveCross.pbo
GravecrossrequiredVersion 0.1 — requiresDZ_Data
census 1.1 · findings 1.1 · hash 070ed3aec33886f3