You are viewing a potentially older version of this package. View all versions.
RetiredCoders-ValheimFloorPlan-2.1.4 icon

ValheimFloorPlan

Valheim Floor Plan mod with in-game terrain-aware placement plus bundled Floor Plan Designer web app for creating .vfp plans.

Date uploaded 2 weeks ago
Version 2.1.4
Download link RetiredCoders-ValheimFloorPlan-2.1.4.zip
Downloads 109
Dependency string RetiredCoders-ValheimFloorPlan-2.1.4

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2333 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2333

README

Valheim Floor Plan

Build complete multi-level structures in Valheim from pre-designed floor plans.

Anyone who has spent time building in Valheim knows the real effort starts before the first wall goes up — clearing uneven ground, wrestling with terrain spikes, and nudging pieces into alignment one agonising centimetre at a time. Valheim Floor Plan takes all of that away. Design your layout in the included browser-based Designer, save it as a .vfp plan file, and the mod handles the rest: it levels and blends the terrain, captures a snapshot for instant undo, and places the entire foundation in seconds.

The Designer supports up to three in-memory level layouts with quick switching, per-level overlay rendering, and cross-level clash hints so you can plan multi-storey builds before committing a single piece. Orientation-sensitive tools — including Beds, Workbenches, and Staircases — show directional arrows so what you see in the Designer matches exactly what gets built in-game. The FlexiWall tool lets you draw curved stone walls of any shape — arcs, sweeping curves, and full circles — that are not constrained to the rectangular grid.

Excel-style row/column reference labels run along all four edges of the grid to help with precise placement, and furniture pieces (Bed, Staircase, Hearth, Workbench) show a small centre handle once placed — drag it to move the piece, click it to select it, then rotate in place with the arrow keys or mouse wheel. Right-click and Escape simply cancel whatever's active (tool, selection, or in-progress draw) without deleting anything; to remove a piece, hover it and press Delete/Backspace.

Once you're happy with the design, press the build hotkey, position the preview in-world, and confirm. The mod levels the terrain, places every piece in the right order, and handles scaffold framing for upper floors automatically. For multi-level builds, additional red floating rectangles appear in the preview at each upper-floor height so you can see the full vertical footprint before committing. If something is off, undo restores both pieces and terrain in one keypress — or use the keep-terrain undo (Ctrl+F9) to remove pieces while leaving the levelled ground intact.

This package includes two components:

  1. ValheimFloorPlan mod — a BepInEx plugin that reads .vfp plan files and builds them in-game.
  2. Valheim Floor Plan Designer — a browser-based app (included) for creating and editing .vfp plan files.

Demo video: https://youtu.be/jz39KSSfhJ0

Join the community on Discord: https://discord.gg/ex2HNJAc — share screenshots of your builds, ask questions, and see what others have created with Valheim Floor Plan.

Included in this package:

  • The mod DLL (installed automatically under BepInEx/plugins)
  • The Designer web app (BepInEx/plugins/ValheimFloorPlan/Designer/)
  • Sample .vfp plans to get started immediately

In-Game Configuration Panel

ValheimFloorPlan Config Panel

Press Shift+F8 at any time during a game session to open the settings panel. All mod options are available from here — no need to edit the .cfg file manually for most settings.

The panel has six tabs:

Tab What it covers
General Load a preset bundle via the file browser; set Level 1/2/3 floor plan file paths via the file browser; number of levels, undo radius, HUD message positions, welcome post toggle
Building Wall/pillar material, external and internal wall heights per level, staircase reach mode and step settings
Scaffolding Roof scaffolding, open top, roof style, gable flooring, scaffold levels, floor heights per level, floors and beam toggles
Preview Forward offset, move step, fine move step, coarse/fine/build rotation snaps
Terrain Levelling passes, spike cleanup passes, stamp radius, high-point delta, staged raise settings
Keys Read-only reference for all hotkeys and preview key bindings

Each floor plan file field and the Bundle Name field include a [...] browse button that opens a draggable file picker. The picker supports directory navigation and filters to .vfp or .vpfset files as appropriate. Selecting a bundle file performs a full import — all settings and the three floor plan file paths are updated immediately and reflected in the panel.

Changes take effect when you click Apply or Close — values are written directly to the BepInEx config file. Mouse, keyboard, and camera input are fully blocked from the game while the panel is open so nothing bleeds through.

Hotkeys are shown read-only in the Keys tab and cannot be rebound from within the panel. To rebind a hotkey, edit the BepInEx .cfg file directly. The panel hotkey itself defaults to Shift+F8 and is configurable via ConfigPanelHotkey in the .cfg file.

Creating Floor Plans

  1. Open the Designer to create or edit a plan. It is a local web page installed by Thunderstore Mod Manager. Copy the path below and paste it into your browser address bar to open it:

    %APPDATA%\Thunderstore Mod Manager\DataFolder\Valheim\profiles\Default\BepInEx\plugins\RetiredCoders-ValheimFloorPlan\ValheimFloorPlan\Designer\index.html
    
    e.g.    C:\Users\{Username}\AppData\Roaming\Thunderstore Mod Manager\DataFolder\Valheim\profiles\Default\BepInEx\plugins\RetiredCoders-ValheimFloorPlan\ValheimFloorPlan\Designer\index.html
    
  2. Save/export a .vfp file.

  3. Point the mod config FloorPlanFile to that .vfp file.

  4. In game, press the build hotkey (default F8) and place the design. A terrain snapshot is taken automatically before placement.

    While the preview is active, use these keys to adjust placement:

    Key Action
    Move the plan forward / backward / left / right
    Q Rotate left (default coarse step: 90°)
    G Rotate right (default coarse step: 90°)
    Left Shift (hold) Fine-adjust mode — smaller move/rotate steps
    E Confirm and build at current position
    RMB / Escape Cancel placement

    Note: All keys are configurable in the BepInEx config file.

    Rotation note: confirmed builds snap to BuildRotationSnapDegrees (default 90°) so the finished structure stays aligned to angles that still work with Valheim's normal manual piece snapping. Fine preview rotation uses 22.5° steps by default.

    The rotation-related config entries live together in the Preview - Rotation section.

    While positioning the plan, watch for these visual markers in the world:

    • White rectangle — the inner levelled pad: the exact area of ground that will be raised and flattened to sit your foundation on.
    • Green rectangle — the outer terrain-change boundary: terrain blending extends to this edge, giving a smooth transition rather than a hard cliff.
    • Red floating rectangle(s) — upper-floor level bands (multi-level builds only). One red band appears per upper floor at its expected scaffold height, so you can see the full vertical footprint before confirming. Only shown when FloorPlanLevels is 2 or 3.
    • Tall yellow flagpole — the exact placement origin point at the centre of the plan. The pole rises 10 m above the terrain surface so it remains visible even when the ground is underwater or underground.
    • Orange diamond markers — terrain edge risk warnings. These appear when the surrounding terrain is uneven enough that the levelled edge may produce visible tears or spikes. Move or rotate the plan until they disappear (or reduce) for the cleanest result. Markers turn red when risk is high.

    Note: A HUD message also reports the current risk level (LOW / MEDIUM / HIGH) along with step (the steepest cross-edge height jump) and relief (total height range around the footprint) to help you judge whether to nudge the plan before building.

  5. To undo, press the undo hotkey (default F9). A 5-second confirmation window opens showing:

    • Red rings around every VFP piece within the search radius so you can see exactly what will be removed.
    • Orange boundary circle on the ground marking the edge of the search radius.

    Optional mode: press Ctrl+F9 (configurable via UndoKeepTerrainHotkey) to start piece-only undo that keeps the levelled terrain. In this mode the terrain snapshot is discarded instead of restored.

    During the confirmation window you can:

    Key Action
    Move the search circle centre to target different pieces. Movement respects camera angle. Hold Left Shift for fine movement.
    + / - (or numpad) Increase / decrease the search radius by 5 m. The new radius is saved to config.
    F9 (undo hotkey again) Confirm normal undo — removes all marked pieces and restores terrain.
    Ctrl+F9 (UndoKeepTerrainHotkey) Start or confirm keep-terrain undo — removes marked pieces and discards the current terrain snapshot. If started with Ctrl+F9, confirmation can be done with either Ctrl+F9 or F9.
    RMB / Escape Cancel — clears all highlights without removing anything.

    The HUD message shows the current radius and remaining time throughout the window. All adjustments (movement or radius) restart the 5-second confirmation timer.

