Auto Settings 2.0.0-beta.1
Auto Settings 2 contains significant changes across the board. It's very compatibility-breaking and it would be wise to consider it a completely new plugin that would require integration almost from scratch.
If you're interested in trying this beta release, get it through Fab Additional Files using the Downloads flow.
Auto Settings 2 does not support legacy input in Unreal.
Support for beta versions is limited, and they are not recommended for shipping.
Fully reworked modular settings framework
The core of the plugin has been fully reworked into a new modular framework. The same functionality as Auto Settings 1 is still possible, but it's now a lot more flexible and easier to configure to a game's specific needs.
- Projects can define Setting Type classes to control the functionality of one or more settings.
- Setting Types can specify strategies to control how the settings that use them are applied and persisted.
- Each individual setting is uniquely represented by a Setting Key. There can be many individual Setting Keys for different settings under a single Setting Type.
- Setting Keys are hierarchical, similar to Gameplay Tags, which can be used to group settings.
- Widgets that are placed in the UI are bound to these Setting Types or Setting Keys, rather than directly to Console Variables like the old system.
- Setting Application Strategy controls how settings are applied. The default strategy uses console variables to apply settings, which is the same behavior as Auto Settings 1.
- Setting Storage Strategy controls how settings are saved and loaded. The default strategy uses config files to save settings, which is the same behavior as Auto Settings 1.
- Setting Registries are a new feature that allow multiple of the same setting to exist in different contexts and scopes.
- Setting Registries allow a project to separate player-specific settings that may need to apply to individual local or splitscreen players, such as input mappings. By default, there is a Global Registry for settings like video and audio settings, and registry for each local player to manage that player's settings.
- Default values for all settings are tracked automatically, and individual settings can now be easily reset to their default values.
Reworked input mappings
The previous input mapping system has been deprecated and input mappings are now handled by the new settings framework.
- Input mappings now support Enhanced Input. (Legacy input is no longer supported.)
- Input mappings are now Settings as part of the new settings framework.
- Input mapping settings use the Input Mapping Application Strategy, which applies the mapping to the player's Enhanced Input mappings. This should help input mappings feel more consistent with the rest of the settings in the plugin, giving them the many of the same features and API instead of a completely separate system like they were in Auto Settings 1
- Added a Rich Text Block decorator that allows text to be dynamically substituted with button icons representing actions or specific keys at runtime.
- The Input Mapping Setting widget (previously Action Input Mapping / Axis Input Mapping + Bind Capture Button widgets) now uses an input processor to listen for inputs. This should be more consistent and less prone to interference from Slate Focus and Game UI mode, and other input systems such as CommonUI.
- The Input Mapping Setting listening state no longer requires a prompt widget to be created, as the listening logic is now decoupled from the UI representation.
- The plugin now contains an option in the project settings to invert the right gamepad thumbstick vertical axis, in order to reverse the inversion that Unreal applies to it by default. This is intended to help with consistency when allowing thumbsticks to be remapped between different actions.
Console Variable Classes
Auto Settings 2 includes a new feature for Console Variable Classes.
- Console Variable Classes can be created in Blueprint which can auto-register console variables and manage their logic, more closely reflecting how console variables are authored in c++.
- Because they are discovered and registered by the plugin, this can be controlled more reliably than using the GameInstance Init function which was the approach in Auto Settings 1.
- The functions to register console variables manually still exist, but using Console Variable Classes are the new recommended way in Auto Settings 2.
CommonUI integration
The plugin now contains an optional integration with the CommonUI plugin that will enable itself automatically if CommonUI is.
- AutoSettings will integrate with controller data and button icons from CommonUI.
- The integration contains a Button Group Setting. (Similar to the Radio Select setting from 1.x)
- Various other minor utilities to integrate with CommonUI are also included Note: The plugin will still operate without CommonUI, but certain features won't be enabled.
All new example menu
The example project for Auto Settings 2 contains an new demo menu with various improvements over the original.
- The UI is built on CommonUI, providing a foundation which is more likely to be directly compatible with other projects.
- Full gamepad navigation is now supported.
- The project contains a custom "Overall Scalability" setting controlling all of the other scalability settings, which is a common requirement for games.
- Settings can be individually reset to their default values.
- Input mapping conflicts now open a dialog prompting how the user would like to resolve it.
- Controller and keyboard/mouse controls are now separated into different tabs.