HighWatch
**Title:** Highwatch (server mod) ``` Highwatch Server-side only. Players do not need to subscribe. Nothing is added to what your players download. Highwatch is the server mod for the Highwatch desk, a desktop app for DayZ PC server owners. The mod watches your server from the inside and reports to the Highwatch service for your server; the desk shows it to you and your staff. It runs with or without CFTools and on… (more)
**Title:** Highwatch (server mod) ``` Highwatch Server-side only. Players do not need to subscribe. Nothing is added to what your players download. Highwatch is the server mod for the Highwatch desk, a desktop app for DayZ PC server owners. The mod watches your server from the inside and reports to the Highwatch service for your server; the desk shows it to you and your staff. It runs with or without CFTools and on any host that lets you add a server mod, including rented servers with a web panel. What the mod reports Server FPS and frame time, in-game time and weather, uptime, and what the mod itself costs your server, measured. Players: sessions, positions, condition, inventory on request, vehicle seats. Events: kills with weapon and distance, deaths with cause, hits, chat, joins and leaves, builds, dismantles, base damage and raids, item pickups and drops, placed items, airdrops. Storage: every stash, tent, barrel and vehicle with cargo, what is inside and who moved what, bases with their owners, economy counts against your types files. RPC traffic by mod and by player, so you can see which mod is loud on your network. Payloads are never read. What it does not do No client half. No new RPCs of its own. Nothing changes for players. No automatic kicks or bans. Anti-cheat in the desk is evidence only; a person decides. No player IP addresses are sent or stored anywhere. Admin actions are limited to message, broadcast and kick, each opt-in per server and only from a confirmation dialog in the desk. Install Get an early access key: open a ticket in the Highwatch Discord (link below). Install the desk and choose Add your server. It writes a folder with the mod files, a filled-in profiles/Highwatch/config.json (your server's key and endpoint) and a READ ME FIRST. Put @Highwatch on your server (this Workshop item or the folder from the desk, they are the same files) and the Highwatch folder into your server's profile folder. Add it to your existing -serverMod list, separated by semicolons: -serverMod=@YourOtherMods;@Highwatch Restart. The desk says when the first report arrives. If it does not within two minutes, the desk shows a checklist. Hosted server (Nitrado, GTX, other panels): upload by FTP, add the mod name in the panel's mod field, put the Highwatch folder into the profile folder the panel uses. Running Community Framework or DayZ Expansion? Those frameworks keep their RPC channels to themselves. Also load the matching add-on so the Network view can count them: DayZ Expansion: Highwatch Expansion (-serverMod=@Highwatch;@Highwatch-Expansion) Community Framework without Expansion: Highwatch CF (-serverMod=@Highwatch;@Highwatch-CF) Only load an add-on whose framework is installed. Highwatch itself needs neither. Coexists with CFTools GameLabs, LBmaster (pairs itself on first start, with a backup of Api.json), Dabs Framework, Community Framework, DayZ Expansion. Every hook is a modded class that calls super; the mod declares no vanilla or GameLabs class. Early access Highwatch is in early access and free while it is. We are looking for servers with active players. Ask for a key in the Discord, run the mod, and tell us what is wrong. Highwatch Discord · Desk downloads and release notes ```
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.00286% of each server frame at 100 players (0.029 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; 17 others share it. Ranked list.
Every-frame hooks carry 87% of this mod's structural load. 0.029 ms/s in all.
1 hook · 0.025 ms/s
4 hooks · 0.0038 ms/s
7 hooks · 0.000014 ms/s
| Every-frame hooksrun every server frame | 1 hook | 0.025 ms/s | 87% | DayZGame.OnUpdate |
| Event hooksrun when something happens: an inventory move, a hit, an action | 4 hooks | 0.0038 ms/s | 13% | ItemBase.EEItemLocationChanged, BaseBuildingBase.EEHitBy, DayZGame.OnRPC and 1 more |
| Lifecycle hooksrun when an entity is created, loaded or deleted | 7 hooks | 0.000014 ms/s | <0.1% | Container_Base.EEDelete, Container_Base.EEInit, MissionServer.InvokeOnConnect and 4 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.
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 |
|---|---|---|---|---|
BaseBuildingBase.EEHitBy |
T2 | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_basebuilding.c:7 |
BaseBuildingBase.OnPartBuiltServer |
— | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_basebuilding.c:42 |
BaseBuildingBase.OnPartDismantledServer |
— | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_basebuilding.c:48 |
BaseBuildingBase.OnPartDestroyedServer |
— | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_basebuilding.c:54 |
Container_Base.EEInit |
T3 | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_airdrop.c:65 |
Container_Base.EEDelete |
T3 | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_airdrop.c:74 |
DayZGame.OnUpdate |
T0 | yes | ✓ | Highwatch.pbo::scripts\3_Game\hw_core.c:1083 |
DayZGame.UpdatePathgraphRegionByObject |
— | yes | ✓ | Highwatch.pbo::scripts\3_Game\hw_core.c:1094 |
DayZGame.OnRPC |
T2 | yes | ✓ | Highwatch.pbo::scripts\3_Game\hw_core.c:1102 |
ItemBase.OnPlacementComplete |
— | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_item.c:274 |
ItemBase.EEItemLocationChanged |
T2 | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_item.c:311 |
MissionServer.OnInit |
T3 | yes | ✓ | Highwatch.pbo::scripts\5_Mission\hw_mission.c:315 |
MissionServer.OnMissionFinish |
T3 | yes | ✓ | Highwatch.pbo::scripts\5_Mission\hw_mission.c:348 |
MissionServer.InvokeOnConnect |
T3 | yes | ✓ | Highwatch.pbo::scripts\5_Mission\hw_mission.c:372 |
MissionServer.PlayerDisconnected |
T3 | yes | ✓ | Highwatch.pbo::scripts\5_Mission\hw_mission.c:387 |
MissionServer.OnEvent |
— | yes | ✓ | Highwatch.pbo::scripts\5_Mission\hw_mission.c:406 |
PlayerBase.EEHitBy |
T2 | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_player.c:70 |
PlayerBase.EEKilled |
T3 | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_player.c:259 |
PlayerBase.OnUnconsciousStart |
— | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_player.c:399 |
PlayerBase.OnUnconsciousStop |
— | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_player.c:415 |
Weapon_Base.EEFired |
— | yes | ✓ | Highwatch.pbo::scripts\4_World\hw_weapon.c:60 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
DayZGame.OnUpdate | T0 | 1000.0 | measured | 0.0248 |
ItemBase.EEItemLocationChanged | T2 | 130.0 | measured | 0.0032 |
DayZGame.OnRPC | T2 | 8.0 | placeholder | 0.0002 |
BaseBuildingBase.EEHitBy | T2 | 8.0 | placeholder | 0.0002 |
PlayerBase.EEHitBy | T2 | 8.0 | placeholder | 0.0002 |
Container_Base.EEInit | T3 | 0.1 | placeholder | 0.0000 |
Container_Base.EEDelete | T3 | 0.1 | placeholder | 0.0000 |
PlayerBase.EEKilled | T3 | 0.1 | placeholder | 0.0000 |
MissionServer.OnInit | T3 | 0.1 | placeholder | 0.0000 |
MissionServer.OnMissionFinish | T3 | 0.1 | placeholder | 0.0000 |
MissionServer.InvokeOnConnect | T3 | 0.1 | placeholder | 0.0000 |
MissionServer.PlayerDisconnected | 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.
Highwatch.pbo
HighwatchrequiredVersion 0.1 — requiresDZ_Data,DZ_Scripts
census 1.1 · findings 1.1 · hash b4d18b32584e3aaf