IMPORTANT: Terrain can only be restored within the current session — if you leave the area or reload, the terrain snapshot is lost. Building pieces can be undone across sessions because they are tagged as built by Valheim Floor Plan.

Tip — keep the levelled terrain: if you want to remove your build but keep the flat ground (e.g. to iterate on a design), use Ctrl+F9 (UndoKeepTerrainHotkey) instead of F9. Pieces are removed as normal, but the terrain snapshot is discarded rather than restored.

FlexiWall Tool

The FlexiWall tool draws curved or straight walls along any path in the Designer. Walls are built in-game as stacked stone pieces following the arc, with the same brick-bond row offset as regular walls.

Designer layout In-game result
Shamrock layout in the Designer Completed shamrock build in-game

FlexiWall Examples video: https://youtu.be/N8CvcGpX-BQ

Drawing a FlexiWall

  1. Select the FlexiWall tool from the piece selector.
  2. Click a start cell — a green dot appears to confirm the start position.
  3. Click an end cell — a straight wall preview appears between the two cells.
  4. Drag the midpoint handle (white circle) to bend the wall into a curve. The arc updates live as you drag.

To remove a placed FlexiWall, click its midpoint handle to select it (shown with a dashed outline, just like furniture pieces), then press Delete or Backspace — you don't need the FlexiWall tool active to do this.

Endpoint snapping

FlexiWall endpoints snap to the cell-edge boundary that is tangential to the arc at that point, rather than to the cell centre. This means two FlexiWalls that share a cell boundary will meet at exactly the same world coordinate — no gap in the build.

Green and red dots on placed walls show the exact snapped start and end positions so you can see where each wall begins and ends.

Closing a circle

To build a complete ring, place the start and end cells adjacent to each other (one cell apart), then drag the midpoint handle to the opposite side of the circle. The Designer will draw a closed ring and the builder will produce a full circle of wall pieces.

For very large circles, or if you want separate arcs with a doorway gap, you can use two FlexiWalls end-to-end.

FlexiWalls in multi-level builds

FlexiWalls work in Level 1, Level 2, and Level 3 plan files. Upper-level FlexiWalls are placed at the correct scaffold-deck height alongside other upper-level pieces. The footprint validation and terrain levelling area both include FlexiWall extent, so a plan containing only FlexiWalls (no regular grid pieces) still produces a correct build preview and levelled pad.

Preset Bundle Workflow (In Game)

Preset bundles let you share/reload a complete setup: Level 1/2/3 .vfp files plus non-key build/config values.

  • Bundle format: .vpfset (zip container)
  • Bundle output folder: BepInEx/plugins/RetiredCoders-ValheimFloorPlan/ValheimFloorPlan/PresetBundles/ by default. If FloorPlanDirectory is set, bundles are exported to and imported from that folder instead.
  • Key mappings are intentionally not included in exported/imported bundle settings.

Note: when a bundle is imported, the extracted .vfp files are written into a subfolder named after the bundle inside the bundle output folder, and FloorPlanFile/FloorPlanFileLevel2/FloorPlanFileLevel3 are updated to those full extracted paths. If you are using FloorPlanDirectory, you may want to move the extracted files into your directory and update the file fields to bare filenames afterwards.

Default controls:

Key Action
Ctrl+F8 (ExportBundleHotkey) Export current setup as a new timestamped bundle named <BundleName>-YYYYMMDD-HHMMSS.vpfset.
Alt+F8 (ImportBundleHotkey) Start timed import selection mode.
Right Arrow / Left Arrow While import selection is active, move to next/previous bundle.
Enter Import currently selected bundle.
Escape Cancel import selection.

While import selection is active, the HUD shows:

  • Selected bundle name
  • Current position as bundle X of N
  • Control hints (Right, Left, Enter, Escape)
  • Remaining time

If the timer expires, import selection is cancelled automatically.

After a successful import, BundleName is automatically normalized to the imported preset prefix (timestamp suffix removed).

How Multi-Level Builds Work (Plain Language)

When FloorPlanLevels is set to 2 or 3, the mod builds one level at a time.

For each upper level, it follows this order:

  1. Place route-critical pieces first (staircases and hearths).
  2. Cut/preserve needed vertical paths (stair shafts and chimney shafts).
  3. Place the rest of that level's pieces around those paths.

This helps avoid the "nothing gets built" situation where pieces can block each other if placed in the wrong order.

What gets blocked

  • Higher-level pieces are blocked from occupying protected stair/chimney shaft space.
  • Clash checks are primarily local to the current level, but shaft routes are kept clear across levels.
  • Upper-level duplicate floor tiles from plan files are skipped where scaffold decks already provide flooring.

If something is skipped

  • You get HUD/log warning categories that explain why.
  • If a level has clashes, the build creates a clash signpost for that level with detail signs (plus log details for overflow).

Config Options

All values below are configurable in the BepInEx config file.

General

