> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PFMultiplayerInitialize

> Reference for PFMultiplayerInitialize, which creates and initializes an instance of the PlayFab Multiplayer C/C++ library for lobby and matchmaking use.

Initializes an instance of the PlayFab Multiplayer library.

## Syntax

```cpp theme={null}
HRESULT PFMultiplayerInitialize(  
    const char* playFabTitleId,  
    PFMultiplayerHandle* handle  
)  
```

### Parameters

**`playFabTitleId`**   char\*\
*is null-terminated*

The app's PlayFab Title ID.

**`handle`**   PFMultiplayerHandle\*\
*library-allocated output*

The output handle of the newly initialized PFMultiplayer API instance.

### Return value

Type: HRESULT

`S_OK` if the call succeeded or an error code otherwise. The human-readable form of the error code can be retrieved via [PFMultiplayerGetErrorMessage()](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayergeterrormessage).

## Remarks

This must be called before any other method, aside from [PFMultiplayerSetMemoryCallbacks()](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetmemorycallbacks), and [PFMultiplayerSetThreadAffinityMask()](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetthreadaffinitymask). PFMultiplayerInitialize() cannot be called again without a subsequent [PFMultiplayerUninitialize()](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayeruninitialize) call. <br /><br /> Every call to PFMultiplayerInitialize() should have a corresponding PFMultiplayerUninitialize() call.   <br /><br /> Apps using the Microsoft Game Core version of the Multiplayer library will need to wait for the Game Core Networking stack to be initialized prior to calling this method. Determining the status of the network stack can be done using the Game Core XNetworkingGetConnectivityHint API.   <br /><br /> The provided `playFabTitleId` must be the same PlayFab Title ID used to acquire the PlayFab Entity Keys and Entity Tokens that will be passed to [PFMultiplayerSetEntityToken()](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetentitytoken).

## Requirements

**Header:** PFMultiplayer.h

## See also

[PFMultiplayer members](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/pfmultiplayer_members)\
[PFMultiplayerSetEntityToken](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetentitytoken)\
[PFMultiplayerUninitialize](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayeruninitialize)\
[PFMultiplayerSetMemoryCallbacks](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetmemorycallbacks)\
[PFMultiplayerSetThreadAffinityMask](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetthreadaffinitymask)


## Related topics

- [PFMultiplayerUninitialize](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayeruninitialize.md)
- [PFMultiplayerSetThreadAffinityMask](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetthreadaffinitymask.md)
- [PFMultiplayerSetEntityToken](/services/playfab/multiplayer/lobby/playfabmultiplayerreference-cpp/pfmultiplayer/functions/pfmultiplayersetentitytoken.md)
- [Lobby SDK Quickstart](/services/playfab/multiplayer/lobby/lobby-getting-started.md)
- [Matchmaking SDK quickstart](/services/playfab/multiplayer/matchmaking/quickstart-client-sdk.md)
