Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1,273 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


GitHub Repo stars MIT License

GitHub Downloads Total Count (all assets, all releases) Discord Buy Me a Coffee

Reflection is an Unreal Engine plugin that reads JSON files exported from FModel (UEParse), and rebuilds them as real assets in your project: materials, data tables, physics assets, and more. Connect it to a Cloud instance to fetch references automatically, reflect extra data onto assets you've already imported.

image

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.


Table of Contents

  1. Asset Types
  2. Installation
  3. β†’ Workflow

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, LandscapeLayerInfoObject, HLODProxy, AnimBoneCompressionSettings, AnimCurveCompressionSettings, UserDefinedEnum, UserDefinedStruct
πŸ”΅ Table CurveTable, DataTable, MirrorDataTable, StringTable
🟠 Material Material, MaterialFunction, MaterialInstanceConstant, MaterialParameterCollection, SubsurfaceProfile
🟧 Texture Texture2D, TextureCube, Texture2DArray, VolumeTexture, TextureRenderTarget2D, TextureLightProfile, RuntimeVirtualTexture, PaperSprite. Pixels are fetched by a Cloud Server!
🟑 Sound SoundCue and most other sound classes are supported. SoundWave is fetched by a Cloud Server!
πŸ”΄ Animation PoseAsset, Skeleton, SkeletalMeshLODSettings, BlendSpace, BlendSpace1D, AimOffsetBlendSpace, AimOffsetBlendSpace1D
βšͺ Physics PhysicsAsset, PhysicalMaterial
🟀 Sequencer CameraAnim, ForceFeedbackEffect
✨ Effects ParticleSystem, VectorFieldStatic. Vector data is fetched by a Cloud Server!
🟩 Landscape LandscapeGrassType, FoliageType_InstancedStaticMesh, FoliageType_Actor
πŸ”€ UI Font

The following asset types add onto a pre-existing asset

Asset Types
πŸ”΄ Animation AnimSequence, AnimMontage (Animation Curves)
πŸ”΅ Mesh StaticMesh (Collision), SkeletalMesh (Sockets, Clothing)
πŸ”€ UI FontFace (Font Properties), WidgetBlueprint (Widget Animations)

These are reached from Cloud Tools with the asset selected in your content browser, and need a Cloud Server.

Partial Blueprint Importing (Experimental)

If the parent class exists, it'll import the components and defaults of the blueprint (Blueprints, Widget Blueprints, and Animation Blueprints). Enable Enable Experiments in Plugin Settings to use it.

🟠 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.


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.


Installation

Important

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

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

Follow these steps to install Reflection:

  1. Download 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:
    Follow this tutorial to build the plugin for your Unreal Engine version.

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

Compile step failing on Unreal Engine 4? (UnrealBuildTool.exe not found)

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.

Cloud ☁️

Set up a Cloud instance and start it.

Once running, Reflection fetches references automatically instead of asking you for each one, and a Cloud Tools menu lets you reflect extra data (collision, animation curves, sockets, fonts, and more) onto assets you've already imported.


Workflow

Reflection works off asset paths, and a Cloud instance fetches the exports behind them. Nothing has to be saved out of FModel first.

  1. Start your Cloud instance. The button next to Reflection in the content browser toolbar reads On once it's up.

  2. Copy the path of an asset. Either form works, so a reference copied straight out of FModel is fine:

    /Game/Asset.uasset
    
  3. Press the Reflection button on your content browser toolbar. A dialog opens, and anything path-like already on your clipboard is queued for you.

  4. Queue as many as you want. Type or paste a path and press Enter (or Add), several pasted at once queue one per line. X takes one back out.

  5. Press Reflect. Every reference each asset needs is fetched as it goes, so you only ever name the one you actually want.

Anything that couldn't be rebuilt is collected into a Reflection Errors window at the end, rather than being buried in the log.

Other ways in

A whole folder of the game files Folder, under the Reflection dropdown. Reflects everything under a game path, not one in your project.
JSON files off disk Save an asset out of FModel with Save Properties, then use Reflect Folder of JSON Files under the Reflection dropdown's Asset Tools.

Tip

Prefer the old file picker? Set bCloudServer to false in Reflection.Build.cs and rebuild, the Reflection button then asks for a JSON file instead of a path. Nothing else about Cloud changes.


Contributors

Thanks go to these wonderful people:


Tector

Creator

GMatrixGames

Co-Founder

Buy Me a Coffee

Special thanks to:

Thanks to the people who contributed to UEAssetToolkit! They have helped a lot. And to the contributors of Advanced Locomotion System V4!


Licensing

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

About

Reconstruction Toolkit for Unreal Engine

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

355 stars

Watchers

10 watching

Forks

Releases

Sponsor this project

Used by

Contributors

Languages