Garry's Mod

Garry's Mod

125 ratings
Making a map for Garry's Mod
By NWeskey
Hey'lo guys. I will be taking you thru all the basics of the map editor for Garry's Mod.
   
Award
Favorite
Favorited
Unfavorite
Accessing the map editor for Garry's Mod
First off, Hi! I'm here to tell you how to make your first map on Garry's Mod, and if you can map for GMod you can map for any other game with the source engine like CS:GO, CS:S, L4D2, DoDS, and much more.

Let's get started with this. First off, you have to have Garry's Mod installed on your PC.
Then you right click on the name, after that select properties.

It should take you to another window, select Local files and in that section click on Browse Local Files.

Then after that, it will take you to the Garry's Mod files. Just click bin and you'll enter the bin file.

Then find hammer and click it to load it up.
Having basic knowledge of the tools
Now Hammer has loaded up, it should look like this:

Now, to actually create a map, you'll have to click the file button that is located up-left of the window as you can see in the screenshot.

Then you'll get 4 unique windows for 3D, up and side.

And so I don't have to explain what those buttons do right to the screen, just read it yourself.

To delete a block/ entity select the thing you want to get rid off and just press h/ ctrl+x.

''When creating brushes you can press [] to change the grid size, it's simpler!''

-GamingMad101, 2018
Block tools/ Texture tools
Creating blocks

