Road types node structure

In depth explanation

Warning: This part of Roadscape isn’t beginner friendly, please note that there isn’t really a need to modify any of this in the first place, the addon is built so that it already features all needed road types necessary in order to create a complex and varied road system.


Also note that a little geometry node experience is needed in order to not be lost at first glance if you plan to create your own road types or modify existing ones.

Now let’s dive into a detailed explanation of it all.

Every road type is defined by a Road Mesh Gen node and this node has a bunch of settings that are responsible for setting up the road’s width, face length, intersection merging values, etc.

This system allows you to create a set of road types that will function with each other.

Road types are defined by vertex groups:

Meaning, for each vertex group, there is a Road Mesh Gen node.
If you want to create a new road type, you have to create a new vertex group first.


Required Inputs

Each Road Mesh Gen nodes needs to be fed a bunch of inputs in order to work properly, which are the following:

  • Named Attribute: This input is the vertex group in question, it is needed to connect the output attribute socket from the Named Attribute node to the Selection input socket of the Road Mesh Gen node.

  • Path Mesh: The path mesh is the input that needs to be fed the path mesh geometry, namely the base geometry made of edges and vertices that are responsible for tracing the path onto which the Roadscape road generation will take place.

  • Terrain Mesh: The terrain mesh input needs to be fed the terrain’s mesh geometry

  • Blend Raycast Factor: And if the road type isn’t supposed to be a bridge, then we need to input the Blend Raycast Factor.

Required Outputs

Each Road Mesh Gen nodes needs to output bunch of information to the Roadscape system in order to work properly.
Although, these required outputs will vary depending of if the road type is supposed to be a bridge or not.

1) If is not supposed to be a bridge:

  • Road Mesh: This geometry is responsible for handling the generated road meshes that Roadscape will output. We need to output the Road Mesh geometry to the system, for that, we send it to the All Roads “Join Geometry” node.

  • Support Mesh: This geometry is responsible for handling the generated support meshes that Roadscape will output and merge with the terrain. We need to output the Support Mesh geometry to the system, for that, we send it to the All Supports “Join Geometry” node.

2) If is supposed to be a bridge:

  • Road Mesh and Support Mesh: Now, in the case of a bridge road type, we need to output both Road Mesh and Support Mesh aswell, but this time, to a different set of All Bridges “Join Geometry” node and All Bridges Supports “Join Geometry” node.

  • Bridge Boundary Points: And finally, we need to feed the system the Bridge Boundary Points geometry, this geometry is needed in order for the system to know where every bridge section is starting and ending in order to correctly modify the terrain accordingly.

Main Structure

So to recap, every road type is defined by this selected group of nodes:

Required outputs are sent to designated “Join Geometry” nodes, that are themselves sent to main All Roads, All Bridges, All Supports, All Bridges Supports and All Bridges Boundary Points “Join Geometry” nodes:

The structure may look a little complex and overwhelming at first but all this was made so it’s visually comprehensible other than having an absolute messy pasta fest going on.


More info on how to create a new road type here: