A lightweight greyboxing / whiteboxing tool for Godot 4.7 — fast level blockout with grid-snapped, corner-pivoted resizable primitives.
Why
Standard box meshes pivot at their center, so they straddle the grid and the floor plane — awkward for blocking out levels. LevelBlockCube puts the node origin on a corner so blocks rest on the grid and resize cleanly along the axes, with in-viewport drag handles.
Features
- Two shapes —
LevelBlockCubefor boxes,LevelBlockTrianglefor ramps and wedges. Both take the same properties and drag handles, and a triangle fills exactly half the bounding box of a cube the same size. - Corner pivot — node origin sits at the front-bottom-right corner (+X, minY, +Z); the block grows into −X / +Y / −Z. Snaps clean to a grid corner.
- Grid-snapped resize — three colored face-drag handles (X red, Y green, Z blue) resize the box, snapped to
grid_step. Or type exact extents in the inspector. - Procedural mesh + collision — the mesh +
StaticBody3D/CollisionShape3Dare built at runtime as non-serialized children, so the scene stores only the data (size,grid_step,material, collision flags). - Click-selectable — gizmo registers collision triangles so the whole box selects in the viewport.
- Triplanar grid material — 1 cell = 1 world unit on every face at any size, so scale reads at a glance.
- Undo/redo +
@tool-reload safe (re-adopts its children instead of duplicating).
Changelog for version 2.1.0
No changelog provided for this version.
Reviews
1. pretty decent for greyboxing out a level but doesnt work with navmesh because the actual colliders are built at runtime 2. also some weird bugs when scaling the box where it just decides to snap to the smallest size this could just be me because i am running hyprland btw etc.
Login to write a review.