Skip to content
Games by Hyper
Sign Up / Login
Games by Hyper

Generic

  • QuickStart
  • Support
  • Purchase Options
  • Roadmap
  • FAQ
  • Learning
  • For Professional Studios

Templates

  • Template Logic and flexibility

Shared Infrastructure

  • Gameplay Tags
  • Datamanagement
  • Folder Structure
  • Object Pooler

Item Management

  • Inventory
  • Jigsaw Inventory
  • List Inventory
  • Respawn Actor Manager
  • Hotbar
  • Crafting
  • Item Allocator
  • Vendor
  • Icon Creator
  • Interactive Foliage

Interaction and Feedback

  • Interaction System
  • Outliner System

UI

  • Main Menu
  • HUD
  • Information Prompt

Locomotion

  • Animation Framework
  • Extended Movement Component
  • Leader Posing
  • Custom-Skeletal-Meshes

Combat

  • Attribute Manager
  • Team Affiliation
  • Equipment Manager
  • Ragdoll System
  • Ability System
  • Target Locking
  • Weapon Attachment System
  • Combat-framework
  • Actor Health
  • Lootable Corpse

Construction and Survival Mechanics

  • Building System
  • Mineable Rocks
  • Tree Cutting
  • Farming System
  • Fishing System
  • Swimming System
  • Bury Storage
  • Skinning System

Game Management

  • Global Save System
  • Respawn System
  • Session Manager
  • Game Mode System
  • Spectate System
  • Player Manager
  • Team Manager
  • Score Manager
  • Permission Manager
  • Level Instance Manager

Multiplayer

  • Online Multiplayer Framework
  • Replication Subsystem
  • Chat System
  • Console Command Manager

AI

  • Routine Driven NPC Framework
  • Perception System

Exploration and Narrative

  • Dialogue System
  • Memory System
  • Quest Manager
  • Map System
  • Teleport System
  • Guide System
  • Event Manager
  • Visual Novel System
  • Region Manager
  • Inspection System
  • Sequence Manager

Progression and Leveling

  • Level Manager
  • Unlock System
  • Reputation System

Character and Player Systems

  • Mount System
  • Emote System

Environmental Control and Immersion

  • Time and Day Night Cycle management
  • Weather System
  • Background Music System
  • Footstep System

Environment Building

  • Mesh to Actor Swap System
  • Forest-Basic
  • Level Instances
View Categories
  • Home
  • Docs
  • Reputation System

Reputation System

17 min read

Reputation system #

Contents


Introduction #

The Reputation System is a modular, gameplay-tag-driven framework that tracks how factions and individual NPCs feel about the player. It is built entirely in Blueprint and is driven by DataTables, making it easy to extend without rewriting core logic.

At a high level, the system supports both broad faction standing and personal NPC standing. Each reputation profile can contain multiple stages, optional stage gate requirements, optional stage completion rewards, and optional perks. Actions can modify reputation directly through a custom amount or indirectly through predefined action tags stored in DT_Reputation_Actions.

Because the system is tag-based, it scales well across different game types. A faction can represent a kingdom, guild, tribe, militia, cult, city guard, or even an abstract team used by AI logic. An NPC can also have their own separate personal reputation profile, allowing world-level reactions and character-specific reactions to exist at the same time.

  • Tracks faction and NPC reputation independently using the same underlying data structure.
  • Supports multiple reputation stages such as Enemy, Neutral, Friendly, Honored, or any custom progression ladder.
  • Uses predefined gameplay-tag actions for quick integration with quests, combat, interaction, and world events.
  • Allows optional relation spillover so changing one reputation can influence linked factions or NPCs automatically.
  • Includes utility getters for stage progress, current stage, unlocked perks, formatted UI text, and most affiliated faction.

Faction and team style usage in the demo environment.

Example faction UI showing separate progress cards and stage titles.


Adding Reputation to the Player Controller #

The live implementation of the system is split into two components:

  • AC_Reputation_Abstract – contains the variables, dispatchers, and function definitions but no actual gameplay logic.
  • AC_Reputation – contains the concrete implementation and is the component that should be used in-game.

AC_Reputation should be added to the Player Controller. This makes the system a player-owned manager for discovered reputation entries, current values, stage progression, UI updates, and client/server reputation requests.

