Check out our latest project ✨ OpenChapter.io: free ebooks the way its meant to be πŸ“–

Home Builder

An asset by wikicode96
The page banner background of a mountain and forest
Home Builder hero image

Quick Information

0 ratings
Home Builder icon image
wikicode96
Home Builder

A Godot 4 C# plugin for building structures directly in the 3D scene editor.Features:- Floors: draw rectangles of tiles by click-and-drag (single MeshInstance3D per room)- Walls: click two points to place a wall; L/T/X intersections resolved automatically with mitre joints- Doors & Windows: click any wall to carve a real cutout in geometry and collision- Stairs: two-click placement, step height calculated automatically per floor- Roofs: flat, shed, gable, and hip types with configurable pitch- Fences / Railings: modular, axis-aligned, driven by a PackedScene asset- Multiple floors: per-floor visibility in the editor- Bake: exports the building as an optimised .tscn with LOD0, LOD1, Occluder, and Collision

Supported Engine Version
4.1
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
5 hours ago
Git URL
Issue URL

Home Builder

A Godot 4 plugin (C#) for building structures directly in the scene editor by clicking in the 3D viewport.

Requirements & Installation

Requires Godot 4.x with .NET (Mono) support. To install the plugin, copy the addons folder from this repository into your project's addons folder. Then enable it under Project β†’ Project Settings β†’ Plugins.

README house


Workflow

  1. Open or create a 3D scene.
  2. Activate a build mode in the Home Builder panel (bottom of the editor).
  3. Build the structure floor by floor using the floor selector.
  4. Once the building is ready, use Bake mode to export it as an optimised scene.
  5. Instance the baked scene in your level.

Build Modes

Floors

Hold and drag in the viewport to fill a rectangle of tiles. A single click places a 1Γ—1 m tile; dragging covers the whole room at once (a single MeshInstance3D for the entire rectangle, not one tile per cell). Snapping is to the 1 m grid. Configurable:

  • Thickness of the slab
  • Material for the top face, bottom face, and sides

Walls

  • First click: wall start point.
  • Second click: wall end point. The wall automatically aligns to the centre of floor tiles.
  • Intersections between walls (L, T, or X corners) are resolved automatically with mitre joints β€” no visible gaps at any angle.
  • Walls support doors and windows (see below).
  • Configurable: wall height and thickness, and materials for face A, face B, and edges.

Doors & Windows

With Doors or Windows mode active, click on an existing wall to open a cutout. The gap is carved into both the wall geometry and its collision shape.

  • Doors: configurable width and height.
  • Windows: configurable width, height, and sill height.

Stairs

  • First click: staircase base.
  • Second click: direction and length. The staircase connects the current floor to the one above.
  • Configurable: number of steps, width, and depth (tread) of each step.
  • Step height is calculated automatically as wall height / number of steps, so the staircase always meets the upper floor exactly. More steps make them shorter; fewer steps make them taller.

Roofs

Hold and drag in the viewport to define the roof footprint on the active floor. Snapping is to half a tile (0.5 m) so the roof can align with wall outer faces, not just cell centres. The footprint is automatically extended outward by half the wall thickness on each side, so the eave covers the exterior face of perimeter walls. Available types:

  • Flat
  • Shed β€” configurable: direction and pitch
  • Gable β€” configurable: direction and pitch
  • Hip β€” configurable: pitch. The ridge is automatically oriented along the longest side of the rectangle.

Fences / Railings

  • First click: starting corner of the segment.
  • Second click: ending corner. Modules are instantiated along the dominant axis (X or Z).
  • Requires assigning a PackedScene as the fence asset in the panel.
  • Configurable: module size. The asset is scaled in X to that length, so any native width works as long as the pivot is at the centre of the base and the asset faces +X.

Limitation: fences only support axis-aligned placement (X or Z). Diagonal placement is not supported.


Multiple Floors

The floor selector (β–² / β–Ό next to the floor number) controls which level new elements are placed on. When moving up a floor, lower floors are automatically hidden in the editor to keep the workspace clean.

Floor height equals the configured wall height.


Bake (Optimised Export)

Bake mode generates a .tscn scene ready to use in a level. Open the bake panel and configure:

Parameter Description
Output folder res:// path where the .tscn is saved
LOD0 end distance Maximum distance (metres) at which full geometry is shown
LOD1 start distance Distance from which the simplified version is shown
Fade Transition mode between LOD0 and LOD1: No fade or Self (see below)

LOD Distances

Values of 80 m or above are recommended so the LOD switch happens when the building is already small on screen and the player cannot notice the detail difference. Short distances make the switch clearly visible.

If LOD0 end and LOD1 start are close together (e.g. 80 m and 81 m), the transition window is minimal and the effect is nearly instantaneous.

Fade Modes

  • No fade β€” the switch between LOD0 and LOD1 is instantaneous. No visual artefacts. Recommended when distance values are high enough for the change to go unnoticed.
  • Self β€” a smooth transition is applied between both LODs. May produce visual artefacts if the building has interior geometry (stairs, interior elements) that becomes visible through the walls during the transition, since they turn semi-transparent. It may also interact with transparent materials in the scene (water, glass). Use it for predominantly exterior buildings or when the transition occurs at a sufficient distance.

Contents of the Baked Scene

StaticBody3D  (building name)
β”œβ”€β”€ LOD0           β€” full geometry, one surface per original material
β”œβ”€β”€ LOD1           β€” simplified geometry, one draw call per material
β”œβ”€β”€ Occluder       β€” OccluderInstance3D for occlusion culling
β”œβ”€β”€ Collision      β€” ConcavePolygonShape3D (walls, floor, roof)
└── Staircase_N    β€” ConvexPolygonShape3D per staircase

LOD0 / LOD1 uses Godot's native VisibilityRange system. At distance, stairs, fences, and floors are removed from LOD1 to reduce polygon count, and walls are simplified to flat faces without openings.

Occluder allows Godot to cull objects hidden behind the building without rendering them. To enable it, activate it in your project:

Project Settings β†’ Rendering β†’ Occlusion Culling β†’ Use Occlusion Culling = ON

To visualise occluders in the editor: Debug β†’ Visible Occlusion Culling Debug

Collision is a single ConcavePolygonShape3D built from the visual geometry, so door and window openings are real collision cutouts. Stairs are kept as independent ConvexPolygonShape3D shapes so CharacterBody3D can climb them correctly via move_and_slide.


Materials

Each mode exposes material selectors in the panel. Materials are assigned before placing elements; already-placed elements are not affected when the active material changes. Materials are preserved in the bake and simplified in LOD1 (normal maps, AO, and roughness maps are removed to reduce cost at distance).


Sample Images

Interiors

README Interiors


LOD0 and LOD1

README LOD0 README LOD1


Occlusion Culling

README Occlusion Culling 1 README Occlusion Culling 2

A Godot 4 C# plugin for building structures directly in the 3D scene editor.

Features:
- Floors: draw rectangles of tiles by click-and-drag (single MeshInstance3D per room)
- Walls: click two points to place a wall; L/T/X intersections resolved automatically with mitre joints
- Doors & Windows: click any wall to carve a real cutout in geometry and collision
- Stairs: two-click placement, step height calculated automatically per floor
- Roofs: flat, shed, gable, and hip types with configurable pitch
- Fences / Railings: modular, axis-aligned, driven by a PackedScene asset
- Multiple floors: per-floor visibility in the editor
- Bake: exports the building as an optimised .tscn with LOD0, LOD1, Occluder, and Collision

Reviews

0 ratings

Your Rating

Headline must be at least 3 characters but not more than 50
Review must be at least 5 characters but not more than 500
Please sign in to add a review

Quick Information

0 ratings
Home Builder icon image
wikicode96
Home Builder

A Godot 4 C# plugin for building structures directly in the 3D scene editor.Features:- Floors: draw rectangles of tiles by click-and-drag (single MeshInstance3D per room)- Walls: click two points to place a wall; L/T/X intersections resolved automatically with mitre joints- Doors & Windows: click any wall to carve a real cutout in geometry and collision- Stairs: two-click placement, step height calculated automatically per floor- Roofs: flat, shed, gable, and hip types with configurable pitch- Fences / Railings: modular, axis-aligned, driven by a PackedScene asset- Multiple floors: per-floor visibility in the editor- Bake: exports the building as an optimised .tscn with LOD0, LOD1, Occluder, and Collision

Supported Engine Version
4.1
Version String
1.0.0
License Version
MIT
Support Level
community
Modified Date
5 hours ago
Git URL
Issue URL

Open Source

Released under the AGPLv3 license

Plug and Play

Browse assets directly from Godot

Community Driven

Created by developers for developers