---
description: Steps on how to use a 3D widget for a world map with Quest Map Pro
---

# Using A 3D Widget Map

This page covers the process of setting up a 3D widget to be used for the world map with Quest Map Pro. The steps here should be followed closely to ensure all functionality works as intended, but may need to be adjusted slightly on a project-by-project basis.

{% hint style="info" %}
This tutorial assumes you have already completed the [Integration tutorial](integration) and have Quest Map Pro successfully working within your project.
{% endhint %}

{% hint style="warning" %}
Please note that there are some limitations to using a 3D widgets as a world map as well as some considerations that need to be taken into account. Please check the section at the bottom of this page for more details.
{% endhint %}

## YouTube Tutorial

{% embed url="https://www.youtube.com/watch?v=pAUof1nsvj4" %}

## Written Tutorial

Please note that some parts of this tutorial are a little difficult to adequately explain in written form. As such, it is recommended to follow along to the video version shown above wherever possible.

### Step 1: Add the 3D widget to your pawn

Inside your pawn blueprint, you will want to decide on a location to add the 3D widget to. For example, in the example demo included with Quest Map Pro, the 3D widget is added to a flattened cube that is hidden below the camera and animated into frame. The 3D widget itself is positioned in the middle of this cube and scaled down to ensure it fits within the cube face.

You can add the widget to your pawn by using the **Add Component** button to add a **Widget Component**. Once added, set the **Widget Class** on this component to **W\_QuestMapPro\_WorldMap3D**. Set the draw size of the widget to 800x800 and use the scale values to resize, as changing the draw size will change some calculations necessary for correct map marker placement. Once sized correctly, position the widget as desired. For both scaling and position, it can help to open up the 3D widget file, **W\_QuestMapPro\_WorldMap3D** and add a border to the canvas panel that fills the entire space and is colorful (as shown below), as by default nothing is visible on the standard widget.

<figure><img src="https://1573950542-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx9zU1bZVnDGxJMF5Ja1M%2Fuploads%2F7MXuJzQmjR81T6ih2VaQ%2Fimage.png?alt=media&#x26;token=2dc28b58-4b19-46a6-afef-889454786a27" alt=""><figcaption></figcaption></figure>

Once you have positioned your widget, you can simply delete this border once again, knowing that your widget is in place.

<figure><img src="https://1573950542-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx9zU1bZVnDGxJMF5Ja1M%2Fuploads%2F2NnmpuCSBUxn35E05JT2%2Fimage.png?alt=media&#x26;token=1b4cb9a2-8954-42b5-978f-40e213d39c1e" alt=""><figcaption></figcaption></figure>

### Step 2: Set up interface function

As part of standard integration, you should have added the blueprint interface BPInt\_QuestMapPro\_PlayerActor to your character blueprint. Since version 1.4, when support for the 3D widget was added, a new interface function called **Get World Map 3D** has been added. Open this function. The function output expects a reference to the world map widget added in step 1 as the class W\_QuestMapPro\_WorldMap3D. To do this, use a reference ot the widget component added, call the **Get Widget** node and then cast the output **Return Value** to the class **W\_QuestMapPro\_WorldMap3D**. Parse the output of this cast node to the output of the interface function.

<figure><img src="https://1573950542-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx9zU1bZVnDGxJMF5Ja1M%2Fuploads%2FnOCuEWAeKSvHJOFyuhWm%2Fimage.png?alt=media&#x26;token=9e4c3533-d404-4274-b998-0d684865c7a6" alt=""><figcaption></figcaption></figure>

### Step 3: Set Quest Map Pro to use the 3D Widget

Select the map component **BP\_QuestMapPro\_Component-Map** in your controller and ensure the setting **World Map Uses 3D Widget** is set to **true**.

<figure><img src="https://1573950542-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx9zU1bZVnDGxJMF5Ja1M%2Fuploads%2FP8vpmDGw4PJpFVnBmYtq%2Fimage.png?alt=media&#x26;token=bf0c08f7-b729-4c9e-bf43-5716e010fcdc" alt=""><figcaption></figcaption></figure>

### Step 4: Change the Toggle Map logic

The standard toggle logic for the world map is based on the 3D version of the map and is not appropriate for a 3D widget. Instead, use a flip flop to manage the logic and call the node Set Visibility State, alternating between New State being true and false, as shown below.

<figure><img src="https://1573950542-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fx9zU1bZVnDGxJMF5Ja1M%2Fuploads%2Fil35KM6x4ND5v0rWgQMs%2Fimage.png?alt=media&#x26;token=2885b65c-5d8a-4fa6-b658-1bd20c924f97" alt=""><figcaption></figcaption></figure>

Please note that it is recommended to build out a management function for this toggle as there are scenarios in which a flip flop can cause some unwanted results. If you are animating any thing, such as a player pulling out their hands, grabbing a physical map mesh, etc. that can all be built into this same logic.

## Considerations When Using a 3D Widget World Map

While most features will work as expected with this option, there are some limitations and things to consider due to the way that 3D widgets work in comparison to standard 2D UI. The list below is likely all the considerations required, but may need to be updated in the future.

* In the current configuration, there is no way to click on the map when it is a 3D widget. This is unlikely to change as the required setup would vary quite a lot from project to project. As such, players will not be able to click on the map to place notes and waypoints, or to fast travel. Additional fast travel options will be coming in a future update, but for now, the player notes will be disabled when the 3D widget option is enabled.
* Similar to the above point, the map filter widget can not be interacted with in a 3D widget, and as such filters will be disabled when this is enabled.
* While Tiered Zoom Grids will work fine with a 3D widget world map, the inability for a player to zoom in or pan the map does mean that they are not needed and will only occupy additional hard drive space. Its recommended to use a single map image instead unless you wish to add options for zooming and panning the map based on your project specifics.
* 3D widgets within Unreal seem to not be able to receive lighting. As such, their appearance can be quite washed out. To attempt to combat this, an additional set of options is present in the Map Manager that allow you to easily tweak the brightness, contrast and desaturation/saturation of the map image to try and get it closer to the expected result. Default values are available that work well with the demo image, but these value may need to be tweaked significantly depending on each project. Currently icons for landmarks, players, POIs, etc. all do suffer from this same washed out effect. This is something that will hopefully be addressed in a future update (likely a minor update before the next feature update) once the most efficient solution has been found.
* POI icons are set up, by default, to only appear at a certain zoom level. As the 3D widget is always at a 1.0x zoom, POIs will simply not appear on the map unless the default values are changed.