Once attached, the component acts as the main public API for the rest of the project. Other systems do not need to know how faction or NPC reputation is stored internally; they only need to call the exposed reputation functions or bind to the dispatchers.


Why place it on the Player Controller? #

  • The player controller is a natural owner for player-specific discovery state, reputation progress, and replicated player-facing UI data.
  • It avoids duplicating reputation state across multiple NPCs or world actors.
  • UI widgets and interaction systems can call into one consistent component regardless of which actor triggered the reputation change.

The main gameplay-facing functions exposed by AC_Reputation.

Server wrappers forward client-side requests into the live implementation.


Details Panel / Important Variables #

The component exposes a small set of important configuration and runtime variables. Some are player-facing settings, while others are runtime caches used to detect state changes and broadcast the correct events.

Field

Description

Require Stage Gate Requirements every time

Controls whether stage gate requirements are rechecked each time stage progression is evaluated. Useful when stage gates depend on changing gameplay state such as inventory, quest state, or temporary conditions.

XP Added Popup Time

How long reputation-added popup feedback should remain visible on screen.

XP Added Stackable

Controls whether multiple popup messages can stack together instead of replacing each other.

XP Added Max Stack Size

Limits how many popup entries can be stacked at once.

Faction Reputation Previous

Cached previous faction reputation instance data used to compare old vs new state during replication or UI refresh.

Acquainted Reputation Previous

Cached previous NPC/acquaintance reputation instance data used for change detection and event broadcasting.

Menu Widgets

Widget class reference used by the reputation UI/menu flow.

Initial Known NPC's

Gameplay Tag container used to define personal NPC reputation entries that should start discovered for the player.

Initial Known Factions

Gameplay Tags for factions that should already be visible or known when gameplay begins.


Structures Explained #

The system is built around a small group of reusable structs. These structs define how actions convert into reputation changes, how factions and NPC profiles are described, how live progress is stored, and how stage progression is configured.


F_Action_Consequence #

This struct defines the direct result of a reputation action. It is the payload used by predefined action rows and determines how much the target reputation changes and how strongly linked relations should also be affected.

Field

Description

Reputation

Float. The direct amount added to or removed from the target reputation.

Reputation To Relations

Float. Optional spillover amount applied to linked relations. This allows one entity to influence related entities automatically.


F_Reputation_GameplayTag_Consequence #

This struct maps a gameplay tag to a predefined action consequence. It is the bridge between a gameplay event tag such as Reputation.Actions.Attack and the amount of reputation change that should happen when that action is triggered.

Field

Description

Gameplay Tag

Gameplay Tag identifier used to request the action.

Action Consequence

F_Action_Consequence payload that defines the reputation and relation impact of that action.


F_Reputation_Relation #

This struct represents a linked relationship between one reputation entity and another. It is used inside faction and NPC rows so that changing one reputation can affect a related tag as well.

Field

Description

Tag

Gameplay Tag for the linked reputation entity, such as a faction or team affiliation.

Relation

Float strength or weighting used by the relation system.


F_Reputation_Stage #

This struct defines a single stage within a reputation ladder. Each stage occupies a reputation range and can optionally contain gate requirements, completion rewards, and perk values.

Field

Description

Title Name

Display name of the stage, such as Enemy, Rookie, Initiate, Friendly, or Honored.

Stage Gate Requirements

Array of event-style requirement entries that must be satisfied before the player is allowed to proceed into the stage.

Stage Completed Rewards

Array of event-style reward entries executed when the stage is completed or advanced into.

Reputation Min

Lower bound of the stage range.

Reputation Max

Upper bound of the stage range.

Perks

Gameplay Tag -> Generic Value map for perks or stage-specific unlock values.

Example of a populated stage gate requirement and stage completed reward.


F_Reputation_Identifier #

This is the main data definition struct used by both DT_Reputation_Factions and DT_Reputation_NPC. It describes a reputation profile and all of the content needed to present and progress it.

Field

Description

Tag

Gameplay Tag identifier for the faction or NPC profile.

Name

Display name shown in UI or used for data organization.

Description

Written description of the faction or character.

Icon

Texture2D used by the UI.

Relations

Array of F_Reputation_Relation entries.

Base Reputation

Starting value before any gameplay changes occur.

Stages

Array of F_Reputation_Stage entries defining the full progression ladder.