Option Default Allowed values What it does
FloorPlanDirectory (empty) Any valid folder path Optional base folder for .vfp files and preset bundles. When set, FloorPlanFile, FloorPlanFileLevel2, and FloorPlanFileLevel3 can be bare filenames instead of full paths, and bundle export/import uses this folder instead of the default PresetBundles subfolder. Existing configs with full absolute paths in the file fields continue to work unchanged.
FloorPlanFile (empty) File path or bare filename Path to the .vfp file exported by the Designer. A bare filename (e.g. myhouse.vfp) is sufficient when FloorPlanDirectory is set; otherwise provide the full path.
FloorPlanLevels 1 1 to 3 Number of layout levels to build. 1 uses only FloorPlanFile, 2 also uses FloorPlanFileLevel2, 3 also uses FloorPlanFileLevel3. Values above 1 enforce multi-level scaffolding requirements.
FloorPlanFileLevel2 (empty) File path or bare filename Optional Level 2 .vfp file. A bare filename is sufficient when FloorPlanDirectory is set. If set, its footprint must fit within the Level 1 (FloorPlanFile) footprint.
FloorPlanFileLevel3 (empty) File path or bare filename Optional Level 3 .vfp file. A bare filename is sufficient when FloorPlanDirectory is set. If set, its footprint must fit within the Level 1 (FloorPlanFile) footprint.
BuildHotkey F8 Any valid KeyboardShortcut Starts plan preview/build flow.
UndoHotkey F9 Any valid KeyboardShortcut Removes placed VFP-tagged pieces and restores terrain snapshot.
UndoKeepTerrainHotkey LeftControl + F9 Any valid KeyboardShortcut Starts piece-only undo mode: removes VFP pieces and discards the current terrain snapshot so levelled terrain remains.
BundleName MyBuild Any valid file-name text Preset name prefix used when exporting bundles. Export file name format is <BundleName>-YYYYMMDD-HHMMSS.vpfset. After import, this is reset to the imported prefix (timestamp removed).
ExportBundleHotkey LeftControl + F8 Any valid KeyboardShortcut Exports a preset bundle to PresetBundles as <BundleName>-YYYYMMDD-HHMMSS.vpfset (layout files + non-key settings).
ImportBundleHotkey LeftAlt + F8 Any valid KeyboardShortcut Starts timed bundle import selection mode (Right/Left choose, Enter import, Escape cancel, auto-timeout cancel).
ConfigPanelHotkey LeftShift + F8 Any valid KeyboardShortcut Toggles the in-game configuration panel. See In-Game Configuration Panel.
UndoRadius 15 5 to 150 Search radius in metres around the undo circle centre when scanning for VFP pieces to remove on Undo. Adjustable live during the confirmation window with +/-, and circle centre is adjustable with arrow keys.
ProgressMessagePosition CenterLeft Valheim MessageHud positions (Center, TopLeft, TopRight, etc.) HUD slot for build-progress messages. CenterLeft is accepted as an alias and maps to Center.
WarningMessagePosition TopLeft Valheim MessageHud positions (Center, TopLeft, TopRight, etc.) HUD slot for warnings/risk messages. CenterLeft is accepted as an alias and maps to Center.

Building

Option Default Allowed values What it does
ExternalWallHeightLevel1 1 1 to 6 Stacks Level 1 outer-perimeter Wall/Pillar pieces vertically. Dynamic cap: ScaffoldingFloorHeight x 2.
ExternalWallHeightLevel2 1 1 to 6 Stacks Level 2 outer-perimeter Wall/Pillar pieces vertically. Dynamic cap: ScaffoldingFloorHeight#2 x 2.
ExternalWallHeightLevel3 1 1 to 6 Stacks Level 3 outer-perimeter Wall/Pillar pieces vertically. Dynamic cap: ScaffoldingFloorHeight#3 x 2.
InternalWallHeightLevel1 1 1 to 6 Stacks Level 1 interior FlexiWall pieces vertically (walls whose control points do not touch the layout perimeter).
InternalWallHeightLevel2 1 1 to 6 Stacks Level 2 interior FlexiWall pieces vertically.
InternalWallHeightLevel3 1 1 to 6 Stacks Level 3 interior FlexiWall pieces vertically.
WallPillarMaterial Stone Stone, Wood Chooses material set used for Wall and Pillar types.
StaircaseReachMode ToTheNextLevelOnly ToTheNextLevelOnly, AllTheWay Controls staircase vertical reach. ToTheNextLevelOnly climbs one level at a time. AllTheWay climbs toward the highest available scaffold level.
StaircaseStepRise 0.16 0.10 to 0.40 Vertical height in metres between staircase treads. Lower values produce shallower, easier-to-climb steps but increase total tread count.
StaircaseStepAngleDeg 15 10 to 30 Degrees of rotation between staircase treads. Lower values produce a wider, gentler spiral.
StaircaseStepRadius 0.75 0.50 to 1.00 Distance in metres from the centre pole to the midpoint of each tread. Keep at or below 1.0 to stay within the 4×4 staircase footprint.

Scaffolding

Option Default Allowed values What it does
RoofScaffolding false true / false Adds scaffold poles and perimeter beams around the plan during the build. Automatically forced to true when FloorPlanLevels > 1.
RoofStyle Gable Gable, Flat Topmost scaffold deck shape when ScaffoldingFloors is enabled and OpenTop is false. Gable builds a pitched roof layout and extends front-mid/back-mid/centre support columns up to the apex. Flat tiles the topmost level with ridge roof pieces edge-to-edge (one piece per 2x2 tile area).
OpenTop false true / false When true, the topmost scaffold level is left open to the sky — no roof deck, beams, or vertical scaffolding on the external walls of the topmost level, regardless of ScaffoldingFloors or RoofStyle. Hearth chimneys still rise through the open level. Staircases are clamped to the highest real floor deck.
RoofScaffoldingGableFlooring RoofWithFloorUnderlay RoofWithFloorUnderlay, RoofOnly Gable-only top-surface behavior (used only when RoofStyle=Gable). RoofWithFloorUnderlay places floor tiles under the top gable roof. RoofOnly places only gable roof pieces.
ScaffoldingLevels 1 1 to 3 Number of stacked scaffolding levels when RoofScaffolding is enabled. Each extra level repeats the same scaffold pattern +4m above the previous level.
ScaffoldingFloorHeight 4 2, 4, 6 Vertical height in metres between scaffold levels. Must be a multiple of 2m so stacked wood-iron support segments line up correctly.
ScaffoldingFloorHeight#2 4 2, 4, 6 Vertical height in metres for the second scaffold level. Used when ScaffoldingLevels is 2 or 3.
ScaffoldingFloorHeight#3 4 2, 4, 6 Vertical height in metres for the third scaffold level. Used when ScaffoldingLevels is 3.
ScaffoldingFloors false true / false Builds wood floor decks across each scaffolding level when RoofScaffolding is enabled. Automatically forced to true when FloorPlanLevels > 1.
TransverseScaffoldingBeams false true / false Adds west-to-east horizontal scaffold beams at each scaffold pole row. Automatically forced to true when FloorPlanLevels > 1.
LongitudinalScaffoldingBeams false true / false Adds south-to-north horizontal scaffold beams at each scaffold pole column. Automatically forced to true when FloorPlanLevels > 1.

