Mapping/Checklist
From UFO:AI
< Mapping
This is a quick checklist of best practices, common pitfalls, hints and frequently asked questions regarding maps.
- minimise amount of exposed faces;
- minimise brushcount wherever possible;
- assign func_breakable to individual brushes only;
- stepon and actorclip brushes should always be aligned at lower boundary (0, 64 and so on);
- spawn points and stepon brushes should always be aligned to 32 unit grid in x/y directions;
- actorclip brushes that are meant to prevent actors from stepping on a tile altogether should always cover full 32 unit in x/y directions;
- don't make overlapping brushes whenever possible;
- don't make stairs steeper than 45 degrees. don't make steps too large, they will get in the way;
- floors should be in relative height 0-4 (0-4, 64-68 etc) and never below absolute heigth 0;
- don't clone func_group objects (they stay in the same group). Actually, better do not clone things at all, copy-paste them - that works much better to prevent accidentally grouped 10 beds in a map;
- group, group and group some more. grouping brushes that belong together and form a single object is good, it makes mapping much easier - and it does not impact map compiling or game performance in any way;
- to select func_group, select one brush of the func_group, then press ctrl+alt+e;
- to create holes in existing brushes, create a brush where you want the hole to be, select it and press Shift u. remove the temporary brush afterwards;
- brush splitting;
- walls, railings and other things should be aligned with the 32 unit grid in such a way that they are between 32 unit tiles and occupy no more than 4 units on each direction;
- always set your levelflags, even if you think that setting none and having the brush appear in all levels will work for you. even if your maps has only 3 levels, set levelflags up to 8th level, if the brush should be visible in higher levels. otherwise adding a new level above or below existing ones will be near impossible;
- you can see nodraw brushes and other entities in-game by enabling r_showbox variable;
- you can see actorclip brushes in-game by enabling r_drawspecialbrushes variable;
- if you want to copy an object from another map, copy it from prefabs, if available - prefabs are most likely to have latest fixes to the object that could be yet not in the other maps

