Skip to content

A user-friendly Unreal Engine plugin designed to import assets from packaged games through JSON files.

License

Notifications You must be signed in to change notification settings

JsonAsAsset/JsonAsAsset

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

JsonAsAsset

Discord GitHub Downloads (all assets, latest release) GitHub Repo stars

Unreal Engine 5 Supported) Unreal Engine 4.27 Supported)

Description:

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

Example Use:

  • 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:

  1. Introduction to JsonAsAsset
  2. Installation
    2.1 Setup FModel
    2.2 Setup Settings
  3. Local Fetch

Extras:


1. Introduction to JsonAsAsset

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
Sound Classes
  • SoundWave
Materials
  • 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.

Curve Asset Types
  • CurveFloat
  • CurveTable
  • CurveVector
  • CurveLinearColor
  • CurveLinearColorAtlas
Skeleton/Animation Asset Types
  • SkeletalMeshLODSettings
  • Animation (curves, sync markers)
  • Blendspace
Data Asset Types
  • DataAsset
  • DataTable

2. Installation

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)

  1. Go to the Releases page for the plugin.
  2. 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.
  3. 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.
  4. Open your Unreal Engine project.
  5. Click on Edit -> Plugins.
  6. In the Plugins window, search for JsonAsAsset and enable it.
  7. Restart the editor for the changes to take effect.

2.1 Setup FModel

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.

2.2 Setup Settings

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!

3. Setting 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.

Launching Local Fetch

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!


Common Errors πŸ›

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:

1. Your settings are wrong, and need modifications

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.

2. ASP.NET 8.0 not installed

Running the API requires ASP.NET 8.0 to be installed, please install this here.

3. oo2core missing

Run the API manually in the file explorer once, this should download the file to use in the api. (Plugins/JsonAsAsset/Binaries/Win64/LocalFetch)


Licensing πŸ“œ

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


✨ Contributors

Thanks go to these wonderful people:

Tector
Tector

GMatrixGames
GMatrixGames

Zylox
Zylox

Zylox
NathanFelipeRH

Sound Cue Importing
Tevtongermany
Tevtongermany

JsonAsAsset Logo

About

A user-friendly Unreal Engine plugin designed to import assets from packaged games through JSON files.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •  

Languages