PROTO Profiles & Options

This is a list of all public, Blueprint-exposed functions in the Proto Profiles Subsystem.

The Subsystem is the primary point of entry for all operations you need to do to manage saved data.

Note on Per-Type Functions

There are many duplicate functions per-savefield-type. E.G. GetSavefieldInt, GetSavefieldFloat, GetSavefieldString, etc.

There are also generic versions of these functions as well, which use the FProtoSavefieldSetting struct to store any type of Savefield data. For these, Blueprints must use utility functions to convert between FProtoSavefieldSetting and individual types.

General Functions

Click the categories below to expand their lists.

LoadAllGlobalCategories

Load all Global Categories from file and revert all current settings to those values.

Note: Global Savefields are loaded automatically when the engine boots. You only need to use this function if you're doing something advanced.

LoadGlobalCategory

Load the given Global Category from file and revert all current settings to those values.

Note: Global Savefields are loaded automatically when the engine boots. You only need to use this function if you're doing something advanced.

SaveAllGlobalCategories

Save all Global Savefield Categories to file.

SaveAllGlobalCategories_Async

Asynchronously save all Global Savefield Categories to file.

You CAN access Global Categories while the async save is in progress.

You can NOT save again while the async save is in progress.

SaveGlobalCategory

Save the given Category of Global Savefields to file.

SaveGlobalCategory_Async

Asynchronously Save the given Category of Global Savefields to file.

You CAN access the Category while the async save is in progress.

You can NOT save the Category again while the async save is in progress.

CommitAllGlobalCategories

Commit all Global Categories' Savefields' current settings, applying them to the game but not yet saving them to-file.

CommitGlobalCategory

Commit all Savefields' current settings in a Global Category, applying them to the game but not yet saving them to-file.

RevertAllGlobalCategories

Revert any unsaved changes to all Savefields in all Global Categories back to the last value saved to-file.

If changes were committed, they will be un-commiting.

RevertGlobalCategory

Revert any unsaved changes to all Savefields in a Global Category back to the last value saved to-file.

If changes were committed, they will be un-commiting.

DoesProfileSaveExist

Returns true if any categories are saved for a profile of the given name.

DoesProfileCategorySaveExist

Returns true if the given category is saved for a profile of the given name.

GetAllSavedProfiles

Returns a list of all profiles names with saves.

This will return profiles that have ANY category saved, not necessary all.

Note: potentially a SLOW operation, will cache data to speed up subsequent lookups.

GetAllSavedProfilesForCategory

Returns a list of all profiles names with saves for the given category.

Note: potentially a SLOW operation, will cache data to speed up subsequent lookups.

GetNewNumberedProfileName

Returns a new generic numbered profile name. Use with SaveProfileAs, if you want to let users save any number of save files.

Returns the next numbered name that will be unique for ALL categories in this profile.

If ALL your profile categories need to stay in-sync across the same profile name, use this. If not, consider using GetNewNumberedProfileNameForCategory instead.

Note: potentially a SLOW operation, will cache data to speed up subsequent lookups of existing profile names.

GetNewNumberedProfileNameForCategory

Returns a new generic numbered profile name, for the given category. Use with SaveProfileCategoryAs, if you want to let users save any number of save files.

Note: The name may NOT be new when compared to OTHER profile categories.

If ALL your profile categories need to stay in-sync across the same profile name, consider using GetNewNumberedProfileName instead.

Note: potentially a SLOW operation, will cache data to speed up subsequent lookups of existing profile names.

OpenProfile

For a given Profile, open all Profile Categories to work with (and loads settings from file if previously saved)

Note: Be careful with this function. If your project saves unrelated types of data to different Profile Categories, you probably do not want to use this, and want to use OpenProfileCategory instead.

Use this to create a new Profile save, AND open a previously saved one.

Will not save anything to file! Must call SaveProfileSavefields or SaveProfileSavefieldsCategory to save to file after loading.

Returns Success if ALL Categories open successfully. If the operation is not successful, some Categories may still be open, and you should probably call CloseProfile.

OpenProfile_Async

For a given Profile, Asynchronously open all Profile Categories to work with (and loads settings from file if previously saved).

See comment for OpenProfile.

You can NOT access this Profile's Categories while the async open is in progress.

OpenProfileCategory

For a given Profile, open the given Category to work with (and loads settings from file if previously saved).

Use this to create a new Profile Category save, AND open a previously saved one.

Will not save anything to file! Must call SaveProfileSavefields or SaveProfileSavefieldsCategory to save to file after loading.

Returns Success the Category opened successfully, or if the Category was already open.

OpenProfileCategory_Async

For a given Profile, Asynchronously open the given Category to work with (and loads settings from file if previously saved).

See comment for OpenProfileCategory.

You can NOT access this Profile while the async open is in progress.

SaveProfile

