You are viewing a potentially older version of this package. View all versions.
Dixiecapt-InstrumentDisplay-3.0.2 icon

InstrumentDisplay

A minimal ship telemetry HUD with a celestial navigation suite. Every reading earned by real instruments. Stock and modded ships.

Date uploaded 2 weeks ago
Version 3.0.2
Download link Dixiecapt-InstrumentDisplay-3.0.2.zip
Downloads 55
Dependency string Dixiecapt-InstrumentDisplay-3.0.2

This mod requires the following mods to function

bbepis-BepInExPack-5.4.2100 icon
bbepis-BepInExPack

Unified BepInEx all-in-one modding pack - plugin framework, detour library

Preferred version: 5.4.2100

README

Instrument Display — v3.0

A minimal, customizable ship-telemetry overlay for Sailwind that works on stock and modded ships alike — now with a full instrument-driven navigation suite.

Sailwind's world is diegetic and beautiful, so this HUD stays out of the way: small, translucent panels that hug their own text, collapse to a single line with one click, borrow the game's own font, and read only what the ship — and the instruments you actually carry — can really tell you. Every reading is earned: carry a compass and you get heading; carry a barometer and the weather word appears; shoot the noon sun with a quadrant and your latitude is revealed. Sell the instrument and the reading goes away.

Instrument Display is a derivative of BoatStatusHUD by luizbag, reorganized and greatly extended. See Credits.


What's new in Version 2.0

  1. HUD hides when you go ashore. The overlay now disappears the moment you step off your vessel and returns when you board again, so it never floats in the way while you're on land.
  2. Weather Conditions is now a real barometer. The Conditions reading is driven by the Climate mod's barometric pressure and uses the exact words printed on its barometer face — Stormy · Rain · Change · Fair · Very Dry — with a rising/falling trend arrow. Requires a Barometer aboard.
  3. Time. A new clock reading shows Global (GMT) time, unlocked by carrying a Chronometer (or a Chronocompass, which contains one).
  4. Temperature. A new temperature reading, unlocked by the Climate mod's Thermometer, shown in whatever unit the Climate mod itself is set to use.
  5. Heel now requires an Inclinometer. The heel-angle reading is gated on carrying the Inclinometer mod's instrument, in keeping with the "earn your readings" spirit (can be switched off in config).
  6. Latitude & Longitude — a full celestial-navigation system. Position readings that unlock through real instruments during real astronomical windows, under real sky conditions — Quadrant, Chronocompass, and the RealisticSkies Sextant (quintant), each with its own rules. Readings that fall out of their window don't vanish — they hold as "Last Known."
  7. Full 32-point compass rose. Heading and Wind now name all 32 points (N, NbE, NNE, NEbN, NE, …) instead of 16.

What's new in Version 3.0

  1. Burden is now a nine-word stability system. Light · Trim · Laden · Weatherly · Deep · Tender · Overburdened · Crank · Awash — read from real physics on two axes (how deep she floats and how stiff she stands), so it warns of a true capsize from a high deck load, not just low freeboard. Weight stowed low reads safe; the same weight piled high reads dangerous. Details under Cargo → Burden.
  2. True hull beam on any hull — the single-collider modded-ship fix. Beam and hull shape are now taken from the game's own buoyancy sample grid, with a hull-mesh fallback that measures only the lower hull. This fixes modded ships whose one big collider swallowed the yards and bowsprit and reported a wildly inflated beam (and, through it, a wrong stability estimate). Stock and modded hulls now read their real width.
  3. Wave-steady loading readout. Freeboard and heel are averaged over the swell so Burden reads the ship's mean waterline instead of strobing as she pitches — steady in a seaway, no false warnings from a passing wave.
  4. The old per-ship capacity table is gone. Burden is fully physics-based now, which was the root cause of false "Overloaded" readings on stock cargo hulls.

The HUD at a glance

Six collapsible groups. Click the small bullet at the left of any panel to fold it to a labelled strip; click again to expand. A reading only appears when the ship — and your instruments — can actually provide it. Instruments count whether they lie on deck, hang mounted on a bulkhead, or ride in your inventory.

Group Readings
Instruments Speed, Heading, Heel
Cargo Deadweight, Freeboard, Burden
Sounding Sea Depth, Keel Clearance
Status Hull Integrity, Bilge Water
Environment Wind, Conditions, Time, Temperature
Position Latitude, Longitude

