Changelog
1.0
1.1
- Added a way to return the current state of an achievement.
- Added labels to achievement structs in the project settings menu.
1.2
- Added an editor combo box to the achievement unlock/progress nodes. Prevents the entering of an invalid key.
- Added a way for developers to override the UI representation of an achievement.
- Added a fix which prevents a crash when adding new achievements and failing to delete save data.
- Fixed an issue where animations would not play on some engine versions.
1.3
- Fixed an issue where the saved progress variable is not initialized correctly.
- Added an option to limit the number of decimal places on a
UIAchievement
.
1.4
- Fixed an issue where sound is not included in packaged games.
- Fixed an issue where the achievement UI does not spawn when switching scenes.
1.5
- Fixed an issue with Android builds.
1.6
- Fixed a crash when using a
NotificationFrequency
of 0.
1.7
- Added settings for customizing
UIAchievement
, achieved/unachieved text.
- Added an option to display progress achievement values as integers.
- Updated to engine version 4.27.
1.8
- Fixed custom achievement class not being used in the achievement list.
1.9
- Added build support for IOS, TVOS, Switch, and HTML5.
- Added blueprint bindable unlock/progress update events.
1.9.1
- Fixed crash when placing
AchievementProgressList
or AchievementProgressDetails
.
1.10
- Full localization support.
- New padding, margin, spacing, and notification positioning options.
- Achievement tags / filtering options.
- Custom achievement notification providers.
- Highscore option for progress achievement.
- Added a rounded edge version of the default achievement.
- Bug fixes and documentation improvements.
SetValue
for the AchievementUI
widget is now virtual and can be overridden in C++ or in a child blueprint.
- Achievement system settings have also been exposed to blueprints. This can be retrieved with the
GetSetting
function.
- New functions for retrieving achievement information:
FAchievementData GetAchievementDataByKey(FName Key, bool& FoundAchievement);
TArray<FAchievementData> GetAllAchievementData();
TArray<FAchievementData> GetAllAchievementDataWithTag(FName Tag);
TArray<FName> GetUniqueTags();
int32 GetAchievedCountWithTag(FName Tag);
int32 GetAchievementCountWithTag(FName Tag);
float GetAchievedPercentageWithTag(FName Tag);
UAchievementSystemSettings* UAchievementSubSystem::GetSettings();
1.11
- New save format:
- Allows achievements to be added and removed after release without losing save data.
- Includes auto migration of the old save format.
- Added an editor combo box to the tags.
- Reduced unnecessary copying for structs during function calls.
- Added
GetAchievementStateDisplayData
and GetAchievementDisplayData
for debugging structs in blueprints.
Roadmap
- Options to sync with
OnlineSubSystem
. This change would enable support for Steam, EGS, and consoles.
- Improved custom editor for the settings page.
- Pagination options for the achievement list.
- Global scaling options for the built-in notification provider.