The "Ghost Bush" Trick: Making Two-Sided Materials in UEFN
Tutorial beginner

The "Ghost Bush" Trick: Making Two-Sided Materials in UEFN

Updated beginner

The "Ghost Bush" Trick: Making Two-Sided Materials in UEFN

Ever built a bush in Fortnite that looks like a flat, green pancake when you walk around it? Or maybe you tried to make a hollow tree trunk that you can see through, but it just looked like a solid wall from the inside?

That’s because most 3D objects in games are "one-sided" by default. The engine assumes you’re only supposed to see the outside. But what if you want to build a magical portal, a hollow tree you can climb into, or a bush that reveals a secret message on the back?

In this tutorial, we’re going to break that fourth wall. We’re going to teach your meshes to render on both sides. By the end, you’ll have a material that looks like normal foliage from the front, but flips to a different color (or transparency) when you peek at the back. It’s the visual equivalent of a double-agent.

What You'll Learn

  • The Scene Graph & Meshes: Understanding why objects have "fronts" and "backs" in 3D space.
  • Material Properties: How to toggle the "Two Sided" setting in the Material Editor.
  • Node Logic: Using Constant3Vector and Lerp nodes to mix colors based on which side of the object you're looking at.
  • The "Two-Sided" Workflow: A step-by-step guide to creating a functional, two-sided material in UEFN.

How It Works

The "Front vs. Back" Problem

Imagine you’re holding a piece of paper. If you draw a face on one side, the other side is blank. In 3D graphics, this is called culling. The engine is smart; it says, "Hey, the player is looking at the back of this wall. Nobody needs to see that. Let’s not waste GPU power drawing it."

This is great for walls (you don’t want to see the brick texture from the inside of a house). But it’s terrible for things like leaves, paper, or hollow objects. You want to see the "face" from the front, but you also want to see the "back" from the back.

The Solution: Two-Sided Materials

A Two-Sided Material tells the engine: "Stop culling the back! Draw it, but maybe make it look different."

Think of it like a Reveal Prop. When you destroy a normal prop, it disappears. A Two-Sided material is like a prop that has a hidden layer. From the front, it’s one thing (e.g., green leaves). From the back, it’s another thing (e.g., brown stems, or even a secret glowing rune).

The Tools: Nodes and Logic

We don’t just "flip" the image. We use Nodes (small calculation boxes) to decide what color to show.

  1. Constant3Vector: This is just a color picker. It holds three numbers (Red, Green, Blue). Think of it as a Loot Drop with a fixed color.
  2. TwoSidedSign: This is a sensor. It checks: "Is the player looking at the front or the back?" It outputs a simple 1 (front) or -1 (back).
  3. Lerp (Linear Interpolate): This is the Healing/Storm Logic of colors. It takes two colors (A and B) and mixes them. If the sensor says "Front," it picks Color A. If it says "Back," it picks Color B.

Let's Build It

We are going to build a "Double-Sided Sign" material. From the front, it’s bright green (like a "Go" sign). From the back, it’s bright red (like a "Stop" sign). You’ll apply this to a simple plane or mesh in UEFN.

Step 1: Create the Material

  1. In UEFN, right-click in the Content Browser.
  2. Select New Material. Name it Mat_DoubleSidedSign.
  3. Double-click the thumbnail to open the Material Editor. This is your coding workspace for visuals.

Step 2: Enable Two-Sided Rendering

  1. Click on the Main Material node (the big one in the center).
  2. Look at the Details panel on the right.
  3. Find the Rendering section.
  4. Check the box that says Two Sided.
    • Why? This is the master switch. Without this, the engine still culls the back, no matter what nodes you add. It’s like unlocking the "Creative Mode" for your material.

Step 3: Add the Color Nodes

We need two colors. Let’s use Constant3Vector nodes.

  1. Press T to open the Add Expression menu.
  2. Search for Constant3Vector. Add two of them.
    • Rename the first one FrontColor. Set its RGB to (0, 1, 0) (Green).
    • Rename the second one BackColor. Set its RGB to (1, 0, 0) (Red).

Step 4: The Logic Sensor

  1. Search for TwoSidedSign in the Add Expression menu. Add it.
    • This node outputs a value. If you’re looking at the front, it’s 1. If you’re looking at the back, it’s -1.

