Programming Subsystems - October 17 - Live from HQ


Subsystems in Unreal Engine are automatically instanced classes with managed lifetimes. These classes provide easy to use extension points, where the programmers can get Blueprint and Python exposure right away while avoiding the complexity of modifying or overriding engine classes. This week, lead programmer Chris Gagnon will discuss what Subsystems are, how to use them, their benefits, and the considerations you should keep in mind.

Thursday, October 17 @ 2:00PM ET - Countdown


Programming Subsystems Documentation
Project Files

Chris Gagnon - Lead Programmer, Editor
Victor Brodin - Community Manager - @victor1erp](


Excellent choice for topic. Thank you!

why u make tutorial for total beginners?

Very kewl! Should be a good one.

@Bombaholic Epic actually does have free online training through their training portal via

When and where the stream will be online to watch it when miss the live stream? I looked at twich and youtube but do not found it.

EDIT: I found it on twitch, but wondering why it has a completely different name :wink:

You can find the project files here:

Thanks Victor and Chris - Useful - timely - good interchange - More like this on UE4 coding strategies

Chris Would it be possible for you to elaborate more on:

  • how you differentiate these subsystems from say the Physics or rendering subsystems
  • what would be the most appropriate uses for these types of subsystems and
  • could you list the top subsystems that you would convert/refactor from BP or component implementations ?

hi does anybody know why there isn’t a GameModeSubSystem ? We placed a lot of code into the GameMode, because its lifetime was supposed to stop when leaving the map, and a subsystem over there would be great to have

Just finished watching this. Great talk. I really like it when the programmers roughly address various use cases from the users like that. Really helps give context.

I think one of the main TLDR takeaways from this is to go for a blueprint library when stateless and a subsystem when stateful.

Thanks for the Tutorial.

I do have a question about Subsystems and Configuration files. I went ahead and created a Menu Extender to open the my Subsystem properties to allow for editing config properties. However, the SaveConfig and LoadConfig methods use different PathNames. The LoadConfig will use the standard [/Script/{ModuleName}.{SubsystemName}], but the SaveConfig uses [None.{SubsystemName}]. Is there a way to get these to match?

To note, I’m using this method to drive an in game save settings.

I know a different way to drive subsystem configurations with a WorldSettings, but I figured the config would be easier.