Links

TrenchBroom

info and resources for this modern brush-based level editor tool
TrenchBroom (or TrenchBroom 2, or TB) is a free open-source cross-platform 3D level editor with modernized Quake-style brush-based construction and ongoing updates / support. It is widely used across several modding communities as well as commercial projects.
We recommend TB as a decent general purpose 3D level editor tool that potentially works with multiple game engines on Windows, macOS, and Linux.

Construction

TB departs from previous Quake-era level editors to emphasize 3D construction in a single view pane.
Clipping planes can be 3D, and all brushes are automatically validated for convexity. TB is also great at resizing many brushes at once, with SketchUp-like handling of shared planes and contextual extrusion. For its construction capabilities alone, we recommend TB for building blockouts, but it also allows surprisingly detailed modeling and texturing when art passing.
TB's vertex manipulation and automatic brush validation, by Benoit "Bal" Stordeur
TB's visual UV texture editor with "mapversion 220 (Valve)" style skewing, by Benoit "Bal" Stordeur
building a 3D torus using TB's brush tool, clipping tool, and CSG merge by Benoit "Bal" Stordeur

Scripting

TB currently has only basic tools for scripting levels. It parses a .FGD file for entity definitions, and users can create and edit keyvalues to script gameplay, with some limited autocomplete and colorpicker support. This is suitable for simple Quake-style scripting with entity chains, but lacks the functionality of something like Hammer's extensive entity I/O system.
Outside of Quake modding, most users do their level scripting in the Unity / Unreal / Godot editor itself, and make minimal / no use of TB's entity support. But if you really want to implement custom entity support for your game, you must write your own .FGD file and create your own TrenchBroom game configuration.

Compatibility / engine pipeline

Is TrenchBroom a good choice for your game engine? There are two levels of technical compatibility to consider:
  • .MAP support: can your engine import or compile .MAP files?
    • TB's main file format is a Valve variant ("version 220") of text-based Quake .MAP format.
    • Your engine needs some sort of compile tool or plugin to process .MAP files.
    • Optionally, you can also parse / import compiled .BSP files instead. But it's more work.
    • Worst case scenario -- export brushes to .OBJ but lose all entity data
  • Integration: can TB hook into your game assets and display them?
    • To place enemies, doors, or other game objects, TB uses .FGD file with special extensions.
    • TB uses Asset Importer (AssImp) to read a wide variety of texture and model formats, such as PNG, FBX, OBJ, MDL, etc.
importing .MAP geometry into Godot Engine using the Qodot plugin
Game / Engine
.MAP support
Editor integration
Godot
import via Qodot (docs)
FGD export from Qodot, OBJ
Unity
import via Scopa, or compile and use Unity3D-BSP-Importer
common file formats, OBJ export
Unreal
import via HammUEr (guide)
common file formats, textures via TextUEr (guide)
Quake 1
compile BSP via EricW-tools
built-in FGD / WAD / MDL
Quake 2
compile BSP via q2tools-220
built-in FGD / WAD2 / MD2
Quake 3 (incomplete)
compile BSP via q3map2
built-in MD3 / etc but no patch editing support yet
Half-Life
compile BSP via ZHLT v3.4+
built-in FGD / WAD / MDL
needs custom fork

Resources and Community