Bug in MRQ config when rendering with -game flag renders

Summary

Root cause, fully confirmed
The “Motion Blur” entry in S01_BeautyRender_24fps_ShotOnly (and apparently most/all of the project’s render configs) is MotionBlurSetting, a class defined in NukeServer/Source/FoundryServer/…/FoundryCustomRenderOptions.h — it’s Foundry’s own custom Motion Blur control, not Unreal’s stock one. It lives in the FoundryServer module, which is “Type”: “Editor”.

The chain, now fully traced end-to-end through engine source:

-game → LaunchEngineLoop.cpp sets GIsEditor = false
ModuleDescriptor.cpp: Type: “Editor” modules only load if (GIsEditor) — otherwise skipped entirely
FoundryServer never loads under -game → MotionBlurSetting’s class never resolves
The config’s Settings array gets a null entry there at load time → CopyFrom() logs the warning and skips it
Output writing breaks (whatever downstream dependency exists on that null slot)
This isn’t corruption, isn’t a plugin/version mismatch, isn’t fixable by disabling plugins, and isn’t something a “build it yourself” clean config avoids — because the clean config would need to include the same Foundry Motion Blur setting to match your actual creative intent, and any config referencing it fails identically under -game. It only ever worked for you because your workflow renders via the Editor’s PIE-based “Render (Local),” where GIsEditor stays true the whole time.

The only real fix: stop using Foundry’s MotionBlurSetting in configs meant for farm/-game rendering. That means either dropping it in favor of Unreal’s stock motion blur (typically controlled via camera shutter/console variables, not a dedicated settings-panel entry), or, if that custom control does something you specifically need, checking whether Foundry ships an equivalent non-Editor-type way to configure it (e.g., as console variables through your existing MoviePipelineConsoleVariableSetting, which does load fine under -game).

Since I don’t know what specific behavior you rely on that setting for, I’ll leave the actual config edits to you rather than guess — want me to check what properties/behavior MotionBlurSetting exposes (I have its header via the plugin source) so you know exactly what you’d be trading away by removing it?

What Type of Bug are you experiencing?

Rendering (Graphics / Niagara)

Steps to Reproduce

Here’s a clean, minimal repro that doesn’t depend on your project or the Foundry plugin at all — anyone at Epic could run this on a fresh project in about 10 minutes, since it only uses stock Movie Render Queue functionality.

Environment
Unreal Engine 5.4.4 (Changelist 35576357, ++UE5+Release-5.4)
Windows
The actual defect worth reporting
It’s not that an Editor-type plugin module fails to load under -game — that’s documented, by-design behavior (ModuleDescriptor.cpp: EHostType::Editor only loads if (GIsEditor), and -game sets GIsEditor = false in LaunchEngineLoop.cpp). The defect is what Movie Render Pipeline does in response: when a config setting’s class fails to resolve, MoviePipelineConfigBase::CopyFrom() logs one Error-severity line and silently drops the setting — no hard failure, no aborted render. The pipeline proceeds, reports Success: True, and the process exits 0, while producing zero output frames. There is no exit code, no fatal error, nothing a farm scheduler (Deadline or otherwise) can detect short of parsing log text for a specific string. A render that produces nothing should not look identical to a successful one.

Minimal repro (stock Epic only, no third-party plugin)

  1. Create a throwaway Editor-only plugin in any UE 5.4 project (YourProject/Plugins/TestEditorSetting/):

TestEditorSetting.uplugin:

{
“FileVersion”: 3,
“Modules”: [
{ “Name”: “TestEditorSetting”, “Type”: “Editor”, “LoadingPhase”: “Default” }
]
}
Source/TestEditorSetting/TestEditorSetting.Build.cs — depend on MovieRenderPipelineCore (plus Core, CoreUObject, Engine).

A single custom setting class:

UCLASS(BlueprintType)
class UTestEditorOnlySetting : public UMoviePipelineSetting
{
GENERATED_BODY()
public:
virtual FText GetDisplayText() const override { return FText::FromString(TEXT(“Test Editor-Only Setting”)); }
};
2. In the Editor: create a Level Sequence + a MoviePipelinePrimaryConfig asset. Add the standard Output setting (e.g. PNG sequence) and Deferred Rendering, plus your new Test Editor-Only Setting.

  1. Confirm it renders fine locally: Movie Render Queue window → “Render (Local)” (uses UMoviePipelinePIEExecutor by default — MovieRenderPipelineSettings.cpp:18). Output writes normally; GIsEditor is true for the whole session.

  2. Trigger the -game path — no custom scripting needed: click “Render (Remote)” instead. Epic’s own default (MovieRenderPipelineSettings.cpp:19: DefaultRemoteExecutor = UMoviePipelineNewProcessExecutor::StaticClass()) spawns a new UnrealEditor-Cmd.exe process with -game baked into its command-line template (MoviePipelineNewProcessExecutor.cpp:203: “{GameNameOrProjectFile} {PlayWorld}{UnrealURL} -game {SubprocessCommandLine} {CommandLineParams} {MoviePipelineArgs}”).

Expected: identical output to the local render.
Actual: the spawned process’s log shows:

LogLinker: Warning: [AssetLog] …/YourConfig.uasset: VerifyImport: Failed to find script package for import object ‘Package /Script/TestEditorSetting’
LogMovieRenderPipeline: Error: Null setting found in config: YourConfig - Did you disable a plugin that contained this setting?
…followed by Job finished. Success: True, ALL RENDERS COMPLETE, exit code 0, and an empty output directory.

Supplementary: the real-world case we hit
Same mechanism, found live in production: Foundry’s NukeServer plugin ships a MotionBlurSetting MRQ setting class inside a module declared “Type”: “Editor” (NukeServer/Source/FoundryServer/…/FoundryCustomRenderOptions.h). Any config using it renders perfectly via “Render (Local)” but silently produces zero frames via any -game launch (Deadline farm rendering, in our case) — same log signature as above, same silent “success.”

Expected Result

A -game flag render can render with the render settings disable motionblur in it.

Observed Result

It can’t

Affects Versions

5.4

Platform(s)

Windows