Step 5: The Mix (Lerp)

  1. Search for Interpolate (also known as Lerp). Add it.

  2. Connect the nodes:

    • Plug FrontColor into the A input of the Lerp.
    • Plug BackColor into the B input of the Lerp.
    • Plug TwoSidedSign into the Alpha input of the Lerp.
    • Wait, Alpha? Usually, Alpha is for transparency. But here, we’re using the sign’s value to switch. Since 1 and -1 are both "on" values, we need to normalize this.
    • Better Approach for Beginners: Instead of raw Lerp, let’s use a Multiply and Add approach, or a Switch node. But the simplest way for a binary switch is to use the TwoSidedSign to control a Saturate node, then Lerp.

    Let’s simplify. The Epic docs suggest using Saturate and Interpolate. Here is the cleanest path:

    1. Plug TwoSidedSign into a Saturate node. (This clamps the value between 0 and 1. So -1 becomes 0, and 1 stays 1).
    2. Plug the output of Saturate into the Alpha input of the Lerp node.
    3. Now:
      • If looking at Front (Sign = 1): Saturate = 1. Lerp picks B (BackColor). Oops, we want Front to be A.
      • If looking at Back (Sign = -1): Saturate = 0. Lerp picks A (FrontColor).

    Correction: We want Front=Green (A), Back=Red (B).

    • Lerp with Alpha=0 picks A.
    • Lerp with Alpha=1 picks B.
    • So, if Front (Sign=1) should be A, we need Alpha=0 for Front.
    • If Back (Sign=-1) should be B, we need Alpha=1 for Back.

    Let’s flip it:

    1. Plug TwoSidedSign into a Multiply node with -1. Now Front is -1, Back is 1.
    2. Plug that into Saturate. Front (-1) becomes 0. Back (1) becomes 1.
    3. Plug Saturate into Lerp Alpha.
    4. Plug FrontColor (Green) into Lerp A.
    5. Plug BackColor (Red) into Lerp B.
    6. Plug Lerp Result into the Base Color pin of the Main Material node.

Step 6: Apply It

  1. Close the Material Editor.
  2. Place a Plane or a Cube in your island.
  3. Select the object.
  4. In the Details panel, go to Material.
  5. Drag your Mat_DoubleSidedSign into the Base Color slot.
  6. Play your island. Walk around the object. From the front, it’s green. Walk to the back, it’s red.

Annotated Verse Note

Wait, where’s the Verse code? Materials in UEFN are primarily created and edited via the Material Editor (the visual node system), not written directly in Verse code for simple color swaps. Verse is used for logic (e.g., "When player clicks, change material to this one").

If you want to swap this material dynamically using Verse, you would use a Material Parameter Collection or assign the material to a prop via Verse. But the creation of the two-sided logic happens in the Material Editor as shown above. Verse is the brain; the Material is the face.

Try It Yourself

Challenge: Make a "Ghost Leaf" bush.

  1. Create a new material.
  2. Enable Two Sided.
  3. Set the Front Color to a vibrant green.
  4. Set the Back Color to a semi-transparent white (try RGB 1, 1, 1 with low Alpha, or just use the Opacity pin if available).
  5. Apply it to a leafy mesh.
  6. Walk around it. Does the back look like a ghostly version of the front?

Hint: If the back looks black, make sure you didn’t forget to check the Two Sided box in the Main Material node’s Details panel. That’s the #1 mistake.

Recap

  • Two-Sided Materials allow meshes to render on both the front and back faces.
  • Enable this by checking Two Sided in the Main Material node’s Details panel.
  • Use Constant3Vector nodes to define your front and back colors.
  • Use TwoSidedSign and Saturate nodes to detect which side the player is looking at, then use Lerp to mix the colors accordingly.
  • This is perfect for leaves, paper, hollow objects, and secret double-sided signs.

References

  • https://dev.epicgames.com/documentation/en-us/uefn/create-two-sided-materials-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/documentation/en-us/fortnite/create-twosided-materials-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/documentation/en-us/fortnite/materials-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/documentation/en-us/uefn/material-nodes-and-settings-in-unreal-editor-for-fortnite
  • https://dev.epicgames.com/community/snippets/eOoo/fortnite-material-function-depth-cullface-translucency-object

Turn this into a guided course

Add Two-sided Materials to your free study plan — we'll suggest related pages and stitch the lot into one compile-checked, self-guided lesson with worked examples and quizzes.

Original tutorial generated by Verse Island from the Verse/UEFN knowledge base, with references to the Epic Games sources above. Code is validated against the knowledge base.

Comments

    Sign in to vote, comment, or suggest an edit. Sign in