Description

This was reported on UDN.

TL;DR: A user has reported that a custom command cannot be added to the "MainFrame" context in the UUICommandsScriptingSubsystem from their plugin.

The problem seems to be that the SlateScriptingCommands subsystem is loaded too late. Because of this, it doesn't have a chance to start listening for broadcasts of registered command lists before some have already been broadcasted. This leads to the "MainFrame" system's broadcast never reaching the SlateScriptingCommands subsystem, causing this issue.

Note that the issue still happens if LoadingPhase is set to "EarliestPossible" in SlateScripting.uplugin.

Steps to Reproduce
  • Enable the SlateScriptingCommands plugin by adding "SlateScripting" as a plugin dependency in FortniteGame.uproject.
  • Put a breakpoint (A) at the FInputBindingManager::Get().RegisterCommandList call in FMainFrameModule::StartupModule().
  • Put a breakpoint (B) in UUICommandsScriptingSubsystem::Initialize(FSubsystemCollectionBase& Collection).
  • Start the game with an attached debugger.

Result: Breakpoint A is triggered before breakpoint B.
Expected: Breakpoint B is triggered before breakpoint A.

Since A is triggered before B, the SlateScriptingCommands subsystem has no chance to hook into MainFrame commands.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-193340 in the post.

0
Login to Vote

Unresolved
ComponentUE - Editor - Workflow Systems
Affects Versions5.25.3
Target Fix5.5
CreatedAug 18, 2023
UpdatedFeb 29, 2024