How-To: Debug at Runtime (Dev Tools)
Goal: inspect and drive teams during Play-in-Editor - read every agent's tags, see who's friendly/hostile to whom, edit teams server-side, and confirm state replicates to clients - without building any UI.
Prerequisites
You're in PIE and at least one actor has a
UCrimsonTeamAgentComponent. The tool is editor-only and inert outside PIE.1. Open the window
Open it from Tools -> Crimson Teams -> Teams Dev Tools, or type `Crimson.Teams.DevTools` in the console. It can stay open across Play sessions.
Verify
Before Play it shows a "PIE not running" gate; hit Play and it populates.
2. Pick a net context
The Net Context dropdown at the top selects which world you're viewing - the Server or any Client - so you can verify each side independently. Every tab reflects the selected context.
Edits are server-authoritative
Team state has no client->server RPC, so the Agents tab's Join / Leave / +Host / -Host buttons enable only on authoritative agents. Switch the Net Context to Server to edit, then watch the change reach clients in the Replication tab. (On a client context the buttons are disabled - that's expected, not a bug.)
3. The tabs
| Tab | What it does |
|---|---|
| Agents | Every team agent in the world with its team/hostile tags + authority badge. Type a tag, then Join / Leave / +Host / -Host any authoritative agent |
| Attitude Matrix | An NxN grid of GetTeamAttitudeBetween for every agent pair, colour-coded F (friendly) / N (neutral) / H (hostile) - your whole faction graph at a glance |
| Teams | The subsystem registry: each declared team, its display asset, and live member counts |
| Replication | Server-vs-client compare of every agent's tags (players matched by PlayerId, others by name), listing only differences, plus a desync log |
| Event Log | A live, coalesced feed of team/hostile tag changes in the selected context |
Screenshot pending
Images/CrimsonTeams/devtools-attitude-matrix.png4. Verify dynamic re-aggro in multiplayer
This is the fastest way to confirm the dynamic-attitude system end to end:
- Run PIE as Client with 2+ players (and an AI that perceives by affiliation).
- In the Agents tab, with the Net Context on Server, add or remove a hostility tag on a player.
- Watch the Attitude Matrix flip that pairing, the Event Log record the change, and the Replication tab stay green as it reaches the client.
- Confirm a nearby AI re-evaluates (aggros or de-aggros) without the target leaving and re-entering its perception.
Verify
The Replication tab reports
0 mismatches once the change settles, and the desync log briefly logs then resolves.Console cheats (quick alternative)
| Command | Effect | Authority |
|---|---|---|
CycleTeam | Move the local player to the next registered team (wraps) | server / host |
SetTeam <index> | Move the local player to the team at that registry index | server / host |
ListTeams | Print all registered team tags | any |
See also
- Concept: Dynamic Attitude & Multiplayer - the server-authoritative model the tool drives
- How-To: Query Attitude & Gate Damage - the same attitude from your own code