Releases: gaea-godot/gaea
v2.0.0-beta6
What's Changed
⚠️ Breaking Changes
- Update to Godot 4.5 by @BenjaTK in #433
- Rename
Datatype toSampleby @BenjaTK in #473 - Add
graphproperty to GaeaNodeResource and remove the old reference passed around by @Zehir in #574 - Update to Godot 4.6 by @BenjaTK in #571
- Separated Gaea plugin into Editor and Runtime sub-plugins by @Zehir in #587
- Added GaeaChunkLoader, removed ChunkLoader2D and ThreadedChunkLoader2D by @Zehir in #595
Graph
- Rework the saving system to make it significantly less prone to breakage by @BenjaTK in #435
- Add more utility methods to
GaeaGraphby @BenjaTK in #491 - Make debug group toggleable and add generation time to log by @BenjaTK in #507
- Get rid of the _setup_local_to_scene function of the GaeaGraph by @Zehir in #516
- Add GaeaGenerationPouch class to store the cache by @Zehir in #520
- Support for non square Tilemap Layers. by @Zehir in #339
- Add
node_added,node_removingandnode_removedsignals toGaeaGraphby @BenjaTK in #547 - Add copy/pasting of nodes to/from clipboard in JSON by @Zehir in #560
Graph Nodes
- Make
_get_dataabstract by @BenjaTK in #444 - Allow overriding a node's icon on the
Create Nodetree by @BenjaTK in #457 - Small optimization-related refactorings by @BenjaTK in #470
- Optimize usage of
_get_argin mappers and filters by @BenjaTK in #509 - Add
GaeaNodeFilterandGaeaNodeMappertests by @BenjaTK in #519 - Add
_on_removed_from_graphtoGaeaNodeResourceby @BenjaTK in #529 - Add support for non square cell in RulesPlacer node by @Zehir in #552
- Add DatasMatrixSampler node by @Zehir in #485
- Implement graph savior by @Zehir in #554
Editor
- Update categories to use new
FoldableContainerby @BenjaTK in #442 - Add Preview Simulation Size setting by @Zehir in #366
- Improve the range argument editor by @BenjaTK in #443
- Improve neighbors/rules type UI, and allow for 3D values by @BenjaTK in #471
- Allow quick node creation and connection when dragging to empty spot by @BenjaTK in #477
- Add copying/pasting of nodes by @BenjaTK in #482
- Implement clamping for world_size and cell_size by @17shka in #503
- Add a “Clear” button by @17shka in #504
- Make
seedread-only whenrandom_seed_on_generateistrueby @BenjaTK in #506 - Remove generator dependency from editor by @Zehir in #512
- Add file list panel to the left of the graph editor by @BenjaTK in #517
- Add 'Group in New Frame' option to context menu by @BenjaTK in #489
- Add new icons (
GaeaGrid,GaeaGenerationPouch/Settings) and updateGaeaNodeResource's icon by @BenjaTK in #533 - Inspect graph when selected in file list by @BenjaTK in #546
- Add preview panel to the right of the graph editor by @Zehir in #526
- Update context menu logic and implement shortcuts by @Zehir in #562
Generation
- Create
SampleandMapclasses by @BenjaTK in #499 - Add multithreading to
GaeaGeneratorby @cullumi in #495 - Improve
GaeaTaskPoolscheduling by @cullumi in #545
Rendering
🐞 Bug Fixes
- Fix for Floor Walker's starting position argument value being set to a float instead of a vector3i by @cullumi in #448
- Make caching take in the value, not the results Dictionary by @Zehir in #450
- Fix nodes not reloading when enum is changed by @BenjaTK in #456
- Properly save and load scroll offset and zoom by @BenjaTK in #460
- Show Gaea Panel on Populate (Fix for broken connections when loading a graph while the panel is not displayed) by @Zehir in #463
- Fix invalid value when changing the type of a node's argument by @BenjaTK in #476
- Fix parameters not choosing proper unique name by @BenjaTK in #479
- Implement GaeaGraph deep duplication and add duplicate button by @cullumi in #431
- Fix errors on floating editor close by @BenjaTK in #492
- Fix frame's
tint_color_enablednot being saved by @BenjaTK in #490 - Fix
GridMapGaeaRenderernot usingGridMapGaeaMaterial's orientation by @BenjaTK in #493 - Fix
ChunkLoader2Dnot erasing from_loaded_chunksby @BenjaTK in #494 - Fix Intersection and Difference set operations by @BenjaTK in #500
- Auto remove duplicate GaeaNodeOutput nodes by @Zehir in #505
- Fix creating a new Graph from the editor by @Zehir in #523
- Make sure graph is valid before calling ensure_initialized() by @Zehir in #524
- Fix null return value from static functions in
GaeaEditorSettingsby @BenjaTK in #530 - Make sure edited script is valid before reloading a node by @Zehir in #532
- Fix attempting to call
on_removed_from_graphon null instance by @BenjaTK in #535 - Fix 3D mode of ToHeight by @Zehir in #536
- Fix opened graph deletion in generator not seen as unsaved by @Zehir in #551
- Fix randomness of RandomScatter and RandomFilter by @Zehir in #549
- Fix GaeaGenerationPriority not working, limit sort rate and disconnect signal if not used by @Zehir in #557
- Fix TilemapRenderer for terrain and pattern by @Zehir in #567
- Escape GaeaEditorSettings calls during runtime by @Zehir in #577
- Fix GaeaNodesCopy serialization to text by @Zehir in #581
- Fix copy pasting of nodes by @Zehir in #593
- Fix Dictionary[Operation, Definition] type by @Zehir in #592
- Fix frame renaming text input position by @Zehir in #596
Other
- Update Online Docs and version links by @BenjaTK in #441
- Make every random number instance use node-specific
RandomNumberGeneratorby @BenjaTK in #451 - Add GDLint as a workflow and re-format files to fit Godot's style guide by @BenjaTK in #437
- Create CONTRIBUTING.md by @BenjaTK in #472
- Move demos to a submodule (2.0) by @cullumi in #425
- Update gdUnit4 to v6.0.1 and its GitHub Action to v1.2.2 by @Zehir in #531
- Switch time related variables from float to int by @Zehir in #558
- Expand Screenshotter plugin to generate documentation files and rename it to DocumentationToolkit by @Zehir in #563
- Updated gdUnit4 to v6.1.1 and Fixed Test Orphans by @cullumi in #598
New Contributors
Full Changelog: v2.0.0-beta5.hotfix...v2.0.0-beta6
v2.0.0-beta5 (Hotfix)
Added missing contributor to the credits and updated the version in the plugin's config file.
To read about v2.0.0-beta5, go to https://github.com/gaea-godot/gaea/releases/tag/v2.0.0-beta5
Full Changelog: v2.0.0-beta5...v2.0.0-beta5.hotfix
v2.0.0-beta5
This is a smaller update meant to serve as the last Godot 4.4.x version preparing for an update to 4.5.
What's Changed
✨ New Features
- Add GdUnit4 to the repository for unit/integration testing and implement first tests by @BenjaTK in #393
- Add Operation node checks and fix
GaeaNodeDataOpby @BenjaTK in #402 - Don't clamp gradient material sampling to 0.0-1.0 by @BenjaTK in #406
- Add the
ToHeight2D/3Dnode, used to create side-view or 3D terrain. by @BenjaTK in #403
🐛 Bug Fixes
- Abstract frames into a
GaeaGraphFrameclass by @BenjaTK in #394 - Fix prepare_sample error message in mappers by @Zehir in #398
- Fix
TilemapGaeaRendererrendering wrong terrain by @Zehir in #401 - Fix clearing functionality of
GridMapGaeaRendererby @BenjaTK in #405
Other
- Fix GradientGaeaMaterial by @Zehir in #397
- Add
GaeaNodeResourcetests by @BenjaTK in #400 - Move
_log_datacall totraverse()by @BenjaTK in #399 - Cleanup warnings in tests by @Zehir in #411
- Update _get_data function signatures to specify return type by @Zehir in #410
- Add
GaeaRenderertests by @BenjaTK in #408 - Fix
.gitattributesto include addon by @Zehir in #413 - fix export build with gaea 2.0 by @gumpdev in #417
- Add support for TileMap pattern rendering by @Zehir in #414
- Added move_up and move_down, added arrow keys to movement inputs by @cullumi in #428
- Fix tilemap rendering of terrains for neighbor tiles by @Zehir in #430
New Contributors
Full Changelog: v2.0.0-beta4...v2.0.0-beta5
v2.0.0-beta4
Highlights
- Rework
GaeaNodes to be configured from their script instead of.tresfiles by @BenjaTK in #344:- Before this update, nodes were created through resource files, meaning they'd have to have both a
.tresfile and a.gdfile, and it was harder to implement dynamic features. Now, with this new system which takes inspiration fromVisualShaderNodeCustom, nodes are created through scripts, and can be dynamically rebuilt to change their outputs, arguments, etc. based on context. This allows for more complex nodes like theFloatOpnode. - The migration system will attempt to migrate any existing graphs and will mostly do it correctly but we still recommend to backup your files before updating.
- Before this update, nodes were created through resource files, meaning they'd have to have both a
What's Changed
✨ New Features
- Add lerp to
DatasOpby @BenjaTK in #371 - Add new shapes to
GaeaNodeFalloffby @Zehir in #367 - Rework
GaeaMaterials to allow them to be sampled and makeGaeaMaterialGradientinto a material by @Zehir in #359 - Add a Texture data type and a TextureSampler node by @BenjaTK in #373
🔨 Quality Of Life
- Add generation button on demo scene and fix runtime generation by @Zehir in #351
- Rebuild graph nodes when their resource script is changed by @Zehir in #379
- Make categories collapsable by @BenjaTK in #370
- Add documentation button to GaeaGraphNode by @Zehir in #378
- Add slider when number argument is min/maxed by @BenjaTK in #374
- Enable select all on focus for text editor fields by @Zehir in #384
- Save opened preview state on rebuild by @Zehir in #383
🐛 Bug Fixes
- Fix
GaeaNodeDatasOpif cell is missing by @Zehir in #358 - Add GridMapGaeaRenderer missing methods by @Zehir in #354
- Removed uid prefix in migration by @Zehir in #360
- Avoid preloading graph-related resources by @Zehir in #386
- Improve display of Vector argument editor and fix 2D type switching to 3D when connecting by @BenjaTK in #385
- Fix
NumberArgumentEditorsetting min and max incorrectly by @BenjaTK in #392
Other
- Clean up warnings by @Zehir in #350
- Fix return type of
get_datafunction inGaeaNodeConstantby @Zehir in #352 - Separate value casting into its own class by @Zehir in #353
- Simplify description format to match Godot's documentation comments by @Zehir in #356
- Remove old saved properties from
BoolArgumentEditorby @Zehir in #368 - Update enum cases to uppercase by @Zehir in #372
- Update missing enum cases to uppercase by @Zehir in #375
- Hide tooltip when no description is provided by @Zehir in #382
- Validate Script Type Before Adding to Node Tree by @Zehir in #380
- Rename GaeaData to GaeaGraph by @Zehir in #377
- Change the way parameter names are edited by @BenjaTK in #387
- Change GaeaGraph icon to graph icon by @BenjaTK in #389
- Change usages of
AxiswithVector3i.Axisby @BenjaTK in #390
Full Changelog: v2.0.0-beta3...v2.0.0-beta4
v2.0.0-beta3
This release is in preparation for a larger release that will rework the system for making nodes and will most likely break any alread existing graphs. Please back-up your graphs before updating to this version and before upgrading to the next version.
What's Changed
✨ New Features
- Add more value casting by @BenjaTK in #292
- Implement new save system and data handling improvements by @Zehir in #305
- Refactor node input and outputs by @Zehir in #319
🔨 Quality Of Life
- Add online docs button by @Zehir in #290
- Hide arguments when input is connected by @BenjaTK in #293
- Add Gaea editor settings by @BenjaTK in #301
- Add fuzzy search to add node popup by @Zehir in #307
- Add "Open In Inspector" context action by @BenjaTK in #308
- Add shortcut to cycle between nodes in the 'Create Node' tree by @BenjaTK in #309
- Add 'About' window by @BenjaTK in #313
- Pressing 'Enter' when search bar is focused now creates selected node by @BenjaTK in #318
🐛 Bug Fixes
- Don't clear data before saving by @Zehir in #284
- Fix reroute node by @Zehir in #295
- Fix operating on 2 datas by @BenjaTK in #297
- Fix casting not working when a non-input argument is present by @BenjaTK in #296
- Fix output node label by @Zehir in #321
- Await
_remove_childrento avoid nodes 'leaking' into other graphs when switching generators by @BenjaTK in #324
Other
- Re-organize
panel.gdby @BenjaTK in #283 - Add debug group to
GaeaDataby @BenjaTK in #288 - Force slot properties for input and output by @Zehir in #289
- Add documentation and remove unused stored property by @Zehir in #286
- Add vector2 and range casting functionality by @Zehir in #287
- Clamp Add node popup inside the main window by @Zehir in #302
- Cleanup parameter scenes by @Zehir in #320
- Save scroll offset during sessions, not in GaeaData by @BenjaTK in #323
- Add documentation to most scripts and update naming of certain symbols by @BenjaTK in #326
Full Changelog: v2.0.0-beta2...v2.0.0-beta3
v1.4.1
What's Changed
- Fix invalid world_size (y checking x) check in NoiseGenerator by @kreivi in #185
- Expanded Modifier Filtering + Walls Backward Compatibility Fix by @cullumi in #186
- Remove 1.X docs and update its README.md to match 2.0 by @BenjaTK in #229
- Prioritize updates in the same branch, warn when updating from 1.X to 2.0 by @Zehir in #294
New Contributors
Full Changelog: v1.4.0...v1.4.1
v2.0.0-beta2
WARNING: Updating from 1.X to this WILL break your project.
Highlights
Generation Caching and Traversal by @cullumi in #252
- This PR is the start for greatly improving generation speeds and optimizing the addon.
Add RulesPlacer node, inspired by LDtk by @BenjaTK in #215
- Very useful for very specific decorations, for walls, and more.
2025-03-29_13-18-35.mp4
Add separate icons for each slot type by @Zehir in #245 & Color titlebars & add missing icons by @BenjaTK in #248
- These 2 PRs took the look of the addon to the next level, and improved the accessibility of the addon's interface.

