Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
PrecisionBuild
Visual building grid with surface snap, flat rug layering (pass-through), Smart Guide Rail, slope support, and HUD hints.
By awuushy
| Date uploaded | 4 days ago |
| Version | 1.5.0 |
| Download link | awuushy-PrecisionBuild-1.5.0.zip |
| Downloads | 584 |
| Dependency string | awuushy-PrecisionBuild-1.5.0 |
This mod requires the following mods to function
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.2350README
PrecisionBuild
A lightweight client-side building helper for Valheim. It projects an aligned visual grid directly onto surfaces (floors, walls, ground), lets any piece snap cleanly to grid corners or cell centers, and adds quick rotation angle switching.
Supports both English and Russian (automatically adapts to your game language).
Features
- Surface-Projected Grid: A warm, semi-transparent grid that conforms to terrain, wood, stone, roofs, and vertical walls. Major lines every 1 m match Valheim's building modules; finer lines stay quiet in the background.
- Universal Snapping: Snaps all building pieces, chests, crafting stations, and furniture to grid nodes.
- Guide Rail (Smart Axis Lock): Press
Lto lock placement along a straight line. Automatically detects dominant axis (X or Z) and keeps objects sliding strictly along a glowing guide line that fades out towards its ends. Perfect for placing flawless rows of chests, fences, or pillars. - Snap Target Toggle (Corners / Cell Centers): Press
Jto switch between snapping to grid intersections (corners) or directly into the geometric center of each grid cell. The snap marker shows the mode: a cross for corners, a ring for centers. - Rug Pass-Through (Flat Carpet Layering): Press
Pto toggle rug collision ignore mode. Lets you overlap multiple rugs seamlessly without stacking them on top of each other — the grid and placement target the floor directly beneath. - Smart Rotation Steps: Cycle through
90°,45°,22.5°, and5°rotation increments with a single key. Align chests flush with walls or make fine-tuned angular adjustments. - Surface Elevation Protection: Pieces won't sink into floors or clip into walls.
- Compact HUD Hints: Unobtrusive one-line hotkey reminder above the building HUD. Enabled modes are bright, disabled ones are dimmed.
- Full Color Customization: Warm hearth-light palette by default (ivory grid, amber marker, ember rail). Every grid, marker, rail, and HUD color can be changed with HEX values in the config.
Controls
| Key | Action |
|---|---|
| B | Toggle building grid and snapping on / off |
| N | Cycle grid cell size (0.125m → 0.25m → 0.5m → 1.0m) |
| K | Cycle rotation step (90° → 45° → 22.5° → 5°) |
| J | Toggle snap target mode: Intersections (corners) ↔ Cell Centers |
| L | Toggle Guide Rail (Smart Axis Lock) on / off |
| P | Toggle Rug Pass-Through Mode (flat carpet placement on floor) |
| Mouse Wheel | Rotate piece by selected angle step |
| Q / E | Default game snap point switching |
Configuration
Settings are saved in BepInEx/config/com.awuushy.precisionbuild.cfg after the first launch:
| Section | Key | Default | Description |
|---|---|---|---|
| 1. General | Enabled |
true |
Enable or disable the mod |
| 2. Hotkeys | ToggleGridKey |
B |
Key to toggle grid on/off |
| 2. Hotkeys | CycleGridSizeKey |
N |
Key to cycle cell size |
| 2. Hotkeys | CycleRotationKey |
K |
Key to cycle rotation steps |
| 2. Hotkeys | ToggleSnapTargetKey |
J |
Key to toggle corners vs cell centers |
| 3. Grid | DefaultGridSize |
0.25 |
Default grid size in meters |
| 3. Grid | SnapToCellCenters |
false |
Default snap mode (false = corners, true = centers) |
| 3. Grid | ShowVisualGrid |
true |
Show surface grid lines |
| 3. Grid | ShowFootprint |
false |
Show the footprint outline of the piece being placed |
| 3. Grid | ShowKeyHints |
true |
Show compact HUD hint bar |
| 3. Grid | SnapAllPieces |
true |
Apply grid snap to all pieces |
| 3. Grid | GridRadiusCells |
8 |
Grid draw radius in cells |
| 4. Visuals | GridColor |
#F5E6CC70 |
Grid color (HEX with alpha); minor lines are drawn dimmer |
| 4. Visuals | ActiveNodeColor |
#FFC857FF |
Snap marker color (HEX with alpha) |
| 4. Visuals | FootprintColor |
#F5E6CCA0 |
Footprint outline color (HEX with alpha) |
| 4. Visuals | GridLineWidth |
0.012 |
Major line thickness in meters (minor lines are 60% of it) |
| 4. Visuals | HudKeyColor |
#FFC857 |
HUD key labels and highlighted values |
| 4. Visuals | HudTextColor |
#F5E6CC |
HUD enabled modes and current values |
| 4. Visuals | HudDimColor |
#8C8273 |
HUD disabled modes and separators |
| 5. Guide Rail | EnableGuideRail |
true |
Enable Guide Rail module |
| 5. Guide Rail | ToggleGuideRailKey |
L |
Key to toggle Guide Rail axis lock |
| 5. Guide Rail | GuideRailColor |
#FF8A4CFF |
Guide rail line and anchor color (HEX with alpha) |
| 6. Slope Alignment | EnableSlopeSnapping |
true |
Align grid and snapping to roofs, ramps, and rafters |
| 7. Rugs & Carpets | EnableRugMode |
true |
Enable Rug Pass-Through module |
| 7. Rugs & Carpets | ToggleRugModeKey |
P |
Key to toggle Rug Pass-Through mode |
| 7. Rugs & Carpets | AutoRugMode |
true |
Auto-activate pass-through when placing rugs |
If your config still holds the old 1.4.0 default colors, they are switched to the new palette on first launch. Colors you changed yourself are kept.
Compatibility
- Client-side only: Other players and dedicated servers do not need the mod installed.
- Safe to use on vanilla and modded servers.
CHANGELOG
Changelog
[1.5.0] - 2026-10-18
Visual Overhaul
- New warm palette inspired by Valheim's hearth light: ivory grid, amber-gold snap marker, ember-orange guide rail, matching HUD. Every color is configurable in
4. Visuals. Configs that still hold the old white/cyan defaults are moved to the new palette automatically; custom colors are kept. - Major / minor grid lines: lines every 1 m (every 2 m for the 1 m step) are brighter, with dots on their intersections. Finer lines are drawn thinner and dimmer, so the grid reads at a glance even at
0.125m. - Constant line thickness: line width is now set in meters and no longer depends on the cell size.
GridLineWidthnow actually works. - Snap marker shows the snap mode: a cross for grid corners, a ring with a dot for cell centers, with a soft dark outline for bright surfaces like snow.
- Guide rail fades out smoothly towards its ends instead of cutting off abruptly.
- Compact HUD hint bar: no more repeated ON/OFF words — enabled modes are bright, disabled ones are dimmed. Hints for modules disabled in the config are hidden, and rebound keys show readable names (
1,M4,LShiftinstead ofAlpha1,Mouse3,LeftShift). - Unified notifications in a consistent "Label: value" format in both English and Russian.
Removed
- Match Piece Rotation (
G) and itsMatchRotationKeyconfig option. A leftoverMatchRotationKeyentry in an existing config file is simply ignored.
Fixed
- An opaque square was drawn next to every grid intersection (the texture area reserved for solid elements overlapped the grid pattern). Markers, guide rail and footprint now render in their own solid layer.
- The footprint fill was nearly invisible because it sampled the grid texture.
0.125mgrid step was shown as0.13m.- Config descriptions for Guide Rail, Slope Alignment and Rugs are now in English like the rest of the config.
package.ps1no longer depends on the old project location.
[1.4.0] - 2026-10-16
Added
- Match Piece Rotation (
G):- Press
Gwhile aiming at any placed building piece to copy and snap the placement ghost's rotation angle directly to it. - Accompanied by in-game HUD notification and full English/Russian localization.
- Press
Optimized & Fixed
- Hot-Path Engine Overhaul (Zero FPS Drops on Big Bases):
- Rug Pass-Through Spatial Query: Replaced the global $O(N)$ piece iteration with a high-performance local spatial query (
Physics.OverlapSphereNonAlloc) around the crosshair, completely eliminating frame-drops on massive player settlements. - JIT DynamicMethod Fast Accessors (
FastReflection): Replaced slowFieldInfo.GetValue/SetValueand reflectionMethodInfo.Invokeinside per-frame update loops with JIT-compiled dynamic accessors that run at native IL speed. - HUD Dirty-Flag State Caching:
KeyHintsPatchnow only updates text when building states actually change, eliminating per-frame string allocations and continuous TextMeshPro canvas rebuilds. - Non-Allocating Physics Raycasts: Replaced
Physics.RaycastAllinRugPlacementModulewithPhysics.RaycastNonAllocusing preallocated buffers, eliminating GC pressure. - Surface Alignment Memoization: Ghost collider queries and surface alignment offsets are now cached across frames when holding the same piece and rotation.
- Guide Rail Orientation: Guide rail axes now adapt to rotated building walls and camera view direction on terrain instead of hardcoded world X/Z axes.
- Rug Pass-Through Spatial Query: Replaced the global $O(N)$ piece iteration with a high-performance local spatial query (
[1.3.0] - 2026-10-11
Added
- Rug Pass-Through / Carpet Stacking Fix: Eliminates the notorious Valheim issue where overlapping rugs stack on top of each other in ugly steps.
- When enabled, the raycast and the visual building grid completely ignore existing rugs and project directly onto the floor (or ground) beneath them.
- New rugs are placed completely flat on the floor at the exact same elevation, allowing seamless overlapping of carpets across intricate room layouts.
- Automatically activates when selecting any rug or carpet (customizable in config:
AutoRugMode). - Toggle manually on/off with
Pkey (customizable in config:ToggleRugModeKey). - HUD hint bar updated with Rug Mode status indicator (
[P] Rugs: ON/OFF). - Full English and Russian localization for Rug Mode HUD and notifications.
[1.2.0] - 2026-09-27
Added
- Guide Rail (Smart Axis Lock): Press
Lto lock placement along a straight line starting from the targeted point.- Automatically detects whether you are moving along the X or Z axis (smart hysteresis).
- Keeps pieces strictly on track for placing flawless rows of chests, fences, pillars, or torches.
- Renders a vivid neon guide rail across the building plane and an anchor point marker.
- Full terrain support: guide rail conforms smoothly to terrain elevation.
- Toggle on/off with
L(customizable in config:ToggleGuideRailKey).
- Color customization for Guide Rail line in config (
GuideRailColor, default:#00E5FFFF). - Slope & Roof Alignment: Full support for sloped surfaces (26° and 45° roofs, sloped beams, stairs, ramps). The visual grid now conforms smoothly to the slope angle and snaps objects directly along the roof pitch.
- HUD hint bar updated with Guide Rail status indicator.
- Full English and Russian localization for Guide Rail HUD and notifications.
[1.1.1] - 2026-09-23
Fixed
- Fixed an issue where mod hotkeys (
B,N,K,J) triggered while typing in the hammer build menu search bar or while the piece selection table was open. Hotkeys are now properly suppressed whenever any UI text input or the build menu is active.
[1.1.0] - 2026-09-20
Added
- Snap Target Toggle: Press
Jto switch between snapping to grid intersections (corners) and cell centers. Center snapping makes it effortless to place furniture, tables, and hearths right in the middle of floor tiles. - HUD hint bar updated to show the currently active snap target mode (
Corners/Centers).
Fixed & Removed
- Removed the multi-piece row placement feature to resolve placement stability and collision issues.
- Streamlined placement logic and cleaned up input handling.
[1.0.0] - 2026-09-16
Initial Release
- Surface-projected building grid with slope and wall support.
- Snapping to grid intersections for all building pieces, chests, and furniture.
- Smart rotation step cycling (
90°,45°,22.5°,5°) viaKkey. - Compact in-game HUD hotkey hint bar with automatic English and Russian localization.
- Elevation alignment offset to prevent pieces from clipping into floors and walls.
- Full HEX color customization support in configuration (clean translucent white
#FFFFFFby default).