---
name: "xpay-quakelive-merge-maps"
description: "Merge two or more BSP maps into a single BSP file by combining their geometry, entities, and shaders. Each map can be translated (offset) in 3D space before merging so that rooms don't overlap. Use this to:
• Combine two existing maps side-by-side (e.g. campgrounds + aerowalk)
• Stack maps vertically for multi-level play
• Create hybrid maps by mixing parts of different levels

The first map in the list is the 'base' — its worldspawn settings (sky, gravity, music) take priority. All entities from every map are preserved. Shaders are deduplicated by name.

The output BSP uses a simple all-visible PVS (no real cluster culling), which is fine for demo playback but means every surface is always rendered.

Translate tip: to place map B 2000 units to the right of map A, set translate=[2000,0,0] for map B. Use get_bsp_info to find the bounding box of each map so you can compute non-overlapping placements."
version: "1.0.0"
price: "$0.02/call"
provider: "Mcps"
---

# Merge Maps

Merge two or more BSP maps into a single BSP file by combining their geometry, entities, and shaders. Each map can be translated (offset) in 3D space before merging so that rooms don't overlap. Use this to:
• Combine two existing maps side-by-side (e.g. campgrounds + aerowalk)
• Stack maps vertically for multi-level play
• Create hybrid maps by mixing parts of different levels

The first map in the list is the 'base' — its worldspawn settings (sky, gravity, music) take priority. All entities from every map are preserved. Shaders are deduplicated by name.

The output BSP uses a simple all-visible PVS (no real cluster culling), which is fine for demo playback but means every surface is always rendered.

Translate tip: to place map B 2000 units to the right of map A, set translate=[2000,0,0] for map B. Use get_bsp_info to find the bounding box of each map so you can compute non-overlapping placements.

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

## When to Use

Use this tool when you need to merge two or more bsp maps into a single bsp file by combining their geometry, entities, and shaders. each map can be translated (offset) in 3d space before merging so that rooms don't overlap. use this to:
• combine two existing maps side-by-side (e.g. campgrounds + aerowalk)
• stack maps vertically for multi-level play
• create hybrid maps by mixing parts of different levels

the first map in the list is the 'base' — its worldspawn settings (sky, gravity, music) take priority. all entities from every map are preserved. shaders are deduplicated by name.

the output bsp uses a simple all-visible pvs (no real cluster culling), which is fine for demo playback but means every surface is always rendered.

translate tip: to place map b 2000 units to the right of map a, set translate=[2000,0,0] for map b. use get_bsp_info to find the bounding box of each map so you can compute non-overlapping placements.. 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/merge_maps")`
2. **`xpay_run`** — Execute: `xpay_run("quakelive/merge_maps", { ...inputs })`

## Input Parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| `maps` | array | Yes | List of maps to merge. First entry is the base map; subsequent maps are translated by their 'translate' vector before merging. All entities from every map are preserved. Shader names are deduplicated. Use 'translate' to offset maps so they don't overlap — e.g. offset map B by [2000, 0, 0] to place it 2000 units to the right of map A. |
| `output_path` | string,null | No | Output .bsp file path. Relative paths resolve against DEMO_PATH. Auto-generated if omitted. |

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