1.  ![Epic Games](https://edc-cdn.net/assets/images/logo-epic.svg)[Developer](/)
2.  [Documentation](/documentation/ "Documentation")
3.  Fortnite
    *   [Unreal Engine](/documentation/en-us/unreal-engine)
    *   [Fortnite](/documentation/en-us/fortnite)
    *   [MetaHuman](/documentation/en-us/metahuman)
    *   [Twinmotion](/documentation/en-us/twinmotion)
    *   [RealityScan Mobile](/documentation/en-us/realityscan-mobile)
    *   [Fab](/documentation/en-us/fab)
4.  [Fortnite Documentation](/documentation/en-us/fortnite/fortnite-documentation "Fortnite Documentation")
5.  [Realistic Assets, Characters, and Environments](/documentation/en-us/fortnite/realistic-assets-characters-and-environments-in-unreal-editor-for-fortnite "Realistic Assets, Characters, and Environments")
6.  Talisman Environment Template

Talisman Environment Template
=============================

Learn how to create highly detailed, realistic environments using this UEFN template.

![Talisman Environment Template](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/8a978987-fb8b-40bb-a1fc-0768fb7c1de0?resizing_type=fill&width=1920&height=335)

On this page

This page is a companion to the **Talisman: Environment** template, which showcases the best practices for creating highly detailed, realistic environments. The Talisman is created using modular construction and optimization best practices in Unreal Editor for Fortnite (UEFN).

You can find the template in the **Feature Examples** section of the **Project Browser**.

You can play the Talisman experience shown during the 2024 Game Developers Conference by opening Fortnite and entering island code **7100-3544-3074**.

[![Talisman: Environment in the Project Browser](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/5670de96-0c19-477d-a543-2a9d1d6df905?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/5670de96-0c19-477d-a543-2a9d1d6df905?resizing_type=fit)

_Location of the Talisman: Environment template in the Project Browser._

This overview walks you through the optimization challenges faced during the creation of the Talisman project and how each challenge was overcome:

*   [Managing Project and Runtime Memory Limits](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#managing-project-and-runtime-memory-limits)
    
*   [Using Custom UI Elements](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#using-custom-ui-elements)
    
*   [Lighting Large Spaces](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#lighting-large-spaces)
    
*   [Mesh Design and Construction](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#mesh-design-and-construction)
    
*   [Designing Materials using Dynamic Material Control](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#designing-materials-using-dynamic-material-control)
    
*   [Using the Orbit Camera Device](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#using-the-orbit-camera-device)
    

Because the template is designed to run on all available platforms, the assets and style of the Talisman has to conform to [UEFN’s memory and project size limit requirements](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/memory-and-optimization-in-unreal-editor-for-fortnite). This creates several challenges for projects designed with a more detailed art style:

*   Project size: High-detail assets in games can be large and UEFN has a 400 MB project size limitation.
    
*   Runtime memory limits: UEFN has a 100,000 memory unit streaming memory restriction that limits the amount of assets, custom landscapes, and devices that can be on the screen at one time.
    
*   Quality on all supported platforms: These limits ensure that your UEFN experience is available to all players on all Fortnite-supported platforms.
    

UEFN supports a variety of techniques to meet these requirements, including [Levels of Detail(LODs)](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/setting-the-level-of-detail-in-unreal-editor-for-fortnite), [Hierarchical Levels of Detail (HLODs)](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/streaming-and-hlods-in-unreal-editor-for-fortnite), [World Partition](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/world-partition), [Level Instancing](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/level-instancing-in-unreal-engine), and [Data Layers](https://uefn-docs.yuzulabs.dev/documentation/uefn/streaming-and-hlods-in-unreal-editor-for-fortnite).

Applying Best Practices
-----------------------

The Talisman: Environment template is designed to showcase a variety of best practices and processes to bring AAA realism to Unreal Editor for Fortnite. This template uses the following best practices to manage project and streaming memory to optimize performance:

*   Create custom content that is modular and lightweight.
    
*   Improve the look of hard surface geometry using face weighted normals.
    
*   Add detail to meshes using Mesh Decals.
    
*   Build your experience for the lowest end target platform and add features from there.
    
*   Minimize draw calls on non-Nanite meshes.
    

### Create Custom Content that is Modular and Lightweight

The Talisman environment was built using kitbashing, a modular modeling technique that uses preexisting meshes from a modular environment and repurposing them to create new assets. By reusing assets, the artists were able to decrease the project size by minimizing the number of single use meshes.

[![Talisman Mid Poly Asset](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/798d3654-7387-4f4a-a23e-0b40fd351510?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/798d3654-7387-4f4a-a23e-0b40fd351510?resizing_type=fit)

_This asset is made of six different static meshes._

Traditionally, artists create this type of environment by mapping a high detail, high polygon mesh onto a low polygon mesh using unique baked [normal maps](https://en.wikipedia.org/wiki/Normal_mapping) to preserve the detail between the two. This method requires additional texture maps that can increase the size of your project, are expensive at runtime, and do not scale well during the kitbashing process.

Mid-poly meshes with face weighted normals were used to save memory, and [Mesh Decals](https://www.youtube.com/watch?v=Aihha0sAOJI) were used to add small details.

For more information, see [Mesh Design and Construction](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#mesh-design-and-construction).

### Build Your Experience for All Target Platform

Fortnite is designed to run on a variety of platforms. To make sure that your content gives players the best experience on each of these devices, it is important to design with every platform in mind, and then add additional features for high end platforms during development.

For example, [Nanite virtualized geometry](https://uefn-docs.yuzulabs.dev/documentation/en-us/unreal-engine/nanite-virtualized-geometry-in-unreal-engine) helps platforms render highly detailed meshes and improve performance, but is only available to certain high end devices such as PCs running DirectX 12. Because of this, it is still important to optimize your content so that it will perform well on all platforms.

The following images show Mesh LODs at Epic, High, Medium, and Low settings.

[![Epic Settings](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/bc7eeb57-36fb-4b07-b38c-c12b1ca3eac8?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/bc7eeb57-36fb-4b07-b38c-c12b1ca3eac8?resizing_type=fit)

Epic settings

[![High Settings](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/882fa81c-243d-49ff-a143-d7cc01e53dec?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/882fa81c-243d-49ff-a143-d7cc01e53dec?resizing_type=fit)

High settings

[![Medium Settings](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/18306010-677d-41ca-ab4f-83c148871f94?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/18306010-677d-41ca-ab4f-83c148871f94?resizing_type=fit)

Medium settings

[![Low Settings](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/f6e7ce15-556a-484b-b28d-2bf36b0379e2?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/f6e7ce15-556a-484b-b28d-2bf36b0379e2?resizing_type=fit)

Low settings

For more information on creating your own custom assets for UEFN, see [Mesh Design and Construction](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#mesh-design-and-construction).

### Minimize Draw Calls When Using Non-Nanite Meshes

[Draw calls](unreal-editor-for-fortnite-glossary#draw-call) are the process of telling the graphics API what to draw and how to draw it during each frame. Nanite bypasses standard draw calls by streaming geometry into the scene as needed. For non-Nanite meshes, each of the following initiates a draw call in a scene:

*   Every individual mesh.
    
*   Each material on a mesh.
    
*   Every light.
    
*   Every shadow cast.
    

The Talisman: Environment template uses both [Nanite](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/nanite-virtualized-geometry-in-unreal-engine) and non-Nanite meshes. To optimize the performance while using non-Nanite meshes, the number of draw calls in the scene was minimized by:

*   Removing non-critical meshes.
    
*   Removing non-critical mesh decals.
    
*   Removing shadow-casting lights and supplementing them using [light functions](https://uefn-docs.yuzulabs.dev/documentation/en-us/unreal-engine/using-light-functions-in-unreal-engine?application_version=5.4).
    

Managing Project and Runtime Memory Limits
------------------------------------------

Runtime [memory management](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/memory-management-in-unreal-editor-for-fortnite) and managing project size are key components of any project made in UEFN. The Talisman: Environment tackles these challenges by:

*   Narrowing the project scope.
    
*   Reusing custom assets.
    
*   Managing runtime memory.
    

### Narrow project scope

To meet the 400 MB project size limit, the MetaHuman character has been moved to the Talisman: MetaHuman template. You can find this template in the **Feature Examples** section of the **Project Browser**. To learn about MetaHumans in UEFN, see [Talisman: MetaHuman template](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/talisman-metahuman-template-in-unreal-editor-for-fortnite).

### Levels of detail

Each mesh used to build the Talisman uses three [Levels of Detail (LODs)](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/setting-the-level-of-detail-in-unreal-editor-for-fortnite) to keep the project within the 100,000 streaming memory unit budget.

[![Static Mesh Levels of Detail](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/505a5dad-f949-40da-b116-bd13798dfadd?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/505a5dad-f949-40da-b116-bd13798dfadd?resizing_type=fit)

_The automatic LOD settings are located in the Static Mesh browser._

The LOD meshes are auto-generated using UEFN’s automatic LOD tools and are assigned to specific quality levels. For more information on using Levels of Detail in UEFN, see [Setting the Level of Detail](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/setting-the-level-of-detail-in-unreal-editor-for-fortnite).

### Management of Runtime Memory

The Talisman: Environment template uses a custom streaming solution created using [Data Layers](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/world-partition---data-layers-in-unreal-engine) and [Sequencer](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/unreal-engine-sequencer-movie-tool-overview) to keep the level within the 100,000 memory unit streaming budget. The vertical size of areas like the Cargo area and the length of the hallways meant that the ship did not fit within the [World Partition](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/world-partition) streaming grid.

[![Talisman Environment Data Layers](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/bcb45124-361b-4717-a9d1-dbc1f3e86c73?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/bcb45124-361b-4717-a9d1-dbc1f3e86c73?resizing_type=fit)

_Each data layer corresponds to a different room on the Talisman._

To overcome this limitation, Data Layers were combined with Sequencer to load and unload areas of the ship based on the location of the player.

[![Talisman Environment Level Sequence](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/ede51cad-c9e9-4bb6-abcf-bf3389023c18?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/ede51cad-c9e9-4bb6-abcf-bf3389023c18?resizing_type=fit)

_Mutator Zones trigger loading events in the Level Sequence._

Each room has its own corresponding data layer and [Mutator Zones](https://uefn-docs.yuzulabs.dev/documentation/fortnite-creative/using-mutator-zone-devices-in-fortnite-creative) spread throughout the ship that trigger events in the Level Sequence. These events load and unload sections of the ship as the player moves through the level. The Mutator Zones are strategically placed in areas of the ship to hide this from the player.

This solution is not compatible with multiplayer experiences. The Data Layers and Level Sequence have been included, but the Mutator Zones have been removed to make the template multiplayer ready.

Using Custom UI Elements
------------------------

This template uses Verse to display a custom quest icon widget and play audio when the player interacts with the console in the starting room.

[![Talisman Custom Quest Banner](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/0bc9b573-4e16-423f-8b2d-c06e432d003a?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/0bc9b573-4e16-423f-8b2d-c06e432d003a?resizing_type=fit)

_The custom quest banner is triggered by Verse script._

When the player uses the Crew Quarters VO Button device, the starting\_sequence\_device.verse script file will:

Verse

    using { /Fortnite.com/Devices }
    
    using { /Verse.org/Simulation }
    
    using { /Fortnite.com/Characters }
    
    using { /UnrealEngine.com/Temporary/UI }
    
    using { /UnrealEngine.com/Temporary/Diagnostics }
    
    

Expand codeCopy full snippet(119 lines long)

1.  Cancel the welcome audio if the audio message is still playing.
    
2.  Enable a minimap of the ship to help players explore the Talisman.
    
3.  Display the custom **quest\_icon\_widget** UI widget blueprint.
    
4.  Play a sound clip.
    

For more information on using Verse to customize your UEFN projects, see the [Verse Programming Onboarding Guide](https://uefn-docs.yuzulabs.dev/documentation/en-us/fortnite/onboarding-guide-to-programming-with-verse-in-unreal-editor-for-fortnite).

Lighting Large Spaces
---------------------

The Talisman uses [Lumen global illumination](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/lumen-global-illumination-and-reflections-in-unreal-engine) to help light the environment, providing the player with shadows and accurate indirect lighting throughout the ship.

[![Talisman Environment Hallway](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/bb3c18d7-243c-4029-a7f4-7a049af9b48b?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/bb3c18d7-243c-4029-a7f4-7a049af9b48b?resizing_type=fit)

_This corridor demonstrates all of the techniques described here._

Lumen provides ambient occlusion and global illumination to objects that are not lit by direct lighting. While Lumen is a powerful tool for creating lighting solutions, it is still important to optimize your environment to maximize performance. Lumen is used with the **Talisman: Environment** template with several optimizations.

Shadow casting is toggled off on all static meshes that are indirectly lit throughout the level. Lumen provides excellent shadows for these meshes, so turning off the **Cast Shadows** property increased performance without sacrificing visual quality.

[![Cast Shadows in the Details panel](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/41891763-b345-48f3-aef1-facc2dd15b1d?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/41891763-b345-48f3-aef1-facc2dd15b1d?resizing_type=fit)

_Most of the lights in the template have Cast Shadows toggled off._

Shadow casting is also supplemented through the use of light functions and a striped texture with some overhead lights.

Lumen noise and light flickering from emissive light panels is reduced by pairing each one with a non shadow-casting spotlight.

[![Spotlight Supplementing Light Panel](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/2c4a7ff1-92bd-4fbf-8614-98f555537dd6?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/2c4a7ff1-92bd-4fbf-8614-98f555537dd6?resizing_type=fit)

_This spotlight enhances the light from this light panel_

The emissive value for each panel is reduced and supplemented with a non shadow-casting spotlight. Each spotlight is given a small radius of effect and provides additional light while making it seem as if the light is still coming from the light panel.

The environment lighting was optimized further by having each light have the smallest max draw distance possible. This setting culls each light from view when it does not need to be rendered.

The [Lighting Complexity](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/viewport-modes-in-unreal-engine?application_version=5.4) visualizer was also used throughout the lighting of the Talisman.

[![Lighting Complexity Visualizer](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/ed056f7d-666a-4f02-9cd1-77af276abac4?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/ed056f7d-666a-4f02-9cd1-77af276abac4?resizing_type=fit)

_The Lighting Complexity visualizer can be toggled using Alt+7_

This viewport viewmode shows the number of non-static lights affecting your geometry in your level as color shading and helps to track the performance cost of lighting. This visualizer is helpful in minimizing the overlap of lights in the level to keep performance costs low.

Mesh Design and Construction
----------------------------

Kitbashing and mid-poly custom meshes were used to create the detailed interior of the Talisman. Kitbashing is a powerful technique that helps minimize the number of assets your project needs while still giving you the ability to reuse and combine the meshes to create new geometry.

Each mesh in the project uses a variety of different techniques to improve the look of the asset without adding additional geometry.

Face weighted normals is a technique that aligns the vertex normals of the model with the larger, flat faces to improve shading without lowering performance.

[![Face Weighted Normals](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/f30a5047-6329-419d-b22e-499ac6f60e75?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/f30a5047-6329-419d-b22e-499ac6f60e75?resizing_type=fit)

_The vertex normals (green lines) align with the larger, flat faces to improve shading._

Details such as bolts, branding, and damage were added using [Mesh Decals](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/using-mesh-decals-in-unreal-engine). These decals use custom UVs to project complex geometry onto surfaces and have the ability to wrap around corners or stretch along splines while still maintaining their look.

![Door Panel base mesh](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/86a3ffb3-fe7b-4646-9bc1-3e2136d371d2?resizing_type=fit&width=1920&height=1080)

![Door panel base mesh with Mesh Decals](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/f2989851-4132-4899-8e41-f3ee9d2dbfe6?resizing_type=fit&width=1920&height=1080)

Door Panel base mesh

Door panel base mesh with Mesh Decals

Designing Materials Using Dynamic Material Control
--------------------------------------------------

Textures and materials are often the largest part of any UEFN project. To further reduce the project size, the template uses a dynamic approach to textures and materials that avoids the use of unique texture maps. For this final result, a procedural workflow that stores ambient occlusion, curvature, and mask data on the mesh using Vertex Colors was used. The stored data was then used to apply and blend the materials.

### Vertex Color Data

It is best to avoid using unique texture maps for each asset by packing ambient occlusion, curvature, and texture mask data into each mesh using [Vertex Colors](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/vertex-color-materials-in-unreal-engine). Meshes for the Talisman are designed with supporting geometry and mesh density (polygons per square inch) to provide smooth gradation between vertex colors. This helps create clean transitions between materials.

The data is stored using the following method:

Map

Color Channel

**Ambient Occlusion**

Red

**Curvature**

Green

**Material ID Mask**

Blue

For more information on Vertex Color painting, see [Vertex Color Materials](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/vertex-color-materials-in-unreal-engine).

Material slots on each mesh are then used to define what part of the mesh receives a specific material. For more information on material slots, see [FBX Material Pipeline](https://uefn-docs.yuzulabs.dev/documentation/unreal-engine/fbx-material-pipeline-in-unreal-engine?application_version=5.4).

[![Bridge Chair Asset with Material Slots](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/7326e06c-e92c-4746-9984-0b1034e38266?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/7326e06c-e92c-4746-9984-0b1034e38266?resizing_type=fit)

_This chair has material slots for metal and rubber._

### Dynamic Material Control

Meshes for the Talisman use a combination five main material types:

*   Metal
    
*   Painted metal
    
*   Plastics
    
*   Rubbers
    
*   Textiles
    

Each material relies on a single master material that uses world-aligned tiling textures and user-defined parameters to generate the result. This keeps the overall memory cost of materials low by reusing letting our artists use the same materials across the ship.

[![Talisman Environment Master Material](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/9d795557-be32-4b2e-a355-637bafbdfa6d?resizing_type=fit)](https://uefn-docs.yuzulabs.dev/community/api/documentation/image/9d795557-be32-4b2e-a355-637bafbdfa6d?resizing_type=fit)

_One part of the Talisman: Environment master material_

Dust, scratches and other wear marks are also included in the master material and are applied to meshes using parameter-driven masks. These parameters are stored on the mesh using custom primitive data.

Using the Orbit Camera Device
-----------------------------

The [Orbit Camera device](https://uefn-docs.yuzulabs.dev/documentation/fortnite-creative/using-orbit-camera-devices-in-fortnite-creative) provides a view that follows the player character, but that the player can rotate to freely look around. The template uses this device to give the player the ability to switch between a third person view and a simulated first person view.

_Players can shift between three different views using the Orbit Camera device_

This is done using camera\_switch\_mode\_device Verse script.

Verse

    # This file handles swapping between different cameras when an input is pressed.
    
    using { /Fortnite.com/Devices }
    
    using { /Verse.org/Simulation }
    
    using { /Fortnite.com/Characters }
    
    using { /UnrealEngine.com/Temporary/Diagnostics }
    
    

Expand codeCopy full snippet(195 lines long)

The Verse code listens for the player to trigger the [Target Creative Input action](https://uefn-docs.yuzulabs.dev/documentation/fortnite-creative/using-input-trigger-devices-in-fortnite-creative), which by default is mapped to mouse right-click or the left trigger on a controller. It then does the following:

1.  Removes the current camera from the camera stack.
    
2.  Gets the next camera in the Cameras array.
    
3.  Adds the new camera to the agent.
    
4.  Hides the player character, if needed.
    
5.  Unhide the player character, if needed.
    

*   [performance](https://uefn-docs.yuzulabs.dev/community/search?query=performance)
*   [level](https://uefn-docs.yuzulabs.dev/community/search?query=level)
*   [high-fidelity](https://uefn-docs.yuzulabs.dev/community/search?query=high-fidelity)

* * *

Ask questions and help your peers [Developer Forums](https://forums.unrealengine.com/categories?tag=fortnite)

Write your own tutorials or read those from others [Learning Library](https://uefn-docs.yuzulabs.dev/community/fortnite/learning)

On this page

*   [Applying Best Practices](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#applying-best-practices)
*   [Create Custom Content that is Modular and Lightweight](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#create-custom-content-that-is-modular-and-lightweight)
*   [Build Your Experience for All Target Platform](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#build-your-experience-for-all-target-platform)
*   [Minimize Draw Calls When Using Non-Nanite Meshes](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#minimize-draw-calls-when-using-non-nanite-meshes)
*   [Managing Project and Runtime Memory Limits](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#managing-project-and-runtime-memory-limits)
*   [Narrow project scope](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#narrow-project-scope)
*   [Levels of detail](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#levels-of-detail)
*   [Management of Runtime Memory](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#management-of-runtime-memory)
*   [Using Custom UI Elements](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#using-custom-ui-elements)
*   [Lighting Large Spaces](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#lighting-large-spaces)
*   [Mesh Design and Construction](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#mesh-design-and-construction)
*   [Designing Materials Using Dynamic Material Control](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#designing-materials-using-dynamic-material-control)
*   [Vertex Color Data](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#vertex-color-data)
*   [Dynamic Material Control](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#dynamic-material-control)
*   [Using the Orbit Camera Device](/documentation/en-us/fortnite/talisman-environment-template-in-unreal-editor-for-fortnite#using-the-orbit-camera-device)