Ninja Factions

Faction, Attitude and Reputation management for AI and Players.

  • Supported Platforms
  • Supported Engine Versions
    5.3
  • Download Type
    Engine Plugin
    This product contains a code plugin, complete with pre-built binaries and all its source code that integrates with Unreal Engine, which can be installed to an engine version of your choice then enabled on a per-project basis.

The Ninja Factions plugin extends the AI Module's domain, introducing the concept of Factions, Memberships and Reputation.


It's designed to be simple enough so it's easy to get started, only requiring an Actor Component to be added to Faction Members and creating the Faction Data Assets with their accompanying Reputation Data Tables (optional).


The system uses the Asset Manager as its default Faction Database, but you can create your own Database, such as a "Backend Server" for example. The Attitude between Factions is also defined by a dedicated class type named Attitude Solvers, and you can decide to use the ones provided or, like the Database, create your own.


All these design choices were made to ensure the system is both very usable right away, but highly customizable and easily integrated with other systems.


This plugin was written in C++, but everything is available to Blueprints. The code is clean and well-documented, it has a thorough on-line documentation and you are welcome to join the Discord Server!



Please check the Features list, for more details!


Orbital Market Link

(Orbital Market is a fast search engine for the Unreal marketplace)

Technical Details

  • Data-driven configuration for Factions, Attitudes and Reputation Tiers.
  • Faction Databases are extensible so you can use the default Asset Manager implementation, or create your own.
  • Attitude Resolution Strategies are extensible so you can use the provided ones (Simple Team Check and Reputation Tier Check). You can also create your own.
  • Default classes for the AI and Player Controllers that you can use, extend or simply use as a reference.
  • Built in C++ but can fully exposed and extensible in Blueprints.
  • Support for Behavior Trees: Service and Decorator provided to support faction-based behavior.
  • Support for State Trees: Evaluator and Condition provided to support faction-based behavior.
  • Modular Gameplay Support: Factions can be configured as a Game Feature.
  • Integrated with the Editor, including a Settings Page, Data Asset Contextual Creation and a new Faction Category for the Gameplay Debugger.
  • A detached design that makes it easier to extend and integrate with other systems.
  • Network Replicated: Adding and removing factions is replicated over the network using Fast Array Serialization.
  • Documentation: Well-documented code, a thorough on-line manual, Discord Support and public Trello Roadmap.


Code Modules:

  • NinjaFactions (runtime)
  • NinjaFactionssBehaviorTree (runtime)
  • NinjaFactionsEditor (editor)
  • NinjaFactionsFeatures (runtime)
  • NinjaFactionsStateTree (runtime)