Build Level Variant Sets from JSON, CSV, or Excel — in one click.
Editor plugin that converts JSON, CSV, or Excel files into a fully populated LevelVariantSets asset, with actor bindings and Visibility / Material / Static Mesh captures wired up automatically.
Variant Manager Importer turns variant data authored in JSON, CSV, or Excel into a fully populated LevelVariantSets asset — wired up to the actors in your level — through a single editor dialog. It is purpose-built for archviz, configurator, and product-visualization workflows where variant data lives in a spreadsheet, a design tool, an ERP/PIM export, or a script-generated file, and needs to land in the built-in Variant Manager without manual click-throughs.
What it does
Parses JSON, CSV, and XLSX with one shared schema.
Creates or updates a real ULevelVariantSets asset, identical to one authored by hand in the Variant Manager.
Captures Visibility (actor- or component-level), Material slot overrides, and Static Mesh swaps.
Resolves actors by soft object path, label, or unique name — including loaded sub-levels and World Partition cells.
Re-imports cleanly with three conflict modes: Skip Existing, Overwrite, or Append / Merge.
Surfaces every warning and error in an in-dialog scrollable log panel next to the Output Log entries.
Why use it
One-click round trips between your data sheet and the engine — no copy/paste, no manual binding.
Lets non-technical team members (or generated tooling) drive variant content.
Idempotent re-imports work great with version control.
Editor-only; nothing is added to your packaged game.
Plugins this depends on:
- Variant Manager (engine plugin, enabled by default)
- Variant Manager Content (engine plugin, enabled by default)
Supported capture types
TypeCapturesRequired dataVisibilityActor bHidden or SceneComponent bVisibleVisible (boolean)MaterialOverrideMaterials[slot] on a Static Mesh ComponentComponent, slot index, asset pathStatic MeshThe component's StaticMeshComponent, asset path
Sample Files
Sample CSVExcel files: https://drive.google.com/drive/folders/1hUwtSiiXplatgoK2adbHvBkLLiPyDZeo?usp=sharing
File format quick look (CSV)
VariantSet,Variant,Actor,Component,PropertyType,MaterialSlot,Asset,Visible
Visibility Demo,Hide Cube,Cube,StaticMeshComponent,Visibility,,,FALSE
Visibility Demo,Show Cube,Cube,StaticMeshComponent,Visibility,,,TRUE
Color Schemes,Red,Cube,StaticMeshComponent,Material,0,/Game/Materials/M_Red.M_Red,
JSON and XLSX use the same fields. See the bundled Docs for the complete schema.
What's in the box
Two editor modules (VariantManagerImporterCore, VariantManagerImporterEditor)
Slate import dialog wired into Tools ▸ Variant Manager ▸ Import Variants… and a Level Editor toolbar button
Three working samples in Examples/: full multi-set JSON, a CSV, and a ready-to-test HideCube.csv / HideCube.xlsx
Full source (C++) and Markdown documentation
Programmatic API
The same import pipeline is exposed through FVariantImportManager::ImportFromFile, so you can drive it from your own editor utility, Python, or C++ tools.
Requirements
Unreal Engine 5.4 or newer
Engine plugins Variant Manager and Variant Manager Content (auto-enabled)
Editor-only — no runtime impact on your shipping build