CorePlus On Demand Assets
🔧 Overview
Easily manage and stream asset files on demand using the CorePlus OnDemandAssets system. This allows you to mount and unmount PAK files dynamically in both Blueprint and C++, making it ideal for games or applications that require modular content delivery.
📁 Accessing the Plugin Content
Before you begin using CorePlus AR, you need to access the plugin content. There are two ways to do this:
✅ Method 1: Project Plugin Folder (Editable)
Copy CorePlus Plugin from:
[UE_Install]/Engine/Plugins/Marketplace/CorePlusPlugin
To:
[YourProject]/Plugins/
In Unreal Editor:
Open Content Browser
Click the ⚙️Settings Option (top-right)
Enable Show Plugin Content
You’ll now see:
Plugins > CorePlusContent
Pros
✅ Easy access and customization
✅ Built directly into your project
✅ Editable plugin files
Cons
⚠️ No auto-updates — you must update it manually
✅ Method 2: Engine Plugin Content (Auto-updating)
Enable CorePlus Plugin via the Plugin Manager
In Content Browser:
Open Content Browser
Click the ⚙️Settings Option (top-right)
Enable Show Engine Content
Navigate to:
Engine > Plugins > CorePlusContent
Pros
✅ Always up-to-date with Unreal Engine
Cons
⚠️ Plugin content is not directly editable
Tip: Choose the method that best fits your workflow — editable plugin content or automatic updates.
📦 Setting Up Chunking
Before you can use On-Demand Assets, make sure your project is set up for chunking. Follow these official guides:
🧩 Accessing the Functionality in Blueprints
To use the CorePlus Downloader in Blueprints:
Get the Subsystem
Use theCorePlusOnDemandAssetsSubsystem
node. You can call this from any Blueprint.Access the Download Manager
From theCorePlusOnDemandAssetsSubsystem,
Get theGetOnDemandAssetManager
node.Call Functions
Once you have theGetOnDemandAssetManager
node, you can call all available Asset Management functions.
💻 Accessing the Functionality in C++
Header File (.h)
#include "CorePlusOnDemandAssetsSubsystem.h"
UPROPERTY()
UCorePlusOnDemandAssetsSubsystem* CorePlusOnDemandAssetsSubsystem = nullptr;
UCorePlusOnDemandAssetsSubsystem* GetCorePlusOnDemandAssetsSubsystem();
Source File (.cpp)
UCorePlusOnDemandAssetsSubsystem* ClassName::GetCorePlusOnDemandAssetsSubsystem()
{
if (CorePlusOnDemandAssetsSubsystem)
{
return CorePlusOnDemandAssetsSubsystem;
}
if (!GetWorld())
{
return nullptr;
}
if (UGameInstance* GameInstance = GetWorld()->GetGameInstance())
{
CorePlusOnDemandAssetsSubsystem = GameInstance->GetSubsystem();
ensureAlwaysMsgf(CorePlusOnDemandAssetsSubsystem, TEXT("Invalid CorePlusOnDemandAssetsSubsystem."));
return CorePlusOnDemandAssetsSubsystem;
}
return nullptr;
}
Example Function Call:
GetCorePlusOnDemandAssetsSubsystem()->GetOnDemandAssetsManager()->MountPakFile(Parameters);
📚 On Demand Assets API Functions
🛠️ Mount/Unmount
/**
* Attempts to mount a PAK file. If the file is not available locally,
* it initiates a download and then mounts it upon completion.
*
* @param ChunkDetails - Metadata and download info for the PAK file.
* @param OnProgressDelegate - Delegate called periodically with progress updates.
* @param OnCompleteDelegate - Delegate called once the mounting process is complete.
*/
UFUNCTION(BlueprintCallable, Category = "CorePlus | AssetManager")
void MountPakFile(const FChunkDetails ChunkDetails, const FOnMountProgress& OnProgressDelegate, const FOnMountComplete& OnCompleteDelegate);
/**
* Unmounts a PAK file using its ChunkId and custom path.
*
* @param ChunkId - Identifier for the asset chunk.
* @param CustomPath - Path used when the file was originally mounted.
* @param ResultLog - Output log message describing the result.
* @return true if successfully unmounted, false otherwise.
*/
UFUNCTION(BlueprintCallable, Category = "CorePlus | AssetManager")
bool UnmountPakFile(const FString& ChunkId, const FString& CustomPath, FString& ResultLog);
🚀 Wrapping Up
With CorePlus On Demand Assets, streaming and managing modular game content becomes seamless. Whether you’re working in Blueprint or C++, you’ll have fine-grained control over how and when your assets are loaded.
💬 Got questions?
Leave a comment below or reach out — I’d love to hear how you’re using CorePlus in your projects!
If you found this post helpful, feel free to share it, and stay tuned for more Unreal Engine tips and tutorials!
📎 Related Links
Tags
Unreal Engine, CorePlus, OnDemandAssets, Unreal Engine tutorial, ChunkDownloader, UE5, UE4, Blueprint, C++, asset streaming, dynamic content, game development, UE plugin, PAK files, content delivery, modular assets, mount PAK, unmount PAK, asset management, chunking system, Unreal subsystems, UGameInstance, UE game assets, Blueprint scripting, UE C++ tutorial, Unreal documentation, async loading, game optimization, runtime assets, file mounting, OnDemandAssets guide, Unreal project setup, UE5 plugins, data-driven games, UE performance, Unreal Engine C++, UFUNCTION, UPROPERTY, subsystem access, GetSubsystem, asset mount, real-time content, asset chunking, Unreal developer, mountpakfile, unmountpakfile, CorePlus API, streaming assets, game scalability, mobile optimization, UE asset system.
One Response