Georgy Treshchev

Unreal Engine C++ developer at mod.io.

  • I like creating various Unreal Engine tools that simplify the development process.
  • Feel free to email me at [email protected] or join discord chat for any questions.

Simulating spdlog in Unreal Engine

Integrating third-party libraries that rely on spdlog in Unreal Engine can pose challenges without directly adding that dependency. This short guide provides steps to simulate the spdlog API using Unreal’s native logging system (UE_LOG), which ensures compatibility while avoiding unnecessary dependencies. To create a logging utility that mimics spdlog, we can create a class with methods for logging at various severity levels. This class will convert different types to FString for logging and formatting....

September 25, 2024 · 3 min · Georgy Treshchev

How to focus a Common UI button (UCommonButtonBase) in Unreal Engine

As of UE 5.4, the Common UI button (UCommonButtonBase) still doesn’t support direct focus settings. This is because UCommonButtonBase is derived from UUserWidget, which supports focusing, but doesn’t direct the focus to the underlying button itself automatically. However, you can still set the focus on the button by performing a “deep” focus on the Slate button. Here’s how you can achieve this: /** * Sets the focus on the button * This function performs the "deep" focus on the Common UI button, which means that it will set the focus on the button itself * This is useful since UCommonButtonBase is derived from UUserWidget, which doesn't support focus when setting it directly */ UFUNCTION(BlueprintCallable, Category = "mod....

August 27, 2024 · 2 min · Georgy Treshchev

Modular Features (IModularFeatures) in Unreal Engine

Do not confuse Modular Features with Modular Gameplay Features . Introduction In Unreal Engine, Modular Features is a pretty straightforward system that makes it possible create and manage features that can be enabled or disabled at runtime. Features share the same base interface (derived from IModularFeatures), and they can be registered/unregistered at runtime from any part of the code and any module. This system is widely used in UE, for example, in audio capture, where each platform may have its audio capture implementation registered/unregistered based on the target platform, all using the base interface of IAudioCaptureFactory, which is derived from IModularFeatures....

April 7, 2024 · 3 min · Georgy Treshchev

How to get the currently focused widget in Unreal Engine

In Unreal Engine, you can determine the currently focused widget in both Slate and UMG UI systems. Slate To get the currently focused Slate widget, you can use the following code snippet: // Instead of 0, you can pass the user index if you have multiple users TSharedPtr<SWidget> FocusedSlateWidget = FSlateApplication::Get().GetUserFocusedWidget(0); UMG Getting the currently focused UMG widget is a bit more involved, since there is no direct function to get it or the place where it is stored....

March 23, 2024 · 1 min · Georgy Treshchev

How to execute code on scope exit in Unreal Engine

If you want to execute some code when the scope is exited, you can use the following handy ON_SCOPE_EXIT macro, like this: int32 AnyFunction() { ON_SCOPE_EXIT { // This code will be executed when the scope is exited (after the return statement) }; // Do smth // Just return 100 for example return 100; }

March 2, 2024 · 1 min · Georgy Treshchev