Preview

Option Default Allowed values What it does
BuildOriginForwardOffset 0 0 to 20 Extra distance added to the auto-computed player-to-build-centre preview offset (metres). Usually not needed.
MoveStep 2.0 0.25 to 10.0 Nudge distance per move key press (metres).
FineMoveStep 0.5 0.05 to 5.0 Nudge distance per move key press while fine-adjust key is held (metres).

Preview Keys

Option Default What it does
MoveForwardKey UpArrow Move preview centre forward relative to camera.
MoveBackwardKey DownArrow Move preview centre backward relative to camera.
MoveLeftKey LeftArrow Move preview centre left relative to camera.
MoveRightKey RightArrow Move preview centre right relative to camera.
RotateLeftKey Q Rotate preview counter-clockwise.
RotateRightKey G Rotate preview clockwise.
ConfirmKey E Confirm current preview placement and start build.
CancelKey Escape Cancel preview. (Right-click cancels too.)
FineAdjustKey LeftShift Hold for fine movement and fine rotation.

Preview - Rotation

Option Default Allowed values What it does
RotateStepDegrees 90 22.5, 45, 90 Rotation applied per coarse rotate key press (degrees).
FineRotateStepDegrees 22.5 22.5, 45, 90 Rotation applied per rotate key press while fine-adjust key is held (degrees).
BuildRotationSnapDegrees 90 22.5, 45, 90 Snaps the final build rotation to the nearest allowed angle when preview starts and when build is confirmed.

Terrain

Option Default Allowed values What it does
TerrainLevelPasses 2 1 to 5 Main levelling pass count before spike cleanup. Lower is faster; higher can smooth stubborn terrain.
TerrainSpikeCleanupPasses 2 1 to 5 Post-levelling spike cleanup pass count.
TerrainStampRadius 3.0 3.0 to 6.0 Radius of each terrain stamp disc (metres). Also controls outer terrain blend reach.
TerrainHighPointDelta 0.0 0.0 to 4.0 Extra height added to sampled highest point (targetY = highest + delta).
TerrainUseStagedRaise false true / false Experimental staged vertical raise mode instead of single full-height raise.
TerrainRaiseStepHeight 0.5 0.15 to 1.5 Max vertical raise per stage when staged raise is enabled (metres).
TerrainMaxRaiseStages 1 1 to 16 Hard cap on number of staged raises when staged mode is enabled.
TerrainSkipSatisfiedCenterStamps true true / false Skips center stamps where sampled terrain is already at/above target height.

Sample Plans

The samples/ folder contains ready-to-use examples.

Blank starter grids:

  • samples/myfloorplan4x4.vfp, myfloorplan8x8.vfp, myfloorplan12x12.vfp, myfloorplan16x16.vfp, myfloorplan16x20.vfp, myfloorplan20x20.vfp, myfloorplan20x20_double.vfp, myfloorplan24x24.vfp, myfloorplan28x28.vfp — empty grids in common sizes

Preset bundles (.vpfset) — load with Alt+F8 in-game:

  • samples/ExampleRoundHouse.vpfset — three-level FlexiWall round house (20×20); level files: RoundHouse_Level_1/2/3_20x20.vfp
  • samples/ExampleCircular.vpfset — three-level circular FlexiWall build (20×20); level files: Circle_Level_1/2/3_20x20.vfp
  • samples/ExampleShamrock.vpfset — three-level shamrock multi-arc FlexiWall build (20×20); level files: Shamrock_Level_1/2/3_20x20.vfp
  • samples/ExampleShamrockGroundFloorOnly.vpfset — ground-floor-only shamrock layout
  • samples/ExampleCosyHouse.vpfset — cosy home with beds, hearth, and workbenches; level files: CosyHome_Level_1_20x20.vfp
  • samples/ExampleHeart.vpfset — three-level heart-shaped FlexiWall build (20×20); level files: Heart_Level_1/2/3_20x20.vfp
  • samples/ExampleTurrets.vpfset — three-level build with FlexiWall turret towers (20×20); level files: Turrets_level_1/2/3_20x20.vfp
  • samples/ExampleCastle_2_Levels.vpfset — two-level castle keep with FlexiWall circular corner towers and battlements (20×20); level files: Castle_Level_1/2_20x20.vfp
  • samples/ExampleCastle_3_Levels.vpfset — three-level version of the castle keep; level files: Castle_Level_1/2/3_20x20.vfp
  • samples/ExampleThreeFloorBuild.vpfset — three-level rectangular build (16×20); level files: ThreeFloorBuild_Level_1/2/3_16x20.vfp

Standalone single-level plans:

  • samples/StarBase20x20.vfp — star-shaped base layout
  • samples/RoundHouse.vfp — single-level FlexiWall round house
  • samples/Target.vfp — concentric-ring FlexiWall target layout
  • samples/Turrets.vfp — single-level turret layout
  • samples/Workbenches_16x20.vfp — 16×20 plan with workbenches
  • samples/Workbenches_and_Staircase_16x20.vfp — 16×20 with workbenches and staircase
  • samples/Workbenches_and_Staircase_ALT_16x20.vfp — alternate staircase placement

