Garry's Mod

Garry's Mod

217 ratings
Source SDK Hammer Tool Guide For Gmod
By Glycon
This guide will help you to start working with source sdk for Gmod, in other words it will help you to make maps for Gmod.
It will help you to set up source sdk, work with it and upload it to workshop.

For those who are wondering who am I.
I'm a small map developer whose work isn't perfect and have got a lot to learn myself.
But so far I have made a few maps and I believe that I have the experience to help you make better maps.
4
   
Award
Favorite
Favorited
Unfavorite
Addons used in making of this guide.
They are not needed but I thought it would be nice to put them in since they were shown in some of the pictures of the guide.

T-80UD by damik
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=760459646
Basic Vignette by Videah
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=134437650
Ultra Effects Pack V2 by Shell
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=111396485
Skyrim Dragon Playermodels by 2XMM2
https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=652373442
Weapon Loadouts by Gorea235
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=199226357
Customizable Weaponry 2.0 by spy; tigg; Slayer; tim blast and Matsilagi
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=349050451
Simple ThirdPerson - Sliders & Fixes! by FailCake
http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=207948202
Downloading the right tools
Before you even get to hammer tool, you will need to download a few items from steam in order for your hammer tool function.

Lets start by going to LIBRARY -> TOOLS











Then find Source SDK and any of its Bases, I would recommend Source SDK Base 2013 Multiplayer, since that's the one I'm using.








We will be using Multiplayer since it is ment for multiplayer games like: Counter-Strike: Source; Counter-Strike: Global Offensive; Garry's Mod; Team Fortress 2...
The Singleplayer one would be used for games like: Portal; Portal 2; Half-life 2 and its episodes.
Finding and Opening The Hammer Tool
When you donwload the Source SDK and it's base, you will most likely run into a problem when running it, there is no game selection for Garry's Mod.






















So in order to run Garry's mod Hammer Tool you will need to locate it in you steam folder. Usualy it is located in Steam\steamapps\common\GarrysMod\bin folder. Inside the bin folder you should locate the hammer tool.













Now, you can open it.
Introduction to Hammer Tool Basics
In order to start making a new map, you will need to go to file -> New; in order to start working on it.









Here you will be immediately presented with lots of tools.
Here is the main tools that are used for making the map.









All camera views are necessary in order see what are you making.
3D Camera view is used to see how the map will look like in game.
2D Top View Camera shows you how the map looks in a schematic way and will be used for making objects like: houses, hills, walls...
2D Front and Side Camera View shows you how will the object look like schematicly from the sides and it is used to adjust the object height.

(NOTE: You can always do a full screen view of one of the four camera views by clicking on one of the views and presing ctrl+z to access full screen).

The Selection Tool allows you to select object and entities.
Magnify Tool allows you to zoom in and zoom out to yout map.
(NOTE: You can do the same thing by simply scrolling you mouse wheel).
The Camera Tool allows you navigate through your map freely in 3D view.
(NOTE: You can always use the Z key to access the free camera view; also you can use arrow keys to navigate through the 2D views).
Entity Tool you will be using this from adding Player spawn point, props to making triggers, effects and lots of more important stuff that we will talk about later.
Object Tool allows you to make walls, surfaces, water, hills, basically the tool that you will want to master.
Toggle Texture application is a tool that you will use to add textures to only one specific side of the object, also you will use this tool make hills and holes.
Apply Texture Tool is used to apply a selected texture for a selected object.
Apply Decal allows you to add selected texture\decal (such as blood or grafity) on a desired objects wall.
Apply Overlays this tool like the apply decal tool is used to apply selectied texture\decal on objects floor or surface areas.
Clipping Tool will allow you to cut object in half or any side you want (this is the tool you will want to use when making a roof or a ramp).
Vertex Tool will allow you shape the object in 3d view (good for making holes).

Here is a few more Important Tools you need to know.










Toggle Grid Will togle you grid\net on all 2d views (I would not recomend doing this, it is best to be on in all times).
Toggle Grid in 3D will togle the grid in 3d view on selected objects.
Smaller and Larger Grids are very important when scaling your wall (I find the best grid scale is 8 or 16).
Texture Scale Lock it makes the texture on object have the same scale and doesn't allow it to expand (is good when making 3d skybox).
Toggle Models in 2D is good when you need to see how the entities look like in 2D view (note it can become a mess in later stages of map making).
Making Your First Map a Basic Map
Lets us start by making a very simple box map witha small area inside it.
First begin by pressing on file -> New to start working on a new map.









