Mutable dataless Texture Parameter won't display a runtime-generated Texture2D (from RenderTarget), but works fine with imported textures

Hi,

I’m using engine version UE5.7.4 and have a character customisation system using Mutable.

I want to put dynamic text onto a shirt by drawing text to a Canvas Render Target at runtime, then feeding that into a dataless Texture Parameter so Mutable bakes it onto the mesh.

My setup

The Customizable Object has a Texture Parameter node named PlayerName, wired into the material’s Name_Tex pin (set to Mutable mode on the Mesh Section).

At runtime I draw text to a TextureRenderTarget2D (RGBA8) using BeginDrawCanvasToRenderTarget / DrawText / EndDrawCanvasToRenderTarget. This works — the render target contains the text correctly.

Because Mutable rejected the render target directly with "Invalid Image Parameter. Is not a UTexture2D", I convert it to a UTexture2D in C++ using RenderTarget->ConstructTexture2D(...).

I then call SetTextureParameterSelectedOption("PlayerName", ConvertedTexture) on the character’s (cloned, unique) Customizable Object Instance, followed by UpdateSkeletalMeshAsync.

The problem I’ve got is that the chain runs with no errors - Mutable logs Started Update Skeletal Mesh Async and completes, but nothing appears on the clothing.

So far I’ve confirmed that the following work:

The converted texture is valid and contains the text - if I apply it manually to a normal material’s texture parameter on a skeletal mesh, the text displays correctly.

A normal imported Texture2D (e.g. a plain red texture) fed into the same SetTextureParameterSelectedOptioncall does display on the clothing through Mutable. So the parameter wiring, instance and material all appear to be correct.

It seems like the only thing failing is specifically a runtime ConstructTexture2D-generated texture injected into the Mutable texture parameter. As above - imported textures work, just this generated one doesn’t.

I’ve tried calling FlushRenderingCommands() before converting to make sure the render target is fully drawn before snapshotting, and I’ve tried adding different transient flags with no change.

If anyone is able to provide some guidance on this it would be much appreciated, as I am very much stuck!