Getting Started
Installation
- Copy the
PerkSystemfolder to your project'sPlugins/directory - Regenerate project files
- Restart the editor
Quick Start
1. Create a Perk Definition
- Right-click in Content Browser → Blueprint Class
- Search for and select PerkDefinition as parent class
- Name it (e.g.,
BP_Perk_HealthBoost) - Open and configure properties:
| Property | Description |
|---|---|
| Display Name | Name shown in UI |
| Description | Perk description text |
| Max Level | Maximum upgrade level (1 = single unlock) |
| Unlock Cost | Points required to unlock |
| Gameplay Effects To Apply | Effects applied when unlocked |
| Abilities To Grant | Abilities granted when unlocked |
| Required Perks | Prerequisites that must be unlocked first |
2. Create a Perk Tree
- Right-click in Content Browser → Miscellaneous → Data Asset
- Select PerkTreeDefinition
- Name it (e.g.,
DA_PerkTree_Combat) - Double-click to open the Perk Tree Editor
3. Design Your Tree
- In the Perk Tree Editor, nodes represent perks
- Drag nodes to position them
- Set Parent Perks in the Details panel to create prerequisites
- Connection wires are drawn automatically
4. Add Perk Manager to Your Pawn
- Open your Character or Pawn Blueprint
- Add Component → Perk Manager Component
- The component manages all perks for that pawn
5. Apply Perks at Runtime
Blueprint:
Get Perk Manager Component
→ Can Apply Perk (check requirements)
→ Branch
→ Apply Perk
C++:
#include "PerkManagerComponent.h"
#include "PerkDefinition.h"
// Find the component
UPerkManagerComponent* PerkManager = UPerkManagerComponent::FindPerkManagerComponent(MyPawn);
// Check and apply
if (PerkManager && PerkManager->CanApplyPerk(UMyPerkDefinition::StaticClass()))
{
UPerkInstance* Instance = PerkManager->ApplyPerk(UMyPerkDefinition::StaticClass());
}
6. Check Perk Status
Blueprint:
Get Perk Manager Component → Has Perk → Branch
C++:
if (PerkManager->HasPerk(UMyPerkDefinition::StaticClass()))
{
int32 Level = PerkManager->GetPerkLevel(UMyPerkDefinition::StaticClass());
}
Next Steps
- Perk Tree Editor - Learn the visual editor
- API Reference - Full function reference
Examples
The PerkSystemExample plugin contains:
ExamplePerkDefinitions- Sample perk blueprintsExamplePerkInstance- Custom perk instance classExamplePerkTree- Sample perk tree asset