Longhouse

Fleyta

Press a key beside a beached boat and it slides toward the nearest water until it floats. Nothing else about boats changes.

  1. Why
  2. How it feels
  3. Installing
  4. Settings
  5. Needs a play test
  6. Multiplayer
  7. Bugs and ideas
  8. Licence

Fleyta lets you shove a beached boat back into the water. Stand beside a boat that is aground, press the shove key (B by default), and it slides toward the nearest water until it floats. Then the boat is the game's again. It does nothing to a boat that is already afloat, and nothing to the raft.

Why

Vanilla gives a player on foot no way to move a boat at all. A hull run onto a beach is recoverable only by climbing aboard and rowing against the sand, or by waiting for waves that may never come. That is the whole annoyance, and this is the whole fix. It is deliberately narrower than the things it could have been: it does not push you off a dock while aboard, it does not nudge a boat along open water, and it does not drag a boat across land. One gesture, for the one situation the game has no answer to.

Two design calls follow from that.

The direction comes from the terrain, not from you. The mod finds the nearest direction in which the ground drops to floating depth, without first climbing a ridge, and pushes that way. Standing on the sea side and pressing the key still sends the boat to the sea, because "which way is the water" is a fact about the boat's position and not about yours. If no water is within 30 metres, nothing moves and you are told so. A boat left halfway up a beach is worse than one that stayed put.

The key is a key, not hold-E. A hull has nothing to hover over: the only thing the crosshair can land on is the helm, where E already means "take the wheel", and holding it would fight the tap that boards. The helm's hover text names the shove key when pressing it would do something.

How it feels

  • One press, 20 stamina, and the boat slides at a walking pace until it is over water deep enough to float. Nothing to hold, no need to stay.
  • A heavier hull is slower. The speed scales with the square root of the hull's mass, so a longship is slower than a karve by seconds and not by minutes.
  • It refuses, and says why, when the boat is already afloat, when someone is aboard, when you are out of reach, or when the water is too far.

Installing

Needs BepInEx. Nothing else. Through a mod manager it is one install. By hand, put Fleyta.dll in BepInEx/plugins/Fleyta/.

Then start the game once and quit. That first run writes the config file. It does not exist before the mod has loaded, which is the usual reason people think it is broken.

Settings

The file is BepInEx/config/ezomic.valheim.fleyta.cfg. Open it in any text editor. Every setting has a comment above it, so the file explains itself. The two worth knowing first are FloatDepth, how deep the sea floor must be before a boat counts as afloat, and BaseSpeed. Neither was measured against the real hulls when the mod was written, so they are the numbers to tune if a boat stops in the shallows or the slide feels wrong. Turning Verbose on writes each decision, including the hull's real mass, to the log.

Note that changing a default in a new version does nothing on a machine that has already run the mod. BepInEx writes every entry on first run and the saved value wins.

Needs a play test

Not run in game yet, and never in a world with other players, so the hand-over to the boat's owner described under Multiplayer is unproven. Two settings depend on a vanilla behaviour that could only be read from the code. An unattended hull is damped hard in the water: the game multiplies its horizontal speed by 0.1 every physics step while nobody is aboard and the hull's centre is 0.5 m or more under the water line. A shove therefore does not coast into the sea, and where the hull is already in that regime but not yet over FloatDepth the push crawls. Tune FloatDepth and Acceleration together: a FloatDepth that is too deep makes the last metres crawl, an Acceleration that is too low makes them stall. Verbose logs where a shove ends.

Multiplayer

Everyone needs it. A boat is moved by whichever player's game owns it, and force applied from any other machine is silently thrown away. So the mod measures the terrain on your side and sends the request to the boat's owner, who does the pushing. That owner can be anyone, so every player needs the mod, at the same version. A player without it cannot be the one who shoves, and would drop a request sent to a boat they own.

If Core is installed, this mod registers with its version gate and the host's settings apply to everyone connected to it, in memory only - your own config file is never written to and comes back the moment you disconnect. Keybinds and Verbose stay yours. Without Core the mod still runs; what is lost is the enforcement.

Bugs and ideas

Both go to the site. longhouse.thijssensoftware.nl/bugs is for anything broken, and longhouse.thijssensoftware.nl/ideas is for what a mod should do next. You can vote on other people's ideas there as well.

Signing in takes a Steam or Discord account. I work from that list, so the votes decide what I pick up next.

Licence

MIT. See LICENSE.

Changelog

1.0.0 in Longhouse

First release, a member of Longhouse 2.4.0. Stand beside a boat that is aground and press the shove key (B by default): it slides toward the nearest water until it floats, and from there it is the game's. It does nothing to a boat that already floats, and nothing to the raft.

