🤝 Reputation & Faction System

Complete reputation and faction management for RPG games

v1.0.0 UE 5.6+
⚔️

Multiple Factions

Create unlimited factions with unique relationships. Guards, Thieves, Merchants, Nobles - build complex faction systems.

📊

Reputation System

Full reputation tracking from -100 to +100 with 7 distinct tiers. Every action matters!

🎭

NPC Behavior

NPCs react dynamically based on player reputation. From hostile attacks to friendly discounts.

💥

Faction Wars

Declare wars, make peace, form alliances. Complex faction relationships affect gameplay.

🎮

Blueprint Friendly

30+ Blueprint functions. No C++ knowledge required. Easy to integrate.

Zero Dependencies

Lightweight and standalone. Works with any project. No external requirements.

Reputation Tiers

Seven distinct reputation tiers that affect NPC behavior, prices, and quest availability:

Hated (-100 to -60)
Kill on Sight
Hostile (-60 to -30)
Aggressive
Unfriendly (-30 to -10)
Rude
Neutral (-10 to +10)
Normal
Friendly (+10 to +30)
Better Prices
Honored (+30 to +60)
Discounts & Quests
Exalted (+60 to +100)
Best Rewards

Key Features

📚 How to Use - Step by Step

Step 1: Installation

Step 2: Add Reputation Component to Player

The player needs a component to track reputation with all factions.

1. Open your Player Character Blueprint 2. Click "Add Component" 3. Search for "Reputation Component" 4. Add it to your character 5. Compile and Save

Step 3: Create Faction Data Assets

Define each faction in your game (Guards, Thieves, Merchants, etc.)

1. Content Browser → Right-click 2. Miscellaneous → Data Asset 3. Select "FactionData" class 4. Name it (e.g., "DA_Guards") 5. Open and configure: ├─ Faction ID: "Guards" (unique identifier) ├─ Faction Name: "City Guards" └─ Initial Player Reputation: 0.0

Tip: Create one Data Asset for each faction in your game.

Step 4: Register Factions at Game Start

Register all factions when the game starts (usually in Game Mode).

In Game Mode Blueprint → Event BeginPlay: Get Game Instance ├─ Get Subsystem (Faction Manager Subsystem) └─ Register Faction └─ Faction Data: DA_Guards Repeat for each faction (Guards, Thieves, Merchants, etc.)

Step 5: Add Faction Member Component to NPCs

NPCs need to know which faction they belong to.

1. Open NPC Character Blueprint 2. Add Component → "Faction Member Component" 3. In Details panel, set: ├─ Faction ID: "Guards" (must match registered faction) └─ Is Faction Leader: false (true for special NPCs) 4. Compile and Save

Step 6: Change Reputation Based on Actions

Example: Player kills an NPC, loses reputation with their faction.

When Player Kills NPC: Get Killed NPC ├─ Get Component by Class (Faction Member Component) ├─ Get Faction ID └─ Get Player Character └─ Get Component by Class (Reputation Component) └─ Add Reputation ├─ Faction ID: [from killed NPC] └─ Amount: -20.0 (negative = lose rep)

Step 7: Make NPCs React to Reputation

NPCs should behave differently based on player's reputation.

In NPC AI or Behavior Tree: Event Tick (or custom event) ├─ Get Faction Member Component (Self) ├─ Get Player Reference └─ Is Hostile To Actor? (Player) └─ Branch ├─ True → Attack Player └─ False → Patrol / Ignore

Step 8: (Optional) Adjust Shop Prices by Reputation

In Shop/Merchant Blueprint: Get Player ├─ Get Reputation Component └─ Get Reputation With Faction ("Merchants") └─ Get Reputation Tier └─ Select (based on tier): ├─ Exalted → 50% discount ├─ Honored → 25% discount ├─ Friendly → 10% discount ├─ Neutral → Normal price ├─ Unfriendly → 10% markup ├─ Hostile → 25% markup └─ Hated → Refuses to trade

Step 9: (Optional) Declare Faction Wars

Make two factions hostile to each other.

Get Faction Manager Subsystem └─ Declare Faction War ├─ Faction A ID: "Guards" └─ Faction B ID: "Thieves" Result: All Guards will be hostile to all Thieves

✅ You're Done!

Your reputation system is now working! NPCs will react to player actions, and reputation will affect gameplay.

Quick Example

Change player reputation with a faction:

Get Player Pawn ├─ Get Reputation Component └─ Add Reputation ├─ Faction ID: "Guards" └─ Amount: +15.0

Make NPCs react to player reputation:

Get Faction Member Component ├─ Is Hostile To Player? └─ Branch ├─ True → Attack Player └─ False → Ignore

Use Cases

What's Included

Technical Details

Engine Version: Unreal Engine 5.6, 5.7+

Platforms: Windows, Mac, Linux (all UE5 supported platforms)

Dependencies: None - standalone plugin

Code: Full C++ source included

Multiplayer: Single-player (v1.0), multiplayer planned for v1.1