The PCG Biome Core and Sample Plugins are examples of how to use the PCG Framework with features like Attribute Set Tables, Feedback loops, Recursive Sub-graphs and Runtime Hierarchical Generation.
Base Requirements
This section covers the base requirements and all steps required to get the PCG Biome Core working in a world.
Enabling Plugins
The PCG Biome Core and Sample are two distinct plugins. The PCG Biome Core plugin is stand alone, only contains what is required for the biome creation tool to work and has a dependency on the PCG Framework and PCG Geometry Script Interop plugins. The PCG Biome Sample plugin is a content example showcasing the biome creation tool, it can be enabled in any project and has a dependency on the PCG Biome Core plugin.
To enable the plugins, open the Plugins settings and enable the PCG Biome Core to access the tool or alternatively enable the PCG Biome Sample to access both the tool and the content example. For more information on enabling plugins, see Working with Plugins.
Resources
To access all the content related to both PCG Biome Core and Sample plugins, the Show Engine Content and Show Plugin Content content browser settings must be enabled. Open the Settings menu in the Content Browser and click the checkbox next to both options.


Content Browser paths:
/All/EngineData/Plugins/PCGBiomeCore
/All/EngineData/Plugins/PCGBiomeSample
Disk paths:
..\Engine\Plugins\Experimental\PCGBiomeCore\
..\Engine\Plugins\Experimental\PCGBiomeSample\
PCG Biome Core Content
All the base blueprint classes are located in: /All/EngineData/Plugins/PCGBiomeCore/Blueprints
The BP_PCGBiomeCore is the main blueprint class pre configured with a PCG Component that refers to the BiomeCore PCG graph and holds a Box Collision component as its Volume.
The BiomeCore PCG Graph located at the plugin's root is the source and main graph to execute all logic for the Biome Core to work. It contains multiple subgraphs with their own nested subgraphs. All of these separate subgraphs are stored under the "Core" folder.
BiomeCore Graph: /Script/PCG.PCGGraph'/PCGBiomeCore/BiomeCore.BiomeCore'
The tool relies on multiple Data Assets, pre-made classes with specific structures to generate content. Those assets are BiomeDefinitions, BiomeAssets and BiomeGenerators. They are located in their respective folders and ../Setup
sub-folders. The default assets of each type are also available for testing and debugging.
PCG Biome Sample Content
The BiomeSampleLevel world is located in: /All/EngineData/Plugins/PCGBiomeSample/Maps
The world contains the pre-configured BP_PCGBiomeCore, Biome Setup, Volume and Spline actors making it the best starting point to learn how to set up the tool and understand it.
The Sample contains multiple Biomes, Generators and Assets as well as custom structures and data assets classes inheriting from the base Biome Core classes. All in their respective BiomeSample folders and ../Setup
sub-folders.
Additionally, the PCG Biome Sample plugin contains extra data including a BiomeMap texture, tiled Flow and SunExposure texture2Darray located in the Tiles folder as well as example PCG assemblies, meshes and filter graph instances.
World Setup
This is a step by step quick start guide to use the biome creation tool from scratch followed by instructions on how to add new biomes and assets.
-
Create a new level or open an existing world. The PCG Biome Core works with World Partition using partitioned and non-partitioned levels.
-
Add a new Landscape of the desired world scale through the Landscape Editor mode. If starting from the Open World template or any existing level with an existing landscape, no action is required.
The presence of a landscape is optional when working with the PCG Biome Core.
-
Add OR drag and drop a BP_PCGBiomeCore actor to the level. The provided BP_PCGBiomeCore blueprint class is located here:
/Script/Engine.Blueprint'/PCGBiomeCore/Blueprints/BP_PCGBiomeCore.BP_PCGBiomeCore'
-
Adjust the BP_PCGBiomeCore actor's Volume component scale to the desired world coverage. The tool uses this volume to constrain its generation and output. For best performances, the volume should be carefully adjusted to fit the landscape or environment including height. The default scale is 1024 x 1024 x 256 meters.
-
Select the "BiomeCore" PCG component of the BP_PCGBiomeCore actor in the level and click on Generate to initialize the generated state for live updates. At this stage, it is normal for nothing to appear in the level.
Before continuing to setting up the Biomes, Generators and Assets, validate the previous steps with the following:
-
Add OR drag and drop a DefaultBiomeVolume/Spline actor within the BP_BiomeCore volume.
Expected result: An automatic refresh will occur and debug cubes meshes will be spawned on the landscape surface constrained within the DefaultBiomeVolume/Spline and BiomeCore volume.
If no refresh occurred or no debug cube spawned, verify that the BiomeCore PCG component was triggered once using the Generate button (step 5 above), that the DefaultBiomeVolume/Spline actor resides inside the BiomeCore volume and overlaps the landscape surface.
-
After adding the DefaultBiomeVolume/Spline, the Biome Cache debug display can be enabled to validate the biome coverage and creation. The BiomeCore PCG component contains all global parameters. To view the biome cache, override and enable the "Debug - Display Biome Cache" option. For more information about the biome cache, see Biome Cache.
Expected result: An automatic refresh will occur to display the cache voxels. The default undefined biome color is black and the preconfigured DefaultBiomeVolume/Spline actor biome color is white. White cache voxels should appear where the DefaultBiomeVolume/Spline has been placed.
If the biome cache is not displayed, make sure the BiomeCore PCG component was triggered once using the Generate button (step 5 above) and that the option is overridden and enabled on the Biome Core PCG component. If the entire cache is colored black, move the DefaultBiomeVolume/Spline actor inside the BiomeCore volume.
-
Remove the DefaultBiomeVolume/Spline from the world after validating that the BiomeCore is working as expected.
Biomes, Generators and Assets Setup
Once the original world setup is done and validated, proceed with the following steps to create a new biome with its definition and assets:
-
Add OR drag and drop a new BP_PCGBiomeVolume or BP_PCGBiomeSpline actor in the world within the Biome Core actor volume and overlapping the landscape surface. The blueprint classes are available here:
BP_PCGBiomeVolume:
/Script/Engine.Blueprint'/PCGBiomeCore/Blueprints/BP_PCGBiomeVolume.BP_PCGBiomeVolume'
BP_PCGBiomeSpline:
/Script/Engine.Blueprint'/PCGBiomeCore/Blueprints/BP_PCGBiomeSpline.BP_PCGBiomeSpline'
-
Create a set of new Data Assets for Biome Definitions, Generators and Assets. Data Assets can be added from content browser ADD button, through right click menu - data asset OR duplicated from existing assets of the same class.
-
Biome Definition: Add a new Data Assets in the project's content folder of class BiomeDefinitionTemplate and set its BiomeName, BiomeColor, BiomePriority properties.
These properties define your biome, the definition asset can be shared and re-used in multiple biome volumes and spline, in a world or across multiple worlds but its settings must be unique compared to other Biome Definitions assets. The BiomeColor will be displayed when enabling the debug display for the Biome Cache.
To learn more about Biome Definitions, see Biome Definition.
-
Biome Generator: Add a new Data Assets in the project's content folder of class BiomeGeneratorTemplate and set its GeneratorType, GeneratorPriority and GeneratorGraph properties.
These properties define your generator, the generator asset can and should be shared and re-used in multiple assets, it provides the initial point data from the linked GeneratorGraph PCG Graph on which to assign assets and spawn.
The GeneratorGraph is a PCG Graph OR PCG Graph Instance which outputs its point data created by sampling the world, landscape or any desired logic. To get started copy the BiomeGenerator_Template graph here:
/Script/PCG.PCGGraph'/PCGBiomeCore/BiomeGenerators/Graphs/BiomeGenerator_Template.BiomeGenerator_Template'
To learn more about biome generators, see Generator.
-
Biome Asset: Add a new Data Assets in the project's content folder of class BiomeAssetTemplate then add a new biome asset array entry and set its Generator, a mandatory reference to the biome generator data asset created above and a Mesh, the visual to spawn.
The biome assets array is the collection of assets to process and spawn. Each entry contains multiple properties to configure and assets sharing the same generator reference are distributed randomly on to the generated points. The biome asset list can also be shared and re-used in multiple biomes.
To learn more about Biome Assets, see Biome Assets and Structures.
-
Assign the Biome Definition and Asset for the BP_PCGBiomeVolume added to the world in step 1.
Following these steps, an automatic refresh will occur and a new biome constrained within the BP_PCGBiomeVolume and the Biome Core Volume will spawn the defined asset(s).
Once this initial configuration is done, the biome can be extended with more generators and assets. Any number of biomes can be created using the same process and co-exist within the same world or across multiple worlds, refer to the BiomeSampleLevel within the PCGBiomeSample plugin for a complete setup.
In this image, the biome has been configured with multiple assets referencing and sharing only 2 custom generators, one for trees and one for rocks.
After adding several more biomes of higher priority with their respective assets using overlapping BP_PCGBiomeSpline actors and a 64m biome blending range.