Tips

  • Test away from world spawn. Terrain levelling and piece placement both depend on world-space coordinates. Builds near the origin (0, 0) can mask position-dependent bugs — always test in a realistic location.
  • Building on already-levelled terrain is much quicker. Create a simple floor plan covering the area you want to build on. Run it once to level the ground, then portal away and back (this clears the terrain snapshot). Press F9 to remove the temporary build — the levelled terrain stays. Subsequent builds in the same area skip most of the levelling work and place pieces much faster.
  • Watch the edge risk markers before confirming. Orange/red diamond markers appear when surrounding terrain is steep enough to cause tears or spikes. Nudging or rotating the plan a few metres is often enough to clear them.
  • Rotate to align with the terrain slope. If one side of the pad is significantly higher, try rotating so the plan runs along the contour rather than across it — this reduces the height range the leveller has to span.
  • Use the overlay in the Designer before building. Enable L2/L3 overlays to check for piece clashes across levels before saving any of the .vfp files. Red dashed outlines flag conflicts, with directional rules for Staircases and Hearths.
  • Bed orientation matters. The arrow shown on a Bed in the Designer points toward the head. The in-game placement will match — players sleep with their head toward the arrow.
  • Undo is session-only for terrain. The terrain snapshot is held in memory. Move to a different area or reload the world and it is gone. Piece removal still works across sessions because pieces are tagged.
  • Use Ctrl+F9 to keep your levelled ground. If you want to remove the build and try again without re-levelling, press Ctrl+F9 instead of F9 to start undo. Pieces are removed but the levelled terrain stays. This is especially useful when iterating on a design in the same spot.
  • The preview shows all floor levels. When FloorPlanLevels is 2 or 3, floating red bands appear during preview at the height of each upper floor. Use them to check clearance and surroundings before confirming.
  • Adjust the undo radius before confirming. During the undo confirmation window, +/- resizes the search circle and arrow keys reposition it. This is useful when two builds are close together and you only want to remove one.
  • FlexiWalls meet cleanly at shared cell boundaries. When two FlexiWalls share a cell boundary, their endpoints snap to the same edge midpoint, so there is no gap at the join. Use the green and red endpoint dots in the Designer to confirm the snap positions before saving.
  • Use adjacent cells for a full circle. Select start and end cells that are one cell apart, then drag the midpoint handle to the far side of the ring. The Designer preview and the in-game build will both produce a closed circle.
  • Use the row/column labels to place pieces precisely. The Designer prints numeric reference labels along all four grid edges, using the same 0-based numbering as the underlying col/row values and .vfp file contents — handy for lining up pieces or cross-checking coordinates.
  • Reposition furniture without deleting it. Bed, Staircase, Hearth, and Workbench pieces show a small handle at their centre once placed (or reloaded from a file). Drag the handle to move the piece, click it to select it, then use the arrow keys or mouse wheel to rotate it in place. Press Escape or click elsewhere to deselect.
  • Right-click and Escape only cancel — they never delete. Both simply back out of whatever's active (an in-progress FlexiWall draw, a piece selection/drag, or the current tool) without removing any pieces, including FlexiWalls. To delete a piece, hover it and press Delete or Backspace — this also removes the currently selected piece (furniture or FlexiWall) if one is selected.
  • Deletion is scoped to the active tool's piece type. With the Hearth tool selected, Delete/Backspace can only remove Hearth pieces — Floors, Walls, and other types under the cursor are left untouched. Switch tools (or select a placed piece via its handle, which switches the tool to match) to delete a different type. With no tool selected, any piece type can be removed.
  • Delete/Backspace works as soon as you hover the grid — even right after picking a tool from the menu. Clicking a tool button no longer "traps" the shortcut; you can select a tool, hover over a placed piece of that type, and delete it immediately without first placing anything.
  • Hovering shows you exactly what Delete/Backspace would remove. The targeted piece — whether it's the top-most match under the cursor or your current selection — is outlined and tinted in red on the canvas, so there's never any guessing about what the next press of the key will do.
  • FlexiWalls are select-and-delete just like furniture. Click a placed FlexiWall's midpoint handle to select it (it gets the same dashed yellow outline as a selected furniture piece), then press Delete/Backspace to remove it. This works with any tool active — you don't need to switch to the FlexiWall tool first. While the FlexiWall tool is active, that same handle still drags to reshape the curve as before.
  • Multi-level plans must nest. Level 2 and Level 3 footprints must fit within the Level 1 footprint. If a level file is rejected at build time, check that all its pieces fall inside the Level 1 grid boundary.
  • Scaffolding settings are forced on for multi-level builds. When FloorPlanLevels > 1, RoofScaffolding, ScaffoldingFloors, TransverseScaffoldingBeams, and LongitudinalScaffoldingBeams are all automatically enabled. You do not need to set them manually.

Feature Highlights

Valheim Floor Plan screenshot 1 Valheim Floor Plan screenshot 2 Valheim Floor Plan screenshot 3 Valheim Floor Plan screenshot 4 Valheim Floor Plan screenshot 5 Valheim Floor Plan screenshot 6 Valheim Floor Plan screenshot 7

Spiral Staircase Showcase

Valheim Floor Plan screenshot 8 Valheim Floor Plan screenshot 9 Valheim Floor Plan screenshot 10 Valheim Floor Plan screenshot 11 Valheim Floor Plan screenshot 12 Valheim Floor Plan screenshot 13 Valheim Floor Plan screenshot 14 Valheim Floor Plan screenshot 15

Example Layouts

Valheim Floor Plan screenshot 16 Valheim Floor Plan screenshot 17

FlexiWall Showcase

Round houses, multi-arc layouts, and multi-level curved stone builds using the FlexiWall tool.

Config settings for a FlexiWall round house build Designer: round house layout with a single FlexiWall circle In-game: completed single-level round house exterior In-game: round house interior In-game: round house extended to two levels Designer: shamrock layout with three overlapping FlexiWall arcs In-game: aerial view of the completed shamrock build Designer: large circle FlexiWall layout on a 20x20 grid In-game: roof scaffolding placed over the circular footprint In-game: level 2 roof pieces being placed on the round house Designer: cosy home rectangular layout with beds, staircase, hearth, and workbenches In-game: multi-level rectangular build under construction with scaffolding In-game: clash signpost showing undo/clash detail signs Designer: rounded-corner square layout with FlexiWall arcs at each corner In-game: completed two-level curved stone building

OpenTop Showcase

In-game: three-level castle keep with FlexiWall circular corner towers, front view In-game: aerial view of the castle keep with FlexiWall circular towers at each corner

Package contents include:

  • BepInEx/plugins/ValheimFloorPlan/ValheimFloorPlan.dll
  • BepInEx/plugins/ValheimFloorPlan/Designer/...
  • images/... (included in the package archive)
  • samples/... (example .vfp plans)

Notes

  • .vfp is the contract between the Designer and the mod.
  • Keep the format stable when changing either project.
  • If you evolve the format, update both parser and exporter together.

Acknowledgements

Development of the Valheim Floor Plan mod and the Valheim Floor Plan Designer web app used:

  • Visual Studio Code
  • GitHub Copilot
  • Various auto-selected AI models during implementation and refinement

CHANGELOG

Changelog

2.1.4

  • New in-game configuration panel (Shift+F8): Press Shift+F8 at any time during a game session to open a full settings panel covering all mod options. The panel has six tabs:

    • General — load a preset bundle via the file browser, set floor plan file paths (Levels 1/2/3) via the file browser, number of levels, undo radius, HUD message positions, welcome post toggle
    • Building — wall/pillar material, external and internal wall heights per level, staircase reach mode and step settings
    • Scaffolding — roof scaffolding toggle, open top, roof style, gable flooring mode, scaffold levels, floor heights, floors and beam toggles
    • Preview — forward offset, move step, fine move step, rotation snap (coarse, fine, build snap)
    • Terrain — levelling passes, spike cleanup passes, stamp radius, high-point delta, staged raise settings (yellow caution note shown)
    • Keys — read-only reference for all hotkeys and preview key bindings (yellow read-only note shown)

    All controls write directly to the BepInEx config file when you click Apply or Close — no manual file editing required. Mouse, keyboard, and camera input are fully blocked from the game while the panel is open. Hotkeys are shown read-only in the Keys tab; to rebind any hotkey edit the BepInEx .cfg file directly.

  • In-panel file browser: each floor plan file field and the bundle name field have a [...] browse button. The file browser opens as a draggable overlay window, supports directory navigation, and filters to .vfp or .vpfset files as appropriate. Selecting a bundle file performs a full import — all settings and the three floor plan file paths are updated immediately and reflected in the panel.

2.1.3

  • New OpenTop config option: when true, leaves the topmost scaffold level open to the sky — no roof deck, no beams, and no vertical scaffolding on the external walls of the topmost level, regardless of ScaffoldingFloors or RoofStyle. Hearth chimneys still rise through the open level. Staircases are clamped to the highest real floor deck. Works consistently for 2-level and 3-level builds.
  • RoofScaffoldingType replaced by RoofStyle + OpenTop: RoofStyle controls the deck shape (Gable / Flat); OpenTop is a separate boolean that overrides all topmost-level placement. Automatic migration: on first load the mod reads any existing RoofScaffoldingType value, writes the equivalent RoofStyle / OpenTop values, removes the old key, and saves the config. No manual config editing required. Legacy .vpfset preset files are also migrated in memory when loaded.
  • Hearth chimney corners now have vertical support poles. Four woodiron_pole columns are placed at the corners of each Hearth chimney shaft, one column per scaffold level, spanning the full configured floor height for that level. This anchors the chimney walls to the floor at every level and is applied regardless of OpenTop or RoofStyle.
  • Beam spans no longer skip entirely when a chimney or staircase is nearby. Previously, a transverse or longitudinal beam was omitted entirely if any part of its span overlapped a Hearth or Staircase footprint. Each 2m beam piece is now checked individually, so only the pieces whose centres fall inside the opening are skipped and the rest of the beam is placed normally.
  • Tight-radius FlexiWalls now place proportionally more wall pieces. On curves tighter than ~3m radius, the rotation angle between adjacent wall pieces now scales down in proportion to the radius instead of growing as the curve tightens, closing the wedge gaps that used to open up on the outer face of small arcs and circles. Gentler curves are unchanged.

2.1.2

  • New FlexiWall tool in the Designer: draw curved or straight walls of any shape — arcs, circles, sweeping curves — that are not constrained to the rectangular grid. Select the tool, click a start cell, click an end cell, then drag the midpoint handle to bend the arc into shape. Endpoints snap automatically to the correct cell-edge boundary so adjacent FlexiWalls meet without gaps.

  • Full circle support: placing start and end in adjacent cells and dragging the midpoint to the opposite side of the circle produces a closed ring wall — both in the Designer preview and the in-game build.

  • New InternalWallHeightLevel1/2/3 config parameters: FlexiWalls whose control points lie strictly inside the layout perimeter are now treated as interior walls and stacked to the new InternalWallHeightLevel height instead of the external wall height. Set it lower than ExternalWallHeightLevel for half-height room dividers, or match it for uniform wall height throughout.

  • Fixed: Gable roofs no longer have gaps caused by openings below. Staircases, Hearths, and other upper-level openings could previously block or punch holes through Gable roof panels, leaving the roof incomplete. The Gable roof now always builds as a full, continuous surface across the entire footprint regardless of what's underneath it.

  • Fixed: Staircases no longer leave holes in the roof above them. Roof tiles directly over a staircase shaft were being destroyed during cleanup even though staircases don't need an opening through the roof — they're now left intact, so the roof stays solid above stairwells.

  • Fixed: Hearth chimneys now properly clear Gable roofs. Chimney stacks — including those on the ground floor — now measure their height against the actual roof apex and clear away any surrounding roof and deck tiles, so the chimney extends cleanly above the roofline instead of being blocked or clipped by it.

  • Designer: Excel-style row/column reference labels. Numeric grid references now run along all four edges of the canvas (top/bottom for columns, left/right for rows), matching the same 0-based col/row numbering used internally and in .vfp files, making it much easier to line up placements by eye or by coordinate.

  • Designer: furniture pieces are now selectable, movable, and rotatable after placement. Bed, Staircase, Hearth, and Workbench pieces show a small handle at their centre once placed (or loaded from a file). Drag the handle to move the piece, click it to select it, then use the arrow keys or mouse wheel to rotate it in place — no need to delete and re-place a piece just to nudge or turn it.

  • Designer: reworked right-click and deletion to prevent accidental removals. Right-click (and Escape) now simply cancels whatever's active — an in-progress FlexiWall draw, a piece selection/drag, or the current tool — without deleting anything. To delete a piece, hover it and press Delete/Backspace; this also removes the currently selected piece if one is selected. Escape also now reliably clears tool selection and any in-progress interaction, returning the cursor to normal.

  • Designer: FlexiWalls use the same select-then-delete flow as furniture pieces. Placed FlexiWalls show a midpoint handle that can be clicked at any time (no need to have the FlexiWall tool active) to select the wall — shown with the same dashed yellow outline used for selected furniture — and then removed with Delete/Backspace. Right-click on a FlexiWall handle no longer deletes it; right-click is now purely a cancel action everywhere, matching Escape. While the FlexiWall tool is active, the handle still drags to reshape the curve as before.

  • Designer: selecting a placed piece via its handle also activates the matching tool. Clicking a furniture piece's or FlexiWall's handle switches the active tool radio to that piece's type — for FlexiWalls, this is what re-enables the handle's drag-to-reshape behavior immediately after selecting it.

  • Designer: Delete/Backspace removal is now scoped to the active tool's piece type. With the Hearth tool selected, for example, Delete/Backspace can only remove Hearth pieces — Floors, Walls, and other types under the cursor are left alone, preventing accidental removal of the wrong piece type while focused on one kind. With no tool selected, any piece type can still be removed.

  • Designer: the piece Delete/Backspace would remove is now highlighted as you hover. When a tool is active (or a piece/FlexiWall is selected), the exact piece that the next Delete/Backspace press would remove is outlined and tinted in red on the canvas, so you can see precisely what's targeted before committing to the deletion.