lets start by maing you grid lower to 16, by pressing the smaller grid button.









Then select the browse button.









Than type dev (I suggest begining to with dev textures before the nodraw texture since it is easier to navigate through the map later) in filter section.









Than find and select the orange messure texture and double click on it.









Now select any point on top view camera and drag it until you reach the desired number, I will do 896.0 to 896.0, when you create the surface press enter.









Now go back to texture selection, but this time you will search for a skybox texture, when you find select it and double click on it.









Then create a box around the surface. Use the top view to make the side walls and then the front or side view to adjust the walls height I did 512x896. For the roof do the same thing for me its 16x928 (NOTE: you can always dublicate the wall by selecting a wall and holding shift+draging it with your mouse).









Now find and select a different dev texture and build a box the same way built this one but this time build in inside the skybox (NOTE: you will not need to use skybox texture when building a structure and I recomend lowering the grid number to 8).









Now we will add a doorway and windows. For the door way we will use the player scale (although I would recomend to use prop_door_rotating, but thats a different step). To see the player scale simply select on the entity tool and click near the box where the doorway will be in the 3D view, by the way it is a player spawn too (NOTE I Recommend using the toggle models in 2d to see the entity in the 2D view).









When you have added the entity, you should select the clipping tool, than selecet the wall where the doorway will be, than click on one of the place like the middle and drag it to the other side(Note: when you have selected the cut you will see that the wall in 2d view will change colors, red and white. Red means the area that will be cut and deleted and white means the area that will be left standing, by pressing the clipping too multible times you can change that).









Do this untill you get a similar result.









Select the doorway you created and then tap on delete key on you keyboard. Now select the wall or multible walls that are going to have windows. Then select the clipping tool and do the same thing just like with the doorway.









Now we will test if the map works. First select the entitie tool and click anywhere where the player spawn is going to be (info_player_start). Than go to file -> Run Map. This is the compiling section. Click on don't run the game after compiling, since it takes time to load and can mess with your in game settings.









Leave everything else on normal and press ok. If everything is alright your start of the compile process window should look like this.









If you get a leak, you will have to fix it in order for your map to work. To find the leak go to map, and click on load pointfile, press ok and then you should see a red line in your map, which will point out your leak.









When you fix your leak, go to map and click on unload pointfile. Then Run your Map again. If everything goes and planned the map should get compile into a .bsp file (I called my map Guide for the sake of this tutorial). Now run the game. Click on start new game. Now your map depending on your maps name, it can be located in different section, my map will be in Other section (NOTE: having your map name start with gm_ will place it in the sandbox section, if you call ttt_ it will be in Trouble in Terrorist Town section, zs_ Zombie Survival and so on...).









Click on Start Game and see how your map looks.









With this basic knowledge of how tools work you can now polish, add more stuff to your map and create something basic like this.
Grouping and Making visGroups
In order to keep your map organized, you will need to group and create visgroups. To group your objects or entities simpli select all objects that you want to group. To check if the objects are grouped simply press Groups in select sections and press on the objects that you just grouped.









This is very usefull when you make objects for deatails and decor.
Making visGroups is simple too, to make visgroups you don't need to groups the objects but it is much easier when you go group them. Select all object you want to make to visGroups and go to view and click on QuickHide Objects.









Now the selected objects should be hidden (Note they were not deleted, if you want to unhide them just click on Unhide QuickHide Objects). Now go to view again, but this time click on Convert HideObjects to visGroup.









Now you should notice that there is a new selection in your visGroups section, you can tick or untick it and see that your objects now hide and appear again.









Now if you want to rename the group you will need to click on edit. Find your group and click on it. Now you should see a section called name, simple rename it to what ever you want.









Now you can make all the visgroups you desire and keep your map organized.
Func_Detail
func_detail will help your compiler to see which object are decoration. This makes the compiler compile the .bsp file a lot faster. Making func_detail is very simple just select a group of object or 1 object and hold your CTRL key and tap T key on your keyboard.









(NOTE: all surfices that are not solid should be changed to detail, like triangle or circle objects, since it makes the Compiler very slow).
Skybox and Light_Environment
First we will talk about on how to change your skybox. Before we begin you will need to find a skybox you want to use, it can be custom one or Source SDK one. Right now I will use the Source SDK skybox that are available at all times. Go to this link and choose a skybox of your choise https://developer.valvesoftware.com/wiki/Sky_List (NOTE: choosing a skybox from a game that you don't own for example Counter-Strike: Source will not work and the skybox will have no texture). It is very important to remember these numbers since it will be important for light_environment.









