QUICK MAPPING GUIDE You want to create map for XDM? That's easy! Here's basic 10 steps you should follow: 0. Use main .fgd along with your compiler-specific fgd (like zhlt.fgd) - they are additive. 1. Map name must start with game rules prefix. Here's how it is detected in code: {"DM", GT_DEATHMATCH}, {"CO", GT_COOP}, {"CTF", GT_CTF}, {"DOM", GT_DOMINATION}, {"LMS", GT_LMS}, {"TM", GT_TEAMPLAY}, {"RM", GT_ROUND}, so maps starting with "CTF_" will set game rules to capture-the-flag (if allowed by server administrator). CoOperative maps should start with the same name like CO_SuperLab, CO_SuperLab01, CO_SuperLab02 etc. so players have no trouble choosing start map. 2. Map properties: name should be human-readable, but map message ('chaptertitle') should be same as file name so it can be inserted into titles.txt maxteams - mapper can limit number of teams in any multiplayer game roomtype - same as in env_sound, default sound preset on this map (useful if entire map is a cave or under water) gravity - global gravity for everything on this map 3. Files that should go along with map: required: maps/DM_map.bsp maps/DM_map.res maps/DM_map.txt - description, will be displayed in MOTD music/DM_map.xpl - map soundtrack playlist overviews/DM_map.txt overviews/DM_map*.bmp optional: maps/DM_map_detail.txt - it is technically not required, but maps look BAD without it maps/DM_map_pre.cfg - will be executed BEFORE map is loaded (server) maps/DM_map.cfg - will be executed AFTER map is loaded (server) maps/DM_map_cl.cfg - will be executed AFTER map is loaded (client-side, use only in emergency as clients can modify their files!) maps/DM_map_patch.ent - entities from this patch will be ADDED to game maps/DM_map_materials.txt - custom texture materals maps/DM_map_ammotypes.txt - to be used by custom ammo (defines ammo types and parameters) maps/DM_map_hud_ammo.txt - to be used by custom ammo (defines HUD sprites) maps/DM_map_hud.txt - custom HUD sprites music/maptrack (currently mp3/ogg) gfx/detail/*.tga - your custom detail textures, careful with file names! if you have custom sprites, consider this strategy: desired/testing name: "sprites/myfire.spr"; acceptable name: "sprites/mymap/myfire.spr" or, if you are releasing many maps, "sprites/packname/myfire.spr" same goes for models and sounds with a little addition: desired/testing name: "models/env/mybarrel.mdl"; acceptable name: "models/env/mymap/mybarrel.mdl" or, if you are releasing many maps, "models/env/packname/mybarrel.mdl" desired/testing name: "sound/ambience/mywind.wav"; acceptable name: "sound/ambience/mymap/mywind.wav" or, if you are releasing many maps, "sound/ambience/packname/mywind.wav" forbidden: readme.txt - every beginner tries to put his readme into same directory. Guess what's the result? Rignt: it is always overwritten and nobody knows which map it belongs to. thumbs.db - windows creates them to cache explorer thumbnails. They have 'hidden' attribute. Delete them! gamecfg.wc - worldcraft/hammer temporary files. Delete them! any other files that are NOT processed by the engine - jpg, htm, whatever. NOTE: unfortunately, HL only reads PAK files by numbers and you CAN NOT predict how many of them player already has. So it's better to NOT to use them. 4. Player start entities don't differ much from HL: info_player_start for single and co-op info_player_deathmatch for multiplayer games (it has 'team' value, which can be used for team games) NOTE: in CoOp start entities should be tied to nearby landmarks (by name) so players continuing from different maps can play normally. 5. Textures: As always, don't include cached.wad, fonts.wad, gfx.wad in your map. If you use LOTS of custom textures, you'd better put them into single WAD file. Wadinclude is not a very good thing to do. If you're making many maps, shared WAD is a good idea. Duplicating textures (data and/or texture names) is prohibited! 6. Gamerules-specific entities: DOM: info_dom_target - control point, can have custom model Use trigger_multiple, buttons or anything else to trigger them CTF: info_capture_obj - flag entity, can have custom model trigger_cap_point - capture zone Theoretically, you can create multi-purpose maps by placing entities for ANY game rules. When server is running certain rules, all foreign rule entities will be removed. Also, almost all entities have 'gamerules' property that controls in which game rules they can appear. To avoid confusion, please use MP_ prefix ("multipurpose") in this case. 7. Weapons: All weapons are the .fgd file. Some models are not shown properly in map editor because of XDM different model system. Custom "weapon" entity - up to two per map, cannot be taken across levels (at least for now). 8. Static architecture. XDM has env_static for drawing models on the map without using any traffic or causing overflows. It's really amazing thing, so DON'T use cyclers or, even worse, monsters! 9. Pack your map using 7zip, rar or zip in such way that NO ROOT FOLDER gets inside your archive. It means, when you open your archive, you will see 'maps', 'overviews' folders and your WADs right away. Not 'valve' or 'XDM'! This will make life easier for your players and server admins! Thank you for reading!