2.0.3

  • New FloorPlanDirectory config option: Set this to a folder path and the FloorPlanFile, FloorPlanFileLevel2, and FloorPlanFileLevel3 fields can then be bare filenames instead of full paths. Preset bundles are also read from and written to this folder when set. Existing deployments with full paths in the file fields continue to work unchanged — full absolute paths are always used as-is regardless of this setting.

  • Minor Staircase Tweaks: Minor changes to Step Height and Rotation Angle to make the climb up the steps smoother. Step parameters are now exposed in the config.

  • Support for Upper Level Hearths: An extra horizontal scaffolding support is added underneath the Hearth to prevent it from collapsing when they are on upper levels. May not work in every case but if you place the Hearth near a wall (wood or stone) it should be stable now.

  • Designer Graphics Improved: Improved graphics to help with placement including better overlap detection.

  • Designer Help Expanded: An attempt to build a Valheim Complete Workbench Matrix describing Workbenches, their build material requirements and related Boss info. All intended to help with layout design.

2.0.2

  • Documentation updates: Example images showing Three Level Floor Plan.
  • Cosmectic : Log Beams surround Hearth to make it look better.
  • Hearth Upper Floor Limits: If you place a Hearth on an upper level it may break unless it is supported properly. Best to place it so it connects/touches to a Stone outer edge wall which has scaffolding support
  • Workench Placement Angles: Workbenches can be rotated in increments of 22.5 degreee angles. See StarBase.vpf

