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, all releases) GitHub Repo stars

Unreal Engine 5 Supported) Unreal Engine 4.27.2 Supported) Unreal Engine 4.26.2 Supported) Unreal Engine 4.26.0 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 physics assets for skeletal meshes
  • 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
    1.1 Supported Asset Types
  2. → Installation
    2.1 FModel
    2.2 Settings
  3. → Using JsonAsAsset
  4. Local Fetch
    4.1 Setup Local Fetch Settings
    4.2 Launching Local Fetch

Extras:


1. Introduction to JsonAsAsset

Warning

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. Primarily from CUE4Parse and the use of the application FModel to export JSON files.


1.1 Supported Asset Types

Asset Category Asset Types / Description
Curve Asset Types CurveFloat, CurveTable, CurveVector, CurveLinearColor, CurveLinearColorAtlas
Data Asset Types DataAsset, SlateBrushAsset, SlateWidgetStyleAsset, AnimBoneCompressionSettings, AnimCurveCompressionSettings, UserDefinedEnum, UserDefinedStruct
Table Types CurveTable, DataTable, StringTable
Materials Material, MaterialFunction, MaterialInstanceConstant, MaterialParameterCollection, SubsurfaceProfile
Sound Classes Most/all sound classes are supported. SoundWave is downloaded by Local Fetch.
Animation Asset Types Skeleton, SkeletalMeshLODSettings, BlendSpace, BlendSpace1D, AimOffsetBlendSpace, AimOffsetBlendSpace1D
Physics Asset Types PhysicsAsset, PhysicalMaterial
Sequencer Asset Types CameraAnim
Landscape Asset Types LandscapeGrassType, FoliageType_InstancedStaticMesh, FoliageType_Actor
The following asset types add onto a pre-existing asset
Asset Category Asset Types / Description
Animations AnimSequence, AnimMontage [Animation Curves]

Material/Niagara Data:
Unreal Engine games made below 4.12 (a guess) will have material data, but not niagara data, any games made above that version will most definitely not have any material data nor niagara 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 and niagara data will be there.

NOTE: If your game uses custom C++ classes or structures, you need to define them before importing with JsonAsAsset. JsonAsAsset does not create C++ files for you. (create them manually from SDKs or automate them) See Unreal Engine Modding Projects for game-specific template projects.

2. Installation

Note

JsonAsAsset may not work with every Unreal Engine version. Please check the Releases page for compatibility details.

Follow these steps to install JsonAsAsset:

  1. Visit the Releases Page:
    Go to the Releases page for the plugin.
  2. Download the Appropriate Release:
    Download the release that matches your version of Unreal Engine.
    If a matching release isn’t available, compile the plugin yourself.
  3. Extract the Files:
    Extract the downloaded files to your project’s Plugins folder. If the folder doesn’t exist, create it in the root directory of your project.
  4. Open Your Project
    Launch your Unreal Engine project.
  5. Access the Plugins Window:
    Navigate to Edit → Plugins.
  6. Enable JsonAsAsset:
    In the Plugins window, search for JsonAsAsset and enable it.
  7. Restart the Editor:
    Restart the Unreal Engine editor to apply the changes.

2.1 Setup FModel

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

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)


2.2 Setup Settings

  1. Open Plugin Settings:
    Click on the JsonAsAsset dropdown, then select Open Plugin Settings.

  2. Import Settings from FModel:
    Locate Load External Configuration and press FModel Settings, your settings should be changed.

    If not, copy your export directory from FModel.


That’s the basic setup! Here's how to use JsonAsAsset.

Using JsonAsAsset
  1. Find a 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 onto the JsonAsAsset button on your tool-bar, and a file import should pop-up.

  3. Paste in the file's path, select the file and press open.

  4. The asset will import, and bring you to the created asset in the content browser. (if the asset type is supported)

To bulk import assets and what they reference, you must set up Local Fetch!

4. Local Fetch

Local Fetch is a way to automate importing assets that other assets reference, built into JsonAsAsset. It supports all asset types except AnimSequence/AnimMontages. Learn how to set up Local Fetch.


4.1 Local Fetch Settings

  1. Open Plugin Settings:
    Click on the JsonAsAsset dropdown, then select Open Plugin Settings.
  1. Enable Local Fetch:
    Locate the property Enable Local Fetch and turn it on.

  2. Setup Local Fetch's Settings:
    Make sure to set these in your settings:

    • Directory: specific Paks folder of your game
    • Unreal Engine: version that your game is running
    • Mappings File: file path to your mappings file
    • Encryption Keys: if your game needs AES Keys, set them
Fetch Encryption from an API

You can automatically have your AES Keys changed if your game has a API ran by someone else, you can fetch aes keys and mappings from an API in the section Local Fetch - Encryption.


4.2 Launch Local Fetch

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

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!

Make sure to keep this window open until you are done with JsonAsAsset.

JsonAsAsset will now use Local Fetch to import if a missing asset is referenced.

Common Errors 🐛

Attempted to create a package with name containing double slashes. PackageName: ...

Please set your Export Directory to your actual "Output/Exports" directory

WRONG: T:/FModel/Output

RIGHT: 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 "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 aren't correct, and need modifications

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.

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

Developer
GMatrixGames
GMatrixGames

Developer
Zylox
Zylox

Maintainer

Nathan Felipe

Help with SoundCue Code
  • Thanks to the people who contributed to UEAssetToolkit! They have helped a lot.
  • Logo uses a font by Brylark, support him at his ko-fi!

About

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

Topics

Resources

License

Stars

Watchers

Forks

Languages