Skip to content

JsonAsAsset/Reflection

Repository files navigation


Logo

Reflection

Reconstruction Toolkit for Unreal Engine
Explore the docs »


GitHub Repo stars GitHub Downloads Total Count (all assets, all releases)

Discord Buy Me a Coffee

Unreal Engine 5 Supported) Unreal Engine 4.27.2 Supported) Unreal Engine 4.26.2 Supported) Unreal Engine 4.26.0 Supported)

Description

Reflection is an Unreal Engine plugin that reads JSON files from FModel (UEParse), and rebuilds assets like materials, data tables, physics assets, and more.

Contributors

Example Use

  • Importing materials, data assets, and data tables — see more
  • Porting physics assets for skeletal meshes
  • Porting sound effects to Unreal Engine
  • Automating asset porting workflows

This project aims to streamline the porting and modding experience, making it easier to bring game assets into Unreal Engine.

Licensing

Reflection is licensed under the MIT License. Read more in the LICENSE file. The plugin also uses Detex and NVIDIA Texture Tools.


Table of Contents

  1. Asset Types
  2. Installation
  3. → Workflow

Extras:


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.


Asset Types

If an asset type isn't listed below, it's not currently supported by the plugin.

Asset Types
🟢 Curve CurveFloat, CurveVector, CurveLinearColor, CurveLinearColorAtlas
🟣 Data DataAsset, SlateBrushAsset, SlateWidgetStyleAsset, AnimBoneCompressionSettings, AnimCurveCompressionSettings, UserDefinedEnum, UserDefinedStruct
🔵 Table CurveTable, DataTable, StringTable
🟠 Material Material, MaterialFunction, MaterialInstanceConstant, MaterialParameterCollection, SubsurfaceProfile
🟧 Texture TextureRenderTarget2D, RuntimeVirtualTexture
🟡 Sound Most/all sound classes are supported. SoundWave is downloaded by a Cloud Server!
🔴 Animation PoseAsset, Skeleton, SkeletalMeshLODSettings, BlendSpace, BlendSpace1D, AimOffsetBlendSpace, AimOffsetBlendSpace1D
Physics PhysicsAsset, PhysicalMaterial
🟤 Sequencer CameraAnim
Effects ParticleSystem
🟩 Landscape LandscapeGrassType, FoliageType_InstancedStaticMesh, FoliageType_Actor

The following asset types add onto a pre-existing asset

Asset Types
🔴 Animation AnimSequence, AnimMontage (Animation Curves)

Partial Blueprint Importing

If the parent class exists, it'll import the components and defaults of the blueprint.

🟠 Material Data Prerequisites

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.

🟣 C++ Classes Prerequisites

If your game uses custom C++ classes or structures, you need to define them.

See Unreal Engine Modding Projects for game-specific template projects.

Installation

Important

If you haven't already, install FModel and set it up correctly, then proceed with the setup.

​There is a specific FModel version for material data support found in the discord server.
Material Data Prerequisites still apply.

We strongly recommend using the latest commit of Reflection to ensure compatibility with recent Unreal updates and access to the newest features.

UE4

Some UE4 builds may fail to locate UnrealBuildTool.exe due to missing platform path definitions. You can fix this by manually adding a PlatformPaths entry to BaseEngine.ini.

Steps

  1. Go to your Unreal Engine install directory:
    UE_[VERSION]/Engine/Config/
    
  2. Open:
    BaseEngine.ini
    
  3. Scroll to the very bottom of the file and add:
    [PlatformPaths]
    UnrealBuildTool=Engine/Binaries/DotNet/UnrealBuildTool.exe
  4. Save the file.

Follow these steps to install Reflection:

  1. Downloading Reflection:
    There are two ways you can download Reflection. You can either stay up-to-date with the latest development changes (recommended if you want the newest features and fixes, but may occasionally require manual fixing), or download stable releases.

    1. Up-to-date (Git Submodule)
      Open a terminal in your Unreal project root (where your .uproject file is located), then run:

      git submodule add https://github.com/JsonAsAsset/Reflection.git Plugins/Reflection
      git submodule update --init --recursive
    2. Stable Releases (Manual Download)
      Go to the Releases page for the plugin. Download the Source code (zip), extract it into your project's Plugins folder (create it if it doesn't exist), so the final path looks like:

      Project/Plugins/Reflection/
      
  2. Compile Reflection:
    Follow this tutorial to build the plugin for your Unreal Engine version.

  3. Launch Your Project:
    Open your Unreal Engine project.

Set up the Cloud ✨

Make sure Cloud is enabled in Plugin Settings, and set up a Cloud Server. Click here to get to Cloud releases.

Once the Cloud is started, Reflection will fetch almost every referenced asset for you hands-free.

Workflow

  1. Find an asset in FModel, and save it by right-clicking and pressing Save Properties. Locate the file on your computer and copy the location.

  2. Press the Reflection button on your tool-bar, and a file import should pop up.

  3. Select the file and press Open.

  4. The asset will import, and bring you to the created asset in the content browser.

Common Errors 🐛

Assertion failed: TextureReferenceIndex != INDEX_NONE

This is a known issue in our code that we haven't fully resolved yet. While previous attempts to fix it have been unsuccessful, here's a partial solution to reduce its occurrence:

  • Re-launch your Unreal Engine project, go to Reflection's plugin settings and enable "Disconnect Root". Also enable "Save Assets".

✨ Contributors

Thanks go to these wonderful people:


Tector

Creator

GMatrixGames

Co-Founder

Buy Me a Coffee

About

Reconstruction Toolkit for Unreal Engine

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Sponsor this project

Used by

Contributors

Languages