For a given open Profile, save all open Categories to file.

SaveProfile_Async

Asynchronously save all open Categories to file, for a given open Profile.

You CAN access this Profile's Categories while the async save is in progress.

You can NOT save this Profile's Categories while the async save is in progress.

SaveProfileCategory

For a given open Profile, save the given open Category to file

SaveProfileCategory_Async

Asynchronously Save a given open Category to file, for the given open Profile.

You CAN access the Category while the async save is in progress.

You can NOT save the Category again while the async save is in progress.

LoadProfile

Load all Categories from file for the given Profile and revert all current settings to those values.

Note: Opening a Profile automatically Loads, you don't normally need to call this.

Returns Success if ANY Categories loaded a save file successfully.

LoadProfile_Async

Asynchronously load all Categories from file for the given Profile and revert all current settings to those values.

Note: Opening a Profile automatically Loads, you don't normally need to call this.

You can NOT access this Profile while the async load is in progress.

Reports success if ANY Categories successfully load from a file.

LoadProfileCategory

Load all Savefields from file for the given Category and revert all current settings to those values.

Note: Opening a Profile Category automatically Loads, you don't normally need to call this.

Returns Success if a file was loaded successfully.

LoadProfileCategory_Async

Asynchronously load all Savefields from file for the given Category and revert all current settings to those values.

Note: Opening a Profile Category automatically Loads, you don't normally need to call this.

You can NOT access this Category while the async load is in progress.

CloseProfile

Close all Categories that have been opened for a given Profile.

Does NOT save!

To access this data again, you must call OpenProfileSavefields or OpenProfileSavefieldsCategory.

Not strictly necessary to call, but use this to shut down Profiles you are no longer using.

CloseProfileCategory

Close the given Category that has been opened for a given Profile.

Does NOT save!

To access this data again, you must call OpenProfileSavefields or OpenProfileSavefieldsCategory.

Not strictly necessary to call, but use this to shut down Profile Categories you are no longer using.

DeleteProfile

Delete all Category save files for a given Profile, and closes any that are open.

DeleteProfileCategory

Delete the given Category save file for a given Profile, and closes it if open.

CommitProfile

Commit all Global Categories' Savefields' current settings, applying them to the game but not yet saving them to-file.

CommitProfileCategory

Commit all Savefields' current settings in a Global Category, applying them to the game but not yet saving them to-file.

RevertProfile

Revert any unsaved changes to all Savefields in all Global Categories back to the last value saved to-file.

If changes were committed, they will be un-commiting.

RevertProfileCategory

Revert any unsaved changes to all Savefields in a Global Category back to the last value saved to-file.

If changes were committed, they will be un-commiting.

CopyProfile

Copy all Category saves (that are saved to file) for a given Profile, and saves them for a new Profile.

To access the new profile saves, you must call OpenProfileSavefields or OpenProfileSavefieldsCategory.

CopyProfileCategory

