Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
CaptainsLog
Logs ship speed, wind, and heading to CSV while you sail, plus a live HUD - empirical data for comparing ship speeds instead of guesswork.
| Date uploaded | 2 weeks ago |
| Version | 1.1.0 |
| Download link | DeathMonger-CaptainsLog-1.1.0.zip |
| Downloads | 127 |
| Dependency string | DeathMonger-CaptainsLog-1.1.0 |
This mod requires the following mods to function
denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2350ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.30.0README
Captain's Log
Logs ship telemetry — speed, wind, sail efficiency, rudder, heading — to CSV while you sail, plus a live HUD. Built to gather empirical data on ship speed instead of relying on guessed/community-reported stats.
Features
- Logs a CSV row every time the local player is aboard a moving ship (sample rate configurable, default 2/sec)
- Captures: timestamp, player, ship name, position, biome, forward speed (m/s and knots), throttle setting, propulsion mode (oars forward/reverse vs sail), rudder, heading, relative wind angle, sail wind-efficiency factor, wind intensity, absolute wind direction
- Small HUD, visible only while aboard a ship: speed in knots (or m/s), wind strength and where it comes from, sail efficiency while the sail is up, and the rudder while it's turned
- The HUD sits under your hotbar, including a second row added by AzuExtendedPlayerInventory, or beside the ship's rudder icon like Azumatt's Ship Stats
- One CSV file per game session, written to
BepInEx/CaptainsLog/shiplog-<timestamp>.csv - A
Playercolumn on every row, so logs from different people can be merged - Optional server install: a dedicated server logs every player's sailing into one file
Server logging
Install the mod on a dedicated server and it writes BepInEx/CaptainsLog/shiplog-server-<timestamp>.csv for as long as the server runs. It logs every ship that has someone at the helm or its sail or oars engaged, at the configured sample interval per ship.
Playeris the helmsman. If nobody is steering (a sail left up), it's the player whose game is running the ship.- Speed is exact, not estimated. The sailing player's game runs the ship's physics and sends its velocity to the server, and the server logs that velocity.
- Players don't need the mod for their sailing to be logged. The server log has no HUD, and the
[HUD]settings are ignored there. - A busy server writes about 2 rows a second per ship being sailed, roughly 0.7 MB an hour each.
Why these columns
Raw speed alone doesn't tell you much — a ship that's "fast" running downwind might be mediocre upwind. Logging wind angle and sail efficiency (GetWindAngleFactor, the game's own point-of-sail multiplier) alongside speed lets you separate "this ship is fast" from "this ship happened to have good wind" when comparing runs.
Rudder is where the rudder sits, from -1 (full left) to 1 (full right), which is what actually steers the ship.
Valheim wind has no speed, only a strength from 0 to 1 (WindIntensity), which scales sail force from 25% to 100%. Sail force doesn't depend on how fast the ship is already going, so a ship can easily outpace any "wind speed" you might derive from it, and the HUD shows wind as a percentage for that reason. (Azumatt's Ship Stats converts it to knots by treating full strength as 10 m/s, which is only a convention.)
On the HUD, from ... is where the wind comes from relative to the hull, not a compass direction: astern, a quarter (within 67.5° of astern), the beam, the bow, or ahead, on the port or starboard side. The efficient figure on the Sail line is WindAngleFactor (below), which depends only on that angle.
WindAngleDeg is signed and ranges -180° to +180°: 0° = tailwind (wind at your stern, pushing you forward), +/-180° = headwind (wind on the nose). WindAngleFactor (0-1) is the game's own sail-efficiency curve for that angle (Ship.GetWindAngleFactor): 0.7 with the wind dead astern, rising to 1.0 with the wind exactly on the beam (+/-90°), falling back to about 0.78 at +/-139°, then cut to 0 by +/-143°. Within about 37° of dead ahead the sail gives no push at all.
SpeedSetting (Stop/Back/Slow/Half/Full) is the ship's five-step throttle. Propulsion translates that into what's actually moving the ship: Idle, Oars-Reverse (Back), Oars-Forward (Slow), or Sail-Half/Sail-Full (Half/Full). Note that the game's own Ship.IsSailUp() isn't an independent sail-raised sensor — it's literally defined as SpeedSetting == Half || SpeedSetting == Full — so we don't log it separately; Propulsion/SpeedSetting already carry that information.
Configuration
The config file is created at BepInEx/config/DeathMonger.CaptainsLog.cfg on first run.
[Logging]
Enabled(default:true) — write samples to CSVSample Interval (s)(default:0.5) — minimum time between logged rows (per ship, on a server)
[HUD]
Enabled(default:true) — show the live speed/wind widget while aboard a shipPosition(default:BelowHotbar) —BelowHotbarsits under the lowest hotbar row, including a second row from a mod like AzuExtendedPlayerInventory;Centeredsits beside the ship's rudder icon and follows the ship;TopLeftis a fixed spot in the cornerNudge X (px)/Nudge Y (px)(default:0) — move the widget from that position (positive = right / down)Background Opacity(default:0.5) — the dark panel behind the text;0hides itSpeed Units(default:Knots) —Knots,MetersPerSecond, orKnotsWithMetersPerSecond(m/s in parentheses); ship speed onlyShow Wind Angle(default:true) — add where the wind comes from relative to the ship, e.g.Wind: 39% from starboard quarterShow Ship Name(default:true) — a first line naming the kind of ship you're aboard (ships have no individual names in Valheim)
Requirements
Compatibility
- Client-side by default. Installing it on the server is optional and only adds the server log; clients don't need it to join
- Read-only — does not modify player state, world state, or any vanilla system
CHANGELOG
Changelog
1.1.0 — 2026-09-20
- Install it on a dedicated server to log everyone's sailing. The server writes one CSV,
BepInEx/CaptainsLog/shiplog-server-<timestamp>.csv, with a row for every ship that has someone at the helm or its sail or oars engaged. Speed is the velocity the sailing player's game reports, not the server's estimate. - New
Playercolumn (second, afterTimestamp) in both the client and server logs. On the server it names the helmsman, or whoever's game is running the ship when nobody is steering. - HUD shows ship speed in knots by default, with a
Speed Unitssetting for m/s or both. - The wind line says where the wind comes from relative to the ship (
Wind: 39% from starboard quarter) instead of a bare@ 24°.Show Wind Angleturns that part off. Wind stays a percentage, because Valheim wind has no speed. - HUD sits under the hotbar by default, including AzuExtendedPlayerInventory's quick slot row, instead of on top of it. New
Positionsetting:BelowHotbar,Centered(beside the ship's rudder icon, like Ship Stats) orTopLeft.Offset X/YbecameNudge X/Y, relative to that position. The HUD now has a dark background (Background Opacity) and hides with the rest of the HUD. - HUD lines are clearer:
Sail: Full, 73% efficientappears only while the sail is up (Oars: Forward/Reversewhile rowing), andRudderappears only while the rudder is turned. - HUD's first line names the ship (Karve, Longship, or a modded ship's name).
Show Ship Namehides it. Rudder(HUD and CSV) is now the rudder's position, -1 to 1. It used to be that frame's steering input, which read 0 unless a key was held.- No longer limited to
valheim.exe, so it loads on Windows and Linux dedicated servers. Clients need nothing new.
1.0.0 — 2026-09-09
First public release, built for Valheim 1.0.7.
- Logs a CSV row while you are aboard a moving ship (default twice a second): timestamp, ship, position, biome, speed in m/s and knots, throttle, propulsion mode, rudder, heading, relative wind angle, sail efficiency, wind intensity and direction.
- One CSV per session in
BepInEx/CaptainsLog/. - Small HUD, visible only aboard a ship, with live speed, wind and sail efficiency.
- Sample interval, HUD offsets and on/off switches are configurable.