When you copy your skyboxes name, go back to hammer tool. Here you will have to go to map and click on map properties.









Now find skybox texture name and paste the skybox name from the skybox list.









When you compile your map, you will see the changes.









Now place an entitie anywhere on your map. Double click it and go to class search box. Change the info_player_start to light_environment and click apply. Now remember the numbers from the skybox list and add them to the light environment.
Ideal Sun Angle - number will go to Pitch Yaw Roll.
Ideal Sun Pitch - will go to bow Pitch and Pitch Yaw Roll first number.
Ideal Brightness - will go to Brightness.
Ideal Ambience - to Ambience.









Now compile your map again (you can select the HDR option this time) and see how the map looks like now.









Now your map will look 100% better.
Adding a sun and fog.
Just like the light_environment, sun and fog is simple to add but very important to for your maps apperance. First we will add the sun in to the map. add an entity double click on it and find env_sun.









Now change the Pitch Yaw Roll with numbers from skybox list. Also change the Pitch with the skybox list and change UseAngles from No to Yes. Change both Sun Color and Overlay Color to any color you want. I also recommend changing the sun size to 32.









Adding env_fog_controller might not be as simple as it may seem. Place an entity somewhere in the map. Than change fog enable from No to Yes. Now change the fog start and fog end to what ever number you want, you will have to compile and run the game to see the changes, it might be doing this for a long time until you see the perfect result. Now change the Fog max density can be changed from 0.1 to 1.0. Change you fog color too, change to it the color of your skybox or atleast the light_environment ambient color.









Now your map should look something more like this.









You will want to play around with both env_sun and env_fog_controller to get the result you want.
Breakable Glass (func_breakable)
To make breakable glass you will need to have func_breakable. So make an object where the window is going to be (Note: the glass have to be realy thin like 2 grids). Make object in nodraw texture.









Now find the glass texture that you want, but I would recommend using glass/glassbreakable007 which is used in cs_office map.









Now press ctrl+t and in the class search bar type in func_breakable. You will see two different versions, func_breakable and func_breakable_surf. The difference between them is simple, func_breakable will breake all at one as in the intire block will shatter (Note: func_breakable can be used for other materials like wood and concreate). Func_breakable_surf is more usefull for windows, it will shatter like in cs_office in small little pieces.

func_breakable









func_breakable_surf









I don't recommend changing any settings when making breakable glass.
Doors (prop_door_rotating)
When making doors you have 3 choises to choose from. Func_door when making a sliding door, good when making bunkers, space ships, labs or sci-fi maps. Func_door_rotating is a basic door. Prop_door_rotating is like func_door but a better choise. Now I will be talking more about prop_door_rotating rather than func_door and func_door_rotating since it is the best choise when making doors.
Why? because the prop_door_rotating not only is easier to make, but also time saving option.
Lets begin by placing an entity to the location where the door is going to be. In class search type in prop_door_rotating and select it,then press apply. Find and click on world model. Press on browse and type in filter door. Find props_c17\door01_left.mdl and click ok.









Now you don't have to change anything, but if you want you can edit a lot of things, like the sounds that the door make, making it locked, automaticly close it. I wount be changing anything. Now you will need to adjust your struckture and fit the door in.









In game it will look like this.









Also prop_door_rotating can be opened by NPCs but only if Info_nodes are present.
Lights.
There are 2 types of lights that you can add in Source SDK. The light_spot and simply light. Light_spot is a 180 directional light and more suited for lamps. Light is a 360 non directional and is more suited for making custom flares, candles and maybe some glowing orbs or something.
Both of them are pretty simple to use.
First we are going to make a simple light. Make an entity in a dark location of your map. In class search box type in light and select it. Now you can change all setting the way you want.









If you want to make your light look better you should add env_sprite in the middle of light entitie.









The only things that you should consider changing are color, framerate and scale. This is how it looks in game.









Now we will be making a light_spot. Add an entity and in class search look for light_spot select it and click apply. There are only 2 options that you should change.









I you want to make the light look better you should add. You should add an entity and search for point_spotlight.









