---
name: "xpay-quakelive-classify-player-roles"
description: "Classify each team player's positional role based on where they spent time during the demo: defender / 2nd_defender / middle / 2nd_attacker / attacker (scaled to actual team size). For CTF, provide the 'map' argument so flag positions can be read from the BSP entity lump — this yields an accurate forward axis. Without a map, the tool falls back to ranking players by their centroid distance toward the enemy team spawn cluster. Only the POV player's trace is always complete; other players have sparse traces (see generate_player_heatmap notes). Call open_demo first to get a session_id."
version: "1.0.0"
price: "$0.02/call"
provider: "Mcps"
---

# Classify Player Roles

Classify each team player's positional role based on where they spent time during the demo: defender / 2nd_defender / middle / 2nd_attacker / attacker (scaled to actual team size). For CTF, provide the 'map' argument so flag positions can be read from the BSP entity lump — this yields an accurate forward axis. Without a map, the tool falls back to ranking players by their centroid distance toward the enemy team spawn cluster. Only the POV player's trace is always complete; other players have sparse traces (see generate_player_heatmap notes). Call open_demo first to get a session_id.

**Provider:** Mcps
**Price:** $0.02/call
**Pricing model:** Flat rate per call

## When to Use

Use this tool when you need to classify each team player's positional role based on where they spent time during the demo: defender / 2nd_defender / middle / 2nd_attacker / attacker (scaled to actual team size). for ctf, provide the 'map' argument so flag positions can be read from the bsp entity lump — this yields an accurate forward axis. without a map, the tool falls back to ranking players by their centroid distance toward the enemy team spawn cluster. only the pov player's trace is always complete; other players have sparse traces (see generate_player_heatmap notes). call open_demo first to get a session_id.. This is part of the Mcps provider on xpay✦.

## MCP Connection

Connect to xpay✦ to access this tool (and 87+ others):

```json
{
  "mcpServers": {
    "xpay": {
      "url": "https://mcp.xpay.sh/mcp?key=YOUR_API_KEY"
    }
  }
}
```

For Claude Code:
```bash
claude mcp add --transport http xpay "https://mcp.xpay.sh/mcp?key=YOUR_API_KEY"
```

## How to Execute

Use the xpay✦ meta-tools to run this tool:

1. **`xpay_details`** — Get full input schema: `xpay_details("quakelive/classify_player_roles")`
2. **`xpay_run`** — Execute: `xpay_run("quakelive/classify_player_roles", { ...inputs })`

## Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `map` | string,null | No | Map name or path for flag/spawn positions (same lookup as get_bsp_info). Strongly recommended for CTF — used to establish the forward axis. Omit to fall back to team-spawn centroids. |
| `session_id` | string | Yes | Analysis session ID (from open_demo) |
| `team` | string,null | No | Team to classify ('red' or 'blue'). Omit to classify both teams. |

## Pricing

- **Cost:** $0.02/call
- **Balance check:** Use `xpay_balance` to check remaining credits
- Get your API key at [xpay.tools](https://xpay.tools/account/settings/api-keys/) — $5 free credits included

## Related Skills

- [Mcps (all tools)](https://xpay.tools/skills/quakelive/SKILL.md) — 88 tools
- [Add Player](https://xpay.tools/skills/quakelive/add-player/SKILL.md) — $0.00/call
- [Add Raw Snapshot](https://xpay.tools/skills/quakelive/add-raw-snapshot/SKILL.md) — $0.00/call
- [Add Server Command](https://xpay.tools/skills/quakelive/add-server-command/SKILL.md) — $0.00/call
- [Analyze Demo](https://xpay.tools/skills/quakelive/analyze-demo/SKILL.md) — $0.02/call
- [Award Medal](https://xpay.tools/skills/quakelive/award-medal/SKILL.md) — $0.02/call

## Links

- Tool page: https://xpay.tools/quakelive/classify-player-roles/
- Provider: https://xpay.tools/quakelive/
- All tools: https://xpay.tools/explore
