A client-side blueprint and build-along tool for Vintage Story. Copy a region with an anchor corner, save it as a blueprint file, then paste a translucent ghost that snaps to your crosshair and auto-rotates to face you. Rebuild the structure block-by-block in survival or creative with a live material checklist showing what you have versus what you still need.
Status: v0.1.1. Selection, save/load, ghost render with snap-to-look, place toggle, match tracking, checklist HUD, schematic library UI, layer-by-layer view, 3-axis mirror, three matching modes, and red highlights on blocks to clear. Chiseled-block voxel matching is Phase 4 (v0.2).
- Translucent ghost preview. Saved blueprints render as a see-through 3D copy of the structure, visible only to the local player.
- Snap-to-look placement with auto-rotation. While in floating mode, the ghost follows your crosshair and auto-rotates so the anchor's saved player-facing side faces you. No rotate keys needed for most placements.
- 3-axis mirror toggle. Cycle the floating or placed ghost through X, Y, Z mirrors with a single hotkey. Applied in the local frame so it composes correctly with rotation.
- Schematic library UI. Browse saved blueprints in a native dialog with size, block count, anchor face, modified date, and a "has backup" badge. Per-row Paste and Delete with two-step confirmation.
- Layer-by-layer view. Peel layers off the top of the placed ghost with PgDn / PgUp so you can see interior layers of tall builds.
- Three matching modes. Loose ("any cobble for any cobble"), Medium (variant-aware: type matters, orientation doesn't), or Strict (exact block code). Default is Loose; configurable per-paste or globally.
- Live build-along checklist. Top-left HUD shows materials needed (with clean labels regardless of matching mode), what's currently in your hotbar + backpack, and a real-time progress bar.
- Red highlight on blocks to clear. Cells that should be air (or that hold the wrong block) get a translucent red overlay so you can locate them in 3D.
- Auto-completion. When every cell matches and no extra blocks remain, the ghost and HUD auto-dismiss after a short countdown.
- Overwrite protection. Saving over an existing name requires an explicit
overwritekeyword and creates a single rolling.bak.jsonbackup. Restore with.fw restore <name>. - Pure client-side. No server install required. No network packets sent, no world mutations, no other players see anything. Works on any server that whitelists the mod.
- Mod config file at
%APPDATA%/VintagestoryData/ModConfig/Fieldwright.json. Tune ghost alpha, render distance, HUD position, auto-dismiss timeout, default matching mode.
- Download the latest release
.zipfrom the Releases page (or the ModDB listing). - Drop the zip into
%APPDATA%/VintagestoryData/Mods/. Vintage Story will load it on next launch.
Or unpack the contents (modinfo.json + Fieldwright.dll) into a folder at %APPDATA%/VintagestoryData/Mods/fieldwright/.
- Stand at one corner of the structure you want to copy. Look at the corner block (the face you aim at becomes the saved "front" for auto-rotation later).
- Press Ctrl+Shift+B to set corner 1 (also the placement anchor).
- Walk to the diagonally opposite top corner. Look at it.
- Press Ctrl+Shift+N to set corner 2. Chat shows the bounding size.
- Optional: use
.fw grow up 1/.fw shrink north 2etc. to adjust faces. - Run
.fw save my-house. Selection clears and a JSON file is written to%APPDATA%/VintagestoryData/Blueprints/my-house.json.
- Travel anywhere (any world, any server).
.fw paste my-house. A translucent ghost appears, following your crosshair.- Aim at a block face where you want to build. The ghost rotates automatically so its saved front faces you.
- Press Ctrl+Shift+P when the position looks right. The ghost locks and the checklist HUD opens.
- Place real blocks at the ghost cells. Each match decrements the checklist. Wrong-position blocks appear under "Blocks to remove".
- When everything matches, the ghost auto-dismisses after about 5 seconds.
If you need to reposition mid-build, press Ctrl+Shift+P again to unlock. The HUD closes and the ghost goes back to floating.
| Action | Hotkey | Chat command |
|---|---|---|
| Set corner 1 (placement anchor) | Ctrl+Shift+B |
.fw corner1 |
| Set corner 2 | Ctrl+Shift+N |
.fw corner2 |
| Grow selection on a face | .fw grow <up|down|north|south|east|west> [n] |
|
| Shrink selection on a face | .fw shrink <up|down|north|south|east|west> [n] |
|
| Show selection status | .fw status |
|
| Clear selection only | .fw clear |
|
| Save selection as blueprint | .fw save <name> [overwrite] |
|
| List saved blueprints (text) | .fw list |
|
| Open the blueprint library UI | Ctrl+Shift+K |
.fw library |
| Paste a blueprint (floating ghost) | .fw paste <name> [loose|medium|strict] |
|
| Toggle place / unlock ghost | Ctrl+Shift+P |
.fw place |
| Cycle ghost mirror axis | Ctrl+Shift+M |
.fw mirror |
| Restore/peel ghost layers | PgUp / PgDn |
|
| Toggle checklist HUD | Ctrl+Shift+L |
|
| Cancel: dismiss ghost + clear selection | Ctrl+Shift+X |
.fw cancel |
| Restore a blueprint from its rolling backup | .fw restore <name> |
Hotkeys are rebindable in Settings → Controls → Mod controls under "Fieldwright".
Saved as JSON under %APPDATA%/VintagestoryData/Blueprints/{name}.json. The format wraps the standard Vintage Story BlockSchematic payload with an anchor offset and an anchor face:
{
"version": "0.1.0",
"anchorOffset": { "x": 0, "y": 0, "z": 0 },
"anchorFace": "north",
"schematic": { ... standard BlockSchematic JSON ... }
}Bare BlockSchematic files (e.g. exports from WorldEdit or BetterRuins) load as well, with an implicit anchor at the schematic's min corner and no auto-rotation.
File ownership: blueprint files are yours. The mod claims no rights over their content. Share them freely.
Fieldwright is fully client-side:
- No network packets sent or received.
- No world mutations. Real blocks are placed through Vintage Story's normal channels and validated by the server.
- Other players cannot see your ghost, HUD, or selection box.
It works on any vanilla server out of the box. However, some servers run a strict mod allowlist that rejects unknown client mods at connection time, even read-only ones. If you can't connect with Fieldwright installed, ask the server admin to add fieldwright to their allowed-mods list:
Could you add
fieldwrightto the server's allowed-mods list? It's a client-side blueprint-preview tool, no network packets, no world changes. Same risk profile as a minimap mod.
Requires .NET 10 SDK and a Vintage Story install.
git clone https://github.com/Lueken/Fieldwright.git
cd Fieldwright
$env:VINTAGE_STORY = "$env:APPDATA\Vintagestory"
dotnet build -c DebugBuild output lands in bin/Debug/Mods/. Copy the Fieldwright.dll and modinfo.json into a folder at %APPDATA%/VintagestoryData/Mods/fieldwright/.
- v0.1.0 (shipped 2026-05-18): selection, save/load, ghost, snap-to-look, match tracking, checklist HUD.
- v0.1.1 (current): library UI, layer view, 3-axis mirror, three matching modes, red highlights for blocks to clear, mod config file,
.fw restore, combined cancel hotkey. - v0.2.0 headline: Phase 4 chisel voxel overlay. Per-voxel red/green/yellow hints on chiseled positions plus proper schematic-transform rotation so block variants rotate correctly with the ghost.
- Smaller backlog: localization scaffold, modicon.png replacing the ModDB default, multiple named active ghosts simultaneously.
Bug reports and pull requests welcome at github.com/Lueken/Fieldwright/issues. When reporting issues, please include:
- Vintage Story version
- Mod version (from
modinfo.json) - Steps to reproduce
- Relevant lines from
%APPDATA%/VintagestoryData/Logs/client-main.log(search for[fieldwright:)
Code is MIT licensed. See LICENSE. Blueprint JSON files saved by users are user-owned and outside the mod's licensing scope.
Authored by Venah (Lueken on GitHub).