---
name: "xpay-quakelive-generate-map"
description: "Generate a playable Quake III / QuakeLive BSP map file from a high-level JSON specification. The spec describes rectangular rooms, optional corridors connecting them, and game entities (spawn points, weapons, pickups). The output is a valid IBSP v47 binary that wolfcamql can load for demo playback. 

The spec JSON has these top-level fields (all optional except rooms):
• name: map display name
• sky: sky shader, e.g. \"textures/skies/qlsky\"
• gravity: integer (default 800)
• ambient: float 0.0–1.0 (default 0.15)
• rooms: array of room objects (see below)
• corridors: array of corridor objects
• items: array of entity objects

Room object fields:
• id: string (required for corridor references)
• mins + maxs: [x,y,z] absolute corners, OR
• position [x,y,z] + size [w,d,h]: centre + dimensions (default size 512×512×256)
• floor_texture, wall_texture, ceil_texture: shader names (optional)

Corridor object fields:
• from, to: room IDs to connect
• width: corridor opening width (default 128)
• height: corridor opening height (default: min room height)

Item object fields:
• classname: e.g. \"info_player_deathmatch\", \"weapon_rocketlauncher\"
• origin: [x, y, z]
• angle: yaw in degrees
• any extra Q3 entity key-value pairs

Common classnames: info_player_deathmatch, info_player_start, weapon_rocketlauncher, weapon_railgun, weapon_shotgun, weapon_lightning, weapon_plasma, item_health, item_health_large, item_armor_body, item_quad, item_haste, item_regen, item_flight, team_CTF_redspawn, team_CTF_bluespawn, team_CTF_redflag, team_CTF_blueflag"
version: "1.0.0"
price: "$0.02/call"
provider: "Mcps"
---

# Generate Map

Generate a playable Quake III / QuakeLive BSP map file from a high-level JSON specification. The spec describes rectangular rooms, optional corridors connecting them, and game entities (spawn points, weapons, pickups). The output is a valid IBSP v47 binary that wolfcamql can load for demo playback. 

The spec JSON has these top-level fields (all optional except rooms):
• name: map display name
• sky: sky shader, e.g. "textures/skies/qlsky"
• gravity: integer (default 800)
• ambient: float 0.0–1.0 (default 0.15)
• rooms: array of room objects (see below)
• corridors: array of corridor objects
• items: array of entity objects

Room object fields:
• id: string (required for corridor references)
• mins + maxs: [x,y,z] absolute corners, OR
• position [x,y,z] + size [w,d,h]: centre + dimensions (default size 512×512×256)
• floor_texture, wall_texture, ceil_texture: shader names (optional)

Corridor object fields:
• from, to: room IDs to connect
• width: corridor opening width (default 128)
• height: corridor opening height (default: min room height)

Item object fields:
• classname: e.g. "info_player_deathmatch", "weapon_rocketlauncher"
• origin: [x, y, z]
• angle: yaw in degrees
• any extra Q3 entity key-value pairs

Common classnames: info_player_deathmatch, info_player_start, weapon_rocketlauncher, weapon_railgun, weapon_shotgun, weapon_lightning, weapon_plasma, item_health, item_health_large, item_armor_body, item_quad, item_haste, item_regen, item_flight, team_CTF_redspawn, team_CTF_bluespawn, team_CTF_redflag, team_CTF_blueflag

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

## When to Use

Use this tool when you need to generate a playable quake iii / quakelive bsp map file from a high-level json specification. the spec describes rectangular rooms, optional corridors connecting them, and game entities (spawn points, weapons, pickups). the output is a valid ibsp v47 binary that wolfcamql can load for demo playback. 

the spec json has these top-level fields (all optional except rooms):
• name: map display name
• sky: sky shader, e.g. "textures/skies/qlsky"
• gravity: integer (default 800)
• ambient: float 0.0–1.0 (default 0.15)
• rooms: array of room objects (see below)
• corridors: array of corridor objects
• items: array of entity objects

room object fields:
• id: string (required for corridor references)
• mins + maxs: [x,y,z] absolute corners, or
• position [x,y,z] + size [w,d,h]: centre + dimensions (default size 512×512×256)
• floor_texture, wall_texture, ceil_texture: shader names (optional)

corridor object fields:
• from, to: room ids to connect
• width: corridor opening width (default 128)
• height: corridor opening height (default: min room height)

item object fields:
• classname: e.g. "info_player_deathmatch", "weapon_rocketlauncher"
• origin: [x, y, z]
• angle: yaw in degrees
• any extra q3 entity key-value pairs

common classnames: info_player_deathmatch, info_player_start, weapon_rocketlauncher, weapon_railgun, weapon_shotgun, weapon_lightning, weapon_plasma, item_health, item_health_large, item_armor_body, item_quad, item_haste, item_regen, item_flight, team_ctf_redspawn, team_ctf_bluespawn, team_ctf_redflag, team_ctf_blueflag. 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/generate_map")`
2. **`xpay_run`** — Execute: `xpay_run("quakelive/generate_map", { ...inputs })`

## Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `output_path` | string,null | No | Output .bsp file path. Relative paths resolve against DEMO_PATH. Auto-generated from the map name if omitted. |
| `spec` | object | Yes | JSON object describing the map. Fields: name (string), sky (string, shader name), gravity (int, default 800), ambient (float 0–1, default 0.15), music (string, optional), rooms (array of room objects), corridors (array of corridor objects), items (array of entity objects). Room fields: id (string), mins [x,y,z] OR position [x,y,z] + size [w,d,h], floor_texture, wall_texture, ceil_texture (all optional strings). Corridor fields: from (room id), to (room id), width (float), height (float), floor_texture, wall_texture, ceil_texture. Item fields: classname (string, e.g. 'weapon_rocketlauncher', 'info_player_deathmatch'), origin [x,y,z], angle (float, yaw degrees), plus any extra Q3 entity keys. Example: {"rooms":[{"id":"main","position":[0,0,0],"size":[512,512,256]}], "items":[{"classname":"info_player_deathmatch","origin":[0,0,32]}]} |

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