Copy a given Category save (if it's saved to file) for a given Profile, and saves it for a new Profile.

To access the new profile save, you must call OpenProfileSavefields or OpenProfileSavefieldsCategory.

GetProfileCategorySaveFileName

Get the file name that would be used for a given Profile's given Category.

Note: a save file does not need to exist to use this!

ClearCachedProfileSaveNames

Clears the cache of previously looked-up profile save names.

Very unlikely you will ever need to call this.

Should only be necessary if you are manually saving .sav files outside the ProtoSavefields system.

GetSavefieldsDataTableForCategory

Get the full map of Savefields Data for the given category.

GetSubCategoriesForCategory

Get the Sub-Category data for the given Category.

Returns true if successfully retrieved and the Category had at least 1 Sub-Category defined.

IsSavefieldInCategory

Returns true if a Savefield with the given name is present in the given Category.

GetSavefieldsBySubCategory

Get a map of Savefields by Sub-Category for a given Category.

GetWidgetDataBySubCategory

Get Widget Data (divided by Sub-Category) for a given Category.

GetProfileWidgetDataBySubCategory

Get Widget Data (divided by subcategory) for a given Profile Category, for a given open Profile.

GetGlobalCategoryData

Get a map containing all Global Categories' Data, keyed by their Names.

This is the static data defined in DataTables, not the settings of any Savefields.

GetProfileCategoryData

Get a map containing all Profile Categories' Data, keyed by their Names.

This is the static data defined in DataTables, not the settings of any Savefields.

You can always access this data, even if a Profile is not open.

Savefield Functions

Click the categories below to expand their lists.

GetSavefield

Get an Savefield's current setting (of any type).

Blueprints must use utility functions to convert between FProtoSavefieldGenericSetting and individual types.

GetSavefieldArray

Get an Array Savefield's current settings (of any type).

Blueprints must use utility functions to convert between FProtoSavefieldGenericSetting and individual types.

SetSavefield

Set an Savefield's current setting (of any type).

Blueprints must use utility functions to convert between FProtoSavefieldGenericSetting and individual types.

CommitSavefield

Commit an Savefield's current setting, applying it to the game but not yet saving it to-file.

RevertSavefield

Revert any unsaved changes to the given Savefield back to the last value saved to-file.

If changes were committed, they will be un-commited.

BindToSavefieldChanged

Bind a handler to a Savefield changing.</i>

UnBindToSavefieldChanged

Un-bind all handlers to a Savefield changing for a given object.

SetSavefieldVisibilityInMenu

Set the given Savefield's visibility and editability in menus.

Only valid to call on Savefields that can appear in menus.

Note: If the Savefield is disabled in response to another Savefield's setting, this will not override that behavior.

GetSavefieldArrayNumEntries

Get a single Array Savefield's number of entries.

Returns true if data was successfully retrieved.

GetSavefieldData

Get a single Savefield's Data.

Returns true if data was successfully retrieved.

GetSavefieldInt

Get an int Savefield's current setting.

GetSavefieldIntArray

Get an int Array Savefield's current settings.

SetSavefieldInt

Set an int Savefield's current setting.

GetSavefieldIntRange

Get an int Savefield's min and max value.

If it uses DiscreteSettings, this will be 0 to the number of settings minus 1.

If it uses MinMax, this will be the defined min and max.

BindToSavefieldIntChanged

Bind a handler to an int Savefield changing.

UnBindToSavefieldIntChanged

Un-bind all handlers to an int Savefield changing for a given object.

RefreshSavefieldIntFromGameUserSettings

Update the given Int Savefield with its current value in Game User Settings.

Potentially useful for values like Screen Resolution which can be modified outside of an options menu.

GetSavefieldFloat

Get a float Savefield's current setting.

GetSavefieldFloatArray

Get a float Array Savefield's current settings.

SetSavefieldFloat

Set a float Savefield's current setting.

GetSavefieldFloatRange

Get a float Savefield's min and max value.

BindToSavefieldFloatChanged

Bind a handler to a float Savefield changing.

UnBindToSavefieldFloatChanged

Un-bind all handlers to a float Savefield changing for a given object.

RefreshSavefieldFloatFromGameUserSettings

Update the given Int Savefield with its current value in Game User Settings.

GetSavefieldString

Get a String Savefield's current setting.

GetSavefieldStringArray

Get a String Array Savefield's current settings.

SetSavefieldString

Set a String Savefield's current setting.

GetSavefieldStringRange

Get a String Savefield's min and max length.

BindToSavefieldStringChanged

Bind a handler to a String Savefield changing.

UnBindToSavefieldStringChanged

Un-bind all handlers to a String Savefield changing for a given object.

GetSavefieldIntPoint

Get an IntPoint Savefield's current setting.

GetSavefieldIntPointArray

Get an IntPoint Array Savefield's current settings.

SetSavefieldIntPoint

Set an IntPoint Savefield's current setting.

GetSavefieldIntPointRange

Get an IntPoint Savefield's min and max value.

Note: Both integers in the pair have the same range.

BindToSavefieldIntPointChanged

Bind a handler to an IntPoint Savefield changing.

UnBindToSavefieldIntPointChanged

Un-bind all handlers to an IntPoint Savefield changing for a given object.

RefreshSavefieldIntPointFromGameUserSettings

Update the given IntPoint Savefield with its current value in Game User Settings.

Potentially useful for values like Screen Resolution which can be modified outside of an options menu.

GetSavefieldBool

Get a bool Savefield's current setting.

GetSavefieldBoolArray

Get a bool Array Savefield's current settings.

SetSavefieldBool

Set a bool Savefield's current setting.

BindToSavefieldBoolChanged

Bind a handler to a bool Savefield changing.

UnBindToSavefieldBoolChanged

Un-bind all handlers to a bool Savefield changing for a given object.

GetSavefieldVector

Get a Vector Savefield's current setting.

GetSavefieldVectorArray

Get a Vector Array Savefield's current settings.

SetSavefieldVector

Set a Vector Savefield's current setting.

BindToSavefieldVectorChanged

Bind a handler to a Vector Savefield changing.

UnBindToSavefieldVectorChanged

Un-bind all handlers to a Vector Savefield changing for a given object.

GetSavefieldCustomSaveObject

Get a CustomSaveObject Savefield's current setting.

GetSavefieldCustomSaveObjectArray

Get a CustomSaveObject Array Savefield's current settings.

SetSavefieldCustomSaveObject

Set a CustomSaveObject Savefield's current setting.

BindToSavefieldCustomSaveObjectChanged

Bind a handler to a CustomSaveObject Savefield changing.

UnBindToSavefieldCustomSaveObjectChanged

Un-bind all handlers to a CustomSaveObject Savefield changing for a given object.