Example Project
The example project contains a fully configured menu showing off a typical integration of the plugin.
Critical Requirement
You MUST download the correct example project version for your plugin.
Using the wrong example project for your plugin can result in errors.
Quick Setup
1. Find Your Plugin Version
Edit → Plugins → "Auto Settings" → Note the version number
2. Choose the Correct Project Version
Use the example project that matches your plugin version, or if that doesn't exist, the next lowest version.
Example: Plugin 1.2.1 → Use Example Project 1.2 (since 1.2.1 doesn't exist)
View complete compatibility table →
3. Download and Test
- Download the compatible version from: All example project versions
- Extract and open the example project
- Test: Play in editor, press E for settings menu, verify it works
Migrating assets from the example project
If you want to use assets or the entire menu from the example project, you can migrate them to your own project.
The entire process is shown in this video
- With your own project closed, copy the
[/Script/AutoSettings.AutoSettingsConfig]
category in the following config file, including all of its entries, from the example project to your own.- If UE 4.20 or later: Config/DefaultGame.ini
- If UE 4.19 or earlier: Config/DefaultEditorPerProjectUserSettings.ini
- Also copy tag definitions in Config/DefaultGameplayTags.ini to your own project.
- In the example project, right click and Migrate the SettingsUI widget to your project. This will also copy all of the styled widgets that are used.
- Also migrate the ButtonIcons directory if you want to use the icons from the example project.
- Open your project and ensure the AutoSettings plugin is enabled
- Place the SettingsUI widget in your existing menu or add a way to open it. (See the DemoPlayerController Blueprint in the Example Project)
- Configure inputs on the InputSettingsPage for the input actions and axes in your own project.
Example project custom settings and CVars
While the example project exposes a lot of CVars that are part of Unreal Engine by default (such as the scalability settings), the following settings in the example project are game-specific and not part of Unreal Engine by default, so if you want to use any of them in your own project the functionality needs to be integrated, otherwise the settings in the UI won't do anything.
These are all implemented in the example project for demonstration purposes and are not required to use the plugin, they are fully optional.
All of the different custom CVars in the example project are registered in the DemoGameInstance Blueprint. Some of them are also implemented in DemoGameInstance, and some in other Blueprints.
View documentation about registering and implementing custom CVars here
Audio Levels
CVars: GameAudio.MasterVolume
, GameAudio.MusicVolume
, GameAudio.SFXVolume
Implemented in: DemoGameInstance
These settings are an example of how to control audio levels. Your project might have different categories, but the fundamentals will be the same. They need to be hooked up to the appropriate Sound Class and Sound Mix assets for your project. Read more about audio levels
Icon Set
CVar: Game.IconSet
Implemented in: DemoGameInstance
This setting globally controls the key icon sets used for the game, using the Auto Settings input systems. This can be used to allow PC players to choose what type of Gamepad icons they see.
Sensitivity
CVar: Input.Sensitivity
Implemented in: DemoPlayerController
This setting controls input sensitivity by setting Input Scale variables on the Player Controller.
Field of View
CVar: Camera.FOV
Implemented in: DemoCharacter
This settings controls Field of View on the Character's camera. If you have multiple cameras on different Blueprints, you may want to apply the FOV settings to each of them, or on a base class, or use separate settings. (For example, you could have a Vehicle FOV setting as well)
Character debug settings
CVars: Character.GravityScale
, Character.WalkSpeed
Implemented in: DemoCharacter
These are example settings showing how control arbitrary gameplay variables. You likely wouldn't want these in your own project unless they are for debugging.