← modperf · analyzed mods

Sentinel Deathmatch

Sentinel Deathmatch This is an ALPHA playtest build. It is playable and stable in testing, but features are incomplete, balance is placeholder, and updates may change configs and gameplay without notice. Feedback and bug reports are welcome on the GitHub issue tracker below. A round-based, fully configurable deathmatch mod for DayZ - built for lots of players shooting in one small area without killing your server… (more)

Sentinel Deathmatch This is an ALPHA playtest build. It is playable and stable in testing, but features are incomplete, balance is placeholder, and updates may change configs and gameplay without notice. Feedback and bug reports are welcome on the GitHub issue tracker below. A round-based, fully configurable deathmatch mod for DayZ - built for lots of players shooting in one small area without killing your server FPS. What works today Round loop: vote, countdown, live round, scoreboard - repeating automatically In-game voting: players vote each round on the arena AND the weapon preset (press B during voting), each with a Random pick - or force either side to random in config and vote on the other only Operator-defined arenas: boundary + spawn points in a simple zones.json; soft-wall zone damage or hard teleport enforcement Weapon presets: plain-JSON loadouts (weapon, attachments, mags, clothing, gear), validated at server boot - a typo disables the preset with a log line instead of breaking a round Fast respawn: no respawn dialog, configurable spawn protection (full immunity for SpawnProtectSeconds, default 3), spawn selection away from enemies HUD: phase + round timer, killfeed, out-of-zone warning Scoreboard (press P): this-round and session leaderboard tabs Coming during alpha DayZ Editor (.dze) arena import - build arenas in the editor, drop the file in, done Custom branding (logos, icons, colors) for server owners Rebindable keys, preset icons, spectator, and more Server setup (alpha) Load this mod in -mod= (clients need it too). Strip your mission economy for arena performance (economy.xml master switches off, empty events.xml, zero infected/animals). First boot writes default configs to $profile:SentinelDeathmatch\: config.json (round timings, respawn, score limit), zones.json (arenas + spawn points), presets.json (loadouts). Full setup guide and examples in the GitHub repo. Sentinel platform (optional, zero extra installs) If your server also runs the Sentinel Enforcer (server-side), Sentinel Deathmatch automatically streams round and kill events to the Sentinel platform - powering server stats and, later in the alpha, the global cross-server deathmatch leaderboard on dayz.fyi. Control it via $profile:SentinelDeathmatch\sentinel.json (EventFeed on/off, GlobalLeaderboard opt-in/out). No enforcer, no problem: the integration compiles itself out and the mod runs standalone. Source, issues, license Source-available on GitHub: https://github.com/mierst/sentinel-deathmatch Report bugs there. License: free to run on any server, including monetized servers, with attribution retained; no repacking or re-uploading. Final license text is being prepared - see LICENSE.md in the repo. Credits Design informed by the DayZ modding community, with thanks to Terje Bruoygard (the abandoned DeathMatch mod remains the genre's best prior art) and InclementDab (DayZ Editor, whose .dze format this mod will read natively). No third-party code is included. Powered by Sentinel.

Workshop 3782135939 · mod updated 2026-09-30 · analyzed 2026-10-03 09:44 UTC · history · 33 script files

Mechanics Workshop tags, chosen by the author

Stall risks
None found

No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.

Compatibility
Chain-safe

Every server-visible override preserves its chain.

Structural footprint 1.1
A
clean
Heavier than 57% of 328 scripted mods analyzed.

0.00252% of each server frame at 100 players (0.025 ms/s). Counts hook dispatch and timers only, not what the hooks do inside. Methodology.

Where this mod sits

Structural load of the 328 scripted mods analyzed, lightest on the left. This mod's bar is lit; 17 others share it. Ranked list.

20
40
60
  • 24 mods
    0.0000022 to 0.0000046 ms/s · grade A
  • 7 mods
    0.0000046 to 0.00001 ms/s · grade A
  • 1 mod
    0.00001 to 0.000022 ms/s · grade A
  • 1 mod
    0.000022 to 0.000046 ms/s · grade A
  • 37 mods
    0.0001 to 0.00022 ms/s · grade A
  • 26 mods
    0.00022 to 0.00046 ms/s · grade A
  • 33 mods
    0.00046 to 0.001 ms/s · grade A
  • 22 mods
    0.001 to 0.0022 ms/s · grade A
  • 13 mods
    0.0022 to 0.0046 ms/s · grade A
  • 10 mods
    0.0046 to 0.01 ms/s · grade A
  • 5 mods
    0.01 to 0.022 ms/s · grade A
  • This mod
  • 17 mods
    0.046 to 0.1 ms/s · grade A
  • 41 mods
    0.1 to 0.22 ms/s · grade A
  • 26 mods
    0.22 to 0.46 ms/s · grade A
  • 28 mods
    0.46 to 1 ms/s · grade A
  • 8 mods
    1 to 2.2 ms/s · grade A to B
  • 10 mods
    2.2 to 4.6 ms/s · grade B
  • 1 mod
    4.6 to 10 ms/s · grade B to C
