Skip to content
Valentin Plyasinov edited this page Jul 4, 2024 · 31 revisions

Subsystem Browser Plugin

Welcome to the Subsystem Browser Plugin wiki! Check navigation on right side.

Overview

Subsystems provide an easy way to extend engine functionality and implement new features.

Check Programming Subsystems article or this presentation slides if you haven't tried them yet.

Plugin provides a dedicated Subsystem Browser panel to display active subsystems with property editor.

The new Subsystem Settings panel provides an easy way to interact with Config properties in Subsystem-derived classes without need to create a standalone UDeveloperSettings class.

Installation

There are several ways to install the plugin: from Marketplace and from GitHub.

From Marketplace

  1. Find plugin in Unreal Engine Marketplace under Code Plugins category: Subsystem Browser Plugin
  2. Click on Download, launcher would download it for you to specified engine
  3. Activate plugin in editor Plugins menu

From Github

  1. Download source code archive
  • Latest development version: From main page Clone -> Download ZIP menu.
  • Marketplace version (may be a bit out of date): From Releases page.
  1. Unpack the contents into "YourProjectFolder/Plugins/SubsystemBrowserPlugin" (create if missing)
  2. Activate plugin in editor Plugins menu

Tips & Tricks

CallInEditor functions

CallInEditor functions are supported which means you can make a clickable button in details view that will execute a function in editor.

UCLASS()
class UMySubsystem : public UWorldSubsystem
{
   GENERATED_BODY()
public:
   UFUNCTION(CallInEditor, Category=Debug)
   void DrawDebugInfo() { /* implement something */ }
}

Config Export

If your subsystem class has Config and DefaultConfig specifiers you can export their data into associated ini file by using Export to Defaults context menu action.

With only Config flag you can export ini section to clipboard by using Export Modified or Export All context menu actions.

UCLASS(Config=Game, DefaultConfig)
class UMySubsystem : public UWorldSubsystem
{
   GENERATED_BODY()
public:
   UPROPERTY(Config, BlueprintReadOnly)
   int32 NumActorsToSpawn = 0;
   UPROPERTY(Config, BlueprintReadOnly)
   TSoftClasPtr<AActor> ActorClassToSpawn;
}

Notes

Release packages are always updated to latest marketplace release version

Contacts

You can find me on twitter @AquanoxTV or Unreal Source Discord #cpp channel