---
name: "xpay-quakelive-fly-map"
description: "Generate a fly-through demo that tours all rooms of a map, then render it into a video so the user can see what the map looks like.

Supply EITHER:
• map — an existing map name (same lookup as get_bsp_info), OR
• spec — a MapSpec JSON (same schema as generate_map)

The camera visits every room in connectivity order (BFS from the first room, following corridor links).  In each room it hovers at fly_height above the floor and performs a slow 360° pan, then flies to the next room at fly_speed_ups units/second.

Typical workflow after generate_map:
1. fly_map(spec=<the spec you just generated>) → demo .dm_91 + optional video
2. Or: fly_map(map='mymapname') to tour an existing BSP
3. Optionally call render_demo_preview / render_demo_hq on the output demo for a higher-quality video render.

Returns the demo path/URL and a human-readable camera-path log."
version: "1.0.0"
price: "$0.02/call"
provider: "Mcps"
---

# Fly Map

Generate a fly-through demo that tours all rooms of a map, then render it into a video so the user can see what the map looks like.

Supply EITHER:
• map — an existing map name (same lookup as get_bsp_info), OR
• spec — a MapSpec JSON (same schema as generate_map)

The camera visits every room in connectivity order (BFS from the first room, following corridor links).  In each room it hovers at fly_height above the floor and performs a slow 360° pan, then flies to the next room at fly_speed_ups units/second.

Typical workflow after generate_map:
1. fly_map(spec=<the spec you just generated>) → demo .dm_91 + optional video
2. Or: fly_map(map='mymapname') to tour an existing BSP
3. Optionally call render_demo_preview / render_demo_hq on the output demo for a higher-quality video render.

Returns the demo path/URL and a human-readable camera-path log.

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

## When to Use

Use this tool when you need to generate a fly-through demo that tours all rooms of a map, then render it into a video so the user can see what the map looks like.

supply either:
• map — an existing map name (same lookup as get_bsp_info), or
• spec — a mapspec json (same schema as generate_map)

the camera visits every room in connectivity order (bfs from the first room, following corridor links).  in each room it hovers at fly_height above the floor and performs a slow 360° pan, then flies to the next room at fly_speed_ups units/second.

typical workflow after generate_map:
1. fly_map(spec=<the spec you just generated>) → demo .dm_91 + optional video
2. or: fly_map(map='mymapname') to tour an existing bsp
3. optionally call render_demo_preview / render_demo_hq on the output demo for a higher-quality video render.

returns the demo path/url and a human-readable camera-path log.. 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/fly_map")`
2. **`xpay_run`** — Execute: `xpay_run("quakelive/fly_map", { ...inputs })`

## Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `output_path` | string,null | No | Output .dm_91 demo file path. Relative paths resolve against DEMO_PATH. Auto-generated if omitted. |
| `fly_speed_ups` | number,null | No | Travel speed between rooms in Quake units per second. Default: 160 (half of QL run speed). |
| `fly_height` | number,null | No | Camera height above the room floor in Quake units. Default: 72. |
| `room_dwell_ms` | integer,null | No | Duration to hover and pan in each room in milliseconds. Default: 3000. |
| `map` | string,null | No | Existing map name or path to load and fly through. Same lookup rules as get_bsp_info: bare name, 'maps/<name>.bsp', or absolute path. Mutually exclusive with spec; exactly one must be provided. |
| `spec` | object | Yes | MapSpec JSON describing the rooms and corridors to fly through. Mutually exclusive with map; exactly one must be provided. The spec's 'name' field is used as the map name in the demo configstring (default: 'generated'). |

## 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/fly-map/
- Provider: https://xpay.tools/quakelive/
- All tools: https://xpay.tools/explore
