Best Way to Use a Blueprint with Static Meshes and a Level Variant Set Across Multiple Levels?

I have a Blueprint (CAR_BP) that contains static meshes for car parts, and I’m using a Level Variant Set (LVS) to change materials (e.g., car colors) and visibility. I need to use this same Blueprint across multiple levels—like a Studio Level, Street Level, and Mountain Level—but I keep running into issues. Here’s what I’ve tried so far:

  1. Tried: Adding CAR_BP Directly to Each Level
  • Every time I place an instance of CAR_BP into a new level, the Level Variant Set needs to be re-bound to the new instance.

  • If I re-bind the LVS to work in one level, it breaks in all the other levels, requiring me to re-bind manually every time.

  1. Tried: Using a Sublevel
  • I created a sublevel containing CAR_BP and the Level Variant Set Actor, then loaded that sublevel into other levels (Studio Level, Street Level, etc.).

  • This solves the re-binding issue, but now I have a position problem.
    The car needs to be in different positions in each level, but because it’s the same sublevel, changing the car position in one level changes it in all the others.
    Duplicating the sublevel for each position isn’t efficient.

3.Trying Now: Rebinding in the Construction Script

  • My idea is to rebind the Level Variant Set dynamically in the Construction Script of CAR_BP.

  • This way, every time I place CAR_BP in a level, it will automatically rebind the Level Variant Set to itself, avoiding manual re-binding.

  • However, I’m not sure how to implement this in Blueprints or if this method will work.

Did anyone figured out a efficient way to manage this?

I’m wondering if this is the wrong approach or if it’s simply because most users don’t commonly use the Level Variant Manager.

Since I couldn’t find a way to rebind in Blueprint contruction script the Level Variant Manager to the CAR_BP across multiple levels, I ended up creating two separate Level Variant Managers—one for each environment/level. It feels like a workaround rather than the right solution, but at least it works for now.