> For the complete documentation index, see [llms.txt](https://zeepsoft.gitbook.io/multiplayer-turret-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://zeepsoft.gitbook.io/multiplayer-turret-documentation/tutorial/creating-your-own-turrets/method-1-child-blueprints.md).

# Method 1 - Child Blueprints

## Step 1 - Right Click BP\_Turret

Right clicking **BP\_Turret** reveals a drop down menu which contains **"Create Child Blueprint Class"**. Click this button to create a child blueprint and name it as you wish, you can always check the parent of each blueprint by hovering over them in case of if you forget what parent a blueprint belongs to.

<div align="left"><figure><img src="/files/ZV7yqJO0bAhF5zfTVdfU" alt="" width="168"><figcaption><p>Create Child Blueprint Class</p></figcaption></figure></div>

For this tutorial I will create a new ***Child Blueprint Class*** of **BP\_Turret** for demonstration purposes, I will walk you through the steps to get it set up and running.

<div align="left"><figure><img src="/files/ncOVjxGrzllAynlOQ5FF" alt="" width="110"><figcaption></figcaption></figure></div>

## Step 2 - Configuring The Turret

Inside your newly created child blueprint you will find the **"Data"** tab in the Class Defaults window.

<div align="left"><figure><img src="/files/S1yyJihD5h54mdqYFAqi" alt="" width="101"><figcaption></figcaption></figure></div>

Below you can see the **Data** struct on the right hand side of your window which contains all the configurable variables.

<div align="left"><figure><img src="/files/b1UReaRyQHTWXLZCbmCa" alt="" width="188"><figcaption></figcaption></figure></div>

Note that you can still use a data table entry for child blueprints, ex. for quick testing\
The bottom four variables can be used to enable this.

### Sub Step 1 - Change The Name To Match The Blueprint Name

This helps keeping it organized in-editor, the entire Data struct can be copied to another turret, useful for creating templates. Below I have named mine **Minigun\_04**. The text in the viewport will update to match the name.

<figure><img src="/files/9qQowQEqX69Pmq624aaF" alt=""><figcaption></figcaption></figure>

### Sub Step 2 - Setup Meshes

Let's start by adding a **Base Mesh**, this is the part that is static and doesn't rotate.\
Next we'll add the **Yaw Mesh**,  this part rotates on the Yaw axis (Left and Right).\
Then we'll add the **Pitch Mesh**, this part rotates on the Pitch axis (Up and Down).\
Lastly we'll add the **Roll Mesh**, this part rotates on the Roll axis (optional since this will rotate independently if **RotateBarrel** is enabled, ex. Minigun)\
\
Image below is the result of what we just did. Notice how the **Yaw/Pitch/Roll Mesh** is facing backwards, this is due to the way these meshes are exported from the modeling software, this serves as a good example of how to adjust it in-editor rather than re-exporting it from modeling software.

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

### Select the meshes and rotate them 180 degrees on the Yaw Axis

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

### Now we can adjust the pivot locations

We'll set **Pivot\_Yaw** to

<div align="left"><figure><img src="/files/iL9Q0pt2yTLVqtdtBAw7" alt="" width="375"><figcaption></figcaption></figure></div>

We'll set **Pivot\_Pitch** to

<div align="left"><figure><img src="/files/3rGOh6A8M76JgPxIaBOt" alt="" width="375"><figcaption></figcaption></figure></div>

Since the minigun doesn't quite fit,\
we'll set **Mesh\_Yaw's** scale to

<div align="left"><figure><img src="/files/3glHEBNo80onvJvQqTdc" alt="" width="375"><figcaption></figcaption></figure></div>

Lastly, we'll need to set **Barrel\_End's** location, this one is most important, make sure nothing blocks this, the Arrow shows where the projectile spawns at and direction it is shot at.

<div align="left"><figure><img src="/files/3dy3CcMwQ4nThOXOfENc" alt="" width="375"><figcaption></figcaption></figure></div>

When setup using the included meshes, you should end up with something like this

<figure><img src="/files/BvKvPkpu3C1CkcUSj2xx" alt=""><figcaption><p>Feel free to adjust anything until you get the desired result</p></figcaption></figure>

{% hint style="info" %}
Meshes can be independently adjusted, if a mesh doesn't quite fit the way you want it to, you can edit it in the view-port. This saves having to go back to your modeling software to adjust the Mesh Origin.
{% endhint %}

### Sub Step 3 - Collision Mesh

{% hint style="warning" %}
Make sure the collision mesh you use has correct simple collisions, this asset has a cone and sphere collision mesh included with preview material applied\
\
If the collision mesh is not setup properly, this includes collision channels on both the turret and your targets the turret won't be able to detect them inside.
{% endhint %}

<div align="left"><figure><img src="/files/VS4Zbu8JDAcf7ohzzCRv" alt="" width="375"><figcaption><p>Cone Collision Mesh</p></figcaption></figure></div>

### Now let's add it to our turret

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

### Your turret should now be ready to be placed in your map

<div align="left"><figure><img src="/files/irjX85dOrgCD0FBAZON2" alt="" width="375"><figcaption><p>Out of the box Config, tweak it to your desire</p></figcaption></figure></div>

{% hint style="success" %}
This concludes the Blueprint Method of setting up a Turret. Visit the [Configuration](/multiplayer-turret-documentation/fundamentals/configuration.md) page to continue setting up the turret's behavior.
{% endhint %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://zeepsoft.gitbook.io/multiplayer-turret-documentation/tutorial/creating-your-own-turrets/method-1-child-blueprints.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
