Skip to content

Mapping Getting Started

P3rlE edited this page Oct 9, 2026 · 2 revisions

Mapping: Getting Started

Q3Rally maps are ordinary Quake III .bsp maps with a few extra entities and surface types. If you've mapped for Quake III before, you'll feel at home right away.

Tools

  • Q3RallyRadiant – the team's fork of NetRadiant-custom with Q3Rally support built in. Ask on Discord for the current build.
  • NetRadiant-custom works too, together with the Q3Rally gamepack from the repository: tools/gamepacks/
  • q3map2 for compiling (ships with the Radiant builds)

Installing the gamepack (NetRadiant-custom)

  1. Copy tools/gamepacks/games/q3rally.game into the games/ folder of your Radiant installation.
  2. Copy the tools/gamepacks/q3rally.game/ folder next to it, into Radiant's install folder.
  3. Start Radiant, choose Q3Rally, and point the engine path to your Q3Rally installation (the folder that contains baseq3r).

The gamepack has the entity definitions (entities.def / entities.ent), the Q3Rally surface flags, and a build menu with the right compile options.

Compiling

Always compile the BSP stage with -custinfoparms, otherwise the Q3Rally surface types (asphalt, dirt, snow, ice…) don't end up in the map:

q3map2 -game q3rally -fs_basepath "<Q3Rally folder>" -meta -custinfoparms  mymap.map
q3map2 -game q3rally -fs_basepath "<Q3Rally folder>" -vis -saveprt         mymap.map
q3map2 -game q3rally -fs_basepath "<Q3Rally folder>" -light -fast -super 2 -filter mymap.map

The gamepack's build menu already contains these steps. The surface definitions come from baseq3r/scripts/custinfoparms.txt. See Surfaces and Shaders.

For bot support in combat modes, also build an .aas file with bspc as in Quake III. Race bots use their own system, see Bot Navigation.

Files that make up a map

File Purpose
maps/mymap.bsp The compiled map
maps/mymap.aas Bot navigation for combat modes (optional)
scripts/mymap.arena Name, author and supported game modes, see Arena Files
levelshots/mymap.jpg Preview image for the menu
scripts/*.shader, textures/… Your custom textures and shaders
intro_routes/mymap_tl*_rev*.route Pre-race camera flight (optional), see Intro Camera Routes

Pack everything into a .pk3 (a renamed ZIP file) with the same folder structure and put it into baseq3r/.

Testing

\devmap mymap

loads the map with cheats enabled. Set g_gametype first to test a specific mode. For race tracks, \toggle cg_drawBotPaths shows the bot routes.

Checklist: a race track

  1. Build the track and give the road surfaces the right surface types.
  2. Place spawn points (info_player_start / info_player_deathmatch) on the starting grid, facing the driving direction.
  3. Add a rally_startfinish brush across the track.
  4. Add rally_checkpoint brushes along the track and number them in driving order.
  5. Optionally add trigger_fuel zones, weather volumes and props.
  6. Place bot_path_node entities so bots can drive the track.
  7. Write the .arena file with q3r_racing (and other modes) in type.
  8. Compile with -custinfoparms, test, record a ghost lap, and create intro routes.

Details: Race Track Entities.

Checklist: a combat or team map

  1. Spawn points, weapons, ammo and items as in Quake III.
  2. Mode-specific entities: flags, sigils, the hill, or ball and goals for Autoball 🧪, see Game Mode Entities.
  3. An .aas file for bots.
  4. .arena file with the matching modes (q3r_dm, q3r_ctf, q3r_dom, q3r_koth, q3r_autoball…).

Worldspawn settings

Some global settings are keys on the worldspawn entity. See Race Track Entities → Worldspawn keys.

Clone this wiki locally