Cold Waters Telemetry is a mod for the game Cold Waters that adds telemetry for your submarine.
When the game starts, the mod opens a port with an SSE (Server-Sent Events) endpoint (the default is http://localhost:2222/),
which you can connect to from your own application to process submarine events (events are in JSON format).
Important
The goal of the mod is to allow other developers to create their own programs that process data from Cold Waters or create hardware controls for submarines.
I created an app for the plugin that displays real-time data on my second monitor (in a web browser).
The mode offers the following types of events (see definitions):
depthUnderKeelWarnediceWarnedmineWarnedspeeddepthrudderballastsonarPing(include EMS)cursebreefingmessagetoBattlestationsmissionOrders
Installing the mod
- Download the file
ColdWatersTelemetry.WithBepInEx.zipfrom the release page and extract it to the game's root directory. - Launch Cold Waters.
- Check the file BepInEx\LogOutput.log to see if it contains the log entry
Loading [Cold Waters Telemetry 1.0.0.0].
The configuration file where you can set the SSE endpoint is located in BepInEx\config\CwTP.harrison314.cfg.
Run web app
- Download the file
ColdWatersModWebApp.zipfrom the release page - Run
ColdWatersModWebApp.exe - Browse url from log or use startup parameter eg.
--urls http://localhost:5080/for custom startup URL.
In the appsetings.json configuration file, you can set the address for the SSE endpoint and configure filtering of game messages.
For development, you need to have the .NET Framework 3.5 enabled on Windows and .NET 10 installed, with
BepInEx for 32-bit installed in game (see https://github.com/BepInEx/BepInEx/releases/tag/v5.4.23.5 BepInEx_win_x86_5.4.23.5.zip).
To compile the mod, use:
cd src\src\ColdWatersTelemetryMod
dotnet publish -c Release --property:ColdWatersPath=<path to ColdWaters>
To compile the web app, use:
cd src\src\ColdWatersModWebApp
dotnet publish -c Release