The options in this one is self explanatory, the only setting you want to change are its pitch from -90 to 90, its color and spotlight lengh and width. Next make an object with trigger texture under it and press ctrl+t. Search for func_dustmotes.









This is how it looks in-game.









Now remember, placing more detailed lights might look good, but they hurt the framerate more than simple light would.
Textures
Applying textures to your object is very simple and easy. First select your Toggle Texture Application Tool and click on browse. Than depending on what kind of map your making, you will want to select right texture for it. Type in wall if the filter and select any texture you want, I will go with concretewall013m.









To apply the texture to your wall simply right click on it in 3D view.









It is very simple and easy.









When you are done applying textures make sure to find any dev textures present on the map with the Toggle Texture Application Tool. Click on replace and on the relpace bar copy and pase this tools/toolsnodraw or simply press browse and search for nodraw. Than press ok.









This will help your compiler to run much more smoother.
This is how my maps looks in game.









Now most likely you have made a much more better work than I did, but hey not everyone is perfect.

Here is a few more things that you should know about textures. There are textures that are made for specific purpose like the ladder texture will allow you to climb it, invisable wall well its an invisable wall, nodraw is needed for optimization, glass and sometimes water texture to work, trigger texture has to have a funcution on it or it will do nothing, it is great for making buttons, traps, events.
Displacements.
Making displacements is a good option when making a 3D skybox, holes, mountains, hills. I will be making a hole and a snowdrift.

I will begin with a snowdrift. Begin by makin an object somewhere in the. When making displacements, never use nodraw textures it doesn't work. Now select the Toogle Texture Aplication Tool and only click on one side of the object. Than go to displacement and click on create. Press ok.









Now press on Paint Geometry and start playing around with it. It is a very simple tool to use just take some time with it and you will get use to it.









Cut out a square in any of your walls but don't delete it.









Now cut out another square with in the current square.









Now select the Vertex tool make this by pulling the little squares to one end.









Now once again click on the Toggle Texture Application Tool and select all visable parts of the hole.









Now click on displacement and press on create, click ok. Now change the scale to lets say 0.3 and click apply, now click on subdivide.









Now you can shape it how ever you want it with paint geometry tool and applying the texture you want.









This is how it looks in game.
Props
The main 2 prop types that you need to know are prop_physics and prop_dynamic. Prop_physics is used for items that can be picked up, thrown away or blown away, props like boxes, crates and barels or smaller props like bottles, hulla dolls and so on...
To make prop physics add an entity anywhere on the map. Type in prop_physics in the search and click apply. Than double click on World Model and in filter search for crate. Find wood_crate001a.mdl press ok and than apply.









Prop_dynamic is a prop that can't be moved and will not have any physics propeties. It is good for making heavy, big props like vehicels, machines, dumpsters or props that you don't want to be moved by npc or players.
So add an entity and in class search type in prop_dynamic and click apply. Double click on World Model and search for vehicle. Find car004a.mdl and click ok and then apply.









If you are planning to add Info_nodes to make Npc navigate you map, you should make an invisable wall inside the prop_dynamic so npc wount get stuck on them. Don't forget to make the invisable wall func_detail.









Now you can decorate your map how ever you want, but don't forget to group them and make a visgroup out of them.
Making Snow or Rain
Making rain or in my case snow is simple. Go ahead and find the trigger texture and objects all over your map, but be carefull and try avoiding all of your structures or the snow will clip through the wall. When you have made all the triggers you need select them all press ctrl+t and find func_precipitation press apply.









If you want to make a storm and the desity 100% doesn't help, just copy and paste the trigger untill you get a satisfying result (NOTE: may cause a framerate drop).
3D Skybox
First build up you surroundings, the part of the map that is offlimits to players, beyond the skybox.










Now you will want to add an entity anywhere on your map. Double click on it than in class search box type in sky_camera. Next you will to place it on coordinations of 0.0 or simply put in the middle of the entire hammer tool represented by the blueline.









Next press on the scaling texture lock <-tl-> .Than select everything that will be in the 3D skybox including the sky_camera. Press ctrl+m hit scale and change all values to 0.0625 and click ok.









Now you should get a mini version of your skybox. You can move it around and place where ever you want.









Make a 2d skybox around it.









Make all objects inside of it func_detail except for displacements. Now you can add any props you want to it, but recommend adding only props that are made for skyboxes. For example, add an entity, search for prop_dynamic, go to world model and type in filter skybox, you should find a lot of props that should work with the skybox.









