--- title: "Making Your First CS 1.6 Map: de_ Layout and Required Entities" excerpt: "Build a minimal but playable defusal map: seal the world, place both team spawns, add buy zones and a bomb site, light it, and compile it into cstrike/maps." category: "mapping" tags: "mapping, beginner" image: "" read_time: "8 min read" ---
A defusal (de_) map is the most forgiving place to start, because it needs only a handful of special entities to be playable: two sets of spawns, a buy zone for each team, and at least one bomb site. Everything else — cover, rotations, timing — is level-design craft you refine later. This walks the minimum viable map, the pieces the engine actually requires, so your first compile drops you into a round rather than a "server info" error.
Draw a large box and hollow it (or build six world brushes) into a sealed room. This is the single most important rule in GoldSrc mapping: only world brushes seal the map. If the shell leaks, VIS and lighting never run — see fixing leaks with the pointfile. Texture every face; untextured faces cause compile warnings.
CS uses two different spawn entities, one per team, and the names are not intuitive:
info_player_start <- Counter-Terrorist spawns info_player_deathmatch <- Terrorist spawns
Place them slightly above the floor so players do not spawn stuck in the ground. For a full server you want roughly 16 of each, spread out so players do not telefrag on spawn. For a first test, four of each is enough. Point them in a sensible facing direction using the angle property.
Players can only buy inside a buy zone. Make a thin brush covering each spawn area, tie it to func_buyzone, and set its team so CTs buy at their spawn and Ts at theirs:
Brush over CT spawn → tie to func_buyzone (team: CT) Brush over T spawn → tie to func_buyzone (team: T)
The buy-zone brush should use a tool/trigger texture (e.g. AAATRIGGER) so it is invisible in-game. Without a buy zone, players spawn with a pistol and no way to buy, and you will think the economy is broken.
A bomb site is a brush tied to func_bomb_target (some FGDs also expose info_bomb_target as a point marker). Cover the plant area — a corner of the room is fine for a first map — with a trigger-textured brush and tie it:
Brush over plant area → tie to func_bomb_target
With a bomb target present the game auto-arms the map as a defusal round: one T carries the C4, CTs must defuse. No hostage entities are needed for a de_ map — those belong to cs_ rescue maps.
Without a light entity the whole map renders fullbright (flat, shadeless). Add at least one light entity, or a light_environment if the room has a sky. Set a brightness that is not blinding — the fourth value in the light's color is intensity:
light _light "255 255 220 200"
For an outdoor area, texture the ceiling with the SKY tool texture and add a single light_environment plus an info_sunlight/angle to cast directional sun. One indoor light is enough to prove the pipeline works.
Save the source map with a de_ prefix (e.g. de_firsttest) so the game treats it as defusal, then run a full compile from J.A.C.K. with all four stages enabled. The output .bsp must land in cstrike/maps/. Add it to your rotation via mapcycle.txt and, if you host downloads, mirror it through FastDL.
info_player_start and info_player_deathmatch must exist.func_bomb_target, so the game has no objective. Add a bomb site.func_buyzone over the spawn, or the brush is not actually tied to the entity.light entity, or you compiled without RAD. Add a light and run the full toolchain.Launch a local server on the map with a couple of bots (see installing YaPB bots). You should spawn on a team, be able to buy at your spawn, pick up and plant the C4 at the site, and see the map lit rather than fullbright. Once the minimum map plays a full round end to end, iterate on the layout — cover, two bomb sites, tighter timings — and re-tune the final compile using the VHLT parameters.