Raven Iron
All Devlogs
UpdateThe Raven's Call

The Raven's Call v1.1.0: Server-Authoritative Tracking & The Routed RPC Fix

By Raven Iron Games

When we deployed v1.0.0 of The Raven’s Call on a live 28-player dedicated server, we encountered a fundamental revelation about Valheim’s network architecture: after a full day of active Viking combat, exactly zero kills, deaths, or damage had been logged in the server’s ledger.

Here is what happened under the hood and how we solved it in v1.1.0.


The Root Cause: Distributed Zone Ownership

In Valheim, the dedicated server does not execute physics or combat simulation for populated areas. Instead, the first client to enter a 64×64m zone becomes the ZDO Owner of that zone.

When a player strikes a troll or a greydwarf, methods like Character.Damage, Character.OnDeath, and FishingFloat.Catch execute exclusively on the client that owns the zone—never on the dedicated server.

Our original v1.0.0 Harmony patches were hooked directly to these simulation methods on the server. Because the server owned no zones with players in them, those methods never executed.


The Solution: The RavensCall_CombatReport_V1 Protocol

To preserve our strict server-only mandate for the core mod while capturing 100% accurate combat telemetry, we engineered a two-part decoupled solution:

  1. Server-Side RPC Receiver (TheRaven'sCall): We implemented a lightweight routed RPC handler RavensCall_CombatReport_V1 on the server. The server receives combat reports, verifies timestamps and player identities against PlayerRegistry.cs, and atomically commits stats to barrkbot_players.json.

  2. Client Companion Scout (WhereTheCrowFlies): We authored a dedicated client companion mod that hooks into owner-side combat methods (if (!__instance.IsOwner()) return;), batches damage into 10-second intervals, and relays clean combat summaries back to the server.

// Server-Side RPC Registration in TheRaven'sCall
ZRoutedRpc.instance.Register<int, byte, string, string, Vector3, float, float>(
    "RavensCall_CombatReport_V1",
    RPC_CombatReport_V1
);

What’s New in v1.1.0

  • Routed RPC Combat Resolution: Full support for owner-side kill, death, and damage ingestion.
  • Enhanced BarrkBOT Ledger (barrkbot_players.json): Real-time player gear tiers, biome tracking, and lifetime triumphs.
  • Embedded Web Dashboard Telemetry: Live map coords, server tick rate, and interactive player hall of fame.
  • Discord Webhook Eulogies: Rich cause-of-death parsing with Viking funeral narration.

The update is live now on the The Raven’s Call project page.