If you are using a fog entity make sure to copy all of its stats and put it in the sky_camera settings.









Now go to your map skybox and change all 2D skybox textures to Skybox texture.









Now compile the map and check out how it looks in game.
Ambience and Sounds
A very big impact for maps success is its ambience. A lot of maps uses somesort of ambience dispite what kind of theme is going for. Ambience is very important for horror maps, but if you are making a simple map ambience shouldn't be forgoten.
There are two way making ambience in your map.
1) By adding env_soundscape, which is basicaly a whole pack of sounds made by valve that are free to use. Here is a list of usable soundscapes: https://developer.valvesoftware.com/wiki/List_of_HL2_Soundscapes
(NOTE: Soundscape will be played in the entire map, so everyone will hear it dispite being 10km away from it).









2) By adding ambient_generic, which lets you put individual sounds in specific area, like water leaking, steam, fire sounds. I find this entity best when adding custom sounds since a lot of HL-2 sounds will play through the whole map dispite the radius set. This sound will be only heard by the player who is in range of it and is directional.
(NOTE: not all sounds are looped, that means that they will only play once and that it, if you want find looped sounds just type in loop in filter).
Making NPCs move around your map (info_nodes)
A lot of map creators seem to forget to add info_nodes to the map, they either are lazy or just don't know how to add them. It is actualy very simple and easy.
First lets talk about ground nodes, the main nodes that all maps should have. When adding an entity you will see 2 choises of info_nodes: info_node and info_node_hint. Info_node is a simple walkable area node while info_node_hint does the same thing but it can tell the NPC for example where he could find some cover. When in hammer tool you will only want to use info_node_hint and just to tell the NPC where some decent cover is, since we are not making a story map, it is all you should care about.









These nodes should only be used where the NPCs can find cover. So behind hard and solid objects or props.









Now to finish ground info_nodes you will need to compile the map and launch Garry's mod and leave hammer tool open. Open your in game console and type in map_edit yourmapname.









Don't panic if the game freezes, its is actually loading your map so give it some time and the map should load. When it is loaded you will see that you will have your standart sandbox equipment and no, you cant change it, unless you are like me and use custom loadout addon than your screen might look like this.









Left click to add a node, right click to delete a node and j to save the navigation. I will be automaticly imported to your hammer file. Place down the as much nodes as you can but remember that there is a limit to them.









When your done just press J key on your keyboard and simple exit from the game, now you should notice that your map in hammer tool has changed. All of the Info_nodes that you placed are now present in your map.









If you want to see your Info_nodes in action, simply compile your map and load it in sanbox. Spawn a few combine soldier or zombies and you will see that they will move around your map.










I find info_node_air to be useless since they instruct small flying npcs to navigate in your map, like city scanners. If you want to make Striders move around your map you will want to use info_node_air_hint and choose strider_node. I still have no idea how to make helicopter and gunship to navigate through your map.
Cubemaps
I find cubemaps one of the most frustrating things add to the map. But if you wan't to have reflection to your map, you will need to add cubemaps.
Now add an entity to your map and in class search box type in env_cubemap. Don't change anything inside of it. You will want to place it in the same height of your player view in game.









Now placing them can be really tricky and you will need to go compile the map and check in game how it looks (best way of adding them is in squared areas, for example: in every 64x64 grid), I recommend using somesort of scoped weapons like the AWP from CS:S or any other weapon that you know can have reflection of the scope. When you compile your map and want check out to test it, you will need to got o your console in game and type in buildcubemaps.










If your command works, spawn a weapon which would have reflections and see how it works.









If you are not setisfied with the result just add more cubemaps or adjust the current ones in the map. (NOTE: props that have reflections might become shiny, in order to fix this you will need to adjust your cubemaps correctly or stick with the shiny textures).
Adding Custom Sounds for ambient_generic
First things first, you will need to hove 2 programs.
1) Audio file converter or editor, if you don't have one, I recommend downloading and intalling Audacity. http://www.audacityteam.org/
2) If you want to make looped sounds, you will need to have Gold Wave installed. https://www.goldwave.com/

Now before you start searching for an audio file, note, that Source games only can handle 6min of combined custom sounds, if you go further than that, the sounds in game will crash and you wount hear anything. I recommend staying around 4min.

All audio files has to be converted to .wav files.









If you want the sounds to be looped you will need to open goldwave import your audio file. Then under the tools tab find cue points.









