SafeHarbor
Build a dry dock for longships and skiffs. Shift+D cradles the ship; the dock menu can deploy it, board it, or open its hold.
About this mod Author’s original text
Report a bug or buy us a coffee at dfgaming.net.
Safe Harbor
Buildable ship docks that do the seamanship for you. Steer a longship, karve, or raft up to an open berth, press a key at the rudder, and the ship eases into a cradle, lifts out of the water, and is dry-docked. Press the key again to slide it back out to the water. Docking persists across save and reload.
A Valheim BepInEx 5 plugin built on Jotunn.
Features
- Two buildable dock pieces (Hammer > DFG):
- Safe Harbor Dock (longships) — 40 Wood / 20 Fine Wood / 10 Iron. Uses the included dock.glb.
- Safe Harbor Skiff Dock (karves and rafts) — 20 Wood / 8 Fine Wood / 3 Iron.
- Shift+D at the rudder docks or undocks. The ship eases into the berth and lifts clear of the water.
- Dock controls on the dock: dock a nearby ship, deploy it, board it, or open its hold.
- Status lights on the dock: green when the berth is open, red when a ship is docked.
- The docked ship and its berth are saved with the world. The ship is repaired when it docks.
- Indestructible by default.
Requirements
- BepInEx 5 (denikson-BepInExPack_Valheim)
- Jotunn 2.30.x (ValheimModding-Jotunn)
Installation
- Install through your mod manager (recommended).
- Manual: copy this folder to BepInEx\plugins\DFG-SafeHarbor\. Keep SafeHarbor.dll, dock.glb, and dock_icon.jpg together.
- Restart Valheim. The build pieces are registered at startup.
How to use
- Build Safe Harbor Dock from the Hammer under DFG and place it at the shore. The ghost sits the underside on the ground or the water.
- Steer a ship within range of the dock.
- At the rudder, press Shift+D to dock. Press it again to undock. The ship slides out to the water.
- Walk up to the dock and press E on the dock controls.
| Key | Action |
|-----|--------|
| Shift+D | Dock or undock while steering |
| E | Open the dock menu |
| 1 | Dock a nearby ship |
| 2 | Deploy the docked ship |
| 3 | Board the docked ship |
| 4 | Open the docked ship's hold |
| Esc | Close the menu |
| Alt+L | Open the in-game tuner |
While a ship is docking, Deploy and Board stay unavailable until it has settled.
Configuration
Generated on first launch at BepInEx\config\com.safeharbor.safeharbor.cfg.
| Section | Key | Default | Description |
|---------|-----|---------|-------------|
| General | Enabled | true | Master toggle. |
| General | AddBuildPiece | true | Add the docks to the Hammer. Restart. |
| General | ShowHudPrompt | true | Show the dock hint while steering nearby. |
| General | ShowMessages | true | Message when a ship docks or undocks. |
| General | StatusLights | true | Green = open, red = occupied. Restart. |
| General | DebugLogging | true | Write docking details to the BepInEx log. |
| Controls | DockKey | Left Shift + D | Dock and undock at the rudder. |
| Controls | GuiKey | Left Alt + L | Open the in-game tuner. |
| Docking | DockRange | 50 | How far (meters) a ship can be and still dock. |
| Docking | DockDuration | 2.5 | Seconds to ease into the berth. |
| Docking | UndockDuration | 1.5 | Seconds to slide back out. |
| Docking | LiftHeight | 1.8 | Meters the ship is raised above the water. |
| Docking | UndockDistance | 20 | How far forward the ship is released. |
| Docking | UndockSpeed | 4 | Push (m/s) when the ship is released. |
| Docking | MaxDockSpeed | 3 | Ship must be slower than this to dock. 0 disables the check. |
| Dock | Berths | 1 | Ships one large dock can hold. Restart. |
| Dock | Indestructible | true | The dock takes no damage. |
| Dock | AddPilings | true | Support posts under the dock. Restart. |
| Dock | PilingLength | 20 | Piling length in meters. Restart. |
| SmallDock | Enabled | true | Also add the skiff dock. Restart. |
| Blueprint | WebTuner | true | Serve the local alignment page. |
| Blueprint | WebPort | 8781 | Tuner address is |
Model alignment (position, berth, ship level, and the three status-light nudges) is stored in BepInEx\config\safeharbor_model.json. With the web tuner on, open
Install & use Install: BepInEx plugin
- The archive from playbuff is the mod itself — usually a BepInEx plugin (a .dll or a plugin folder once unzipped).
- Recommended: use a community mod manager (such as r2modman) — pick this game, import the mod, and the manager sets up BepInEx and its dependencies for you.
- Manual route: install the BepInEx loader in the game folder, then drop the unzipped .dll or plugin folder into BepInEx/plugins/.
- Launch the game — the BepInEx console logs every plugin it loads; seeing this mod in the log means it is installed.
Mods with listed dependencies need those installed too, or they will not load. Options are usually changed in-game or in the plugin's config file. In multiplayer, the host and every client need the same mods installed.
Install these first, or the mod will not work: