Here you will learn how to setup the plugin in your own project based on the Third Person Template!
This guide assumes that you have installed the plugin to your supported Engine version or in your project Plugins folder, and added the Third Person Template Feature to your project.
If the preview images are too small, you may right-click them and open them in a new tab where you'll see the full size.
Getting Started
Project Settings
Open the Project Settings and under Gameplay Tags, define DTGT_N00dHolster. These are the slots the system should know about and if you have any more or want your own, you should add them all to a data table based on GameplayTagTableRow
Creating Classes
Start by creating a new folder to store all our inherited classes within.
Create a child of BPC_N00dHolster and BP_N00dHolsterSlotActor
Name them BPC_Holster and BP_HolsterSlotActor respectively, and move them over to the folder we created
Project Setup
Character Skeleton
Open SK_Mannequin
Define the following sockets. These can be whatever you want but we will be keeping it to the slots we have already defined in the gameplay tag data table. Make sure to keep the table and the sockets in sync - if you add a socket here, you should also create a definition in the data table for it.
Place the sockets where you want them on the mesh. You may use Preview Meshes on these sockets to get a better idea for where they should be placed.
Character Blueprint
Open the Third Person Character BP
Add the new component we just created to the Third Person Character BP components window
With the component selected, fill out the defaults in the component Class Defaults.
Slots: these are the slots that are defined in the Gameplay Tag Data Table
Slot Actor Class: the child slot actor we created. This is your custom version of the actor that represents your holstered item
Server Slot Name
Server Save Game Class: defining this will save the slot actors and the currently equipped items to the player name
Destroy Slot Actors on Exit and Exit Reasons: this will remove the slot actors from the world when you logout. If you don't want to do this you can manually call DestroySlotActors on the component.
Example Pickup Actor
This actor represents anything that you might want the system to holster. Typically its a world item such as this pickup but it can be anything so long as you consider the following data presented here in this example
Before we drag one of these into the world, we want to see how this is working. On overlap we make sure its a character and grab their holster component, then call holster on it with a reference to the actor that called it (Self)
In the parent pickup, we have a variable of type FN00dHolsterData and this is where we store all our definitions for each pickup. This is the data that the system uses to holster your pickup item (or whatever actor you are using).
In the Class Settings of this pickup actor we have also implemented BPI_N00dHolster
And have overridden the BPI_GetHolsterData node, pointing to our data type
Testing
Open the Third Person Map
Drag a few of the pickups into the world
Hit play and run around in the map picking up the pickups. They will all attach to your mesh.
If you press stop, close the game, and come back in again, they will reappear where they once were!
If they don't line up exactly where you want them you can use the Offset definition in the pickup actor (or whatever actor you are using for holstering).
Happy holstering!