Mapping Guide

TrenchBroom

TrenchBroom is the recommended level editor for Quetoo. Quetoo ships with full TrenchBroom support: game configuration, entity definitions, and texture collections are all included, so you can open TrenchBroom, select Quetoo as the game, and start building immediately — no manual setup required.

TrenchBroom with a Quetoo map

Author your brushwork and place entities in TrenchBroom, then compile with quemap:

quemap -bsp maps/mymap.map 

Quemap accepts “Quake paths”, so maps/mymap.map will work from any host directory.

Load your map in Quetoo from the console (`):

map mymap

Package a finished map and its custom assets for release:

quemap -zip maps/mymap.bsp

The In-Game Editor

Quetoo includes a built-in live editor — something not found in any other Quake-derived engine. It lets you place and modify entities and tweak material properties in real time, with instant visual feedback, without ever leaving the game.

To open the editor, set the editor cvar from the console:

editor 1

The editor panel appears on the right side of the screen. It has two tabs: Entities and Materials.


Entity Editor

In-game entity editor

The entity editor shows all key/value pairs for the entity you are currently looking at. When you open the editor, the entity closest to your crosshair is automatically selected.

Selecting entities

Look at any entity and open the editor — the nearest entity on your line of sight is auto-selected. For lights and other point entities, look directly at the gizmo (the colored bounding box drawn in the world).

Moving entities

With the entity panel open and an entity selected, use the standard movement keys to nudge it in world space:

KeyAction
W / Move forward
S / Move backward
A / Move left
D / Move right
Q / PgUpMove up
E / PgDnMove down

Movement is snapped to the grid size, which you can change with keys 18 (matching Radiant convention: key 1 = 1 unit, 2 = 2, 3 = 4, … 8 = 128). The default grid size is 16 units.

Creating and deleting entities

Copy / Cut / Paste

ShortcutAction
Ctrl+CCopy selected entity to clipboard
Ctrl+XCut selected entity
Ctrl+VPaste entity at crosshair position

Editing key/value pairs

All key/value pairs for the selected entity are shown as editable fields. Click any value field, type a new value, and press Enter — the change is applied to the live server immediately.

For light entities that belong to a team, the shared team properties appear in a second panel below, letting you edit all lights in the team at once.

Saving

Click Save (or run save_editor_map from the console) to write the modified entity data back to the .map file on disk. Material changes are saved at the same time via r_save_materials.

Editing a light entity in-game

Material Editor

In-game material editor

The Materials tab lets you tune surface properties of any material in the map — in real time, with instant visual feedback.

Selecting a material

Look at any surface or model and switch to the Materials tab. The material under your crosshair is loaded automatically.

Editable properties

PropertyDescription
RoughnessControls the spread of specular highlights. Higher = more matte.
HardnessSharpness of the specular lobe.
SpecularityOverall intensity of specular reflections.
ParallaxDepth of parallax occlusion mapping.
ShadowControls how much this surface receives baked shadows.
Alpha TestThreshold for alpha-tested (cutout) transparency.

All changes are reflected immediately in the renderer. The material is marked dirty and written to its .mat file when you click Save.


Key Entities

ClassnameDescription
worldspawnRoot entity. All solid brushes belong here.
info_player_deathmatchDeathmatch spawn point. Place multiple.
info_player_team1 / info_player_team2Red / blue team spawns
item_flag_team1 / item_flag_team2CTF flags
lightPoint light. Keys: radius, color, intensity, style, team
light_sunDirectional sunlight for outdoor areas
func_doorMoving door brush entity
func_platRising platform
func_rotatingContinuously rotating brush
trigger_teleportTeleporter trigger volume

Items use standard Quake II classnames: item_health, weapon_railgun, ammo_slugs, item_armor_body, etc.


Further Reading