Install Asset
Install via Godot
To maintain one source of truth, Godot Asset Library is just a mirror of the old asset library so you can download directly on Godot via the integrated asset library browser



Quick Information

Goshapes provides intuitive, curve-based level creation tools for Godot 4.This tool augments Path3D nodes with abilities to: - create custom block meshes (earth, buildings, etc) - create path meshes (fences, paths, roads) - scatter instances (trees, rocks, grass, etc)This makes it ideal for quickly putting together 3D environments.
Goshapes for Godot 4
Intuitive path-based level creation for Godot 4
Goshapes makes it easier to rapidly generate level geometry in Godot 4.
This tool augments Path3D nodes with the following abilities:
- create custom block meshes (earth, buildings, etc)
- create path meshes (fences, paths, roads)
- scatter instances (trees, rocks, grass, etc)
This makes it ideal for quickly putting together 3D environments.
Goshapes wraps your custom meshes to a path you specify in the editor:
You can also use paths to procedurally place instances:
^ Notice that the trees above both snap to ground and ignore the footpath. This can be toggled by layer masks.
What's New in 1.3
Goshapes 1.3 has been released Sept 12th, 2024. Some new features include:
- Wider compatibility with Godot 4.2.x, 4.3.x
- Added Mound Caps and Curved Walls
- Gaps in Mesh Walls
- Support for LOD wall meshes, colliders
- Threaded building
- Segmented wall mesh (in testing) which allows for caching and better threaded building
Installation
To install, use the Godot Asset Library or clone this repository into the addons folder of your Godot 4 project, so that its path in your project is res://addons/goshapes
.
Demo Scenes
A few sample scenes, and some sample shape styles and materials have been included under the addons/goshapes/samples
folder. Have a play around there, it should help demonstrate what's possible. Some of these include:
- WallMeshLoop: demonstrates how to use a mesh as a shape wall, including using caps
- SampleIsland: contains a combination of most shaper types including block shapers, wall mesh shapers and scatter shapers
- SampleLineShape: demonstrates how the line function works
Editor Tools
Goshapes works mainly in the inspector. You can add a new Goshape through the add menu or the Goshapes menu in the top toolbar.
Inspector
The inspector will always have shape native properties and path options. Path options can be copied between shapes, while shape native properties are individual. The data for shapes is contained within Resources. This means you can rapidly assemble shapes using preset styles and options or set to local to set custom for each shape.
For a Goshape, all functions and configurations can be achieved using the inspector.
- Axis matched editing is useful for inorganic shapes like buildings or structures. When enabled it will caused axis-aligned points to move with the point you're currently editing.
- Invert and recenter alow you to change the direction and origin respectively.
Inspector: Block Options
Alongside that, there's the Path Options which can be copied between shapes.
- Flatten will force the path to flatten the Y axis, which is useful when you're editing flat surfaces for a player or NPC to traverse.
- Twist will allow you to bend the path in weird and wonderful ways for shapes like corkscrews and vertical spirals.
- Line will cause the shape to extrude along the path instead of filling the path. This is useful for footpaths, roads and fences.
- Rounding will round the edges of the shape by the desired distance
- Interpolate affects the detail of the shape
- Points On Ground will cause the points to align to the surface below them using Raycasting
- Offset Y shifts the shape up or down
- Ground Placement Mask will affect which objects are selected in a Points On Ground raycast
Choosing Shapers
The Shaper Resource: The thing that tells a Goshape what to generate
The Shaper Resource contains the data that is used as instructions for what to generate within the Goshape. You can use these to have your Goshape generate geometry or objects using the type of Shaper used.
Shapers can be picked from the top of the GoShape inspector (Shaper must be expanded.)
BlockShapers: The main geometry generator
Blockshapers are the main Shaper type for rendering geometry, they combine up to three Shapers to make geometry: the CapShaper, the WallShaper and the BottomShaper. For the most part, this is automatic.
The CapShaper (generates a cap at the top, best used as part of a BlackShaper)
There are three cap shaper types: Flat, Plane and Line. Flat and Plane are great for building most shapes (with Plane containing more detail) and Line is useful when using the line PathOption (see above). These three methods alter the triangulation technique used for the caps.
All Cap shapers take a material and render its UVs 1:1 in world space.
The WallShapers (generates a wall around the path, best used as part of a BlackShaper)
There are two wall shaper types: Bevel and Mesh. Bevel will generate a straight wall and allows tapering and bevelling. MeshWall is the most useful, allowing you to create custom geometry and wrap it to a wall. There are some tricks to creating that geometry, that I go into below (see Making Mesh Walls).
The ScatterShaper: Useful for randomly placing objects within an area
A ScatterShaper allows for as many instances as is needed within an area:
- Density controls how likely an instance is to spawn
- Spread changes how far apart the instances are (actual distance from neighbour is between 0 and spread * 2
- Seed changes the random seed
- Place on ground causes the genernated instances to be placed on the ground using Raycasting
- Noise lets you override the inbuilt random function with a noise texture
- Evenness changes how well aligned the instances are to each other. The higher the value, the less organic the scatter selection is.
Contribution Policy
I will endeavour to review any pull requests on Github that fix, optimise or compliment existing functionality without changing the nature of previously generated output. Please note that, while I'm a hobbyist and may sometimes take a little while to respond, I do enjoy and welcome the code contributions of others.
Goshapes provides intuitive, curve-based level creation tools for Godot 4.
This tool augments Path3D nodes with abilities to:
- create custom block meshes (earth, buildings, etc)
- create path meshes (fences, paths, roads)
- scatter instances (trees, rocks, grass, etc)
This makes it ideal for quickly putting together 3D environments.
Reviews
Quick Information

Goshapes provides intuitive, curve-based level creation tools for Godot 4.This tool augments Path3D nodes with abilities to: - create custom block meshes (earth, buildings, etc) - create path meshes (fences, paths, roads) - scatter instances (trees, rocks, grass, etc)This makes it ideal for quickly putting together 3D environments.