Reflection takes assets from FModel, and puts them straight in your project: materials, data tables, physics assets, and more.
Uses · Asset Types · Installation · Cloud · Workflow · Contributors
| Materials Materials, functions and instances, with data assets and data tables. See every type |
Meshes and physics Skeletal and static meshes, with the physics assets behind them. |
| Sound Sound cues and most other sound classes, ready to play. |
Whole workflows Name one asset and everything it references comes with it. |
This project aims to streamline the porting and modding experience, making it easier to bring game assets into Unreal Engine.
Anything not listed here isn't supported yet.
| Category | Types |
|---|---|
| 🟠 Material | Material, MaterialFunction, MaterialInstanceConstant, MaterialParameterCollection, SubsurfaceProfile |
| 🟧 Texture | Texture2D, TextureCube, Texture2DArray, VolumeTexture, TextureRenderTarget2D, TextureLightProfile, RuntimeVirtualTexture, PaperSprite, PaperSpriteAtlas |
| 🟦 Mesh | SkeletalMesh, StaticMesh |
| ⚪ Physics | PhysicsAsset, PhysicalMaterial |
| 🔴 Animation | AnimSequence, AnimMontage, PoseAsset, Skeleton, SkeletalMeshLODSettings, BlendSpace, BlendSpace1D, AimOffsetBlendSpace, AimOffsetBlendSpace1D, ControlRigBlueprintGeneratedClass |
| 🟡 Sound | SoundCue and most other sound classes |
| 🟢 Curve | CurveFloat, CurveVector, CurveLinearColor, CurveLinearColorAtlas |
| 🔵 Table | CurveTable, DataTable, MirrorDataTable, StringTable |
| 🟣 Data | DataAsset, CurveExpressionsDataAsset, SlateBrushAsset, SlateWidgetStyleAsset, LandscapeLayerInfoObject, HLODProxy, AnimBoneCompressionSettings, AnimCurveCompressionSettings, FortBakedPropertyMetadataCache, UserDefinedEnum, UserDefinedStruct |
| ✨ Effects | ParticleSystem, VectorFieldStatic |
| 💫 Niagara | NiagaraParameterCollection, NiagaraParameterCollectionInstance, NiagaraParameterDefinitions, NiagaraEffectType, NiagaraDataChannelAsset, NiagaraAssetTagDefinitions, NiagaraValidationRuleSet, NiagaraSimCache, NiagaraSystemReadinessSettings |
| 🟩 Landscape | LandscapeGrassType, FoliageType_InstancedStaticMesh, FoliageType_Actor |
| 🟤 Sequencer | CameraAnim, ForceFeedbackEffect |
| 🧠 AI | BehaviorTree, BlackboardData |
| 🔤 UI | Font, FontFace |
Warning
Experimental. Both need Enable Experiments in Plugin Settings.
Blueprints, Widget Blueprints and Animation Blueprints rebuild their components, variables and defaults, and their graphs are rebuilt from the bytecode where the parent class exists. Levels place the actors they hold, with settings for what to place and what to skip.
Note
Material data. Unreal Engine games made below 4.12 (a guess) will have material data. Games made above that version will most definitely not have any material data, and therefore the actual data will be stripped and cannot be imported. Unless you are using a User Generated Content editor, then it's possible material data will be there.
Tip
C++ classes. If your game uses custom C++ classes or structures, you need to define them. See Unreal Engine Modding Projects for game-specific template projects.
Important
Install FModel and set it up before going any further.
-
Add the plugin to your project. From your project root, where the
.uprojectis:git submodule add https://github.com/JsonAsAsset/Reflection.git Plugins/Reflection git submodule update --init --recursive
This tracks every commit, so fixes for new Unreal versions reach you first, though it may occasionally need a manual fix. For a stable release instead, download Source code (zip) from the Releases page and extract it to
Project/Plugins/Reflection/. -
Build it for your engine version, following Epic's guide.
-
Open your project. The Reflection button appears on the content browser toolbar.
Build failing on Unreal Engine 4 with UnrealBuildTool.exe not found?
Some UE4 builds are missing a platform path. Add this to the bottom of UE_[VERSION]/Engine/Config/BaseEngine.ini and save:
[PlatformPaths]
UnrealBuildTool=Engine/Binaries/DotNet/UnrealBuildTool.exeThe Cloud app is Mirror. It reads the game's files and hands Reflection each asset as it's asked for, over localhost:1500. Set up an instance and start it.
With Mirror running, Reflection:
- Fetches references automatically instead of asking you for each one.
- Pulls data a json export doesn't carry, like mesh geometry, skin weights and morph targets.
- Reads from the profile you pick, one per game build, from the Profile tab of the Reflection dialog.
Tip
No Cloud? Turn on Use Local Json instead of Cloud in Plugin Settings, and the Reflection button imports a json you exported from FModel yourself. References aren't fetched for you that way.
Reflection works off asset paths. With Cloud running, nothing has to be saved out of FModel first.
-
Copy an asset's path in FModel, like
/Game/Asset.uasset. A reference copied straight out of FModel works too. -
Press the Reflection button on the content browser toolbar. Paths already on your clipboard are queued for you.
-
Queue as many as you want. Type or paste a path and press
Enter. Several pasted at once queue one per line, andXtakes one back out. -
Press Reflect. Every reference each asset needs is fetched as it goes, so you only ever name the one you want.
Anything that couldn't be rebuilt is listed in the Errors window at the end.
Caution
Please note that this plugin is intended solely for personal and educational use.
Do not use it to create or distribute commercial products without obtaining the necessary licenses and permissions. It is important to respect intellectual property rights and only use assets that you are authorized to use.
We do not assume any responsibility for the way the created content is used.
Thanks go to these wonderful people:
![]() Tector Creator |
![]() GMatrixGames Co-Founder |
Special thanks to:
Thanks to the people who contributed to UEAssetToolkit!





