Foliage Mode provides a way to quickly create forests and woods on your terrain to make realistic-looking landscapes. Use the Foliage tools to determine how to add trees, bushes, flowers, and more to your project. This editing mode works with Landscape Mode.
How It Works
To access Foliage Mode, click the Selection Mode dropdown and select Foliage Mode. The Foliage Mode panel opens to the left of the viewport window. (For in-depth information on this mode, see Foliage Mode for Unreal Engine.)
To use the Foliage Mode tools, open the Content Browser, then drag selected foliage static meshes from the Environment > Foliage folder into the Mesh List. You can add more than just trees or grasses — you can add any type of static mesh to the Mesh List.
Foliage Mode works with imported static meshes as well. Foliage Mode does not work with Fortnite Props because these elements have Blueprint scripting that cause trees and bushes to move as though wind is blowing them, where a static mesh does not move at all.
Use Foliage Mode when greyboxing your level to plan where you will place foliage. Create simple shapes with Modeling Mode, then add the shapes to the Mesh List and paint the shapes onto the terrain to get an idea of how the foliage will look.
Foliage Mode uses scalable tools that you can set to your preference for each tool, or tailor to foliage types for all foliage in the Mesh List.
Tool |
Description |
Image |
Select |
Drag static meshes into the Mesh List to use in your project, or search for specific static meshes from the search bar.
Click the +Foliage button to select static meshes from the dropdown menu or create a new static mesh asset that uses mesh instancing for non-interactive foliage.
|
 |
All |
Select all static meshes in your project applied with the Foliage Mode tool.
You can use this to create copies of the selected foliage and move the copies, or simply move all selected foliage.
|
 |
Deselect |
Deselects all static meshes in your project applied with foliage mode. |
 |
Invalid |
Selects invalid foliage instances.
These are foliage meshes that are not aligned to the data layer and are hovering above it. This way, you don’t wind up with floating foliage above your terrain.
|
|
Lasso |
Selects a range of applied foliage or foliage added to the Mesh List. Once selected you can copy or move the lassoed foliage. |
 |
Paint |
Paints the terrain with the selected foliage in the Mesh List.
Paint settings determine the distribution and number of static meshes applied to the terrain when painting.
|
 |
Reapply |
Select a mesh or meshes from the Mesh List and change the settings for Foliage Instances already placed in the world:
- Select the Reapply tool then select the Foliage type you want to apply changes to in the Mesh List.
- In the Foliage Details section, make your changes.
- Paint the changes on to the Foliage Instances in the level.
|
 |
Single |
Paints a single instance of the foliage in a single place.
If there are multiple static meshes in the Mesh List, all will be applied at once to the same spot when the Single tool is selected.
|
 |
Fill |
Fills a targeted piece of terrain with the selected foliage. This works on other static meshes created for the terrain. |
|
Erase |
Erases the selected foliage from the terrain.
You can uncheck selected foliage you want to erase from the scenery if you don’t want to erase all foliage.
|
 |
Remove |
Removes all selected foliage from the terrain. |
 |
Move |
Moves the selected foliage to the current level.
This tool works with Data Layers to identify which layer the foliage sits on, then provides a way for you to move the foliage to another data layer.
|
|
Use the Paint tools to scale, rotate, add foliage to your project and much more.
Paint Tools |
Description |
 |