2.0.1

  • Upper-level preview bands: when FloorPlanLevels is 2 or 3, the in-world build preview now shows a red floating rectangle at the height of each upper floor (based on ScaffoldingFloorHeight / ScaffoldingFloorHeight#2), so you can see the full multi-storey footprint before confirming placement.

  • Keep-terrain undo mode (Ctrl+F9): a new hotkey (configurable via UndoKeepTerrainHotkey, default Ctrl+F9) starts a piece-only undo that removes VFP pieces but discards the terrain snapshot, so leveled ground is preserved. Confirmation works the same as normal undo — the mode is latched so you can confirm with either Ctrl+F9 or F9 within the 5-second window.

  • In-game preset bundle manager (.vpfset): added timestamped export (Ctrl+F8) and interactive timed import selection (Alt+F8) for sharing/reloading full build presets (layout files + non-key config settings). Export file names now use <BundleName>-YYYYMMDD-HHMMSS.vpfset, and after import the config BundleName is normalized back to the imported preset prefix (timestamp removed). Import selection shows bundle name plus index (X of N), supports Right/Left navigation, Enter to confirm import, Escape to cancel, and auto-cancels on timeout.

  • 3 Level Build Demo video published: https://youtu.be/jz39KSSfhJ0

2.0.0

  • Critical bug fix — terrain levelling restored: A long-standing coordinate offset error in TerrainLeveler caused all stamp positions to be calculated hundreds of metres away from the actual build site whenever the player was not near world origin. As a result, terrain levelling was silently skipped on virtually all real-world builds. This has been corrected; levelling now works correctly at any world position.

  • Designer now supports 3 in-memory level layouts with quick switching (Level 1/2/3), per-level file/dirty state, and overlay checkboxes for cross-level visual planning.

  • Overlay clash hints are now directional and content-aware: bright red dotted outlines flag overlap candidates across visible levels, with lower-level Staircase/Hearth projecting upward while non-vertical tools do not.

  • Bed pieces now show a head-direction arrow in the Designer, and are placed in-game with the correct head orientation matching the Designer layout.

  • Expanded multi-floor support for 2nd and 3rd floor plans, including upper-level staircase placement.

  • Multi-level builds now place pieces level-by-level with route-critical parts first (staircases/hearths), then remaining pieces.

  • Stair and chimney shafts are now treated as protected vertical routes so higher-level pieces do not block those paths.

  • Upper-level floor tiles from plan files are skipped when scaffold decks already provide those floors, avoiding duplicate overlap.

  • Improved clash feedback for upper levels:

    • clearer warning categories in HUD/logs,
    • per-level clash signposts with level-specific detail signs.
  • Improved upper-level wall behavior:

    • walls/pillars/doorways can be placed on upper-level perimeter cells,
    • perimeter wall/pillar height now uses per-level settings (ExternalWallHeightLevel1/2/3) with dynamic per-level caps.
  • Added StaircaseReachMode config (ToTheNextLevelOnly / AllTheWay) to control whether staircases climb only to the next level or continue to the highest available level.

  • Fixed staircase shaft punch-through so deck/beam openings and higher-level staircase-shaft blocking now respect StaircaseReachMode (no extra holes above the configured reach).

  • Improved validation and warnings for invalid upper-floor layout files and bounds mismatches.

  • Updated and expanded user/developer documentation to describe current multi-level behavior.

1.1.0

  • New Spiral Staircase build feature: added a compact center-pole spiral staircase that climbs from ground floor toward upper scaffold floors/roof with improved step flow and safer outer-edge guarding.
  • Scaffolding beam options now auto-enable for multi-level scaffolds: when ScaffoldingLevels is set above 1, TransverseScaffoldingBeams and LongitudinalScaffoldingBeams are automatically forced to true and written back to config so the saved settings match the required build behavior.
  • External wall height now follows scaffold capacity: ExternalWallHeight is now capped at ScaffoldingLevels x ScaffoldingFloorHeight, and oversized values are clamped back to the maximum allowed by the current scaffold setup.
  • Scaffold levels can now use different heights: added ScaffoldingFloorHeight#2 and ScaffoldingFloorHeight#3 so each scaffold story can use its own validated height, and ExternalWallHeight now caps against the sum of the active scaffold floor heights.
  • Hearths now cut scaffold floor openings and vent through wood chimneys: scaffold decks leave open space above Hearth footprints, and a wood chimney stack starts about 3m above the Hearth so the fire remains accessible while smoke can exit above the top scaffold level.
  • Top scaffold roof mode is now configurable: added RoofScaffoldingType with Gable (default) and Flat options for the topmost scaffold level when ScaffoldingFloors is enabled.
  • Gable top surface is now configurable: added RoofScaffoldingGableFlooring for RoofScaffoldingType=Gable, with RoofWithFloorUnderlay (default) and RoofOnly options.

1.0.9

  • Added Workbench support in Designer and Builder: new Workbench tool can be placed in the Designer with rotation support and is built in-game using the mapped workstation footprint.
  • Added Hearth and Bed tools: the Designer and builder now support Hearth (4x3) and basic Bed (2x4) footprints.
  • Designer/build orientation now match: preview rotation, final build rotation, and piece placement now follow the Designer layout orientation consistently.
  • Roof scaffolding now uses wood-iron members: perimeter scaffold columns and scaffold beams now use woodiron_pole / woodiron_beam, with 4m columns built from stacked 2m vertical segments.
  • Scaffold floor height is now configurable in validated 2m steps: ScaffoldingFloorHeight now allows 2, 4, or 6 metres between scaffold levels so wood-iron support segments stack cleanly.
  • Internal scaffold support simplified: extra interior vertical support poles were removed and replaced with a single center support column, while transverse and longitudinal beams remain enabled.
  • Top scaffold deck can use roof tiles: when scaffold floors are enabled, the topmost full deck tiles now use wood_roof_top instead of floor pieces.
  • Initial build offset is now automatic: startup placement now computes the player-to-build-center stand-off from the plan footprint plus the outer perimeter delta, while BuildOriginForwardOffset is now only an optional extra clearance.
  • External wall height range increased: ExternalWallHeight can now be configured up to 18 levels.
  • Added DisableWelcomePost config option: center welcome signage can now be disabled when it is not wanted.

1.0.8

  • F8 placement pivot moved to plan center: preview/build placement now uses the plan center as the user-facing pivot (instead of corner-origin), making rotation and alignment more intuitive.
  • New ScaffoldingLevels option (1-3): when roof scaffolding is enabled, scaffold generation now repeats the full vertical/perimeter/transverse/longitudinal pattern per level at +4m increments.
  • New ScaffoldingFloors option: when roof scaffolding is enabled, wood floor decks can now be toggled on or off for scaffolding levels. Default is false.
  • Undo now includes elevated scaffold stories: F9 piece selection/removal/highlighting now use horizontal (XZ) radius instead of 3D distance, so upper levels inside the undo circle are not missed.

1.0.7

  • Rotation preview/build flow hardened for manual placement: preview rotation now stays aligned to safe 22.5° increments, and confirmed builds snap back onto a configurable safe grid so Valheim's follow-up piece snapping remains usable.
  • Rotation settings simplified: BuildRotationSnapDegrees, RotateStepDegrees, and FineRotateStepDegrees are now restricted to 22.5, 45, or 90 degrees to prevent broken off-axis combinations.
  • Fine rotation now works correctly: holding the fine-adjust modifier applies the configured fine rotation step during preview instead of being immediately cancelled by coarse snap logic.
  • Preview rotation bindings updated: default preview keys are now Q rotate left, G rotate right, E confirm, Esc cancel, with LeftShift as the fine-adjust modifier.
  • New interior roof-scaffolding beam options: added TransverseScaffoldingBeams and LongitudinalScaffoldingBeams for horizontal beam runs between interior scaffold poles.

1.0.6

  • Build orientation now follows camera view: The plan is oriented based on the game camera's facing direction rather than the character's body rotation, so the origin is always at the bottom-left of the player's screen view regardless of how the character model is facing.
  • New Roof Scaffolding option: When enabled, automatically places wooden poles at plan corners and door jambs (with gap-fill poles on long spans), connected by horizontal log beams along all four edges, to guide roof placement. Disabled by default; toggle via the RoofScaffolding config option.
  • File-not-found error feedback: If a .vfp file cannot be loaded (preview or direct build), an on-screen centre message now explains the failure instead of silently doing nothing.

1.0.5

  • Undo confirmation circle is now movable: During the undo confirmation window, press arrow keys (configurable preview move keys) to move the search circle centre and reselect which pieces to target for removal.
  • Arrow key movement in undo confirmation respects camera angle (like preview mode) and supports fine-adjust modifier (default LeftShift) for precise positioning.
  • All undo adjustments (radius or circle centre movement) now restart the 5-second confirmation timer, giving the player a full window after each change.
  • Updated undo confirmation HUD message to indicate "Arrow keys to move circle center" as a control hint.
  • Documentation: correction to Desiger path
  • New user guide and example images

1.0.4

  • Replaced the flat X origin marker with a tall vertical flagpole (10 m, bright yellow) so the build origin is visible above terrain, water, and underground surfaces during preview.
  • Undo confirmation now shows per-piece red highlight rings around every VFP piece within the undo radius so the player can see exactly what will be removed.
  • Undo confirmation now shows an orange boundary circle on the terrain at the full undo search radius edge.
  • Reduced the default undo search radius from 75 m to 15 m.
  • Added UndoRadius config option (range 5–150 m, default 15 m) to control the undo search radius.
  • During the undo confirmation window, pressing +/- (or numpad equivalents) adjusts the radius by 5 m; the new value is saved to config and highlights/boundary circle refresh immediately.
  • Pressing RMB or Escape during the undo confirmation window cancels the undo and clears all highlights.
  • Undo confirmation HUD message now shows the current radius, +/- adjustment hint, and RMB/Esc cancel reminder.
  • Added ValheimFloorPlanPlugin.Instance static property and SetUndoRadius() helper to support live config write-back from FloorPlanBuilder.

1.0.3

  • Bumped mod, manifest, and Designer app version numbers from 1.0.2 to 1.0.3.
  • Updated Thunderstore dependency to denikson-BepInExPack_Valheim-5.4.2333.
  • Added a comprehensive README Config Options section documenting all BepInEx settings, defaults, ranges, and preview keybinds.
  • Updated README callout formatting by replacing blockquote notes (>) with plain bold "Note/IMPORTANT" lines for better Thunderstore dark-theme readability.
  • Rebuilt and repackaged Thunderstore release (ValheimFloorPlan-1.0.3.zip) including mod DLL + Designer app.

1.0.2

  • Expanded the README package description/introduction for clearer context and feature overview.
  • Added additional README notes for in-game build placement controls (preview movement/rotation/confirm/cancel keys).
  • Updated README with a new Examples section using three new screenshots from images/.
  • Fixed Designer Shell layout generation so doorways are placed first and walls no longer overlap doorway footprints.
  • Improved Shell edge placement behavior on odd-sized grids by skipping wall segments that intersect doorway area.
  • Rebuilt and repackaged Thunderstore release (ValheimFloorPlan-1.0.2.zip) including mod DLL + Designer app.

1.0.1

  • Documentation change only; fixed broken README image links.

1.0.0

  • First stable release.
  • Added configurable terrain target offset: TerrainHighPointDelta (Highest + Delta, 0.0 to 4.0).
  • Preview walls and risk markers now reflect adjusted target height.
  • Undo confirmation feedback now appears immediately on first key press.
  • Finalized stable plugin GUID: com.alexdroz.valheimfloorplan.
  • Added and documented partner Designer app workflow.
  • Included Designer app in Thunderstore package contents.
  • Development used Visual Studio Code, GitHub Copilot, and various auto-selected AI models.