UI Color 1 / UI Color 2

Primary and secondary colors used for menus, cards, bars, or thematic presentation.


F_Reputation_Instance #

This struct stores the live runtime state of a discovered reputation entry for the player. While F_Reputation_Identifier defines what a reputation profile is, F_Reputation_Instance stores how far the player has progressed in it.

Field

Description

Reputation Identifier

Gameplay Tag pointing back to the profile definition.

Reputation

Current live reputation value.

Highest Reached Reputation

Highest reputation value the player has ever reached with this entry.

Current Stage Index

Current stage within the stage array.

Highest Reached Stage

Highest stage index ever reached.

Most Affiliated Faction

Gameplay Tag used when the system needs to determine the player's dominant or most aligned faction.


Data Tables Explained #

The reputation system is intentionally data-table driven. Designers can define new factions, NPCs, actions, ranges, colors, gates, and rewards without modifying core logic. The same core component then reads the data at runtime and exposes the results through utility functions and dispatchers.


DT_Reputation_Actions #

DT_Reputation_Actions stores predefined gameplay actions that can be triggered quickly from combat, interaction, quest, or scripted events. Instead of manually entering a custom reputation amount each time, other systems can pass a single gameplay tag and let the table provide the configured result.

  • Attack = direct reputation loss and optional relation loss.
  • Help = direct reputation gain and optional relation gain.
  • Stealing = reputation loss and relation loss.
  • BigReward = large positive reputation value with no relation spillover in the shown sample.
  • Kill = large negative reputation value with negative relation spillover.

This table is ideal when the game already produces reliable gameplay tags such as Reputation.Actions.Attack, Reputation.Actions.Help, or Reputation.Actions.Kill. The reputation system can then remain generic while the table decides the numbers.


DT_Reputation_Factions #

DT_Reputation_Factions defines broad faction, team, or alignment profiles. These rows usually represent the groups that influence global world reactions, access control, vendor behavior, allegiance, hostility, or high-level AI rules.

  • Rows use the F_Reputation_Identifier structure.
  • The sample shows faction tags such as TeamAffiliation.Order, TeamAffiliation.Balance, and TeamAffiliation.Chaos.
  • Each faction can define its own icon, description, stage ladder, base reputation, and UI colors.
  • Relations can be left empty or used when the designer wants cross-faction influence.

DT_Reputation_NPC #

DT_Reputation_NPC defines personal NPC reputation profiles. These are ideal when the player needs a relationship with a specific named character that can differ from their wider faction standing.

  • Rows use the same F_Reputation_Identifier structure as factions.
  • This makes NPC and faction reputation consistent from a systems point of view.
  • An NPC row can still include faction relations, allowing personal reputation to influence a larger faction if desired.
  • This is a strong fit for vendors, guards, quest givers, companions, village elders, or unique story characters.

Because factions and NPCs share the same schema, the same UI, formatting helpers, stage logic, and registration flow can be reused for both.


Functions to Use #

The system exposes a set of public functions intended for gameplay use, UI queries, formatting, and replication handling. The most important public entry points are the ones used to register entities and modify reputation.


Core modification functions #

Field

Description

Register Reputation

Marks a faction or NPC as discovered so it becomes visible and available within the reputation system/UI. Use this when the player first meets a character, discovers a faction, or should already know an entry at game start.

Modify Reputation By Generic Action

Applies a predefined reputation action using a gameplay tag from DT_Reputation_Actions. This is the quickest way to hook the system into combat, quest, and interaction events.

Modify Reputation and Relations

Applies a custom direct reputation amount and an optional relation spillover value. Use this when you do not want to rely on a predefined action row.

Try Proceed Next Stage

Attempts to advance stage progression once the reputation range and any gate requirements are satisfied.


Utility / progression functions #

  • Get Stage Gate Requirements By Tag
  • Check Stage Requirements By Tag
  • Get Reputation Progress Of Stage
  • Get Reputation Progress Of Stage Percentage
  • Get Reputation Stage From Reputation Value
  • Get Most Affiliated Faction
  • Get Reputation Instance By Tag
  • Get Reputation Progress Total Percentage
  • Get Unlocked Perks By Instance
  • Get Unlocked Perks By Tag
  • Get Formatted Requirement Text
  • Get Formatted Requirement Text By Tag
  • Get Formatted Perks Text

