Quick Start

By the end of this page you'll have two actors on opposing teams that correctly read as enemies - the foundation everything else builds on. This needs only the agent component and some tags; declared teams, player auto-assignment, and cosmetics are separate How-To pages.

Prerequisites
CrimsonCommon and CrimsonTeams enabled, and a couple of team tags to use (e.g. Team.Red, Team.Blue).
Create the team tags first
CrimsonTeams ships no team tags of its own - you define them. Open Project Settings -> Project -> GameplayTags, add Team.Red and Team.Blue (or edit Config/DefaultGameplayTags.ini directly). Any tag strings work; if you also use CrimsonCore, matching its tag names keeps content portable.

1. Enable the plugin

Open Edit -> Plugins, type Crimson, tick CrimsonTeams (and CrimsonCommon, its dependency), and restart the editor. For a Blueprint project that's the whole install.

Screenshot pendingImages/CrimsonTeams/qs-enable-plugin.png
Edit -> Plugins -> search 'Crimson' -> tick CrimsonTeams's Enabled checkbox -> restart.

C++ projects: add the module to your build file.

csharp
// YourGame.Build.cs
PublicDependencyModuleNames.Add("CrimsonTeams");
Verify
CrimsonTeams shows enabled in the Plugins window and the editor restarts cleanly.

2. Make two actors team agents

Add a Crimson Team Agent Component to each actor (prefer the Player State for players - it survives respawns). Give one Team.Red and the other Team.Blue, and mark each as hostile to the other.

Screenshot pendingImages/CrimsonTeams/qs-add-agent.png
Add Component -> Crimson Team Agent Component, then set Team Tags and Hostile To Tags in its Details.
Server authority
All team mutations (JoinTeam, AddHostileTags, ...) are BlueprintAuthorityOnly and run only where HasAuthority() is true. There is no client->server RPC: clients receive the result by replication. A client-side call is a silent no-op.
Verify
Each actor lists its tags in the component's Details (or via Get Team Tags).

3. Check attitude

Ask the statics whether two actors are friend or foe - it resolves the component on an actor, its pawn, or its player state automatically.

Screenshot pendingImages/CrimsonTeams/qs-check-attitude.png
Get Team Attitude Between (Source, Target) -> branch on Hostile / Friendly / Neutral. Or Should Cause Damage To Target for a quick bool.
Verify
Team.Red vs Team.Blue returns Hostile; two Team.Red actors return Friendly; an actor with no team returns Neutral.
What's next
Wire AI to it and pick how the component gets added (How-To: Make an Actor a Team Agent), react to changes (How-To: React to Team Changes), set up declared teams + colors (How-To: Declared Teams & Colors), or inspect it live (How-To: Debug at Runtime). For the model behind dynamic re-aggro, read Concept: Dynamic Attitude & Multiplayer.