What's Changed
New Features
- Allow changing Frame's tint color by @BenjaTK in #191
- Implement 'salt' for nodes by @BenjaTK in #190
- Add FloorWalkerXY and FloorWalkerXZ by @BenjaTK in #192
- Remove test scene folder from .gitignore by @BenjaTK in #194
- Add Vector2/3-related nodes by @BenjaTK in #195
- Add map previews by @BenjaTK in #196
- Add constants and WorldSize nodes by @BenjaTK in #197
- Reduce minimum node X size by @BenjaTK in #201
- Make mapper functionality abstract & add a basic and a value mapper by @BenjaTK in #203
- Add filter nodes by @BenjaTK in #204
- Update TileMapGaeaRenderer and TileMapMaterial by @BenjaTK in #205
- Add RandomScatter node by @BenjaTK in #206
- Rename Merge to Union and add Intersection, Difference and Complement nodes by @BenjaTK in #207
- Add Border2D node by @BenjaTK in #209
- Make RandomMaterial use weights for better modularity by @Raftatul in #219
- Improve display for Output Node with name and state by @Zehir in #220
- Allow making the Gaea editor floating by @BenjaTK in #231
- Add RandomFilter nodes by @BenjaTK in #237
- Add new operation nodes by @BenjaTK in #241
- Automatically add previews & allow multiple previews by @BenjaTK in #246
- Implement reroute node functionality by @Zehir in #259
- Add MaterialGradient and GradientMapper by @BenjaTK in #268
- Add Falloff node by @BenjaTK in #240
Bug Fixes
- Remove wrong information from SnakePath2D description by @BenjaTK in #193
- Fix some problems when passing-in data by @BenjaTK in #208
- Fix for Node Popup position breaking when the editor window is on a second monitor. by @cullumi in #210
- Fix idx bug, allow sub-frames and fix frames not saving attached nodes correctly by @BenjaTK in #212
- Remove all warnings by @BenjaTK in #214
- Fix ThresholdMapper by @BenjaTK in #239
- Improve
weightsArray Handling inRandomMaterialby @Zehir in #235 - Add missing UID by @Zehir in #254
- Fix generator data assignment to prevent null reference errors by @Zehir in #257
- Fix Create Node popup not resizing by making it a Window by @BenjaTK in #270
- Prevent code execution during scene editing and free old bottom panel resources by @Zehir in #276
Other
- Optimize preview by @BenjaTK in #211
- Upload Walker demo by @BenjaTK in #213
- Remove docs in favor of the new repository by @BenjaTK in #227
- Fix terrain data type in tilemap renderer by @Zehir in #234
- Add ability to detach nodes from parent frame and to disable auto shrink in frames by @BenjaTK in #238
- Add context menu for link interactions by @Zehir in #249
New Contributors
Full Changelog: v2.0.0-beta1...v2.0.0-beta2
v2.0.0-beta1
WARNING: Updating to this version WILL break your existing projects.
Gaea 2.0 is still in beta so it's not ready for production.
Gaea 2.0
Presenting Gaea 2.0! In this new and improved version of Gaea, generation will now be configured with graphs, similar to VisualShaders.
This system brings with it more flexibility, more customization and more opportunities. You can read how to use it in the new documentation!
Some other changes include:
- Renaming
TileInfotoGaeaMaterial. - Unifying all generator nodes into one.
- A more flexible system for creating custom nodes.
Why the Change
Procedural generation is an inherently visual process. Having graph nodes with previews, obvious connections and more makes the process of using Gaea much more satisfying and easy.
Gaea 1.X was becoming hard to maintain, too. Modifiers were hard to create, and having to make a new generation node for every generation type was annoying. With this version, there's only one node: GaeaGenerator. It works for both 2D AND 3D, and all graph nodes do too, which means you can mix elements and customize your generations as you should've been able to from the start.
Iiirc too, this was the original idea I had for Gaea, I just wasn't experienced enough to do it.
Why Beta
I want to get to feature parity with 1.X before calling it an official version. Plus, the codebase probably needs some cleaning up to do, so I'd love to get feedback from anyone who can. Feel free to make PRs, issues, etc!
I'm really excited about this change, and my excitement for this addon is back. Hope y'all like the new workflow, any feedback is appreciated and encouraged.
Full Changelog: v1.3.2...v2.0.0-beta1
v1.4.0
What's Changed
- Fixed Carver2D logic by @ARedSnail in https://github.com/BenjaTK/Gaea/pull/173
- Pattern Support by @cullumi in https://github.com/BenjaTK/Gaea/pull/184
- Fixed the Getting Started Link in walker.md by @cullumi in https://github.com/BenjaTK/Gaea/pull/183
- Removed unnecessary guard in GenerateBorders.gd by @cullumi in https://github.com/BenjaTK/Gaea/pull/182
New Contributors
- @ARedSnail made their first contribution in https://github.com/BenjaTK/Gaea/pull/173
Full Changelog: BenjaTK/gaea-fork@v1.3.2...v1.4.0
v1.3.2
What's Changed
- Fix generate_on_ready not working by @BenjaTK in https://github.com/BenjaTK/Gaea/pull/167
Full Changelog: BenjaTK/gaea-fork@v1.3.1...v1.3.2