These helpers are primarily used by UI, menus, quest logic, and gameplay conditions. They allow other systems to ask questions about reputation progress without needing to know how stages, instances, or tables are stored internally.


Replication / change handling #

  • OnRep_Faction Reputation
  • OnRep_Acquainted Reputation
  • OnRep_Faction Reputation Execution
  • OnRep_Acquainted Reputation Execution

These functions support network-safe reputation updates and ensure the component can compare previous state against replicated state before broadcasting the correct faction or acquaintance events to UI and other listeners.


Client to server wrappers #

When the request originates from a client-owned source such as UI, the component exposes server wrappers that forward the request into the same core functions. This keeps gameplay behavior consistent no matter where the request came from.

  • Server_Modify Reputation By Generic Action
  • Server_Modify Reputation And Relations
  • Server_Register Reputation Relation
  • Server_Try Proceed To Next Stage

Event Dispatchers #

The component broadcasts a clear set of dispatchers whenever a new reputation entry is discovered, a value changes, a stage-up opportunity becomes available, or a new stage is reached. These dispatchers are the preferred way for UI and other systems to react without hard-wiring themselves into the component internals.

Dispatcher

Inputs

Use

On New Acquaintence

F_Reputation_Instance

Called when a new NPC/personal reputation entry is first discovered.

On Acquaintence Reputation Changed

F_Reputation_Instance, Float Changed Amount

Use for UI updates, feedback, notifications, or reactive logic when personal reputation changes.

On Acquaintence Stage Up Available

Gameplay Tag Identifier

Signals that the next stage is available once requirements have been satisfied.

On Acquaintence New Stage

Gameplay Tag Identifier, F_Reputation_Stage

Broadcast when a new personal NPC stage is reached.

On New Faction

F_Reputation_Instance

Called when a new faction profile is first discovered.

On Faction Reputation Changed

F_Reputation_Instance, Float Changed Amount

Use for faction UI cards, popups, loyalty changes, or world-state reactions.

On Faction Stage Up Available

Gameplay Tag Faction Identifier

Signals that a faction is ready to proceed to the next stage.

On Faction New Stage

Gameplay Tag Faction Identifier, F_Reputation_Stage

Broadcast when a faction enters a new stage.


Factions, Npcs, and Relations #

One of the strongest parts of this system is that it supports both broad and personal reputation at the same time. Factions allow a whole group to inherit shared reactions, while NPC rows provide individual personality and relationship tracking.


Factions / teams #

Factions or teams group NPCs under a shared identity. Every member of the faction can inherit the same baseline reputation toward the player. Changing reputation with the faction then updates how the wider group reacts, which is ideal for guards, militias, cults, kingdoms, traders, rebels, or larger social blocs.


NPC / acquaintance reputation #

NPC rows add the personal layer. This lets the player be friendly with one villager while still being disliked by the surrounding faction, or be accepted by a faction but still distrusted by a specific important character.


Relations #

Relations link one reputation entity to another with a weight/value. This supports chain reactions where changing one reputation can influence related entries. For example, helping a villager may slightly improve the player's standing with that villager's faction, or attacking a faction member may make related groups less tolerant.

Because relations are tag-based, they remain flexible and can be used for strict faction politics, soft social alignment, or even abstract team influence used only by AI logic.


Stage Progression and Requirements #

Every reputation profile can contain a ladder of named stages. Each stage owns a reputation range, and can optionally define gate requirements, completion rewards, and perks. This means the player does not only gain or lose a number – they move through explicit reputational states that gameplay can react to.

A stage can be locked behind extra requirements even when the reputation number is already high enough. This is useful when reputation should represent trust plus proof, such as requiring a badge, item, quest completion, offering, or story flag before the next tier is awarded.

  • Reputation ranges determine which stage the current value belongs to.
  • Stage Gate Requirements define additional checks that must pass before progression is allowed.
  • Stage Completed Rewards can fire follow-up event triggers such as removing an item, granting access, or updating another system.
  • Perks store stage-specific values or unlock information for other systems to query.

In the shown sample, the Honored stage uses a gameplay event requirement that checks for a required item, and the completion reward removes an item when the stage is completed. This demonstrates how the stage system can hook into inventory or any other gameplay event-driven system.