To Create a block, you select the block tool and simply drag a block in the 2D screens( Quick tip: To change the block size( automatically starts at 64 units) you just have to click the #- or #+ buttons at the top-left corner of the screen.) And to see the block just select the camera tool and see it on the 3D screen.

Texturing the block

To have a texture for a block, you have to click browse button on the Texture group section. Select one that you like, and then create the block or if it's already existing click the replace block texture with the one selected tool.

Changing a single block texture side

To do this, you already have a block created and you need to select the single side wall tool and select the side that you want to change the texture of, after that browse and select the texture that you want on that side and you just apply.

Making a block hollow

Making your block hollow will make it... well it's kinda hard to explain it but I'll try my best. Hollowing your block makes it like a box. to do that select a block with the selection tool and click tools button top-left corner of the window, and select make hollow, I personally think -32 and -64 are best.

Making a skybox

To make a skybox, you select the block tool and type in the filter: ''skybox'' and select the toolsskybox texture, create the block, make it hollow and you're done.

Choosing your skybox texture

To change your maps skybox texture, you have to make a skybox hollow block and select the map button that is top-left corner of the screen and select Map properties. the just type your skybox name on the SkyBox Texture Name part.


For skyboxes, link to this god level website - https://developer.valvesoftware.com/wiki/Sky_List ( Thank you GamingMad10)

Making a Displacement

Displacements basically are made to make mountains and uneven grounds. To make one make a block then select a side with the single side wall tool and click displacement, then click create button, power should be 4, and select paint geometry and just make hills, it's very easy to learn.

Fitting Textures

To fit a texture on a side of a block, create a block, and just select the side with the single side wall tool and select fit.

Rotating textures on blocks

To rotate a texture on a block, make a block, select the texture you want to edit with the single side wall tool. and type a number from 0.00 to 359.00.

Making other shapes instead of blocks

To do this you make select block tool and change the objects from block to a shape you choose. And you just make the block, there.

Vertex tool and the clipping tool

I'll explain these two tools because they're kinda similar.

Vertex tool

The Vertex tool is a tool that only works for BLOCKS, NOT ENTITIES! What it does is you can make custom shapes out of regular blocks.

Clipping tool

The Clipping tool is kinda self-explanatory, but I'll explain it, so it's like cutting a piece of cake.
It's cutting basically( Pro tip: if you want to have inverted the cutting or make it so you cut it and you have to bodies of blocks, just click the clipping tool, the red lines on the block in the 2D windows are the thing that will be cut and go out of existence.

Nodraw

Nodraw textures are meant for texture the block(s) side that the player can't see for increasing FPS. This one is self-explanatory.

Func_detail

''func_detail should always be used for stairs or any brushes that have a complex design such as a sphere for example. If some maps take a long time to compile, usually it is the cause of complex brush structures, changing them to func_detail will significantly reduce the compile time.''

Told by Ben (Thanks Ben!)

Func_button

Func_buttons are quite obvious what they do. To make one make a block( i recommend being smaller than 17 units big) and make it a func_detail, rename it to func_button and watch this video to get a decent understanding: https://www.youtube.com/watch?v=SyvsGvA6KXM
Most Used Entity Tools
Spawn points

Spawn points are the most important thing that your map needs because you couldn't compile your map(s). To make one you just put an entity.

Light

The light entity is an important entity too, to make one, spawn in an entity and select it with the selection tool, write Light in the browser and in the Property Name section brightness option is the most important and the most useful one. The first 255 is red, the second 255 is green, the third is blue, and the fourth is brightness.

Light_Enviroment

Light_env is like a sun is light( Doesn't come with the sun). To make one just spawn in an entity and type in light_environment. Pitch Yaw Roll option is where your sun where it is pointing at, to make it point select point at and point it somewhere on your map. The pitch should be the same as in the first option. Brightness is what colour the skin is( NOT TEXTURE WISE,). The first 255 is red, the second 255 is green, the third is blue, and the fourth is brightness. Ambient is what colour of the shadows are, the first 255 is red, the second 255 is green, third is blue, and the fourth is brightness. BrightnessHDR and AmbientHDR are completely useless, don't modify those options, BrightnessScaleHDR is basically the same as the Ambient brightness option. SunSpreadAngle is how blury your shadows are.

Spawning in props

There are three types of props and those are static, dynamic and physics. Static props are made so you can't push them as you can with physics ones. Dynamic ones are used for sticking them to physics ones. To spawn in props, first, make a prop_static or the other ones I mentioned. And to make it be proposed you just select the World Model section and select it in the browser that should open up. Quick tip: If your prop doesn't spawn when you have loaded up the map(loading up maps will be explained how to do later in this guide) then go to the window for the world prop where the props are like showing and go to info and look for what type of prop it is so like a microwave from militia( a map from CS:S and CS:GO) will look good in a physics prop but it's ticked for dynamic or static, so you have to change it to one of those two.

Special effects

Special effects are spawning in fire or like blood. To make one, spawn in an entity and type env_( something like blood, fire or more), Start Disabled should be on No. Duration shouldn't matter if you if you make it infinite time in the Flags option. Size is automatically on 64 units and changes it to a size you want. The attack is automatically on 1, and if you want to be dead when you touch it to make it like 100 or higher.

prop_door_rotating

You can make to types of doors. Func_door and prop_door_rotating, I'm going to tell you how to make a prop_door_rotating. Create an entity and putt prop_door_rotating, and go to world model and type door01_left and go to skins and select the skin you wish to have.

func_breakable or prop_dynamic

To make a window ( func_breakable) you need to make a prop_static and search window frame in the world model option. then make a block with the texture name having glass in the name, choose a texture that you can see through it and fit the texture on the seeable sides and fit it like on the prop somehow. Prop_dynamic windows are much easier, create a prop_dynamic and pick a breakable window model, select it and click on flags and tick break to pressure.

Environment_Sun

Env_sun just makes your map have a sun ( ONLY IF YOU DON'T HAVE A SUN ALREADY IN THE SKYBOX TEXTURE). You already how to make an entity so you do that and just select env_sun. Only three things that are important are Pitch Yaw Roll, Sun Color and Overlay Color. Y Z X should be the same as the Light_env. Sun Colour should be like from orange-reddish to yellow-whitish.

Env_Cubemap

Env_cubemap basically makes a side of a block have reflections. Only thing I recommend is to make it as far away from props and 64 units above/ next from a wall.

Environment_fog_controller

env_fog_controller makes your map have fog. The most important options are Fog Enable and Primary Fog Color. Fog Enable should be on yes and primary fog colour should be near-ish the same colour as the skybox texture is.

Ambient_generic

Ambient_generic is a sound that plays on your map if it's detonated by some way, the way I'm going to teach you how to make it activate is by activating it by playing all the time. First, make an ambient_generic entity. select the sound name option, choose the one you want and select give it a name in the Name option. The only one I use is the Max Audible Distance.1250 units is default and basiclally means how far away the sound can be heard from, modify to a number you want. After that go to Flags and untick Start Silent and if you want the sound to go on forever untick Is NOT Looped aswell.

Enviroment_Soundscape

Env_sounscape is a sound that doesn't come from a single area so like city traffic or dogs barking :). make an env_soundscape entity and to play a sound you just need to visit this web page and just copy and paste an env_soundscape that sounds right: https://developer.valvesoftware.com/wiki/List_of_HL2_Soundscapes.

NPCs

An NPC is a non-player character that makes your map not feel so lonely, to spawn in one type npc_ and search what non-player character you want.
Compiling your map
Compiling maps

This part is really fast. To Compile your map and to actually play-test it just hit F9 and if you have a crappy computer click the fast option, otherwise it's best for Normal or if you want best graphics then go to expert and HDR Full Compile -final (slow) in the Configurations option( which will take 16 times longer than Normal would except if your map is absolutely tiny, then there should be no difference). And after that select then click Go! If something is missing just go on the source SDK site or ask it on Reddit or the steam community they'll probably know what the problem is.
Uploading your map to the Workshop
This part is where you have to get really focused. The first thing you need to do, make a folder on your desktop and name it your map name. Put the BSP.file into the map folder (that's the map, DO NOT PUT THE VMF FILE IN THE FOLDER.) and create a JSON.file/ A text file named addon.json and copy and paste this into the JSON.file {
"title" : "name",
"type" : "map",
"tags" : [],
"ignore" :
[
"*.psd",
"*.vcproj",
"*.svn*"
]
}

The only thing you need to change is ''name'' part because if you don't change it'll be called map on the Workshop. And you'll need an icon for the workshop icon, I'd recommend taking a screenshot(F12 or F5), then when its window with the screenshot just click find on disk or it's called something like that.
Find the screenshot, load it up on Microsoft Paint and make it 512 by 512 also it needs to be a jpg.
Then name it icon.jpg ( if you see a double jpg, remove the jpg from the name).

Now you'll need to make the map folder into a GMA.file. You'll need to go to Garry's mod files and I don't need to tell you how to get into the Garry's Mod files because it's on the ''Accessing'' section of the guide. Go to the bin and copy and paste these three files onto your desktop: gmad.exe, gmpublish.exe and the steam_api.dll. After you've put those files onto your desktop, drag the map folder with the BSP.file and the JSON.file onto the gmad.exe.

Now you should have a GMA.file on your desktop with the name of the map. You need to open up the command prompt which is really easy because just need to select the finding tool for windows and type in cmd and load up the command prompt. then there should say:

C:\Users\(Your computer name)>

type: CD C:\Users\(Your computer name)\Desktop\

and press enter.

then type: gm_publish.exe create -addon C:\Users\(Your computer name)\Desktop\(the GMA.file)
-icon C:\Users\(Your computer name)\Desktop\icon.jpg.

And it should work now.

Credits
But this guide couldn't have been made if 3kliksphilip didn't make awesome tutorials from 2008-2013. PresidentEvil4Zombie's video for uploading your map to the workshop: https://www.youtube.com/watch?v=OzNkADYEVAM&t=14s

Honourable mention to GamingMad101 for being a helping hand to making this guide. See ya, good lads, later! :D
165 Comments
lazlo 2 Jul @ 4:55pm 
phatso!
fart shrimpler 25 Jan @ 11:25am 
write the stuff into a text document, then save the document as for example test.json
Gabriel the Spirit 8 Jan @ 5:13am 
should the JSON file be a text document or does it automatically modify itself?
Glamrock Freddy 27 Mar, 2022 @ 1:55pm 
how do i make a tab for the map in the start new game menu with out making a gamemode like "sb_new_worlds_2"? because it doesn't come with a gamemode and if you extract the file of it their is only a bsp.
Klonoa 29 Jan, 2022 @ 10:25pm 
doing it from scratch is like playing Dark Souls
WABBET 4 Oct, 2020 @ 10:59am 
legend thx
-- 10 May, 2020 @ 3:49pm 
thanks
NWeskey  [author] 5 May, 2020 @ 2:31am 
You would then need to make a gamemode that identifies itself with the ''kakakaka'' parameter.
-- 4 May, 2020 @ 6:34pm 
like create custom ones for like if i name a map "kakakaka_(name)" how put kakakaka into kaka category in map browser. if that makes sense
NWeskey  [author] 4 May, 2020 @ 2:24am 
that's what the the letters before your map name are for (such as; gm,mu,cs,de,ph,hns and so on...) for example gm_mapname is gonna sort your map into the Sandbox category and etcetera.