Click on it and add 2 new cues: start_cue and end_cue.









Now simply click on save and exit the program. Now drag your new audio file to your steam gmod sounds folder C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\garrysmod\sound
If you don't have a sound folder inside garrysmod folder, make one.









Now open your hammer tool and open your map (if you had it open before you added the audio file, then close and open it again). Add an entitie and search for ambient generic in class search box. Go to flags and untick start silent, if your sound is looped untick the Is NOT Looped.









Go back to Class Info and double click on sound name. Change Sound Type: to Raw, in filter type in your audio files name.









Now compile your map and see if the sound works. If it doesn't work, go through the steps again you might have done a mistake in converting the file or maybe your just didn't untick Start Silent.
Adding custom decals.
First of all you will need to have 1 program called VTFedit. If you don't have it, download it from here: http://nemesis.thewavelength.net/index.php?p=41

Now also you will need to remember that your file scale has to be in one of these numbers:
1x1, 2x2, 4x4; 8x8; 16x16; 32x32; 64x64; 128x128; 256x256; 512x512; 1024x1024; 2048x2048 or ir could be a combination of both, 128x64; 512x1024, 32x256 and so on.

Make or find a decal that you would like to add.










Since this is a decal I will be exporting it as a png file. Next put the file inside an empty folder and open VTFedit. Go to tools and click on convert folder.









Change the input folder to the folder where the decal is located. Change the output where the new decal file is going to be exported. Then To VTF: .jpg change to .png









Click on convert. I should give 2 files: .vtf and .vmt file. Now go to your Material folder inside Gmod C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\garrysmod\materials. If you dont have a material folder, make one. Now create a decal folder and put of converted files inside your new decal folder. Next open the .vmt file. And write in:
"LightmappedGeneric"
{
"$basetexture" "decal/walter_dragon_decal" -> Change to you decal name
"$translucent" 1
"$decal" 1
"$decalscale" 0.10 -> Adjust the size value how ever you want.
}









Now open your Hammer tool and open your map. Go to texture browser and find your decal.









To apply the decal simply find your apply decal tool and click on any wall. This is how it looks in game.
Importing custom models.
There are 2 ways of getting custom models.
1) from garrysmod.org: https://garrysmods.org/
2) Garry's Mod Workshop.

Optaining models from garrysmod.org is very simple, you just download them extract them and put it in your gmod folder. Then open your hammer tool add an entity of prop_dynamic and search for your prop in world model.
If you want to get a prop from workshop, you will wan to ask permission from the original author first before downloading it. Now I had asked damik for T-80ud model some time ago. If you are interested in you can find it here: http://gtm.steamproxy.vip/sharedfiles/filedetails/?id=760459646&searchtext=t-80









When you get the permission from the author, you can use the model. So subscribe to the addon and open your game, wait for the download to finish and quit. Now find the addon you subscribed to and copy paste on desktop. Than find gma.exe in your gmod bin folder, the same folder where your hammer tool is located. Now select the addons gma folder and drag it on the gma.exe









Now you should get a folder containing the model and materials from the gma.









Select its content and drop them inside the gmod folder.









Now go to your hammer tool and create an entity with prop_dynamic class. Double click on world model and search for your model.









Here it is in game.









But Please Remember To Ask Permission From The Original Author To Use Hes Or Hers Work! If You Decide To Use It Without Permission You Will Be Breaking The Steam Subscriber Agreement. http://store.steampowered.com/subscriber_agreement/ and the Steam Online Conduct. http://store.steampowered.com/online_conduct/ Breaking One Of These Rules May Result In A Ban From Workshop.
So Always Make Sure To Ask For Permission First Before Using.[/b]
The Finnal Compile.
For the last compile before you upload to workshop, you will need have a tool which you will use to compile in all the files into the bsp that the source sdk doesn't.
I recommend using pakrat since thats what I'm using for this guide. https://therazzerapp.de/tools/pakrat.html

Now lets go back to hammer tool. Click on Run Map, now if you don't have cubemaps in the map, compile it like always, but if you have cubemaps, click on expert, in configuration select HDR Full Compile -final(slow!). You can do this without cubemaps but you might get the shinny textures on all of your props and models. Now you will want untick %game.exe and press Go!









You should check if the map works, if does exit the game and lets continue. Open the pakrat programs. Find your map inside your GMOD MAPS FOLDER and not the DOCUMENTS HAMMER FILE FOLDER.









