Real-time 2-player multiplayer (PvP) for Sea Power: Naval Combat in the Missile Age.
Play any scenario head-to-head, each player controlling an opposing task force. One player hosts the session while the other connects as a client. Both instances run their own units authoritatively, syncing game state over UDP or Steam P2P.
Combat is resolved by the target of the engagement. If Player A fires a missile at Player B, then Player B decides the outcome, they are authoritative for attacks against their own units. If B's air defence intercepts the missile, that result syncs to A. If B determines the missile hits, both sides see the hit. If the two instances disagree, the target's outcome is always final.
There are three ways to install the mod. Pick whichever suits you best.
The launcher handles everything automatically — it installs BepInEx, copies the plugin, and launches the game.
- Download SeapowerMultiplayer.Launcher.exe from the Releases page.
- Run the launcher.
- It will auto-detect your Sea Power installation, install BepInEx if needed, and copy the plugin DLL into the correct folder.
- Click Launch to start the game with the mod loaded.
If you prefer to manage things yourself:
- Download and install BepInEx 5.4.x into your Sea Power game directory.
- Extract the BepInEx zip so that
BepInEx/sits alongsideSea Power.exe. - Run the game once to let BepInEx generate its folder structure, then close it.
- Extract the BepInEx zip so that
- Download SeapowerMultiplayer.dll from the Releases page.
- Copy the DLL into
Sea Power/BepInEx/plugins/. - Launch the game normally.
- Clone this repository:
git clone https://github.com/your-username/SeapowerMultiplayer.git
- Make sure BepInEx 5.4.x is installed in your game directory (see Option 2, step 1).
- Build the plugin:
If your game is not installed in the default Steam location, specify the path:
dotnet build src/SeapowerMultiplayer.csproj
The build automatically copies the DLL and its dependencies intodotnet build src/SeapowerMultiplayer.csproj /p:GameDir="D:\Games\Steam\steamapps\common\Sea Power"BepInEx/plugins/.
- Launch the game with the mod installed.
- Open a mission.
- Press Ctrl F9 to open the multiplayer overlay.
- Click Host Lobby.
- Click Invite Friend and invite your friend through Steam.
- Your friend accepts the invite and is automatically connected and synced into the mission.
- Launch the game with the mod installed.
- Press Ctrl+F9 to open the multiplayer overlay (top-right corner).
- Host: Open a mission, then click Start Hosting. The default port is 7777.
- Client: Enter the host's IP address, then click Connect.
- Once connected, the host clicks Send Scene to Client to sync the current scenario.
The client will automatically receive and load the host's save — no need to manually load the same mission.
Both players use the normal game controls. In PvP, both sides are authoritative for their own units. In co-op, the host's game is authoritative — client orders are sent to the host for execution.
- Time controls are synced. Either player can pause/unpause/change time compression; the host decides and broadcasts the result.
- Resync - either player can press Ctrl F10 and force a resync.
The mod generates a config file at BepInEx/config/SeapowerMultiplayer.cfg on first launch. Key settings:
| Setting | Default | Description |
|---|---|---|
IsHost |
true |
Run as host (server) or client |
HostIP |
127.0.0.1 |
IP to connect to (client only) |
Port |
7777 |
UDP port (must match on both sides) |
AutoConnect |
false |
Automatically host/connect on game launch |
TransportType |
LiteNetLib |
Network transport (LiteNetLib or Steam) |
- LiteNetLib (UDP): The host must have port 7777 (or your configured port) open/forwarded for UDP traffic. Both players need a direct network path (LAN, port forwarding, or VPN).
- Steam P2P: Uses Steam's relay network — no port forwarding required.
- Mod not loading? Check that
BepInEx/is in the correct location (same folder asSea Power.exe) and that the plugin DLL is inBepInEx/plugins/. - Can't connect? Verify the host's IP and port are correct, and that the UDP port is open in the host's firewall/router.
- Desync or drift? The mod includes automatic drift detection and correction. If issues persist, the host can re-send the scene via the F9 overlay.
- When giving a unit its first order it may snap back to the original position, dragging or deleting the order should resolve this.
- Carrier ops can desync at 10x time compression and above.
- Defensive missiles can desync in high missile scenarios but should not affect combat outcomes.
- Weapons fired at a position rather than a target do not sync (e.g., torpedoes or Tomahawks fired at a location instead of a unit).
- Sometimes launching via launcher launches without the mod, simple way to know is the multiplayer menu should appear in top right before you hit the main menu, if it hasn't try: and launch again
- PvP Beta bug fixes
- Co-op mode
- More players
- Headless persistent server (this might be a pipe dream but I am looking into it)
This is a very abstract overview of the roadmap, I have no timeframes in mind for these features and all is subject to change.
MIT — mod the mod freely.