this post was submitted on 26 Aug 2026
36 points (100.0% liked)

Godot

7868 readers
1 users here now

Welcome to the programming.dev Godot community!

This is a place where you can discuss about anything relating to the Godot game engine. Feel free to ask questions, post tutorials, show off your godot game, etc.

Make sure to follow the Godot CoC while chatting

We have a matrix room that can be used for chatting with other members of the community here

Links

Other Communities

Rules

We have a four strike system in this community where you get warned the first time you break a rule, then given a week ban, then given a year ban, then a permanent ban. Certain actions may bypass this and go straight to permanent ban if severe enough and done with malicious intent

Wormhole

!roguelikedev@programming.dev

Credits

founded 3 years ago
MODERATORS
 

Hey everyone!

I've just released v2.0 of CSG Blockout, my open-source plugin for faster CSG-based level blockout in Godot 4.

For this update, I mainly wanted to solve two things that were getting in the way of my own workflow: grid materials getting stretched on slopes and boolean shapes, and having to think about CSG hierarchy every time I created a new shape.

1. Procedural world-aligned grid materials

The new grid_triplanar.gdshader uses world-space triplanar mapping, so the grid stays aligned to the world instead of following the object's UVs.

It supports:

  • Major and minor grid lines
  • fwidth()-based anti-aliasing
  • Clean grid alignment on slopes, ramps, and boolean cutouts
  • No UV setup required

I also added Light, Dark, Orange, and Custom material presets, which are stored in ProjectSettings.

You can switch between them or apply one to selected meshes directly from the sidebar.

The Shift+A pie menu also uses the currently active preset when creating new geometry, with full Undo/Redo support.

2. Context-aware CSG node placement

Previously, creating a new CSG shape sometimes meant deciding whether it should be a child or a sibling, either through preferences or modifier keys.

For v2.0, CSG Blockout now uses the current selection to infer what you probably want:

  • Selecting a CSGCombiner3D → new shapes are added as children at the bottom.
  • Selecting a CSGShape3D → new shapes are inserted as adjacent siblings.
  • Selecting something else or nothing → falls back to the normal parent/root placement.

This also required refactoring the creation and deletion logic to keep node order, ownership, and Undo/Redo behavior intact.

Links

GitHub: https://github.com/qwqzhanqwq/Godot-CSG-Blockout

Godot Asset Store: https://store.godotengine.org/asset/qwqzhanqwq/csg-blockout/

I'd love to hear what you think, especially if you run into any edge cases or have other blockout workflow features you'd like to see!

you are viewing a single comment's thread
view the rest of the comments