Brush Options:
- Brush Size - Determines the size of the brush.
- Paint Density - Determines the number of static mesh instances and their spacing inside of the paint brush.
- Erase Density - The density of foliage to leave behind when holding the Shift key to erase foliage.
- Single Instance Mode - Paint a single foliage instance at the mouse cursor.
- Place in Current Level - Whether to place foliage meshes in the current level or in the level containing the mesh being painted on.
Filters:
- Landscape - Place foliage on landscapes
- Static Meshes - Place foliage on static meshes.
- BSP - Place foliage on BSP.
- Foliage - Place foliage on another foliage mesh.
- Translucent - Place foliage on translucent geometry.
- +Foliage - Select static meshes to add to the project.
- Mesh - The current selected static mesh
- Component Class - The component class to use for foliage instances. You can make a Blueprint subclass of FoliageInstancedStaticMeshComponent to implement custom behavior and assign that class here.
- Override Materials - Add a new material array to override foliage instances.
- Nanite Override Materials - Add a new array of Nanite material overrides for foliage instances.
Painting:
- Density / 1Kuu - Foliage instances are placed at this density, specified in instances per 1000x1000 unit area.
- Radius - The minimum distance between foliage instances.
- Single Instance Mode Override - option to override defaults used to detect collision with other instances when painting in single instance mode.
- Single Instance Mode Radius - The radius used in single instance mode to detect collision with other instances.
- Scaling - Specifies foliage instance scaling behavior when painting.
- Scale X - Specifies the range of scale, from minimum to maximum, to apply to a foliage instance’s X scale property.
- Scale Y - Specifies the range of scale, from minimum to maximum, to apply to a foliage instance’s Y scale property.
- Scale Z - Specifies the range of scale, from minimum to maximum, to apply to a foliage instance’s Z scale property.
- Vertex Color Mask by Channel - Use color channels (RGBA) to create a vertex mask for foliage instances
Placement:
- Z Offset - Specifies a range from minimum to maximum of the offset to apply to a foliage instance’s Z location.
- Align to Normal - Whether the foliage instances should have their angle adjusted away from vertical to match the normal of the surface they’re painted on. When Align to Normal is checked and Random Yaw is unchecked, the instance will be rotated so that the +X axis points down-slope.
- Average Normal Single Component - Whether to discard normals originating from other hit components or not when averaging normals.
- Random Yaw - When checked, foliage instances have a random yaw rotation around their vertical axis applied.
- Random Pitch Angle - A random pitch adjustment can be applied to each instance, up to the specified angle in degrees, from the original.
- Ground Slope Angle - Foliage instances are only placed on surfaces sloping in the specified angle range from the horizontal.
- Height - The valid altitude range where foliage instances are placed, specified using minimum and maximum world coordinate Z values.
- Inclusion Landscape Layers - If layer names are specified, painting on landscape limits the foliage areas of landscape to the specified layers painted.
- Exclusion Landscape Layers - If layer names are specified, painting on landscape excludes the foliage areas of landscape without the specified layers painted.
- Collision with World - If checked, an overlap test with existing world geometry is performed before each instance is placed.
- Average Normal Sample Count - Line trace count to use around hit location when averaging normals.
Instance Settings:
- Mobility - Mobility property to apply to foliage components.
- Cull Distance - The distance where instances start to fade out if using a PerInstanceFadeAmount material node. Setting 0 disables the option. When teh entire cluster is beyond this distance, the cluster is completely culled and not rendered at all.
- Cast Shadow - Controls whether the foliage should cast a shadow or not.
- Affect Dynamic Indirect Lighting - Controls whether the foliage should inject light into the Light Propagation Volume. This flag is only used if CastShadow is true.
- Affect Distance Field Lighting - Controls whether the primitive should affect the dynamic distance field lighting methods. This flag is only used if CastShadow is set to true.
- Cast Dynamic Shadow - Controls whether the foliage should cast shadows in the case of non-precomupted shadowing. This flag is only used if Cast Shadow is set to true.
- Cast Static Shadow - Whether the foliage should cast a static shadow from shadow casting lights. This flag is only used if CastShadow is true.
- Cast Contact Shadow - Whether the object should cast contact shadows. This flag is only used if CastShadow is true.
- Light Map Resolution - Overrides the lightmap resolution defined in the static mesh.
- Collision Presets - Select collision presets. You can set this data in Project Settings.
- Custom Navigable Geometry - If primitive affects navmesh, DoCustomNavigableGeometryExport() should be called to export this primitive’s navigable geometry.
- Translucent SortPriority - Decides the priority of translucent objects.
- Cast Shadow as Two Sided - Whether this foliage should cast dynamic shadows as if it were a two sided material.
- Receives Decals - Whether the foliage receives decals.
- Lightmap Type - Controls the type of lightmap used for this component.
- Use as Occluder - When checked, foliage renders a pre-pass which allows it to occlude other primitives, and also provides a way for it to correctly receive DBuffer decals. Checking this setting may have a negastive performance impact.
- Visible in Ray Tracing - When checked, the static mesh has visible ray tracing.
- Evaluate World Position Offset - When checked, the World Position offset is evaluated in the static meshes LOD.
- World Position Offset Disable Distance - Set the distance World Position Offset becomes disabled.
- Lighting Channels - Select a channel from 0-2 for lighting.
- Render CustomDepth Pass - If true, the foliage renders in the CustomDepth pass (usually used for outlines).
- Custom Depth Stencil Write Mask - Mask used for stencil buffer writes.
- CustomDepth Stencil Value - Optionally write this 0-255 value to the stencil buffer in CustomDepth pass. Requires project settings or r.CustomDepth = = 3.
Scalability:
- Enable Density Scaling - Whether this foliage type should be affected by the Engine Scalability system’s Foliage scalability setting. Enable for detail meshes that don’t really affect the game. Disable for anything important. Typically, this is enabled for small meshes without collision (grass) and disabled for large meshes with collision trees.
- Enable Discard on Load - Whether this foliage type should be discarded when CVarFoliageDiscardDataOnLoad is enabled.
- Enable Cull Distance Scaling - Whether this foliage type should be affected by the Engine’s "foliage.CullDistanceScale" setting.
Virtual Texture:
- Draw in Virtual Textures - Array of runtime virtual textures into which the engine draws instances. The mesh material also needs to be setup to output to a virtual texture. Draw in Controls if this component draws in the main pass as well as in the virtual texture.
- Virtual Texture Skip Mips - Number of lower mips in the runtime virtual texture to skip for rendering this primitive. Larger values reduce the effective draw distance in teh runtime virtual texture. This culling method doesn’t take into account primitive size or virtual texture size.
HLOD:
- Include in HLOD - When checked, the foliage is included in the HLOD draws.
|