Predefined Actions and Custom Modifiers #

The system supports two main ways of changing reputation.


1) Predefined actions #

Predefined actions are the fastest and cleanest path when the same gameplay event will happen repeatedly. A combat, interaction, or quest system can simply send a tag such as Reputation.Actions.Attack and let DT_Reputation_Actions decide how much reputation and relation change should occur.


2) Custom modifiers #

Custom modifiers are useful when the change amount is not standardized. A quest reward, dialogue result, or unique scripted moment may want to directly add a hand-authored amount of reputation and a separate relation spillover amount. In that case, Modify Reputation and Relations gives the designer full control.


Registering Reputation #

Registering a reputation entry marks it as discovered. This is important because the player should not necessarily see every faction or NPC in the reputation UI from the start. The system can reveal entries naturally as the world is explored.

  • Call Register Reputation when the player first meets an NPC.
  • Call it when a quest introduces a new faction.
  • Use Initial Known NPC's and Initial Known Factions for entries that should already be unlocked at game start.
  • Use the server wrapper when discovery is requested from a client-owned source such as UI.

Hooking Reputation Into Other Systems #

The reputation component is designed to be bound into other systems rather than forcing those systems to own reputation logic themselves. This keeps the project modular and makes reputation a shared service instead of a hard dependency.

Example listener setup that binds reputation into other gameplay systems.

Interaction events can be routed into the reputation system through event binding.

Combat-related events can be converted into predefined actions such as Attack or Kill.

  • Interaction systems can trigger registration or custom reputation changes when the player talks, trades, helps, or steals.
  • Combat systems can convert damage and kill events into predefined action tags.
  • Quest systems can award custom amounts or stage rewards directly.
  • UI can query progress, current stage, perks, and formatted text through utility getters.

Adding Your Own Faction #

Add a new faction row (step-by-step)

  • 1. Open DT_Reputation_Factions.
  • 2. Click Add to create a new row.
  • 3. Set the Tag. Example: TeamAffiliation.MerchantsGuild.
  • 4. Fill in Name, Description, and Icon.
  • 5. Set Base Reputation to the starting value you want players to begin at.
  • 6. Add any Relations if this faction should influence or be influenced by other factions or NPC entries.
  • 7. Expand Stages and add the reputation ladder. Give each stage a Title Name and set Reputation Min / Reputation Max.
  • 8. Optionally add Stage Gate Requirements, Stage Completed Rewards, and Perks for stages that need extra progression logic.
  • 9. Set UI Color 1 and UI Color 2 so the faction presents clearly in the menu.
  • 10. Save the row and register the faction when the player should discover it.

Use faction rows for any reputation that should affect a wider social or AI group rather than just one person.


Adding Your Own Npc #

Add a new NPC row (step-by-step)

  • 1. Open DT_Reputation_NPC.
  • 2. Add a new row.
  • 3. Set the Tag. Example: NPC.ID.Villager.Male.Blacksmith.
  • 4. Fill in Name, Description, and Icon for UI presentation.
  • 5. Add Relations if this NPC should also influence a wider faction such as TeamAffiliation.Order or TeamAffiliation.Balance.
  • 6. Define Base Reputation and the full stage ladder.
  • 7. Add stage gate requirements when the player must do more than just reach the number.
  • 8. Save the row and call Register Reputation when the player first meets the NPC or when the game should reveal them.

Use NPC rows when you want a specific named character to respond to the player differently from their wider faction or social group.


Adding Your Own Action #

Add a new predefined action row (step-by-step)

  • 1. Open DT_Reputation_Actions.
  • 2. Add a new row.
  • 3. Set the Gameplay Tag. Example: Reputation.Actions.Bribe.
  • 4. Expand Action Consequence.
  • 5. Set Reputation to the direct gain or loss you want on the target entity.
  • 6. Set Reputation To Relations if linked entities should also be affected.
  • 7. Save the table.
  • 8. Call Modify Reputation By Generic Action (or its server wrapper) and pass the target identifier plus your new action tag.

Predefined action rows are best when the same event should always produce the same default consequence. This keeps combat, dialogue, quest, and interaction Blueprints very clean.


