# Meta Quest Setup

{% hint style="warning" %}
Before starting, you must have completed the basic setup. See [](https://mirrorvr.gitbook.io/docs/manual/getting-started "mention") for basic setup.
{% endhint %}

Meta Quest is one of the most used platforms for VR, so there's no doubt that you'll probably want to add support for it. So, here's a guide on how to add Meta Quest Support to your MirrorVR game!

{% stepper %}
{% step %}
First things first, go to the [Oculus Developer Dashboard](https://developer.oculus.com/manage/), make an organization if you haven't, and then make a new app with the platform as "Meta Horizon Store". \
\
If you didn't have an organization before, you will need to verify your identity before you can publish. If you are just a normal person with no business records, just go with admin verification. If you do have business documents related to your organization, then you can do business verification.&#x20;

{% hint style="info" %}
Your legal name in the [Meta Accounts Center](https://accountscenter.meta.com/accounts) MUST match the name on the ID if doing admin verification.
{% endhint %}

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FvYzQdiTaAjoCF62ID4WA%2Fimage.png?alt=media&#x26;token=4a920ff0-10db-4a78-81b2-87b0b19226e9" alt=""><figcaption></figcaption></figure>

{% endstep %}

{% step %}
Let's hold on to the Meta Dashboard for a second. Go back to your Unity Project.\
Install the [Meta XR Core SDK](https://assetstore.unity.com/packages/tools/integration/meta-xr-core-sdk-269169) and the [Meta XR Platform SDK](https://assetstore.unity.com/packages/tools/integration/meta-xr-platform-sdk-262366) into your project.

Once done, go to your project again and at the top, click on `Meta > Platform >` \
`Edit Settings`.&#x20;

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FEOEUj1BJrFhYEg3JbsKY%2Fimage.png?alt=media&#x26;token=1fdafb29-5112-4f82-b26c-cc6ae72493d3" alt=""><figcaption></figcaption></figure>

{% endstep %}

{% step %}
Let's add your App IDs. Go back to your Meta app in your browser. On the left-hand sidebar, go under `Development > API`.&#x20;

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FQEatrH0lUvehmnwDdbph%2Fimage.png?alt=media&#x26;token=294d00cd-0488-4f81-8da7-b9203d234ee0" alt=""><figcaption></figcaption></figure>

Here is where all of your App IDs are. Go down to the App ID header, copy your app ID, and paste it in both the Oculus Rift and Meta Quest App ID fields in the settings. \
\
Make sure you also enable the `Use Standalone Platform` and `Use Meta Quest App ID over Rift App ID` boxes.

{% hint style="danger" %}
**DO NOT** share these IDs with **ANYONE**! The App Secret **alone** can give hackers access to many things you wouldn't want.
{% endhint %}

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FJLqu5l2XQfQnIWwHMTtZ%2Fimage.png?alt=media&#x26;token=cd43ccf6-a8e7-47ff-931b-186a0957a3de" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
Note that App IDs and Federated App IDs are two different things! Make sure you use the *App ID,* not the *Federated App ID*!
{% endhint %}

{% endstep %}

{% step %}
Now your Platform Settings should look something like this:

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FR5JHnGqzbStwcDSsKM0R%2Fimage.png?alt=media&#x26;token=c175190a-4de3-40a7-bc32-6d868585bc76" alt=""><figcaption></figcaption></figure>

Now, the big error box, how do we fix that, you may ask. Easy! Go back to your browser, and on the left-hand sidebar, go to the tab just below API, which should be called "Test Users".

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FdhTBxQjCdgOJkPtHE0Fy%2Fimage.png?alt=media&#x26;token=2a4fb33d-313a-40bb-bc4f-826c4448df43" alt=""><figcaption></figcaption></figure>

Then go to the top right and hit the `Add Test User` button.\
Go ahead and fill out all details.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FhRSmIIWlsY1kHtnUVew9%2Fimage.png?alt=media&#x26;token=150e8e54-befa-4a24-a3b2-bc0b0315cd51" alt=""><figcaption></figcaption></figure>

Then hit submit at the bottom right and wait a bit.

{% endstep %}

{% step %}
Now, after waiting, it should have created a test user. Go to the three dots on the right of all the details, and hit `View Test User Data`.&#x20;

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FvkRAEcmtLDVuil301X8k%2Fimage.png?alt=media&#x26;token=d6738393-4e6f-4749-a85f-3696b639ead9" alt=""><figcaption></figcaption></figure>

Now, hit the Copy button next to the email field, then hit cancel. Go back to Unity, paste the email you just copied into the `Test User Email` field, and type in the password for the test user in the `Test User Password` field. Then hit login.\
\
If your Unity Editor Settings look like this, then you're all set!

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FFh5gr4jr2EyLx0Q5PUuj%2Fimage.png?alt=media&#x26;token=fa44357c-1d1f-4b7a-8a33-81140e8f3766" alt=""><figcaption></figcaption></figure>

{% endstep %}

{% step %}
Open back up the API tab for later, we will need those in the Epic Portal. Then duplicate that tab, and go all the way down to the `Requirements` section, then click on `Data Use Checkup`.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FYF6ZgxqdthAY8Gu7263z%2Fimage.png?alt=media&#x26;token=90cc10dd-5b8f-4a37-87ff-229a1c3c2c92" alt=""><figcaption></figcaption></figure>

At the top of the DUC page, it will most likely have a banner saying `Self-certification is incomplete. Action is required.` Hit the start button to the right.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2F5v6FhwPHTlA1VXrSOiGe%2Fimage.png?alt=media&#x26;token=1c81ed5b-96b1-4e1d-8e11-d2355766b6fa" alt=""><figcaption></figcaption></figure>

Select `Teens and Adults`, then hit continue, then confirm.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2F9590P4CpjHjY95trkj8y%2Fimage.png?alt=media&#x26;token=13bf7813-6193-4375-91ba-f049e94b4b0d" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %}
If you select any others, Meta will limit your app and make you add the Age Group API, which is NOT fun to set up.
{% endhint %}

{% endstep %}

{% step %}
Now, onto the Data Use Checkup. We have two we need to add: User ID and User Profile.\
To the right of the User ID field, select `Add`.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FznEYXAaN5dE6N4rFZsWV%2Fimage.png?alt=media&#x26;token=e3d8ad42-c929-42d3-bae4-3b8b981307e9" alt=""><figcaption></figcaption></figure>

In usage, click on the dropdown and select `Use Peer-to-Peer (P2P) Networking`.\
In the description, say something like "We are using User ID for authentication with Epic Games to use their free relay service."\
\
Check the box at the bottom that you agree, and hit `Add to request`.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FADIQ2OybATVP0P0tOTOO%2Fimage.png?alt=media&#x26;token=4609ce34-4f26-4220-a0cf-67c1d84cc9e9" alt=""><figcaption></figcaption></figure>

Do the same thing with User Profile. Usage as `Use Peer-to-Peer (P2P) Networking`, description something along the lines of "We are using User Profile for authentication with Epic Games to use their free relay service.", check the agree box, hit Add to request.

{% endstep %}

{% step %}
Now onto the most complicated part: submitting the request. Meta uses so much legal language that we are going to dumb it down for you to make you have less of a headache.

Firstly, at the top, hit `Submit requests (2)`. Now, a big window pops up.\
As of August 2025 (any of this is subject to change by Meta, so it may not be the same for you), this is what all of it says:

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2Fr9LDzaM30aTZWVYTJdb9%2Fimage.png?alt=media&#x26;token=a94497a3-8475-4429-9564-213e235c8c13" alt=""><figcaption></figcaption></figure>

This one is asking if you have any databases/player management services that hold Meta Quest User Data. Most likely, if you are following this tutorial, you do. If you do have any, select yes; if not, select no.\
\
If you selected no, you can skip to the next question. If you selected yes, follow this next question.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2F6rtsukxXck5loxqL7IDg%2Fimage.png?alt=media&#x26;token=068bd8bf-d4ad-42a1-baa7-7ba991000de8" alt=""><figcaption></figcaption></figure>

This one is pretty straightforward: hit Add data processor or service provider.\
For each provider you use, click the button once. I'm going to add one for Epic Online Services, but if you use PlayFab, you have to add that in as well.\\

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FrTe8ijOcVRnudPRUUivH%2Fimage.png?alt=media&#x26;token=bec3b67b-9182-427c-9603-3823ed35c3ec" alt=""><figcaption></figcaption></figure>

Again, straightforward, just put in whoever controls the data, such as Epic Online Services or PlayFab.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2Fh6SiZ80CJLD9QWUGhKAD%2Fimage.png?alt=media&#x26;token=5aa6fb0c-37cf-4de4-8777-27977d0a7d7a" alt=""><figcaption></figcaption></figure>

Easy enough, whoever controls your data, search up "(company name, such as EOS) headquarters". Whatever country their HQ is in, put that here.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FfDYbCIoxGwl1H0VpVpQQ%2Fimage.png?alt=media&#x26;token=36b2eda1-a986-483b-8550-2736d3d647cb" alt=""><figcaption></figcaption></figure>

This question is basically if law enforcement has requested any Meta Quest User Data. Most likely not, but you know your game best, so answer honestly.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FToH3jTcXuWkz6KYhvszG%2Fimage.png?alt=media&#x26;token=8bfa61cf-946a-49bd-9f97-c232dbde53a9" alt=""><figcaption></figcaption></figure>

This is basically what you would do if law enforcement requests any user data. If you don't know any of the options' terms, just select None of the above.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FZOK3JuO01hEvKgzgMJVK%2Fimage.png?alt=media&#x26;token=7dde7ae8-a0cf-4980-8e5a-9d80672bc831" alt=""><figcaption></figcaption></figure>

And our last question. Easy enough, just select the country where you live.

{% endstep %}

{% step %}
Once done with all those questions, select Next at the bottom right, Next again, then check the agree box and hit Submit for Review. Now wait 1-4 business days. If you're doing this on the weekend, Meta employees have the weekend off, so you most likely won't hear back before Monday.&#x20;

{% hint style="info" %}
While you're waiting, you're good to do the next step!
{% endhint %}

{% endstep %}

{% step %}
The next step is to go to your app on the [Epic Games Developer Portal](https://dev.epicgames.com/portal), then go to Product Settings.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FZHzKNOokkh4G5dCOKFZA%2Fimage.png?alt=media&#x26;token=ffe65f83-b718-4a62-945a-82efd3b64e06" alt=""><figcaption></figcaption></figure>

Then go to Identity Providers.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2Fc7oPkRhvD2w8tw1L4RLU%2Fimage.png?alt=media&#x26;token=25a4e30a-2fdc-45b5-bece-8989b0d42287" alt=""><figcaption></figcaption></figure>

Hit `Add Identity Provider`.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FB4f13rpXm6kVfF6SoTub%2Fimage.png?alt=media&#x26;token=a0d9ca55-930b-42d3-b926-d3fdbc95e381" alt=""><figcaption></figcaption></figure>

{% endstep %}

{% step %}
On the Identity Provider dropdown, select Oculus.\
Set Description to your game name, and Environment to Quest. Remember that APIs tab from earlier? Go back to it. Copy your App ID and App Secret and put it in the slots.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FEYffrobpkGHUkZdYERpP%2Fimage.png?alt=media&#x26;token=59d9e594-f8b4-4f0d-bb50-d7012308b8e7" alt=""><figcaption></figcaption></figure>

{% hint style="danger" %}
**DO NOT** share these IDs with **ANYONE**! The App Secret **alone** can give hackers access to many things you wouldn't want.
{% endhint %}

Once you're done, hit `Save & Exit` at the bottom right.

{% endstep %}

{% step %}
Now that you have the identity provider set up, go to the sandboxes tab.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FoA2DkjMYMDFIehcdgRGb%2Fimage.png?alt=media&#x26;token=89fafe75-679e-46dc-be02-c78b7946258d" alt=""><figcaption></figcaption></figure>

Then on the `Live` sandbox, hit `Identity Providers`.&#x20;

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2F2FnaSMcuB6cMgxyOIgar%2Fimage.png?alt=media&#x26;token=78a38a85-2abd-40e1-8b08-41924ea96574" alt=""><figcaption></figcaption></figure>

Go down to Oculus, and select the IP you just made.

<figure><img src="https://80627626-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FK2KwYyJh17evaze4fZSU%2Fuploads%2FUJ08orEjjjsaJp9P8BGg%2Fimage.png?alt=media&#x26;token=fe1845cf-9b16-417d-8123-3129b003ee1a" alt=""><figcaption></figcaption></figure>

Hit the X in the top right, and you're all set! You fully completed the setup.
{% endstep %}
{% endstepper %}
