About the Game
You spawn objects and weld them together to create your own contraptions - whether that's a car, a rocket, a catapult or something that doesn't have a name yet - that's up to you. You can do it offline, or join the thousands of players who play online each day.
If you're not too great at construction - don't worry! You can place a variety of characters in silly positions. But if you want to do more, we have the means.
Beyond the Sandbox
The Garry's Mod community is a tremendous source of content and has added hundreds of unique modes to the game. In Trouble In Terrorist Town, you can be a detective solving an online murder as criminals attempt to cover up their homicides. Be a ball, a plant, a chair, or anything else in Prop Hunt's elaborate, shape-shifting game of Hide & Seek. Elevator: Source is gaming's first elevator thrill ride, delivering players to airlocks and kitten dance parties.
We have one of the most vibrant Steam Community Workshops, with over 300'000 models, maps, and contraptions to download. It has everything from new tools to improve your builds, to guns that fire rainbow-tinged nuclear blasts from space. Take as much or as little as you need: it’s all free.
Please note: Some multiplayer servers and game-modes might require you to own other games - such as Counter-Strike: Source and Team Fortress 2.
Screenshots
20 images
Version Information
Steam Patch Notes
Official update history
Hello everyone,
A new small patch has been released.
This one contains mostly fixes for regressions introduced by the November Update, as well as some other minor fixes.
Sandbox servers and clients are recommended to update at their earliest convenience.
The change list is as follows:
Fixed decals not rendering in Hammer
Re-added model scale to prop_dynamic in Hammer
Limit physics rescaling to prop_physics and sent_anim
Fixed server Lua error when using "" for rope material
Make Resistance Mine have proper name in killfeed
Added Cable_DX8 to rope shader whitelist which is used by some default materials
Combine Mine relationship adjustments
Respects Ignore Player and Disable AI settings
Doesn't attack Combine Gunship, Manhacks, Stalkers
Always attacks Barnacles and Xen Aliens from Half-Life 1
Fixed client D.O.G. ragdolls leaving behind ropes on removal
Set default m_flUseLookAtAngle for func_button to 0.8 (was 0) in engine
Set min_use_angle to 0.8 (was 0) for func_button in Hammer
Fixed certain NPCs (such as Alyx and Citizens) firing 2 bullets per pistol shot
Fixed Alyx firing the .357 Magnum also spawning reload shells
Fixed crashing on loading a Source Engine saves when Nextbots are present in the save file
Fixed map load crashes to do with corrupted maps (corrupted overlays)
Fixed prop gibs stopping spawning after the 300th in multiplayer
Fixed func_proprrespawnzone not being tracked properly clientside
Prevent recreating tool GhostEntity every tick with some tools (Community Contribution)
Fixed Motor tool torque axis being wrong if the motor was rotated after creation and before first activation (Community Contribution)
Fixed Lua errors when trying to open spawnmenu in Sandbox derived gamemodes with Spawnmenu disabled
Fixed main menu Lua errors when starting certain maps
Reimplemented kickid console command from scratch to hopefully resolve corrupted kick reasons issue
Reworked internals of Player:Kick and game.KickID to be consistent with each other
Fixed a regression with CBasePlayer::Kick that resulted in weird kick reasons
Fixed floating addons failing to mount on Linux systems
Don't try to load save files from mountable games
Fixed a regression with Entity:CreateParticleEffect when using tables
Fixed models/cs_fix.mdl not loading due to it being corrupted
Updated Zombine and Combine Soldier without armor player models to fix their animations
The entire change list can also be found on our website:
A new patch has been released. This one contains mostly stability and security fixes.
Servers and clients are recommended to update as soon as possible.
The change list is as follows:
- Throw a non halting Lua error when hitting Lua file limit, to let players know that they have hit the limit
- Fixed a regression crash on Linux when almost finished loading a map
- Prevent crashes with steamworks library when used too early on dedicated servers
- Fixed console spam about invalid sprite orientation when the sprite material is simply missing
- Fixed HLTV clients being kicked due to mismatching SteamID
- Fixed a crash to do with env_projected_texture's texture
- Fixed some security issues reported on HackerOne
- Remove unnecessary return value in WorldPickerMouseDisable hook so GM:VGUIMousePressAllowed hook works more reliably for addons (Community Contribution)
- Fixed Lua error with creator tool when trying to spawn NPCs that do not exist on the server (Community Contribution)
- Blocked .vdf and specific .cfg files from being accessible by the Lua file library
- Added one more known Lua backdoor URL to HTTP blacklist
- Increased default value of mem_max_heapsize to 512, and block it from being changed by Lua API
- Block datacachesize convar from being changed by Lua API, to prevent crashes when set to invalid values
- Fixed monitor (and potentially other) materials in Hammer acting strangely when using "Fit" option in texture application tool.
The entire change list can also be found on our website:
https://gmod.facepunch.com/news/may-2025-patch
Edit: For people still experiencing crashes when pressing "Start Game" - delete your bin/ and garrysmod/bin/ folders and verify game cache integrity through Steam. Some 3rd party files/programs that may have been put into the game's folder by the player are causing issues, such as graphics modifications. Updating those files might also work.
A new patch has been released. This one contains mostly fixes, some for regressions introduced by previous update, as well as some crash fixes, security improvements and a number of under the hood changes.
Servers and clients are recommended to update as soon as possible.
The entire changelist can be found on our website:
https://gmod.facepunch.com/news/april-2025-patch
We are releasing a small patch today with some fixes for issues introduced in the previous update, as well as some extra fixes.
Servers and clients are recommended to update as soon as possible.
Change list
- Fixed bone manipulations not working clientside if ever set serverside on the same entity (Regression)
- Fixed regression with TTT team colors while spectating
- Fixed a regressive server crash to do with keyvalues
- Fixed some small memory leaks in dedicated server workshop handling
- Added `-noconclr` launch parameter to disable dedicated server console colors
- Partially implemented missing mat_ambient_light convars used by one of the newly added entities
- Fixed Half-Life: Source shotgun right click pump sounds desync
- Made zoom_sensitivity_ratio save across sessions
- Micro optimization for how C++ retrieves entities from Lua
- Made PLAYER:AddCleanup server only (Community Contribution)
- Added some new entities to Hammer (FGD) that were missed from the main update
- Fixed ELF_KEEP_ON_RECREATE_ENTITIES sharing value with another flag, resulting in unexpected behavior
- ContentIcon.Copy & SpawnIcon.Copy also copies the tooltip
Main update post can be found here:
https://store.steampowered.com/news/app/4000/view/521961040610590764
We are releasing a small patch today with some fixes for issues introduced in the previous update, as well as some extra fixes.
Servers and clients are recommended to update as soon as possible.
Change list
- Merged Episode 1, Episode 2 and Lost Coast mounting options into the Half-Life 2 mounting option
- Added sv_quota_stringcmd_kick convar - kicks players who exceed sv_quota_stringcmdspersecond
- Fixed crashes to do with entity render groups in Lua
- Fixed crashes with missing physics objects in bone followers and info_radial_link_controller
- Fixed crashes with particles getting insane particle count
- Fixed crashes to do with NPC:TaskFail & debug overlay
- Fixed crashes with CTriggerWind when loading a save
- Fixed GM:PlayerAuthed being called twice
- Fixed GM:PlayerAuthed always returning empty SteamID in singleplayer even when we have it available
- Fixed 2 exploits reported via HackerOne
- Fixed r_lightcache_zbuffercache 1 crashing the game if set after map load
- Fixed "material __error is missing" warning on map load
- Fixed .gma whitelist being different between game/gmad
- Fixed character blinking by making flex controller names case insensitive again
- Fixed degraded loading times for certain servers/addons due to spawnmenu changes from October 2024 update
- Fixed BRANCH being set to "prerelease" on NONE beta clients (dedicated servers will continue to report "prerelease" on NONE/"public" beta)
- Fixed Lua error with DTree node on rebuild when all its child nodes are deleted
- Fixed dying outside of the map displaying "Dropping weapon in solid" console messages - Player:StripWeapons still drops weapons before removing them, Player:KillSilent and other methods of dying no longer does
- Potential fix for family sharing owner SteamID being wrong in unknown cases
- Potential fix for server reconnect spam by malicious actors
- Removed a bunch of unused gamemenucommand commands - things like Half-Life 2's chapter selector, etc
- Removed __screenshot_internal - it was never used by the game, no reason to keep it
- Removed cl_soundfile - Unused, no reason to keep it, was trying to send itself to servers on join
- Removed unused systems - Source's bug reporter, benchmarking stuff, BonusMaps stuff, Mumble stuff
- Removed some debug related save/load related console commands
- Added some more known backdoor URL to HTTP blacklist
- Blocked "load" console command for Lua
- Disallowed players from using voice chat unless they are fully connected
- Do not set "commentary" to 0 on map start, since the console variable no longer exists
- Stop shipping Commentary Editor for -tools, since we removed the commentary system which was never used in the first place
We are releasing a small patch today with some fixes for issues introduced in the previous update, as well as some bonus fixes.
Servers and clients are recommended to update as soon as possible.
The changelog is as follows:
* Fixed performance degradation with lots of static props
* Fixed crash with threaded addon file access
* Fixed changelevel crash to do with ragdolls
* Fixed crashes when trying to draw invalid sprite textures
* Fixed Lua errors when spawnlists contain invalid data
* Fixed spawning Sky editor not loading in Star Scale setting
We are releasing a small patch today with some fixes for issues introduced in the previous update, as well as some bonus fixes.
Servers and clients are recommended to update as soon as possible.
The changelog for March 19th is as follows:
- Fixed lua_refresh_file not working with gamemode or addon files
- Fixed autorefresh not working on symlinked folders and subfolders
- Allowed physgun_wheelspeed to go negative again
- Fixed async model loading system trying to load already loaded models
- Fixed RecipientFilter global having its argument have a flipped meaning
- Fixed a crash due to sounds failing to be loaded
- More potential crash fixes to do with texture loading
- Fixed net.WriteData warning not displaying correct data
- Fixed "bad sequence" warnings so they display correct max number
- Fixed "Unable to initialize DirectSoundCapture" disabling voice chat
- Fixed some presets being erroneously treated as collection ID
- Fixed "flush" concommand crashing on windows dedicated server
- video library restores fps_max if it sets it
- Moved "render to video" temp file to videos/ folder
- Fixed "render to video" not rendering while main menu is open
- CPropDoorRotatingBreakable does not try to precache NULL model breakables
- Fixed quitting while demo is being recorded writing invalid tick count to the demo count
- Fixed a crash with the mesh library
- Fixed DModelPanel having issues with depth buffer when 2 panels are overlaid
- Removed some useless concommands - Test_CreateEntity, Test_RandomPlayerPosition
The changelog for March 21th is as follows:
- Fixed "cc_lang: invalid language" warning appearing with empty cc_lang
- Fixed "Tried to Read into NULL memory!" warning appearing when mounting L4D2
- Fixed random crashes to do with ClientsideModel & ents.CreateClientProp
- Increased some mapping limits:
- MAX_MAP_OVERLAYS 1024 -> 8192
- MAX_MAP_TEXDATA 2048 -> 8192
- MAX_MAP_TEXINFO 12288 ->16384
- MAX_MAP_OVERLAYS 1024 -> 8192
- Fixed a crash with NWVars
- "Remember my choice for this server" is actually remembered when pressing "no" for the current session
- Error checking in spawnicon context menu when spawnicons are removed while the player has the context menu open
We are releasing a small patch today with some security fixes. Servers and clients are recommended to update as soon as possible.
The changelog is as follows:
- Made Entity.PhysicsInitMultiConvex throw type errors when given invalid input
- Removed unused DLLs from game's folder - bugreporter.dll, sixense.dll, headtrack_oculus.dll
- Shutdown HTML after VGUI - hopefully fixes a rare crash on game exit
- Made the BSP whitelist case insensitive
- Blocked access to .db files via the file library
- Made GM:OnLuaError available on client and server
- Made LuaMesh.BuildFromTriangles correctly modify the mesh when used on an already generated mesh - This is now only permitted when the vertex count matches between existing mesh, and the new mesh.
- Added safeguards against malformed .gma files
- Added overflow/underflow safeguards to render.Push/PopRenderTarget functions
- Fixed several security issues reported on HackerOne
January 22 Update:
- Fixed crash with npc_satchel
- Fixed crash when try to push a NULL ITexture
- Fixed a crash when failing to create a fish entity
- Fixed a crash when failing to create child ents for point_spotlight
- Fixed crashes when failing to create entities for fire entity
- Fixed Gravity Gun leaking material reference count
- Fixed crashes with deleting ai_network entity
- Bumped "insane reference count" threshold 10x
January 23 Update:
- Fixed crashes with NPC nodes after cleaning up the map
We are releasing a small patch today with some minor fixes.
The changelog is as follows.
- Fixed saves really not working on maps with spaces in their names
- Fixed a number of security issues reported over the holidays
- Fixed addon file paths being lowercased before being mounted, causing issues for Linux users
- Allowed color correction files (materials/*.raw) and vehicle scripts (scripts/vehicles/*.txt) in map files
- Made "Entity thinking for X ms!!!" physics warning to only appear when "developer" is set to "1" or above
We are releasing a small patch today with some minor fixes.
The changelogs are as follows.
December 19, 2023 Patch:
- Fixes towards certain files not loading from inside maps
- More security fixes
- Fixed keybinds being lost if they contain semicolons
December 18, 2023 Patch:
- Added PANEL:OnTextClicked( id ) for RichText
- Temporarily restored PANEL:ActionSignal for RichText
- Temporary measures for addons that fail to load due to "failed to parse addon file"
- Minor security fixes
December 15, 2023 Patch:
- Fixed even more security issues. Please update as soon as possible. This mainly affects clients, but servers are recommended to update as well.
- Display addons in red in Addons menu when they contain illegal files (and therefore not mounted/working)
- Fixed playing a demo not starting a loading screen
- Removed certain Lua API functions: ConsoleAutoComplete (menu), Panel.Command, Panel.SetActionFunction, Panel.SetPaintFunction, Panel.PostMessage, Panel.SetCommand, PANEL:ActionSignal, GM:LoadGModSaveFailed (clientside)
- Fixed some crashes to do with engine light styles
- Improvements to Garry's Mod's save system to prevent weird behavior, such as saves loading on wrong maps
December 14, 2023 Patch:
- Fixed certain security issues. Please update as soon as possible. This mainly affects clients, but servers are recommended to update as well.
We are releasing a small patch today with some minor fixes. This patch mostly affects game clients.
The changelog is as follows:
- Fixed HL:S skill configs setting HL2 convars
- Fixed an infinite loop crash with Panel.KillFocus and Panel.OnLoseFocus
- Fixed a crash with text rendering
- Fixed crashes with filesystem printing warnings
- Fixed custom HTTP methods not working on clients
- Applied file.Exists fix to file.IsDir for Lua paths
- Use double precision floats for physenv.GetLastSimulationTime
- Added fallback sounds for EP2 vortigaunt attacks
- Unspecified minor security fixes
We are releasing a small patch today with some minor improvements. Servers are recommended to update at their earliest convenience.
The changelog is as follows:
- Added util.IntersectRayWithSphere
- Added util.IsSphereIntersectingSphere
- Added util.IsBoxIntersectingSphere
- Added util.IsPointInCone
- Added util.IsSphereIntersectingCone
- Panel.PaintManual can now render panels larger than the screen, when its first argument is set to true
- Added "Clear" button to the console
- Added missing TF2 map icons from its new updates
- Added "Color Lit Per Particle" particle initializer, update "Color Random" initializer to include new options
- Added duplicator.Disallow (Community Contribution)
- Added DPanPanel (Community Contribution)
- Added math.CHSpline (Community Contribution)
- Added SANDBOX:ContextMenuShowTool hook (Community Contribution)
- Added Global.ScreenScaleH (Community Contribution)
- Added table.Pack (Community Contribution)
- Added table.Flip (Community Contribution)
- Added DHScrollBar (Community Contribution)
- Added math.CubicBezier (Community Contribution)
- Added math.QuadraticBezier (Community Contribution)
- Made language.Add type-error on invalid input instead of silently fail
- Last argument of util.IsOBBIntersectingOBB is now optional
- Try to prevent static prop lightmap crashes when given invalid data
- Panel.PaintAt restores zpos of the panel
- Clamp physics forces phys_torque applies to prevent crashes/crazy physics
- Duplicator saves and restores sub materials by default
- Restored nav_generate progress dialog UI
- Move OnRequestFullUpdate warning to developer 1 so it is not as spammy
- Matched behavior of SteamID functions for bots between clientside and serverside
- Made Player:SteamID64 and Player:AccountID never return no value
- Error no halt when player.CreateNextBot would crash due to being ran too early
- Remove limits when reading SteamHTTP response headers
- Entity.IsMarkedForDeletion now checks Entity.Remove queue, so its output is now more correct
- Applied an experimental change to render.RenderView to render using VIEW_MONITOR instead of VIEW_MAIN as a potential fix for sprite rendering when using that function
- Added more NPCs categorized as hostile and friendly towards players (IsFriendEntityName global) (Community Contribution)
- Added Versus Saxton Hale map category from recent TF2 update (Community Contribution)
- TTT: Disable notification sound by default and add a setting for it (Community Contribution)
- Various code cleanups (Community Contribution)
- Fixed trigger_hurt forgiveness not resetting damage correctly
- Increased limit of language.GetPhrase output to 4000 bytes, from 1000 - if limit is hit, truncate the string, instead of outputting an empty string
- Fixed a crash due to BSP ZIP hash collision
- Fixed crashes due to combining Entity:EnableCustomCollisions and Entity:PhysicsInitSphere
- steamworks.GetList "days" parameter is functional again
- Restored functionality of "dtwarning" convar, which defaults to 1 now to maintain old behvaior
- Make Entity:InitializeAsClientEntity do nothing and error no halt when used. The function was useless and would often crash when used inappropriately
August 9 hotfix:
- render.RenderView now accepts "viewid" option, instead of forcing a speicific ID, no longer breaks some addons
- Added missing dependencies for linux client for distributions that are missing them
- CNavArea:SetParent can now accept nil as first argument
- Player:IsListenServerHost is now shared
- Stricter access control for lua_find* conncommands
Current Release
23150004
Uploaded Jun 19, 2026
System Requirements
How to Install
gmod.exe to play
Troubleshooting tips
• Run Redist/_CommonRedist installers if game won't start
• Add folder to Windows Defender exclusions
• Run as administrator
Files are being prepared
Download links are being uploaded and mirrored. This usually takes a few minutes — check back shortly.
You May Also Like
View AllDownload Garry's Mod for PC with a direct link or via torrent. Get the full version of Garry's Mod for free. Garry's Mod is a Casual released by Facepunch Studios.