Every reading — how it's measured, how it's restricted

Instruments

Speed — forward speed through the water in knots, taken from the ship's own rigidbody velocity along her keel line. Requires: a Chip Log aboard. (config: RequireChipLogForSpeed)

Heading — true heading in degrees plus the nearest of the 32 compass points (e.g. 043° NEbN), from the direction the bow faces. Requires: a Compass aboard. (config: RequireCompassForHeading)

Heel — the lean of the masts from vertical and to which side (4.2° Stbd). Turns amber past the ship's own safe-angle limit. Measured heel-invariantly from the hull's geometry. Requires (new in v2): an Inclinometer aboard. (config: RequireInclinometerForHeel, default on)

Cargo

Deadweight — everything the ship carries to make her voyage: all cargo and gear (loose or stowed), the crew (the game's own 160 lb per person), and the effective weight of any bilge water. Never the hull or fittings. Summed item-by-item from the game's own manifest at each item's true weight.

Freeboard — height of the deck above the living water surface, measured against the averaged wave surface under the hull and smoothed so swell doesn't make it flicker. Counts down as you load; amber when low, red near zero.

Burden — how she's carrying her load, in a nine-word ladder of plain sailor's words, read straight from the ship's actual physics — no capacity tables, correct on every hull, stock or modded:

Light · Trim · Laden · Weatherly (all normal, white) → Deep · Tender (warning, amber) → Overburdened · Crank · Awash (danger, red)

The word is the worse of two independent things she can be in trouble with, so a single glance tells you which kind of trouble:

  • How deep she floats (the weight axis). Her freeboard as a fraction of her keel-to-deck hull depth. She rides high and reads Light when empty, settles through Trim · Laden · Weatherly as you load her, and turns amber at Deep / red at Overburdened when she's swallowed too much freeboard — the point where the next wave starts coming aboard.
  • How stiff she stands (the stability axis). An estimated metacentric height (GM) from the combined center of gravity of hull + cargo + crew versus her beam and draft, plus how close her heel is to putting the deck-edge under. Weight stowed low keeps her stiff; weight piled high raises her center of gravity and she goes Tender (amber) then Crank (red) — wanting to roll — long before her freeboard looks bad. This is the real capsize failure in Sailwind, and it correctly tells low-stowed ballast (safe) apart from a high deck load (dangerous).

Awash (red) is the last word — she's shipping water over the deck or the bilge is winning. Deadweight in lbs remains a separate, exact read of the cargo aboard. (config: BurdenMode = stability (default) blends both axes / freeboard uses depth only; thresholds live in [LoadStatusThresholds].)

Sounding

Sea Depth — water depth beneath the ship from a genuine ray cast to the genuine seafloor. Reads Deep Ocean when no bottom lies within 300 m, Shallows (amber) under a metre of water, and Surf (red) once the hull is touching.

Keel Clearance — water under the keel itself, measured from the true bottom of the hull. Amber under 2 m, red at touching, and Grounded (red) once the ground reaches the keel — beached ships read honestly instead of measuring through the sand to the seabed. Taught to ignore everything that is "ship" so it reads correctly on modded hulls.

Status

Hull Integrity — soundness of the hull from the game's own damage model. Amber when worn, red when close to failing.

Bilge Water — how full the bilges are. Amber above 15%, red once she's going down. (In Sailwind bilge water carries no direct weight but cuts buoyancy above half-full; that buoyancy loss is converted to its pound-equivalent and folded into Deadweight and Burden.)

Environment

Wind — where the apparent wind blows from, as one of the 32 compass points, plus its strength on the full Beaufort scale (Calm (0) · Light Air (1) · Light Breeze (2) · Gentle Breeze (3) · Moderate Breeze (4) · Fresh Breeze (5) · Strong Breeze (6) · High Wind (7) · Gale (8) · Strong Gale (9) · Storm (10) · Violent Storm (11) · Hurricane-force (12)). This is apparent wind — the wind you actually feel on deck (true wind combined with the ship's own motion) — computed and scaled to exactly match SailInfo, so the two mods always agree. Requires: a Wind Indicator on the ship (shipyard windicator, tell tale, wind compass, etc.). (config: RequireWindIndicatorForWind)

Conditions (new in v2) — the weather in the words on a real barometer face: Stormy · Rain · Change · Fair · Very Dry, with a (rising)/(falling) note as the glass moves. Read from the Climate mod's live barometric pressure (GetPressureMb), so the HUD word always agrees with where your barometer needle points. (Without the Climate mod the line falls back to the v1 storm wording — but the barometer gate still applies.) Requires: a Barometer aboard (Climate mod). (config: RequireBarometerForConditions, default on) Approximate bands: Stormy < 965 mb · Rain 965–990 · Change 990–1015 · Fair 1015–1040 · Very Dry > 1040 mb.

Time (new in v2) — the ship's clock, showing Global (GMT) time as HH:MM, exactly as a marine chronometer reads it. Requires: a Chronometer aboard (or a Chronocompass, which functions as one). (config: RequireChronometerForTime)

Temperature (new in v2) — the air temperature, read from the Climate mod and shown in whatever unit Climate itself is set to (°C or °F), so the two mods always agree. Supports both Climate APIs: the latitude-based temperature of Climate 1.0.0+ (your position feeds the reading) and older versions. Requires: the Thermometer aboard (Climate mod). (config: RequireThermometerForTemperature)

Position — Latitude & Longitude (new in v2)

Your coordinates on the globe, shown by default in decimal degrees exactly as the in-game chart displays them (34.09° / -4.18°), or classic degrees+minutes with hemisphere (34°05' N / 004°11' W) via CoordinateFormat = degmin. Derived from the game's own world-position system (FloatingOriginManager.GetGlobeCoords), verified against the chart.

Position is not free. Just like real celestial navigation, a coordinate is only revealed when you own an instrument capable of taking the sight, during the time window that sight is possible, under a sky clear enough to take it. See the next section.


The navigation system — what unlocks a coordinate

Each instrument opens different windows. When a window is open and the sky cooperates, the coordinate updates live. When the window closes, the last value holds in grey as (Last Known HH:MM) — stamped with the time of the fix, it stops updating rather than disappearing — until your next valid window refreshes it. Between windows the reading will drift from your true position; that lag is the gameplay.

Instrument matrix

Instrument Where to get it Provides Time window Sky / other conditions
Quadrant Stock item Latitude Midnight, 23:30–00:30 Clear night; stars visible
Chronocompass Stock item Latitude and Longitude Local noon, 11:30–12:30 Clear; sun visible
Sextant (quintant) RealisticSkies mod see below multiple (see below) see below

Sextant — the versatile instrument

The Sextant (the RealisticSkies quintant) takes several different sights across the day:

Sight Provides Time window Conditions
Noon sight Latitude 11:30–12:30 Sun visible
Time sight Longitude 08:00–10:00 or 14:00–16:00 Sun visible and Chronometer aboard
Polaris sight Latitude 20:00–04:00 Clear skies, Northern Hemisphere only
Twilight sight Latitude and Longitude 05:00–06:00 or 18:00–19:00 Clear, with both horizon and stars visible

How the conditions are judged (all read from the live game):

  • Clear — the storm system reports fair weather (the same signal that drives the Conditions word). Overcast, rain or storms block every sight; each window's sun/star/horizon visibility follows from the window's own hours plus this clear-sky check.
  • No dense fog — if the Random Encounters mod's dense-fog event is running, every sight is blocked while it lasts: with no horizon and no sky there is nothing to shoot. (FogBlocksSights, default on; detected live from the mod, ignored if the mod isn't installed.)
  • Hemisphere — Polaris sights only work when your latitude is north of the equator (PolarisNorthernHemisphereOnly, default on).

If the sky fails the check, no new sight is taken — a coordinate that has never been fixed shows ---, and one that has holds its grey (Last Known) value.

"Last Known" behaviour

When 12:30 passes and your noon window closes, Longitude doesn't blank out — it greys, stops updating, and reads (Last Known) so you can still steer by your last fix, exactly as a navigator would, until the next window your instruments can use comes around. Latitude and Longitude hold independently.


Configuration

Everything is live-editable in the in-game Configuration Manager (F1) or by editing BepInEx/config/com.dixiecapt.sailwind.marinershud.cfg.

  • [HUDSections] — master toggle, per-group visibility (now including Position), optional collapse hotkeys, and HideWhenAshore (default true) for the new off-ship auto-hide. Whole-HUD toggle defaults to F8.
  • [Appearance] — font (auto borrows Sailwind's own font), size, panel/text opacity, and text drop-shadow.
  • [EquipmentRequirements] — turn each instrument gate on or off (chip log, compass, wind indicator, barometer, thermometer, inclinometer, chronometer) and edit the item-name fragments each one looks for.
  • [Navigation] (new) — every per-instrument time window (editable as HH:MM-HH:MM, comma-separated, may cross midnight), the Northern-Hemisphere rule for Polaris, the fog gate (FogBlocksSights), and coordinate entries (LatitudeAxis, LongitudeAxis, CoordUnitsPerDegree, CoordFlipLat/Lon) — already calibrated to the game (z = latitude, x = longitude, in degrees), kept editable just in case a game update moves them.
  • [Environment] (new) — enable/disable Time and Temperature, Global-vs-Local time preference, and the temperature unit (auto follows Climate's own setting).
  • [LoadStatusThresholds]BurdenMode (stability/freeboard) and the cut-points for every rung of the Burden ladder: the freeboard fractions for Light/Trim/Laden/Weatherly/Deep/Overburdened and the GM-to-beam and deck-edge ratios where Tender and Crank trip. Enable DebugMassReadout to see a ship's internal name plus the raw working figures — beam, draft, freeboard fraction, GM/beam and list ratio — used to judge Burden (and the raw navigation/time values behind the coordinate and clock displays).

Compatibility

  • Climate (RadDude) — powers the Conditions barometer, Temperature, and the Barometer/Thermometer instruments. Optional: without it, those readings simply don't appear. Both Climate API generations are supported (the renamed GetCurrent… facade of 1.0.0 and the older names), resolved automatically at runtime.
  • Realistic Skies (kingcam16) — provides the Sextant (quintant) and the clear-sky/star visibility that celestial sights rely on.
  • Inclinometer (Larson Logistics) — provides the instrument that unlocks the Heel reading.
  • Random Encounters — its dense-fog events block celestial sights while they run.
  • Windicators (NANDbrew) and other wind-indicator items — satisfy the Wind requirement.
  • All cross-mod links are read defensively, so Instrument Display loads and runs fine whether or not any of these are installed — the dependent readings just stay hidden until the relevant mod and instrument are present.

Do not run Instrument Display and BoatStatusHUD at the same time — they're two takes on the same overlay and will double-draw. Use one or the other.


Installation

Automatic (recommended): install via the Thunderstore App or r2modman — it pulls the BepInEx dependency for you.

Manual: install BepInEx 5.4.2100, then drop InstrumentDisplay.dll into Sailwind/BepInEx/plugins/.


Credits

  • Original mod: BoatStatusHUD by luizbaghttps://github.com/luizbag/BoatStatusHUD
  • This derivative — reorganization, all-ship compatibility, and the v2 instrument/navigation suite — maintained by Dixiecapt.
  • Barometer terms and pressure read from Climate by RadDude; Sextant and sky visibility from Realistic Skies by kingcam16; Heel instrument from Inclinometer by Larson Logistics.

Full credit for the original concept and implementation belongs to luizbag; this derivative is offered under the same terms as the upstream project.


Changelog

3.0.2 — bilge alarm fix

  • Restores the bilge-flood alarm to an early warning. 3.0.1 raised its trigger far too high, so the flood alarm wouldn't sound until the bilge was ~40% full — by which point she's already foundering. It now reads Crank the moment the bilge is climbing past ~1.5% with the hull undamaged, and Awash by ~5%, as it always should have. The trigger is exposed as BilgeFloodPercent for anyone who wants to tune it. If you installed 3.0.1, update to restore the early flood warning.

3.0.1 — seakeeping hotfix

  • Draft is now smoothed like freeboard, so the stability reading no longer strobes on light or shallow-draft hulls in heavy seas. GM depends on draft (GM = draft/2 + beam²/(12·draft) − CGtoKeel) and is hypersensitive to it when draft is small, so an unsmoothed draft let the swell rolling under a light ship swing GM from rock-solid to Crank and back. Burden now reads the mean waterline: steady and accurate at port (where it's calibrated and most used), and truthful — not jumpy — at sea, so a genuinely tender ship still shows while wave noise doesn't.

3.0.0 — the stability release

  • Burden rebuilt as a nine-word stability ladderLight · Trim · Laden · Weatherly · Deep · Tender · Overburdened · Crank · Awash. It judges two physics axes at once — how deep she floats (freeboard ÷ hull depth) and how stiff she stands (estimated metacentric height from the real combined centre of gravity vs. beam and draft, plus deck-edge list) — and reports the worse of the two. A dangerous high-stowed load reads red (Crank) even while freeboard still looks fine, while low-stowed ballast correctly reads safe; amber pre-warnings (Deep, Tender) sit ahead of the red words. This is the real capsize failure in Sailwind, and it replaces the old per-ship weight table entirely (the cause of false "Overloaded" readings on stock cargo hulls).
  • True hull beam on any ship — the single-collider modded-ship fix. Beam and hull shape now come from the game's own buoyancy sample grid, with a hull-mesh fallback (measured from the lower hull only) for convex-hull modded ships whose grid is empty. This fixes hulls whose one big collider swallowed the yards and bowsprit and reported a beam many times too wide — which had thrown off the whole stability estimate. Non-hull colliders (rigging, fenders, wind-shadow, cargo bodies) are excluded, and world/ocean meshes are rejected.
  • Wave-steady loading readout. Freeboard and heel are averaged over the swell and debounced, so Burden reads the ship's mean waterline and no longer strobes as she pitches in a seaway.
  • Every rung is live-editable in [LoadStatusThresholds] (BurdenMode, the DepthFrac_* fractions, TenderBelowGMBeam/CrankBelowGMBeam and the list ratios), with DebugMassReadout exposing the raw beam, draft, freeboard fraction, GM/beam and list numbers behind the word.

(Development builds 2.1.0–2.1.9 folded into this release.)

2.0.5

  • Removed the old per-ship weight-capacity table ([ShipWeightProfiles]) entirely — it was the root of the false "Overloaded" readings on stock hulls. Burden is now purely physics-based (stability, or freeboard via BurdenMode).

2.0.4

  • Burden now judges real capsize risk (stability): estimated metacentric height from the combined center of gravity of hull + cargo + crew vs. beam and draft. "Overloaded" means dangerously tender — the actual overload failure in Sailwind — and also fires on dangerously low freeboard. BurdenMode = stability (default) / freeboard.

2.0.3

  • Hull keel/deck geometry is now measured stably per ship (only the waterline moves with load), removing the reading wobble that made light-load Burden noisy.

2.0.2

  • First physics-based Burden (freeboard ÷ hull depth) instead of a per-ship weight table, so stock hulls no longer read a false "Overloaded" (e.g. the Sanbuq and cargo junks). Works for any hull automatically; deadweight in lbs is unchanged.

2.0.1

  • Fixed wind speed reading nearly double the real value (a stray m/s→knots conversion; the game's wind is already in knots), which made calm conditions show as "Gale".
  • Wind now uses apparent wind and the full Beaufort scale, computed to match SailInfo exactly so the two mods agree.

2.0.0

  • HUD auto-hides when ashore.
  • Conditions rebuilt on the Climate barometer (Stormy/Rain/Change/Fair/Very Dry + trend); requires a Barometer.
  • Added Time (GMT), requires a Chronometer.
  • Added Temperature (Climate), requires a Thermometer; matches Climate's unit.
  • Heel now requires an Inclinometer (toggleable).
  • Added the Latitude/Longitude celestial-navigation system (Quadrant, Chronocompass, Sextant) with time-window, sky-condition and hemisphere rules and "Last Known" hold.
  • Random Encounters dense fog blocks celestial sights while it runs.
  • Instruments are detected in the player's inventory as well as on the boat.
  • Coordinates display in decimal degrees (matching the chart) by default; CoordinateFormat = degmin restores degrees+minutes.
  • "Last Known" readings are stamped with the time of the fix.
  • Compatible with both the Climate 1.0.0 renamed API and older Climate versions.
  • Clock reads every frame so it keeps pace with the ship's chronometer.
  • Wind and Heading expanded to the full 32-point compass rose.
  • New [Navigation] and [Environment] config sections; new equipment gates.

1.0.1 — Instrument Display's first public release (derivative of BoatStatusHUD): five collapsible groups, all-ship compatibility, equipment-gated readings, per-ship burden profiles.