Share Post

Table of Contents

CorePlus On Demand Assets

Learn how to integrate CorePlus OnDemandAssets into your Unreal Engine project to dynamically stream and manage PAK files using Blueprints or C++. This guide walks you through setup, function access, and usage examples for efficient asset chunking.

🔧 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)

  1. Copy CorePlus Plugin from:

     
    [UE_Install]/Engine/Plugins/Marketplace/CorePlusPlugin
     

    To:

     
    [YourProject]/Plugins/
  2. 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)

  1. Enable CorePlus Plugin via the Plugin Manager

  2. 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:

  1. Get the Subsystem
    Use the CorePlusOnDemandAssetsSubsystem node. You can call this from any Blueprint.

  2. Access the Download Manager
    From the CorePlusOnDemandAssetsSubsystem, Get the GetOnDemandAssetManager node.

  3. Call Functions
    Once you have the GetOnDemandAssetManager 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<UCorePlusOnDemandAssetsSubsystem>();
        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!

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.

Related Posts

One Response

Leave a Reply

Your email address will not be published. Required fields are marked *