Adding Your Own Perks #

  • Open DT_Reputation_Factions or DT_Reputation_NPC.
  • Select the row you want to edit.
  • Expand the Stages array.
  • Open the stage you want to modify.
  • Locate the Perks field.
  • Add a new map entry.
  • Set the perk key to the Gameplay Tag that identifies the unlock.
  • Fill in the value payload using the field type that best fits the perk:
    • use Bool Value for true/false unlocks
    • use Float Value for numbers such as discounts or bonuses
    • use String Value for labels or text-based values
    • use Tag Value for linking the perk to other gameplay-tag-driven systems
    • Leave unused value fields empty/default unless your project needs them.

Example Flows #


Attacking a villager #

  • Combat or damage logic identifies that the player attacked a valid target.
  • The target or its tags are used to determine which reputation entry should be affected.
  • The system sends Reputation.Actions.Attack through Modify Reputation By Generic Action.
  • DT_Reputation_Actions supplies the configured negative reputation and relation spillover.
  • The live F_Reputation_Instance updates, the current stage is re-evaluated, and change dispatchers can update UI or other systems.

Helping a faction or NPC #

  • An interaction, quest, or scripted reward calls Modify Reputation By Generic Action with a positive tag such as Help or BigReward, or uses Modify Reputation and Relations with a custom amount.
  • The system updates the matching faction or NPC profile.
  • If the new value crosses into a higher range, the component checks whether the next stage is available and whether any gate requirements must also pass.
  • If the stage becomes valid, the component can proceed and fire the new stage dispatcher.

Honored stage with a gate requirement #

  • The player reaches the required numerical reputation range for the Honored stage.
  • The stage still checks its gate requirement event, such as whether the player has a required item.
  • Once valid, Try Proceed Next Stage can advance the stage.
  • The stage completed reward then fires, such as removing the required item, and the new stage can be broadcast to UI or quest logic.

These flows show the intended strength of the system: one shared reputation component, a clean tag-based API, reusable data tables, and gameplay integration through standard event hooks rather than one-off hardcoded logic.


Summary #

The Reputation System is designed to be practical for designers and scalable for projects. Factions, NPCs, stages, requirements, rewards, relations, UI presentation, and event-driven updates are all handled through a consistent Blueprint and DataTable workflow. Once AC_Reputation is placed on the Player Controller, the rest of the project can treat reputation as a reusable service and drive it through tags, custom values, or stage logic as needed.

What are your Feelings
Still stuck? How can we help?

How can we help?

Table of Contents
  • Reputation system
  • Introduction
  • Adding Reputation to the Player Controller
    • Why place it on the Player Controller?
  • Details Panel / Important Variables
  • Structures Explained
    • F_Action_Consequence
    • F_Reputation_GameplayTag_Consequence
    • F_Reputation_Relation
    • F_Reputation_Stage
    • F_Reputation_Identifier
    • F_Reputation_Instance
  • Data Tables Explained
    • DT_Reputation_Actions
    • DT_Reputation_Factions
    • DT_Reputation_NPC
  • Functions to Use
    • Core modification functions
    • Utility / progression functions
    • Replication / change handling
    • Client to server wrappers
  • Event Dispatchers
  • Factions, Npcs, and Relations
    • Factions / teams
    • NPC / acquaintance reputation
    • Relations
  • Stage Progression and Requirements
  • Predefined Actions and Custom Modifiers
    • 1) Predefined actions
    • 2) Custom modifiers
  • Registering Reputation
  • Hooking Reputation Into Other Systems
  • Adding Your Own Faction
  • Adding Your Own Npc
  • Adding Your Own Action
  • Adding Your Own Perks
  • Example Flows
    • Attacking a villager
    • Helping a faction or NPC
    • Honored stage with a gate requirement
  • Summary

© 2026 Games by Hyper

X Reddit Patreon Discord Linkedin YouTube

Review Cart

No products in the cart.

We noticed you're visiting from Netherlands. We've updated our prices to Euro for your shopping convenience. Use United States (US) dollar instead. Dismiss

  • Hyper Bundle Configurator
  • Shop
    • Game Templates
    • Courses
    • Loyalty Store
    • Survival Modules
    • RPG Modules
    • Environment Building
  • My account
  • Become a Member
  • Cart
  • Get Help
    • FAQ
    • Upgrade your Game Template
    • Documentation
  • About Hyper
  • News & Updates