> For the complete documentation index, see [llms.txt](https://docs.msquared.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.msquared.io/creation/unreal-development/features-and-tutorials/player-profile-data-providers.md).

# Player Profile Data Providers

{% hint style="success" %}
verified: 2025-12-04 version: 1.0
{% endhint %}

The Morpheus platform by default stores a limited set of data about each player (the "player profile"), and provides built in functions to get and set this data. This data is currently limited to:

* Player Display Name
* MML Avatar URL
* User ID (get only)

Use an `M2_WebServicesProfileDataProvider` to get and set this data, and to configure exactly how the data is stored.

See `WBP_M2Example_SettingsMenu` for an example of loading and saving the player name and avatar.

## Configuring a Profile Data Provider

Profile data is just a series of key-value pairs. The default Morpheus implementation is in `BP_M2_ProfileDataProvider` and uses the `M2_KVStoreService` to store data.

The default data provider can be changed in the World Settings by providing your own child blueprint of `M2_WebServicesProfileDataProvider` and overriding the relevant functions. See `BP_M2_ProfileDataProvider` as a reference implementation.

<figure><img src="/files/vLrZuufUgytfFt87iHlQ" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/x37QqrHSBpNDHrPeVD0A" alt=""><figcaption></figcaption></figure>

## Accessing profile data

Get the `M2_WebServicesProfileDataProvider` world service to access profile data:

<figure><img src="/files/gUF42fuinZmCIAtuxPED" alt=""><figcaption></figcaption></figure>

The profile data is loaded as part of bootflow, so the `HasProfileBeenLoaded` check is only necessary if called before bootflow completes.

The `LocalUserIndex` will usually be `0` (this exists to support e.g. multiple bots running on the same client)

## Saving profile data

To save new name and avatar data, use the `M2_WebServicesProfileDataProvider` world service again:

<figure><img src="/files/GzCOvJP5fLzM1SrD6DOG" alt=""><figcaption></figcaption></figure>