Click on open. Now click on Auto, the auto scan should find all of the files used in your map.









Now you may notice that the compiler didn't find any material files aside from the decals.









You will need to add all of the materials by yourself manualy. Click on Add. Go to you Gmod folder and find the material folder. Find the materials files of props you used for me its in C:\Program Files (x86)\Steam\steamapps\common\GarrysMod\garrysmod\materials\models\t-80ud









Select all the files and click open, if a new window pops up click yes to all. Now you should have all the materials you need (that is if you found them all).









Now Click on file and Save BSP.
Check the map if the materials and props are in, if they are well done, you have compiled the map.
Uploading to Workshop
There are many ways to upload a map and here is one of them which I have learned from this video :










So Go Ahead And Watch It, I Ain't Gonna Explain You Anything About It! :P

Also when you have the map uploaded, remember to upload as many pictures that shows of your map. A good description is also always welcomed by the community.
Hammer++
If you've been using hammer tool and found it too tedious, check out Hammer++, it's absolutely fantastic:
https://ficool2.github.io/HammerPlusPlus-Website/download.html

For gmod you can check this guide (It worked great for me):
https://github.com/RealParSec/realparsec.github.io/blob/master/README.md


Here's a video by 3kliksphilip showcasing Hammer++:
https://www.youtube.com/watch?v=RT_T-GittpM&ab_channel=3kliksphilip
THE END!!!
Thank you for viewing my guide on how to Source SDK for making Maps in Hammer Tool for Garry's Mod. I hope this guide helped you.
If I did an error or you can't do some of the steps please leave comment.
If you have a question or a suggestion please also to leave a comment.

I'm sorry if you find any grammar errors, English isn't my native language.

Thank you for reading and have a nice day :)
223 Comments
ebes 27 Sep @ 12:14pm 
how to use hammer editor for gmod:
step 1
don't
Yung 30 Apr @ 1:32am 
here are the final result, damn i'm too lazy to continue working on this small confined map lol! once again thank you for making this guide, I'll make sure I will ask for your help whenever is possible in the future.

https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=3473133884
IntellectualPotato 29 Apr @ 11:21am 
oh my god i am STILL subscribed to this discussion years later 😭
i was on the first pages of comments on this poor guide and i was a LITERAL CHILD LOL
we've both grown up even if i was even less mature, atleast im 20 now pfft-
Glycon  [author] 29 Apr @ 10:44am 
First of all, congratulations! I am glad you found something useful from my 9 year old guide..... Gods I'm getting old I was still in school when I made this :winter2019sadyul:

Also, I am surprised that you are following my guide, since you did declare it is the "least beginner friendly guide to Hammer so far!" which made me think you have found a better guide, but ok.

If you need any assistance, and I still remember how Hammer works, I may be of help.
Yung 29 Apr @ 10:23am 
hell yea this guide is truly helpful, here are one of my creation after following this guide until Displacement. before i called it a day

https://gtm.steamproxy.vip/sharedfiles/filedetails/?id=3472616907
Yung 28 Apr @ 6:38am 
yeah finish what you started got it
Glycon  [author] 28 Apr @ 6:24am 
No.
Yung 28 Apr @ 1:52am 
this is one of the least beginner friendly guide to Hammer so far! but sadly mapping is just take a lot of time to be honest but hey, do you think it's also worth to upload my unfinished map? because I have the vmf files just sitting on my PC for months and even year!!
Glycon  [author] 3 Sep, 2024 @ 5:38am 
Now of course, this issue is rather complex since it can have many causes.
If all fails there is probably the most tedious way:
Make a backup of you map, then delete everything in the map, make a simple flat terrain with a skybox and a player spawn and compile, if it changes in game then rejoice, since your map file isn't corrupted.

Next load up your backup and start deleting segments of your map, make sure there is no leak, compile it, see if anything changes, if does reload your backup delete a smaller segment of your map and so on, until you dial in to the problem.

I've also read that this problem may occur, if your sky_camera is stuck in a brush/object.
Glycon  [author] 3 Sep, 2024 @ 5:19am 
The third thing I can think of is a bad displacement, displacements have always been janky, good example is my gm_lisnoy map. It was made mainly with displacements and now for some odd reason there is a chance that a spawned prop with physics might just clip through the map and crash the game. To see if it is a displacement issue, simply delete all of them and compile your map, if the maps has changed, well you know what is the problem.