Releases: fabian-becker/CSG_Toolkit
Release list
1.8.0
CSG Toolkit 1.8.0
This release is a major internal rework of the procedural generator nodes with a strong focus on performance, persistence, and correctness, plus two new distribution modes for the spreader.
✨ Highlights
CSGSpreader3D — two placement modes
- Volume mode: scatter inside a movable, gizmo-editable area node (
CollisionShape3Dor any node containing one). The volume has a visible wireframe and its own transform — no more scattering blind around the node origin. Box / Sphere / Cylinder / Capsule with volume-correct uniform distribution. - Surface mode (new): raycast instances onto scene geometry (CSG combiners,
MeshInstance3D) with optional normal alignment, slope filtering, overhang detection, and surface offset. Works on plain CSG blockouts withoutuse_collision— target meshes are extracted automatically. - Spatial-hash collision avoidance: minimum-distance rejection is now near-constant time per candidate instead of O(n²) — comfortable with thousands of instances.
CSGRepeater3D — better patterns & variations
- New NoisePattern (FastNoiseLite) alongside Grid / Circular / Spiral
- Per-axis position jitter joins rotation and scale as a full variation group
- Spiral fix:
total_height = 0now means flat (previously it silently climbed by the template height); the old behavior is opt-in viause_template_height - Pattern resources are auto-detected as edits — no manual refresh needed
Bake — non-destructive and persistent
- Bake now moves the generated instances into a
Baked_<Generator>container under the scene root, keeping world transforms — the generator stays free to keep previewing - Baked content survives save/reopen (previous builds could lose the inner CSG children or regenerate over the bake)
- Fully undoable; want a standalone file? Right-click the container → Save Branch as Scene
Performance
- Freeze-to-mesh: above
freeze_threshold(default 200) instances the preview collapses into a single mesh — orbit, select and edit at full speed; unfreeze any time from the top toolbar - Debounced regeneration: dragging properties rebuilds once when input settles, not once per frame
- Auto-refresh: editing the template subtree, an inner generator, the spread area node/shape, or the pattern marks the generator dirty automatically
Configuration — the official Godot way
- Settings moved to Editor Settings (
Editor → Editor Settings → CsgToolkit): no autoload, noproject.godotchanges, nothing ships in exported games - Key bindings stored as physical keycodes — correct on non-QWERTY layouts
- Key capture in the config window is cancel-safe; operation + material selection persist across editor restarts
- Migration from the old
csg_toolkit_config.cfghappens automatically (seeSETTINGS.md)
General
- New top toolbar for generators: Refresh / Bake / Freeze
hide_templateoption (template node hides so only instances show)generate_in_gameopt-in for runtime generation in exported games- Nested generators are supported: use a Spreader as a Repeater's template safely
- Godot 4.7+
⚠️ Migration notes
- From ≤ 1.6.x: your
csg_toolkit_config.cfgvalues are imported once, then the file is removed. - From 1.7.x: settings moved from ProjectSettings to Editor Settings — rebind once if you had custom keys. Old
addons/csg_toolkit/*ProjectSettings entries are no longer read and can be deleted. - Spread scenes: the old
spread_area_3dshape resource was replaced by the area node (area_node_path). Existing spreader setups need the area node re-assigned. - Spiral patterns relying on the implicit template-height climb: enable
use_template_height.
1.7.0
CSG Toolkit - Release Notes
Version 1.7.0
🎨 New Pattern System
Complete rewrite of the repeater system with modular pattern support
- Grid Pattern: Traditional XYZ grid layout with automatic template size detection
- Circular Pattern: Arrange objects in circles with optional vertical layering
- Spiral Pattern: Create dynamic spiral formations with configurable pitch and rotation
- Noise Pattern: NEW - Procedural distribution using FastNoiseLite for organic, natural-looking patterns
- Multiple noise types: Simplex, Perlin, Cellular, Value, and more
- Customizable fractal settings (FBM, Ridged, Ping-Pong)
- Adjustable noise frequency and threshold for density control
⚙️ Settings & Configuration Improvements
- ProjectSettings Integration: Configuration migrated from custom
.cfgfile to Godot's native ProjectSettings- Settings now stored in
project.godot - Accessible via Project → Project Settings → Addons → CSG Toolkit
- Better version control and project portability
- Settings now stored in
- Config Window Enhancements:
- Auto-close window after saving settings
- Improved UI layout and responsiveness
🎮 Runtime & Gameplay Features
- In-Game Instance Generation: CSGRepeater3D and CSGSpreader3D now generate instances during gameplay, not just in editor
- Enables dynamic level generation at runtime
- Perfect for procedural content generation systems
- Template Visibility Control: New
hide_templateoption- Automatically hides template node while keeping repeated instances visible
- Duplicate instances are always visible regardless of template state
- No more workarounds needed for scene-based templates
🔧 Repeater & Spreader Improvements
- Automatic Template Sizing: New
use_template_sizeoption- Automatically calculates spacing based on template's AABB
- No more manual spacing calculations for different sized objects
- Works seamlessly with CSG shapes of any dimensions
- Enhanced Variation Controls:
- Per-axis rotation randomization with individual variance settings
- Per-axis scale randomization with configurable ranges
- Position jitter for organic placement
- All variations are seed-based and reproducible
- Improved Default Values:
- GridPattern now defaults to 2×1×1 for immediate visual feedback
- Better initial configurations for all pattern types
⌨️ Keyboard Shortcuts & UX
- CSG Shortcut Manager: Comprehensive keyboard shortcut system
- SHIFT + B/S/C/T/M/P: Quick shape creation (Box, Sphere, Cylinder, Torus, Mesh, Polygon)
- SHIFT + 1/2/3: Cycle CSG operations (Union, Intersection, Subtraction)
- SHIFT + ` or TAB: Cycle through operations
- Context-aware shortcuts only active when CSG nodes are selected
- Smart Insertion: ALT key for behavior inversion (sibling ↔ child placement)
📁 Code Organization
- Pattern Architecture:
- New
CSGPatternbase class with extensible pattern system - Patterns are now separate resource files in
scripts/patterns/ - Easy to create custom patterns by extending
CSGPattern
- New
- Improved Code Structure:
- Better separation of concerns
- Enhanced documentation and comments
- Cleaner property management with custom property lists
📝 Documentation
- New SETTINGS.md: Comprehensive documentation of ProjectSettings integration
- Migration guide from old config system
- Detailed setting descriptions
- Access instructions for both UI and direct editing
- Updated README:
- Complete feature coverage
- Expanded Quick Start Guide
- Pattern-specific documentation
🐛 Bug Fixes
- Fixed behavior toggle button variable naming in config window
- Corrected in-game instance generation for both Repeater and Spreader
- Improved template node visibility handling
- Fixed config window not closing after save
🔄 Breaking Changes
- Configuration Migration: Old
csg_toolkit_config.cfgis no longer used- Settings will reset to defaults on first run
- Reconfigure preferences in new ProjectSettings location
- Pattern System: Removed direct
repeatandspacingproperties from CSGRepeater3D- Now configured through pattern resources
- Existing scenes will need pattern resources assigned
📦 Internal Changes
- Unified demo scenes into single
demo.tscn - Updated plugin metadata and compatibility
- Enhanced resource preloading for pattern classes
- Improved property hints and editor integration
Migration Guide
From 1.6.x to 1.7.0
-
Settings:
- Open CSG Toolkit config window and reconfigure your preferences
- Settings now in Project Settings → Addons → CSG Toolkit
-
CSGRepeater3D Nodes:
- Select your repeater node
- Create a new pattern resource (Grid/Circular/Spiral/Noise)
- Configure pattern-specific settings
- Adjust
use_template_sizeif needed
-
Runtime Features:
- If using repeaters in-game, they now work automatically on
_ready() - Use
hide_templateoption to manage template visibility
- If using repeaters in-game, they now work automatically on
Full Changelog: https://github.com/yourusername/CSG_Toolkit/compare/1.6.1...1.7.0
1.6.1
1.6.0
New Features:
- CSG Spreader 3D Node: Added a new CSGSpreader3D node that takes a template node and spreads it randomly, enabling more flexible and dynamic scene creation.
Improvements:
- Force Update Button: Replaced the older update repeater button with "Force Update CSG" for easier management of CSGRepeater3D and CSGSpreader3D nodes.
Fixes:
- Addon path: Maintain consistent lowercase usage
1.5.2
I've noticed that the Engine is throwing an invalid call, when nrunning a scene with a CSGRepeater Node inside it. Which could just be skipped.
Bug Fixes
Nonexistent function 'get_inspector' in base 'EditorInterface'.
This issue should be resolved with the new 1.5.2 version.
1.5.1
1.5.0
I am thrilled to announce the release of the highly anticipated update to the CSG Toolkit! This version introduces the powerful CSG Repeater feature, designed to significantly enhance your modeling productivity and streamline your workflow.Key Feature: CSGRepeater3D
The standout feature in this update is the CSG Repeater, a game-changer for anyone working with repetitive structures. With the CSG Repeater, you can:
- Effortlessly Model Repetitive Structures: Model a single window or any other repetitive element just once.
- Automate Repetition: Wrap your modeled element inside the repeater.
- Adjust Repetition Parameters: Simply set the number of repeats and the spacing between them.
This feature dramatically reduces the time and effort needed to create complex models with repetitive components, allowing you to focus more on creativity and less on manual adjustments.
Benefits
- Increased Productivity: Save hours of modeling time by automating repetitive tasks.
- Consistent Design: Ensure uniformity and precision in your repetitive elements.
- Flexible Adjustments: Easily tweak the number of repeats and spacing to fit your design needs.
I believe the CSG Repeater will revolutionize how you approach modeling in Godot, making your workflow more efficient and enjoyable.
As allways, happy modeling!
With the latest update, I've added the CSGRepeater3D Node. Unfortunately, I didn't test it thoroughly enough.
Bug Fixes
- Reparenting a template did not remove old duplucates.
- Removing the template did not clear the duplicates
Happy modeling!
1.5.0
I am thrilled to announce the release of the highly anticipated update to the CSG Toolkit!
This version introduces the powerful CSG Repeater feature, designed to significantly enhance your modeling productivity and streamline your workflow.
Key Feature: CSGRepeater3D
The standout feature in this update is the CSG Repeater, a game-changer for anyone working with repetitive structures. With the CSG Repeater, you can:
- Effortlessly Model Repetitive Structures: Model a single window or any other repetitive element just once.
- Automate Repetition: Wrap your modeled element inside the repeater.
- Adjust Repetition Parameters: Simply set the number of repeats and the spacing between them.
This feature dramatically reduces the time and effort needed to create complex models with repetitive components, allowing you to focus more on creativity and less on manual adjustments.
Benefits
- Increased Productivity: Save hours of modeling time by automating repetitive tasks.
- Consistent Design: Ensure uniformity and precision in your repetitive elements.
- Flexible Adjustments: Easily tweak the number of repeats and spacing to fit your design needs.
I believe the CSG Repeater will revolutionize how you approach modeling in Godot, making your workflow more efficient and enjoyable.
As allways, happy modeling!
1.4.0
CSG Toolkit 1.4.0 Release Notes
I am excited to announce the release of CSG Toolkit version 1.4.0! This update brings a significant new feature to enhance your workflow:
New Feature: Material Picker
What's New
- Material Picker: You can now directly apply your selected BaseMaterial3D or ShaderMaterial on the CSG node. This allows for a more streamlined and efficient process when working with materials.
How to Use
- Select the desired material (
BaseMaterial3DorShaderMaterial). - Spawn a new CSG from the toolbar
- Voilà! The CSG node now has the selected material applied.
Thank you for using CSG Toolkit! I hope you enjoy this new feature and look forward to your feedback.
Happy modeling!
1.3.2
Bug Fixes
- Installation Issue Resolved: The issue where users faced difficulties installing the plugin from the Asset Library (GitHub Issue #1) has been addressed. The new folder structure should resolve any installation problems.
1.3.1
I am pleased to announce the latest update to our project, which includes important bug fixes and enhancements to improve your experience.
Bug Fixes:
- Operation Signal Connection: During the recent restructuring of the project, it was observed that the operation signal connection was lost. This issue has now been resolved, ensuring that all signal connections function as expected.
Improvements:
- CSG Placement: When adding a Constructive Solid Geometry (CSG) object, it will now be placed at the selected node instead of the parent node. This change enhances the precision and control over where new CSG objects are added within your project.