The direction comes from the ground under the hull, not from where you stand, so shoving from the sea side still sends the boat to the sea. If no water is within 30 metres the boat is not moved at all and you are told so; a boat left halfway up a beach is worse than one that stayed put. A heavier hull slides slower, by the square root of its mass, and every shove costs 20 stamina.

Whoever owns the boat does the pushing. Vanilla moves a ship only from the machine that owns it and discards force from any other, so the request is sent to the owner and the mod has to be installed on every machine, not only the host's.

Not run in game yet, alone or with other players, so the request to a boat's owner is untested. The defaults for how deep the water must be before a boat counts as afloat (2 m) and for the push speed are estimates; Verbose writes the real hull masses and every decision to the log so they can be tuned.

Review follow-ups, made before this release:

  • The boat's owner no longer takes a shove on trust. It checks that the hull is aground, that the sender's player is standing within reach of it (by the game's synced position, not a number in the request), and that it is not already moving, then clamps speed and time to its own limits instead of dropping out-of-range requests.
  • Both ends take their limits from the same config (the longest shove is MaxDistance over MinSpeed, doubled, plus three seconds), so a longship moves the same whether you or someone else owns it. The owner now answers each request, and stamina is paid when it accepts, so a refused shove costs nothing and says why.
  • The shove key also waits for the game's own input check, so it does nothing during a cutscene or while another window has taken input.
  • A boat floating in shallow water is no longer treated as aground. Aground now requires the hull to be out of the water's reach by the ship's own buoyancy test, so a moored boat in 1.5 m is not offered a shove and cannot be pushed off its mooring.
  • Documented that an unattended hull in the water is damped hard, which bears on FloatDepth and Acceleration; both are on the play test list.

Every setting · 14

All of it lives in one file, written on first run with each description beside its default. The file is the source of truth; edit it there.

BepInEx/config/ezomic.valheim.fleyta.cfg

server On a server, the host's value applies to everyone while they are connected; your own file is left alone and counts again when you leave. yours Keys and personal settings stay as you set them, on any server.

Fleyta 14
SettingWhat it doesDefaultWhose
Enabled Off leaves the plugin loaded and the key doing nothing. true server
ShoveKey Stand beside a boat that is aground and press this to shove it toward the nearest water. Yours alone: the host never rebinds it. B yours
StaminaCost Stamina spent on each shove, taken when the shove starts (when the boat's owner accepts it) and not refunded if it jams on a rock. One press is the whole job, so this is a flat price and not a drain: a longship costs the same to start as a karve, it just moves slower. 0 makes it free. 20 server
Reach How close you must stand, in metres, measured to the nearest point of the hull rather than its middle, so a longship does not need to be reached from the helm. 4 server
MaxDistance The furthest the water can be, in metres along the ground. Past this the boat is not moved at all and you are told so, because a boat left halfway up a beach is worse than one that stayed put. 30 server
FloatDepth How far below the surface the sea floor must be under the middle of the hull before the boat counts as afloat, in metres. Too shallow and the keel grounds on the bottom in water that looks deep enough; too deep and the push runs further than it needs to. Raise it first if a boat is left stuck in the shallows. The vanilla hulls were not measured when this was written, so this is the number to tune in game. 2 server
MaxRise How much higher than where it sits the ground may climb on the way to the water, in metres, before that direction counts as blocked. A boat slides down a slope; it is not hauled over a dune. Raising it lets a shove cross low humps and makes the wrong side of a ridge a candidate. 1.5 server
BaseSpeed Sliding speed in metres a second for a hull of ReferenceMass. 2 server
ReferenceMass The hull mass that slides at exactly BaseSpeed. Speed scales with the square root of ReferenceMass over the hull's own mass, so a heavy longship is slower and a light karve quicker, without a longship taking a minute. Turn Verbose on to read the real masses in the log. 1000 server
MinSpeed Slowest a shove ever goes, so the heaviest hull still arrives in reasonable time. 0.5 server
MaxSpeed Fastest a shove ever goes. A light hull at speed would clear the shoreline and keep going; this is the brake on that. 4 server
Acceleration How hard the push works against ground friction, in metres a second squared. Friction on a dragged hull is around 6, so below that the boat does not move at all; the default clears it with room. It does not change the speed, only how quickly it is reached. 10 server
Excluded Prefab names, comma separated, that are never shoved. The raft is left out by decision: it is the starter boat, and the gesture is meant for the Karve and the longships. Raft server
Verbose Write what was measured and decided to BepInEx/LogOutput.log: the hull's mass, the ground under it, the water found, the speed chosen and why a shove stopped. Off unless something looks wrong. false yours

Discussion

Nothing said yet.

Sign in or make an account to join in.