A user friendly plugin for Unreal Engine that reads JSON files extracted from FModel, and regenerates assets as they were from the game's files.
β¨ Contributors
- Porting materials, data assets, data tables (see more here)
- Porting sound effects to Unreal Engine
- Automating the porting process for users
The goal of this project is to simplify the process for the porting and modding communities, enabling them to more easily port over assets into Unreal Engine.
Table of Contents:
Extras:
Note
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.
JsonAsAsset is a user-friendly Unreal Engine plugin for importing assets from packaged games using JSON files. With a sleek interface, it simplifies mapping JSON data to Unreal Engine structures, supporting both manual and automated workflows.
Supported Asset Types
- SoundWave
- Material
- MaterialFunction
- MaterialParameterCollection
- PhysicalMaterial
- SubsurfaceProfile
Material Data:
Unreal Engine games made below 4.12 (a guess) will have material data, any 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 the material data will be there.
- CurveFloat
- CurveTable
- CurveVector
- CurveLinearColor
- CurveLinearColorAtlas
- SkeletalMeshLODSettings
- Animation (curves, sync markers)
- Blendspace
- DataAsset
- DataTable
Warning
JsonAsAsset may not work for every Unreal Engine 5 version; please check Releases for compatibility. Unreal Engine 4 is not maintained at the moment and is not planned to be supported.
(See branches for the current available Unreal Engine 4 versions)
- Go to the Releases page for the plugin.
- Download the release that matches your version of Unreal Engine. If there isn't a release that matches your version, you will need to compile the plugin yourself.
- Extract the downloaded files to your project's Plugins folder. If there isn't a Plugins folder, create one in the root directory of your project.
- Open your Unreal Engine project.
- Click on Edit -> Plugins.
- In the Plugins window, search for
JsonAsAsset
and enable it. - Restart the editor for the changes to take effect.
If you haven't already, install FModel and set it up correctly.
The JSON format/file has to be from a program that fits the format of FModel's JSON export files:
- FModel (Software for exploring Unreal Engine games)
Now that you've installed FModel and set it up up correctly, we can continue to setting up JsonAsAsset for our own Unreal Engine project.
Note
If you have FModel installed and setup correctly, you can now press the FModel Settings button in your Settings to grab it from there!
We need to change the export directory to allow the plugin to differentiate between what's your directory and what's the game path it should put it in.
First, open up the JsonAsAsset plugin settings (basically, do what's on the picture on the right) and make sure you are looking at the property "Export Directory."
Now open up FModel and go to your settings. (Settings -> General)
There will be a setting called Output Directory,
copy that and go back to Unreal Engine. Now you need to click on the three dots, jump to the folder you copied, go to the folder named Exports,
then press Select Folder.
Thatβs the basic setup! To bulk import assets and what they reference, you must set up Local Fetch
!
Running the API requires ASP.NET 8.0 to be installed; please install this here.
Tip
Please ensure you have the plugin in your project's directory and not the Engine.
Before we can launch Local Fetch and begin working on automated references, you need to input all the information about your game first.
Many of these settings are similar to FModel, but manually select a file or directory using UE's file selector.
Important
You must launch Local Fetch through UE and not by the executable file. The reason is that the local host port is different when you launch it through UE, so you must do so.
Go ahead and click on the JsonAsAsset logo () and hover over the list "Command-line Application"
and press "Execute Local Fetch (.EXE)"
.
A window should pop-up, and once the console says [CORE] Running API
, Local Fetch has been successfully started!
Attempted to create a package with name containing double slashes. PackageName: ...
Please set your Export Directory to your actual "Output/Exports" directory
INCORRECT: T:/FModel/Output
CORRECT: T:/FModel/Output/Exports
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 JsonAsAsset's plugin settings and enable "Expose Pins" or "Skip Result Node Connection". Also enable "Allow Package Saving".
Local Fetch closes instantly when executing
There may be a few reasons why the application automatically closes, but mostly the issue stems from something missing:
If you don't have anything in the settings, how is it gonna execute correctly? Make sure all the information about your game is set in the settings.
Running the API requires ASP.NET 8.0 to be installed, please install this here.
Run the API manually in the file explorer once, this should download the file to use in the api. (Plugins/JsonAsAsset/Binaries/Win64/LocalFetch)
JsonAsAsset is licensed under the MIT License, read more in the LICENSE file. The plugin also uses Detex and NVIDIA Texture Tools.
Thanks go to these wonderful people:
Tector |
GMatrixGames |
Zylox |
NathanFelipeRH Sound Cue Importing |
Tevtongermany JsonAsAsset Logo |
- Thanks to the people who contributed to UEAssetToolkit!