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
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.