A316
B11
C1
D0
E0
ms/s, log scale: each labelled step is ten times the one before. Letter grade and mods holding it below the axis.
Where the load comes from

Every-frame hooks carry 98% of this mod's structural load. 0.025 ms/s in all.

98%Every-frame hooks · 98%
1 hook · 0.025 ms/s
Event hooks · 1.6%
2 hooks · 0.0004 ms/s
Lifecycle hooks · <0.1%
5 hooks · 0.00001 ms/s
Every-frame hooksrun every server frame 1 hook 0.025 ms/s 98% DayZPlayerCameraOptics.OnUpdate
Event hooksrun when something happens: an inventory move, a hit, an action 2 hooks 0.0004 ms/s 1.6% PlayerBase.EEHitBy, PlayerBase.OnRPC
Lifecycle hooksrun when an entity is created, loaded or deleted 5 hooks 0.00001 ms/s <0.1% MissionServer.InvokeOnConnect, MissionServer.OnClientNewEvent, MissionServer.OnInit and 2 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.

OnUpdate on DayZPlayerCameraOptics
every server frame
no I/O, timers or RPC
EEHitBy on PlayerBase
per event
no I/O, timers or RPC
OnRPC on PlayerBase
per event
no I/O, timers or RPC super() on some paths

Other findings

What this report can tell you

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.

What it cannot

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 17 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.

methodsurfaceserversuper()where
ChatInputMenu.OnChange — yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmChatCommands.c:9
ChatInputMenu.OnShow — yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmChatCommands.c:37
ChatInputMenu.OnHide — yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmChatCommands.c:43
ChatLine.Set — yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmChatHistory.c:60
ChatLine.Clear — yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmChatHistory.c:67
DayZPlayerCameraOptics.OnUpdate T0 yes ✓ sentinel_dm.pbo::scripts\4_World\DmOpticsGuard.c:118
MissionGameplay.OnInit T3 yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmMissionGameplay.c:7
MissionGameplay.OnKeyPress — yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmMissionGameplay.c:18
MissionServer.OnInit T3 yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmMissionServer.c:7
MissionServer.InvokeOnConnect T3 yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmMissionServer.c:36
MissionServer.PlayerDisconnected T3 yes ✓ sentinel_dm.pbo::scripts\5_Mission\DmMissionServer.c:51
MissionServer.OnClientNewEvent T3 yes conditional sentinel_dm.pbo::scripts\5_Mission\DmMissionServer.c:63
PlayerBase.EEKilled T3 yes ✓ sentinel_dm.pbo::scripts\4_World\capture\DmPlayerHook.c:17
PlayerBase.EEHitBy T2 yes ✓ sentinel_dm.pbo::scripts\4_World\capture\DmPlayerHook.c:26
PlayerBase.OnUnconsciousStart — yes ✓ sentinel_dm.pbo::scripts\4_World\capture\DmPlayerHook.c:40
PlayerBase.OnUnconsciousStop — yes ✓ sentinel_dm.pbo::scripts\4_World\capture\DmPlayerHook.c:61
PlayerBase.OnRPC T2 yes conditional sentinel_dm.pbo::scripts\4_World\capture\DmPlayerHook.c:74
Dispatch surfaces and timers the grade prices
surfacetierrate (Hz)rate sourcems/s
DayZPlayerCameraOptics.OnUpdateT0 1000.0measured0.0248
PlayerBase.EEHitByT2 8.0placeholder0.0002
PlayerBase.OnRPCT2 8.0placeholder0.0002
PlayerBase.EEKilledT3 0.1placeholder0.0000
MissionServer.OnInitT3 0.1placeholder0.0000
MissionServer.InvokeOnConnectT3 0.1placeholder0.0000
MissionServer.PlayerDisconnectedT3 0.1placeholder0.0000
MissionServer.OnClientNewEventT3 0.1placeholder0.0000

Includes 0.000 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.

sentinel_dm.pbo

  • SentinelDM requiredVersion 0.1 — no requiredAddons

census 1.1 · findings 1.1 · hash 574bf99c28ad16c4