NextGen Settings: A cross-platform graphics configuration plugin to bring AAA graphics menus to any team.

I am working on a next-generation graphics menu system intended to bring AAA levels of in-game customization to any team. I have built systems in the past for both personal projects and full game projects, and this plugin, which I am calling NextGen Settings (NGS), is a combination of all the knowledge I’ve gained from those experiences into an easy-to-use tool.

I am just starting my art push, as most of the technical backend is already finished.

Some of the key features of this system include:

  • Full gamepad and keyboard navigation

  • Multi-mode widgets allowing interaction as a dropdown or a toggle box

  • A multi-function widget enabling reusable logic across sliders, combo boxes, toggles, etc.

  • Real-time graphics previews, allowing contextual visualization of current settings in combination with all other settings

  • Detailed descriptions of each setting, including warnings where applicable

  • Hardware impact specifications and VRAM consumption stats to better inform end users of the effect of each setting

  • Settings that go beyond Unreal’s built-in game user settings, allowing individual settings to be adjusted for fine-tuned performance

  • Support for supersampling and all current image filtering technologies, including DLSS 4, XeSS, and FSR 4

I am currently in the late technical stages of development and will be moving to artistic polish very soon. I am announcing this now in hopes of receiving feedback and feature requests. I have linked my Discord if you’re interested in chatting. Have a nice day!

Development Discord: https://discord.gg/KcneAeMAtm

1 Like

pretty cool work.

some questions does it :

  • allow to change the icons based on the last input used? (e.g. when changing from kb to joystick, can i change my icons to joystick).
  • can you have modal dialogs ?
  • is it built on top of slate/umg? can it interact with umg?
  • how do you edit the ui?

keep it up !

Hey, sorry for the late reply.

  • I had a custom system for input icon switching, but once I moved to UE5 I switched it out for Common UI since it’s native to the engine. It’s the only aspect of this system that relies on Common UI, so yes this supports dynamic prop switching.

  • I haven’t finished with the modal dialogs yet. Setting confirmations is the only time I intend on using them, since I’m not a fan of forcing users to interact twice. But yes, modal dialogs are a thing and may or may not make it into version 1.0.

  • This is all built upon UMG and is totally customizable. I did my best to keep as much logic as possible in Blueprint to simplify it for non-C++ users. There are small aspects that utilize C++, but that’s all piped through user-friendly Blueprints.

  • The UI is edited like any other widget built in UMG. As for the options, they are currently handled by a list of custom widgets with data bindings based on a struct. In the future I’ll probably find a way to make this more hard-data driven, but this works and is fairly intuitive.

1 Like

Hey! I’ve been hailing on updates since my last post. Since then, I’ve added a ton from preview updates to WIP UI unification, better gamepad support, hover support for disabled widgets, ray-traced transparent reflection, UI optimization, foliage, volumetric clouds, water, terrain, and more. I’m aiming for a release by mid-October let’s see if I make it. I’m open to feedback and feature requests, especially regarding UI polish, as that’s my current focus.

Also, feel free to join my Discord, as that’s where I’m more active.
discord.gg/KcneAeMAtm


1 Like

Finally got saving and loading fully integrated with my custom INI system. Values can now be fully read from the INI while still being readable for end-user tweaking.

Finally got proper fetching of display mode and GPU info working. This required parsing the data directly out of the Windows registry, which totally worked perfectly on the first try!

This has resulted in better defaults when creating the INI file for the first time—a big win, since I hate when games default to the wrong screen and resolution. It also had a knock-on effect of improving defaults displayed in the UI. For example, for framerate limit, your current refresh rate is now used as the default. Tab location is used as a reference, and your primary GPU and display are always set as the defaults.

I’ve also added support for size enforcement when using sliders, so values can never be invalid—even when interacting with the mouse. Buttons now work in all modes to step the slider, improving the experience of finding exact values with a mouse. Slider materials now also properly account for the minimum value when setting the material location, fixing an issue where the handle was in the wrong position for large settings like HDR nits.

On top of that, I’ve implemented vignetting, chromatic aberration, and material quality settings. Most of the work for dynamic resolution is also finished, but it didn’t make it into this update.

I’ve also done a ton of behind-the-scenes work to simplify styling, though that’s hard to show until the full art pass.

Development Discord: https://discord.gg/KcneAeMAtm

Here’s a quick update on the project sorry for the big gap between posts! I’ve been busy porting everything over to Common UI and rebuilding the master widget to be fully data-driven. Until last night I couldn’t even run the menu, so I didn’t have much I could show.

This update includes a ton of changes, the biggest being the full migration to Common UI. This ended up being necessary for proper styling building a full styling system from scratch just didn’t make sense. Now every piece of UI text, buttons, prompts, and more is built on Common UI. Even the notoriously ugly combo box is now fully using Common UI (though it did have a small style regression, which I’m working on fixing).

More importantly, all options now pull their data from a data asset instead of being defined directly on the widget. This makes iteration much faster and debugging far simpler, which matters a lot when you’re dealing with 100+ settings like I am.

Internally, the combo box has also been migrated from string-based options to key-based options. Each option now tracks a struct containing its short name, full name, and other metadata. This gives a ton of flexibility for example, the dropdown can display “FXAA” while the details panel shows “Fast Approximate Anti-Aliasing,” which would be too long for the dropdown. Since the display text and data are decoupled, everything is now fully localizable. And because the combo box’s content is using Common UI as well, the text can be styled like any other widget.

I’ll have more updates soon and hopefully much more frequently. If you want to get in touch or follow development more closely, feel free to join the Discord. Have a great day!

Development Discord: https://discord.gg/KcneAeMAtm

Looks great – when will it be available on the Fab store?

Keep up the amazing work.

I have no solid ETA. I am currently just hacking Common UI into Combo Boxes and Editable Text and ensuring that future updates don’t break compatibility once I release 1.0. Once this is complete, I just need to make some good demo assets that don’t rely on any third-party assets. Then I think things will be about ready for launch.

I am shooting for a late December or January 2026 release. Things are going well; I just need to work out a few last things.

1 Like

So, as per usual, it’s taken longer than expected, but the remaining two UMG widgets that didn’t support Common UI natively those being the Combo Box and Editable Text now support reading styling data from Common UI data assets, such as font settings, button brushes, etc.

This concludes the main Common UI push for NGS, meaning it’s time to polish some of the navigation logic and fix a few bugs. After that, it’s on to actual styling and a full art pass.

The Combo Box uses a lot of hacks and workarounds, but this version allows you to use individual common button style assets for each entry. Sound effects, text styles, etc., all work like any other common button, with user-specified style assets for Even, Odd, and Selected items, as well as style extraction for the main widget that’s shown before the widget options.

The Editable Text also supports reading common text styles for fonts and colors, with more improvements coming down the road.

Overall, this has taken a while to complete, but it gives an immense amount of user control over the styling of the system. I look forward to feedback once beta testing opens.

Also, something about changing the font in one location and having everything read from it just never gets old.

Join the development Discord for more frequent updates, and hopefully there will be a beta available on Patreon soon.

Development Discord: JohnLogostini Development

1 Like

Looks amazing!

Thanks

So as a test to see how versatile my last month of styling logic was, I tried to remake the main menu from Mafia: The Old Country, and the results turned out surprisingly good. There’s some additional work that this made me aware of, but overall I was able to successfully match the styling for the most part in just one day, which is awesome because I’ve spent the last month making the system more styleable.