Garry's Mod (GMOD) Changelog

What's new in Garry's Mod (GMOD) 2024.3.13

Mar 14, 2024
  • New Crosshairs:
  • This update brings a new default crosshair for the base game, as well as ability to customize your crosshair.
  • This is usually fulfilled by using addons, but the default crosshair had a long standing issue of being impossible to see on bright backgrounds, so a new one was well overdue.
  • You can now customize the crosshair in the Options menu.
  • (You can reset the slider values by middle mouse clicking on them! It works in many places!)
  • The new default crosshair, a dot image, is visible no matter what you are looking at. You can still use the old crosshair if you really must, via the aforementioned crosshair customization.
  • The options menu was also changed a bit.
  • Bringing some of the more obscure settings to the front, so players know of their existence.
  • Sandbox Improvements:
  • A quality of life change to the built-in Bodygroup & Skin changer is added in Sandbox.
  • You can now switch skins and bodygroups without closing the menu by right clicking on the options.
  • Additionally, new quick options are now available in the Server section of the menu bar.
  • These are only available to be changed in singleplayer or by the listen server host, but hopefully will bring more of a spotlight to existence of these settings.
  • A lot of more of them can be found in the Spawnmenu's Utilities tab, which were added in previous updates.
  • Portal 1 entities are now also available in the base game for owners of Portal 1 on Steam.
  • Other Changes:
  • There has been a huge amount of other, smaller changes that may or may not be visible to players.
  • You can now share addon presets with your friends, or import them from collections.
  • Some improvements were made to duplicator support, such as saving NPC health and max health, "Make Persistent" option, and "frozen by physics gun" status.
  • A large amount of crash issues were fixed.
  • As usual, a large amount of new Lua API features were added for mod makers, as well as some minor improvements to map making tools.

New in Garry's Mod (GMOD) 2024.19 (Jan 21, 2024)

  • 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

New in Garry's Mod (GMOD) 2024.01 (Jan 5, 2024)

  • 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

New in Garry's Mod (GMOD) 2023.08 (Aug 9, 2023)

  • Features:
  • 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)
  • Improvements:
  • 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:
  • 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
  • Removed:
  • Make Entity:InitializeAsClientEntity do nothing and error no halt when used. The function was useless and would often crash when used inappropriately

New in Garry's Mod (GMOD) 2023.07 (Jul 9, 2023)

  • ents.GetMapCreatedEntity is now shared
  • Fixed a crash issue when loading certain particle files
  • FIxed skill configs not applying in time for singleplayer, resulting in NPCs not having health set, etc
  • TTT: Made Poltergeist weapon range easier to override (Community Contribution)
  • TTT: Fixed notification sound cue and make it toggleable (Community Contribution)
  • DListView now ignores invisible lines (Community Contribution)
  • Fixed metropolice NPC crashing when its target is removed during a weapon burst fire
  • Steam Voice Settings opens Steam Settings in overlay
  • Increased vtx filesize limit for studiomdl.exe, and added safeguards against crashing when the limit is hit
  • Fixed a regression with halo/outline rendering
  • poster command now works correctly with cl_leveloverview enabled
  • Fixed up ToS/Privacy Policy links on Options menu
  • Added voice_recordtofile to blocked concommand list
  • DNS lookup Global.HTTP URLs before sending them to Steam
  • Potential improvement to 64x64 cubemap quality when building map cubemaps (Community Contribution)

New in Garry's Mod (GMOD) 2023.04 (Jun 22, 2023)

  • Features:
  • Added Panel:Set/GetTooltipDelay (Community Contribution)
  • Added vgui.Exists (Community Contribution)
  • Added the Derma Icon Browser (derma_icon_browser console command) (Community Contribution)
  • Improvements:
  • Refresh language files on gamemode change
  • Reworked how workshop item info timeout works for server downloads to hopefully make it work more reliably
  • Throttled CreateFragmentsFromFile messages to 1 a second to avoid lag
  • Expanded the 'Your map differs from the servers' kick reason with more info
  • IncludeCS now returns result of include() (Community Contribution)
  • Use snd_musicvolume instead of volume for loading screens (Community Contribution)
  • Contain DButton's image size if it's too big (Community Contribution)
  • Refactored weapon_medkit so it is easier to change/extend (Community Contribution)
  • Security fixes
  • Fixed:
  • Fixed ToolGun:GetToolObject returning local players values for other players clientside
  • Fixed potential Lua errors with PropSpawn effect
  • Fixed an infinite loop with util.TableToJSON when a table has __index that always gives non-nil output
  • Fixed crashes when barnacle m_hTongueTip's m_pSpring is null
  • Fixed a server crash to do with invalid vehicle scripts for airboats
  • Fixed a crash when accessing self.loco of a deleted nextbot
  • Try to prevent crashing when (re)loading textures from .png
  • Menu support for util.IsBinaryModuleInstalled (Community Contribution)
  • TTT: Fixed ironsight position when in singleplayer (Community Contribution)

New in Garry's Mod (GMOD) 2023.01 (Jan 26, 2023)

  • Added "Select Page" option in Addons menu
  • Added Half-Life 1 .357 Handgun & Shotgun to NPC usable weapon list (Community Contribution)
  • Added links to Server and Modding guidelines to Legal tab in Options (Community Contribution)
  • Improved Eye Poser (Community Contribution)
  • Fixed a visual bug in Lua Errors section of Problems menu
  • Fixed Gravity Gun ignoring spin_none interaction for props
  • Fixed Gravity Gun preferred carry angles ignoring player's pitch angles
  • Fixed vehicle collision group not being saved by duplicator
  • Fixed addon size display when its over 2.1GB
  • Fixed tooltip position with tall text (Community Contribution)
  • Group NPC weapon overrides by category
  • Improved ladder prediction
  • Made NPC vs NPC killicon behavior consistent with NPC vs Player deaths
  • Switched Outdated tags in server browser to use the network version, not the build version, better representing if a server can be joined or not due to an update
  • Updated the server browser to no longer be limited to 256 servers per gamemode
  • Display disconnect reason in a pop up when encountering a host error in singleplayer
  • Reload spawnmenu on language change (Community Contribution)
  • Made givecurrentammo always give secondary ammo
  • If HUD is disabled, don't display "Something is creating script errors" overlay (Community Contribution)
  • Improve word break for addon descriptions in the Addons menu (Community Contribution)
  • Updated language files
  • Removed the "Sorry! You can't spawn that NPC!" message when the server did not have requested NPC, to match behavior of other spawn functions
  • Implemented automatic cleanup & limit translations, when they are missing (Community Contribution)
  • TTT: Fixed zoom keybind handling (Community Contribution)
  • TTT: Updated localization
  • Added ClearAllOutputs input to all entities
  • Fixed workshop fonts spamming pointless console messages trying to load from the .gma directly which won't work
  • Fixed effects/base.lua being included twice
  • Fixed ai_debug_enemies (and probably other NPC debug stuff) spewing nonsense to console
  • Fixed crashes when trying get model sprite size with a null sprite/model (and when trying to get model bounds of null model)
  • Fixed a crash when trying to spawn ai_node too early
  • Fixed a crash when calling Spawn() on an entity that deletes itself in the Spawn() function
  • Fixed crashes when an entity has negative skin value
  • Fixed a crash with base NPC when holstering weapon and having no weapon
  • Fixed NPC_CraneDriver crashing when the crane's magnet is removing
  • Fixed prop_dynamic crashing the game when given invalid break usermessage names
  • Added (Cheap)BreakModel user messages that some maps use
  • Fixed Hammer Inputs/Outputs duplicating from base classes
  • Fixed legacy CBaseEntity::FireBullets not setting attacker
  • Fixed FCVAR_REPLICATED cvars resetting to default/keeping server value when joining a server and leaving
  • Unspecified security improvements
  • Fixed a crash on malformed maps to do with overlays on displacements
  • Prop Spawn effect restores original Entity.RenderOverrides
  • Fixed a bug with SCHED_HOLD_RALLY_POINT
  • Fixed potential crashes to do with sounds
  • Optimized some Lua code (Community Contribution)
  • Removed usage of useless varargs (Community Contribution)
  • Don't re-register net receiver for editvariable multiple times (Community Contribution)
  • Added some crash checks to CShaderSystem::TakeSnapshot
  • Added a message to dedicated server console when not having GSLT about its impact on server ranking
  • Default weapon selection checks GMod's localization files
  • Added more info to Overflow error writing string table baseline host error for debugging
  • Defaulted scr_centertime to 5
  • Replaced self.Owner with self:GetOwner() in base game (Community Contribution)
  • Improved DAdjustableModelPanel movement (Community Contribution)
  • * Removal of hard-coded keys
  • * The cursor is no longer displayed when moving
  • * Fixed a bug where the pitch did not stay between -90 and 90 degrees, which resulted in an inverted yaw
  • * Space and control keys are no longer relative to viewing angle
  • Toolgun improvements (Community Contribution)
  • * toolmode_allow_ convars are now properly replicated to clients
  • * Fixed TOOL:Holster being called twice in the name of releasing ghost entities
  • * Fixed a bug where the toolgun does not call TOOL:Deploy on the first tool that is selected
  • Added surface.GetTextureNameByID
  • Added NPC:SetMaxLookDistance
  • Added NPC:GetMaxLookDistance
  • Added Entity:ClearAllOutputs
  • Added Entity:SetSurroundingBounds
  • Added Entity:SetSurroundingBoundsType
  • Added Entity:GetSurroundingBounds
  • Added optional surfaceprop argument to Entity:PhysicsInitMultiConvex, Entity:PhysicsInitConvex, Entity:PhysicsFromMesh, Entity:PhysicsInitBox. All of them now also get correct physical volume set which helps physics behave correctly
  • Added util.IsBinaryModuleInstalled (Community Contribution)
  • Added string.StartsWith (alias of string.StartWith, for consistency with string.EndsWith) (Community Contribution)
  • Added an option to player_manager.AddValidHands to match hands skin to player model selected skin automatically (Community Contribution)
  • Added "readonly" option to DProperties properties, for editable entities editor (Community Contribution)
  • Added Panel:SetTextSelectionColors for RichText panels
  • Added physenv.GetLastSimulationTime
  • Added Player:DisableWorldClicking & Player:IsWorldClickingDisabled (Not currently networked)
  • Added second argument to string.Comma (Community Contribution)
  • Added Tool:RebuildControlPanel
  • Added Tool:GetClientBool
  • Weapons and Entities can now set their own classname via ClassName property (Community Contribution)
  • Added string.Interpolate (Community Contribution)
  • Added DSlider ConVar support
  • Added DSlider:OnValueChanged
  • Fixed NPC:AddEntityRelationship priority argument reading from the wrong argument. Also made it optional (defaults to 0)
  • Fixed non halting Lua error when Derma_Install_Convar_Functions panels attempt to set empty console variable
  • Fixed static CLuaParticles not updating their lighting
  • Fixed a crash when setting player's hull size to nothing
  • Potential fix for a crash with steamworks.DownloadUGC
  • Fixed a bug with Panel:SetCaretPos
  • Fixed IRestore:ReadString having a limit on string length, affecting weapons and others on map transition
  • Fixed potential Lua error in Derma drag'n'drop system (Community Contribution)
  • Added color support and fixed a bug with table.Sanitise/table.DeSanitise (Community Contribution)
  • Made ents.FindByModel support wildcards, and work better clientside
  • Fixed VMatrix:GetTransposed implementation
  • Fixed certain old addons failing to extract with steamworks.DownloadUGC
  • Fixed a crash in DListView with fractional column width
  • Fixed markup text alignment inconsistency (Community Contribution)
  • Made sure Panel:GetChildren table is always sequential
  • Fixed TOOL.Information being modified by code that uses it
  • Made player_manager.AddValidHands skin/body arguments optional
  • Added gmod_language to blocked convars (can still read it)
  • Added sv_password to list of convars Lua cannot read
  • WEAPON:HUDShouldDraw is no longer required to return true to not break HUD (Community Contribution)
  • Minor adjustment to DCheckBox:Toggle's internals (Community Contribution)
  • String extension optimizations (Community Contribution)
  • Cache ConVars created by tools (in TOOL.ClientConVars and TOOL.ServerConVars ) and use them in Tool:GetClientInfo/Tool:GetClientNumber/Tool:GetServerInfo in appropriate realms

New in Garry's Mod (GMOD) 06.08.22 (Jun 14, 2022)

  • Added NPC:GetKnownEnemyCount
  • Added NPC:GetKnownEnemies
  • Added NPC:IgnoreEnemyUntil
  • Added NPC:GetTimeEnemyLastReacquired
  • Added NPC:GetLastTimeTookDamageFromEnemy
  • Added NPC:MarkTookDamageFromEnemy
  • Added Entity:GetAnimCount
  • Added NPC:NavSetGoalPos
  • Changed NPC:NavSetGoalTarget - second argument defaults to 0,0,0, sets correct goal type for the path
  • Added CLuaLocomotion:GetDesiredSpeed
  • Added CLuaLocomotion:GetGroundNormal
  • Added math.SnapTo (Community Contribution)
  • Added icons and select fields for DProperty_Combo (Community Contribution)
  • Added Entity:GetSequenceVelocity
  • Made Entity:GetSequenceMoveDist shared
  • Fixed crashes with certain Vehicle functions when used on unsupported vehicles
  • Fixed PhysObj:SetInertia causing unexpected zero-G behaviour when used on frozen physics objects or with invalid values
  • Fixed cam.End crashing when used without cam.Start first (will throw Lua error)
  • Try to end cam.Start calls that are left unended each frame (will display warnings in console when this happens)
  • Fixed CNavLadder & CNavArea's Lua objects not becoming null after removal, causing crashes
  • Fixed Material() not being able to access gamemodes/ folder
  • ServerLog global now obeys sv_logecho convar
  • Save cookies on Lua state shutdown to prevent data loss when disconnecting
  • Render library underflow warnings are now non halting Lua errors
  • Clamped PhysObj:SetMass to safe values (0-50000] to prevent crazy physics
  • CreateConVar/AddConsoleCommand globals now ErrorNoHalt when command creation fails, instead of silently failing
  • Can no longer create concmmands/convars with blocked names
  • Made Player:GetPlayerInfo shared
  • Added snd_buildcache to blocked command list
  • Entity:DropToFloor now checks if the entity is inside world geometry - if it is, do not drop to floor. Should help with stuff ending up underground in certain places, such as NPCs on displacements.
  • Readded missing mapIO outputs to airboat vehicle
  • Implemented CS:GO soundscape features: playlooping.position "random", playlooping.radius, fadetime
  • Fixed "Steam overlay replacement" window opening links externally
  • Added nullptr safeguards to CMaterialVar::SetTextureValue
  • Unspecified security fixes
  • Fixed crashes when setting null model on players
  • Fixed crash when trying to render world model as entity model
  • Fixed a typo in detail.vbsp
  • Fixed gmod_language resetting to empty string on dedicated servers
  • Fixed in-code documentation comment of table.CollapseKeyValue (Community Contribution)
  • +vgui_drawtree now requires sv_cheats just like vgui_drawtree 1/0 does
  • Force OS Specific binary module load errors to English
  • Sandbox spawning and entity variable editing bypasses IsAdmin checks in singleplayer, so mods cannot accidentally interfere with basic Sandbox functionality
  • Some changes towards fixing/narrowing down the CSoundPatch update crash
  • Deleted Windows steam binaries (used by dedicated servers) as they are now shipped automatically by Steam
  • TTT: Fixed a bug with weapon respawning and updated language files (Community Contribution)
  • You can now search maps by the name of the Workshop Addon they come from in Start New Game screen
  • Moved potentially conflicting addons detection to Problems menu - potentially conflicting means two addons have the same Lua file with different file sizes
  • Fixed Lua error with Super DOF when activating 5 second hide UI and reopening UI before the timer expires (Community Contribution)
  • Fixed toolgun ghost preview not clearing when switching away from the toolgun using the spawnmenu (Community Contribution)
  • “Unused Addons” problem will now tell you which files it recommends deleting
  • Attempt to prevent Entities and Weapons spawning out of map bounds when spawned through Spawn menu (Community Contribution)
  • Updated server browser recommendation icons (Community Contribution)

New in Garry's Mod (GMOD) 03.10.22 (Jun 14, 2022)

  • Added NextBot.GetLastKnownArea and NextBot.ClearLastKnownArea
  • Added OnHalfEmpty, OnEmpty and OnFull outputs to func_healthcharger, to match func_recharge
  • Fixed Half Life 1 sentry ragdolls not cleaning up on map cleanup. Also fixed their collisions and inability to hit the player at certain player angles
  • Fixed a crash in the DSP system
  • Fixed a crash with NPC:SetNPCClass
  • Fixed a typo in hook.Remove error (Community Contribution)
  • Fixed security issues
  • Fixed DIconLayout counting border size 2 times when laying out icons (Community Contribution)
  • Flash the game window when loading screen disappears to let the player know the loading is finished
  • Fixed hook.Add giving a less than useful error when given a nil to second argument
  • Fixed vgui_slideshow_display crashing the game without materials to display
  • Fixed a crash when trying to play bad ADPCM .wav files
  • Fixed file.AsyncRead returning garbage when the target file has no data
  • Fixed an issue with halo library not resetting color of pp/copy, which in some cases makes usage of halo library fill the whole screen with a color
  • Fixed Lua errors when trying to activate non Toggle Camera or Dynamite from a tool Button that was loaded from a save in multiplayer
  • Fixed a regression with string.Comma where it wouldn't format huge numbers properly
  • Fixed func_healthcharger and func_recharge not updating its texture index
  • Fixed crashing with npc_apcdriver when it doesn't have its vehicle
  • TTT: Fix ammo ents blocking +use near other entities (Community contribution)
  • Allowed physgunning persistent props when persistence is disabled
  • Disallowed physics creation/destruction functions from being called on jeeps/airboats to prevent crashes
  • Improved save loading so it sets player ownership of spawned entities to a player in more cases
  • Put motionsensor.GetColourMaterial behind a clientside permission
  • Failing to save jpeg screenshots/posters actually says that it failed in console
  • Added console warnings when npc_apcdriver/npc_vehicledriver is removed due to it not having its vehicle to drive

New in Garry's Mod (GMOD) 02.02.22 (Jun 14, 2022)

  • Added string = util.FilterText( input, context, player )
  • Added TEXT_FILTER_ enums
  • Added safeguards to DownloadUGC when Steam sends us a null SteamUGCQueryCompleted_t
  • Add OS specific errors to binary module loading errors
  • Implemented Steam chat filter to the default chat box (profanity filter is toggleable in the Filters section of the default chatbox, Steam preferences apply)
  • Fixed 2 server lag exploits with default properties
  • Fixed "join game" not showing up in Steam for P2P games after a changelevel
  • Fixed a stack overflow with DListView and columns inserted at specific positions
  • Fixes a server crash with no collide constraint.
  • Fixed DTextEntry's automatic line breaks causing an infinite loop hang with specially formatted text containing a lot of whitespace
  • Fixed GM:PlayerAmmoChanged reporting incorrect new ammo count when called from Player:GiveAmmo
  • Prisoner pod and chair vehicles now react to damage physically, driver takes explosion damage, calls GM:EntityTakeDamage hook
  • Potential fix for crash relating to env_microphone's measure target entity
  • Potential fix for a crash within CFontTextureRegen
  • Fixed GMODLUA_GetUserType leaking onto the Lua stack (this only affects binary modules and the type() function, when using custom userdata types)
  • Fixed changing persistence in-game saving to the wrong file if the cvar changed too quickly within the 2 second timer
  • Disabling hoverballs now adjusts their mass so they are not abnormally heavy when disabled, improved duplicator support for the disabled state
  • Spawnmenu search now resets its model cache when addons/games are remounted
  • surface.DrawLine now uses floats not integers
  • "Stop Persisting" property will now also be hidden when persistence is disabled
  • Make it more clear that changing sbox_persist while in-game will cleanup the map
  • Do not clean up map when disabling persistence
  • Reduce Faceposer tool's convar count to 96 (from 128) to match the actual limit in the engine
  • Downgrade Steamworks SDK to 1.50 as the newer version was causing issues

New in Garry's Mod (GMOD) 12.15.21 (Dec 16, 2021)

  • Duplicator tool will now try to figure out what addons are used by the dupe, save that in the dupe file, and display required addons in the duplicator's context menu. This only applies to new dupes
  • Making a map save now stores the Workshop ID of the map file in the save file, and adds the option to subscribe to the map if the map is missing
  • Show severity of problems in the problems menu
  • Failed addon downloads will now show up in the Problems menu with the reason why it failed
  • Added ability to view and revoke granted permissions in the Problems menu
  • Players now have to grant explicit permission for servers to be able to force voice chat on players
  • Numerous security fixes
  • Improved spawnmenu resilience against addons that do not set Sandbox tool name
  • CS:GO lobby is put into correct map category (Community Contribution)
  • Improved addon detection for Lua errors
  • You can now save dupes from the duplicator’s context panel
  • Experiment: Count connecting players as bots until they fully join
  • "Addon is missing its file" problem now shows which addon exactly is broken
  • Updated texture for the painting model
  • Minor optimization to map lighting loading
  • Do not allow npc_barnacle to pick up gibs it itself spits out
  • Force enable episodic behavior when npc_barnacle eats zombies so they are not just spat out as ragdolls
  • TTT: Fixed a chat spam exploit with corpses (Community Contribution)
  • TTT: Fixed TTTCanPickupAmmo only allowing 'true' return values (Community Contribution)
  • TTT: Updated language files (Community Contribution)
  • TTT: Added a new tip about player voice volume slider (Community Contribution)
  • Added an option to show unuseful materials in Hammer's texture browser, which includes: player logo decals, vertexlitgeneric materials, hud/vgui/particle folders. These materials are now hidden by default.
  • Added trigger_catapult entity from Team Fortress 2
  • Fixed C_FireSmoke particle crash for good
  • Fixed potential security issue with gmad.exe and specially crafted .gma files when extracting
  • Potential fix for a crash with C_OP_RenderRope particle render operation
  • Fixed a potential bug in materialsystem to do with Power of 2 rejection on texture load
  • Fixed a bug in the materialsystem where NoMip textures were trying to read past EOF looking for mipmaps, resulting in "Error unserializing VTF file... is the file empty?" errors
  • Display warnings and try to prevent a crash when an NPC's memory is about to overflow
  • Fixed a crash due to out of bounds sequences with IK Rules and AccumulatePose
  • Fixed some addons that extract/load correctly on client not loading/extracting correctly on server. Both cases now simply display a warning before trying to extract
  • Fixed crashes when the File object in steamworks.DownloadUGC's callback is closed prematurely
  • Fixed a crash in CSoundPatch.__tostring when used on invalid sounds
  • Fixed func_movelinear spamming sounds when used with momentary_rot_button
  • Fixed remaining potential crashes with npc_barnacle when its tongue entity is removed
  • ErrorNoHalt/Error will now display a stack trace in Problems panel
  • include errors now have a stack trace and appear in Problems menu
  • Disallow "Shadow" shader to be used as rope material to prevent crashes/graphical glitches
  • Bump MAX_LUA_FILES to 32k for single player only
  • Add probable cause to the "Failed to lock vertex buffer" message so users can more easily self diagnose
  • Bump MAXSTUDIOANIMS to 3k, MAXSTUDIOSEQUENCES to 2k (from 2k, and 1.5k respectively)
  • Added model name & position to VRAD's "unexpected strips found" error to help debug which static props cause the issue
  • Fixed material name not appearing in "Warning in .VMT file .. " and "Error in .VMT file: error parsing vector element..." warnings
  • Improved loading process to do with Lua files so they are not sometimes redownloaded every time, also makes accessing files from Lua cache potentially faster
  • Bumped MAX(_TOOL)_THREADS to 64 (4x previous limit)
  • Replace some possibly incorrect usage of FLT_MIN with -FLT_MAX, affects IKRules and displacements
  • Updated Steamworks SDK to v1.53a
  • m_flCycle is now networked in range of -1 to 1, from 0 to 1, fixing airboat spamming errors when going backwards in multiplayer
  • Removed 'heartbeat' console command
  • Removed env_hudhint entity
  • Added second argument to util.Base64Encode - skipNewLines, defaults to false
  • Added spawnmenu.SwitchCreationTab
  • Added VMatrix.Add, VMatrix.Sub and VMatrix.Mul (matrix*matrix only)
  • Added VMatrix.GetTransposed
  • Added Angle.Random
  • Added Vector.Random, Vector.Negate, Vector.GetNegated
  • HTTP() function now has a timeout field, which dictates the network activity timeout, and will fail with reason "timeout" if it is hit
  • Added render.GetViewSetup() - returns the CViewSetup stuff including both real FOVs and the de-corrected for aspect ratio FOV
  • Filesystem search now works with map's PAK lump (file.Find included)
  • Added CUserCmd.AddKey
  • Added table.Shuffle (Community Contribution)
  • Added a new library: math.ease (Community Contribution)
  • Added DComboBox:OnMenuOpened( menu ) (Community Contribution)
  • Added table.MemberValuesFromKey (Community Contribution)
  • Added ENTITY:AddOutputFromKeyValue and ENTITY:AddOutputFromAcceptInput (Community Contribution)
  • Added SlowWalkSpeed to player_manager (Community Contribution)
  • Added DForm.PropSelect, ControlPanel.ToolPresets, ControlPanel.ColorPicker and ControlPanel.KeyBinder (Community Contribution)
  • Added math.DistanceSqr (Community Contribution)
  • Added support for 3 new types in AccessorFunc() - Vector, Angle and Color (Community Contribution)
  • markup library improvements - Adds markup.Escape, markup.Color, MarkupObject:GetMaxWidth, new argument to MarkupObject:Draw (Community Contribution)
  • Added permissions.EnableVoiceChat( bool )
  • Added CLuaLocomotion.Get/SetClimbAllowed
  • Added CLuaLocomotion.Get/SetJumpGapsAllowed
  • Added CLuaLocomotion.Get/SetAvoidAllowed
  • Added new argument to net.WriteColor - alpha (Community Contribution)
  • Added new argument to net.ReadColor - alpha (Community Contribution)
  • file.Exists now works with addon title pathIDs like file.Find
  • Fixed spawnmenu.SwitchToolTab doing nothing
  • Fixed constraint.GetAllConstrainedEntities returning all entities constrained to world if the given entity is constrained to world
  • Fixed Entity.StopLoopingSound() not working as expected when multiple sounds are involved
  • Fixed table.RemoveByValue throwing an error when key is not a number (Community Contribution)
  • Fixed invalid argument being given to TextEntry.AllowInput with non ASCII characters (Windows and OSX)
  • Fixed potential Lua errors in scripted_ents library (Community Contribution)
  • Fixed a linux crash with file.AsyncRead
  • Better implementation of Player.IsUserGroup (Community Contribution)
  • util.GetModelMeshes is now also available serverside
  • Entity:SetBodyGroups now accepts a-z as 10-35
  • Disallowed include()ing non .lua files
  • Made Entity.GetBloodColor shared
  • stopsound also shuts down all CSoundPatches (So their IsPlaying status resets to false)
  • Made hook.Add/Remove not silently fail on arg type mismatch (Community Contribution)
  • Micro optimization in draw.SimpleText (Community Contribution)
  • Minor optimizations to string.Comma (Community Contribution)
  • Added +voicerecord to blocked console command list - use permissions.EnableVoiceChat instead
  • GM:PlayerAmmoChanged now runs AFTER the ammo count has been changed
  • Made File:Read() size argument optional, defaulting to File:Size()

New in Garry's Mod (GMOD) 06.09.21 (Jul 2, 2021)

  • Added ability to clear Lua errors per category/group in the Problems menu
  • Added "menu_cleanupgmas", "mat_specular 0" and "Addon missing file, nothing to mount" issues to Problems panel
  • Added file size of the current file and total file count to non-Workshop server downloads
  • Added addon count and selected count to the addon menu (in the popup menu with filters/etc)
  • Added a visual bounding box of the current dupe to the duplicator tool
  • Rope related tools now can now color the ropes (will depend on whether the selected material supports this or not)
  • Fixed env_sun glow overlay not working properly with the poster command
  • Fixed the first preset group not loading correctly on first map load
  • Loading a save from main menu now properly sets the player position
  • Fixed Lua errors in menu state when searching through addons with special symbols
  • Fixed Hoverball tool creating Lua errors when looking at an invalid entity with the tool selected
  • Fixed the option to re-render all spawnmenu icons not working properly
  • Adjusted the cl_weaponcolor safeguard against invisible colors to catch more cases
  • Fixed a regression with gamemode search bar changes from previous update where it expected the input to be lowercase at all times
  • Changed 'slam' ammo type's default maximum to 5 from 9999 (gmod_maxammo still overrides this if above 0)
  • Fixed certain language files not being loaded on Linux operating system
  • Fixed shooting weapons while in a vehicle not shooting directly at the player’s crosshair
  • Fixed default spawncions not being editable
  • cl_downloadfilter "mapsonly" also works with workshop addons now (checks for the “map” tag on addons)
  • Fixed Winch/Rope texture scaling wrapping around at length of 100
  • Fixed clientside player velocity for non local players being jittery and incorrect when standing on something moving
  • Fixed crash issues with npc_barnacle when its tongue entity gets deleted
  • Fixed crash issue when damaging Antlion Guard NPC
  • Fixed a potential crash issue with ragdoll physics
  • Fixed prop_vehicle_crane crashing the game when it is missing its magnet entity
  • Fixed Lua errors when trying to load a save with phys_magnets that were created by the map when saving
  • You can freeze Jeeps/Custom Vehicles with the Physics Gun once again
  • DNumSlider now colors the notches and the DTextEntry text to match the slider label
  • Improved slider notch rendering
  • Ensure all notches have at least 1 pixel between each other
  • Fixed the last notch not rendering for sliders with a range that isn't a whole number
  • Made the selected flag filters be per gamemode, not global per server browser tab
  • Made the addon selection checkboxes bigger and updated their style to match modern Chromium visuals
  • Also added a bit of space between the clickable addon name and the checkbox to prevent misclicks
  • Minor visual tweaks to the addons and server browser menus
  • Made the "Future version" tag in the server browser less visually prominent
  • Added default values to the Super DOF UI sliders (Middle mouse click resets to default)
  • Problems menu no longer complains about DirectX Level 90
  • Server browser no longer lists servers that are not empty first and then only empty servers (to bypass Steam limitations), now lists whatever Steam gives first
  • Undone server browser minimum ping penalty where servers < 60 ping would all be considered as having 40 ping for server ranking
  • Added description to local saves/dupes/demos telling the player where they can delete them
  • "Select All" button now selects all addons within current search/filter, not all subscriptions
  • Removed selection checkboxes for floating .gma addons
  • Made the background of a disabled addon darker so its more obvious when an addon is disabled
  • More responsive controls for drive_noclip for "Drive" property
  • Unmount addons mounted by server on map shutdown
  • Confirmation window for “Do you want to connect to this server” now also has a “remember my choice” option
  • Added map icons for new CS: GO maps
  • Increased forced defaults of "rate", "cl_cmd/updaterate" console variables to 100k and 66, from 30k and 30 respectively. This only affects clientside settings, which are overridden by server's settings (sv_maxrate, etc). This should result in better ping/performance when playing on busy servers
  • Updated language files
  • TTT: Fixed "select language" strings in translations (Community Contribution)
  • TTT: Tuned shotgun headshot damage and gave shotgun very small accuracy boost to compensate for shotgun changes in base game (Community Contribution)
  • TTT: Show language names correctly in menu (Community Contribution)
  • TTT: Updated language files (Community Contribution)
  • TTT: Fix low-karma autokick evasion (Community Contribution)
  • Deleting point_viewcontrol now also disables it instead of putting the player in an invalid state
  • Disable all active point_viewcontrol entities when loading a save to prevent softlocking the player
  • Added out of bounds checks for boneIDs in CIKContext::AddDependencies to avoid crashes
  • Added some nullptr safeguards to CMDLCache functions
  • Fixed potential crash with playing MP3 files
  • Made sure the "entityflame" entity also stops its own burning sound clientside in case it couldn't be stopped from the server due to PVS
  • Fixed crash issue when trying to pickup prop_vehicle_jeep with invalid physics
  • Fixed a potential crash when converting MATERIAL_VAR_TYPE_MATERIAL to a string
  • Fixed material shader parameters not loading correctly on Linux dedicated servers
  • Fixed for Linux file system find not properly handling partial wildcards (i.e. folder/*_suffix.txt where the filename folder/test_file_suffix.txt would not be found)
  • Fixed mat_showlightmappage using a DirectX8 material
  • func_breakable_surf plays its initial broken sound at the correct position even if it is moved by the physics gun
  • Fixed some console commands crashing when used without a player on the server
  • Fixed ent_remove being able to delete players
  • Added support for $boneflexdriver in models into the game
  • Fixed some cl_show_* cvar debug text overlapping itself or going offscreen
  • Potential fix for crashes due to removing fire particles when removing an entity on fire
  • Fixed crashing issues with trying to set/get flags on invalid physics objects
  • Do not disable collisions when parenting brushes to one another
  • Fixed parenting issues with func_movelinear, and a an issue with startSound possibly not restarting
  • Fixed the half life 2 shotgun hack affecting SWEPs
  • Fixed models not being flushed on level changes/disconnects when not hosting a local game (i.e. in multiplayer in general)
  • Fixed Super DoF creating errors when used outside of sandbox gamemode (Community Contribution)
  • Limited sv_loadingurl to http(s) only
  • Added nullptr safeguard to CFontTextureRegen (out of memory)
  • More potential crash prevention when loading textures and in Lua bindings
  • Safeguards for potential crashes in CShadowMgr relating to projected textures
  • Switched the "gain manager" for voice chat to the CS:GO one. (voice_avggain, voice_maxgain replaced by voice_gain_* cvars)
  • Increased internal buffers for map names to 128 characters, from 40, servers can now use maps with longer names
  • Slightly improved SSAO depth pass (NeedsDepthPass hook, render.GetResolvedFullFrameDepth), so it works correctly with props/NPCs and viewmodels (Bokeh DOF now works better)
  • Nicer error messages for FastDL download errors in console
  • Let mat_envmaptgasize override the default cubemap size if it is set to a value higher than the map's cubemap size
  • cfg/network.cfg is no longer considered userconfig, and is ran before autoexec.cfg
  • mat_dumpmaterials now has an optional argument to hide refcount 0 materials
  • Increased networked string limit (Doubled, to 4096)
  • Hammer: Added func_instance_io_proxy support to hammer/vbsp (in-game support is already present)
  • StudioMDL: Added -fastbuild option to studiomdl.exe that does not write/compute .sw.vtx and .dx80.vtx files
  • StudioMDL: Added more context to "Zero-size file or no sequences." studiomdl warning
  • StudioMDL: Added $boneflexdriver support to studiomdl
  • StudioMDL: Added support for "noanim_keepduration", "forceboneposrot", "scalebonelen", "bonedriver", "reverse", "appendanim" $sequence commands from CS:GO
  • StudioMDL: Added "framestart" and "nostallframes" $sequence commands from CSGO
  • StudioMDL: Added support of "autosteps" to "ikrule" in $sequence
  • StudioMDL: Added support for "percentstartloop" for $sequence
  • StudioMDL: Added "$dmxeyelid" and "$vcafile" commands
  • StudioMDL: Added "noautodmxrules" support to $model
  • StudioMDL: Added -vpfix command line switch that may fix high poly models with LODs and bodygroups getting some of their meshes on LOD 0 destroyed
  • Hammer: Fixed a crash when creating a new Manifest
  • Hammer: Fixed "Show Collision Models" setting not working in certain cases such as being in a Manifest
  • Hammer: Updated CMapOverlay to CS:GO's version - fixes most copying issues - different normals implementation
  • StudioMDL: Use auto growing vectors for bunch of internals (vertices, normals, faces, texcoords, etc) instead of static arrays
  • StudioMDL: Changed mesh weights cut off from 0.05 to 0.0001 (matches CS:GO)
  • StudioMDL: Restored position epsilon for fuzzy vertex position comparisons to 0.05, from 0.01 as it caused issues with certain high quality models
  • Hammer: Increased MAX_MAP_OVERLAYS to 1024 (2x increase), increased MAX_MAP_BRUSHSIDES to a lot (~163k, ~3x increase), matching CS:GO limits
  • Hammer: Get rid of Hammer's "CFileChangeWatcher::AddDirectory" warning as it serves no purpose for the end user
  • Added DSlider.Set/GetNotchColor
  • Added SKIN.colNumSliderNotch
  • Added 2 new arguments to CanTool hooks - the toolobject and the button used (left/right/reload = 1/2/3)
  • Added missing ACT_ enums used by the default player model animations
  • Added NPC:GetBestSoundHint( types = all of them ) = table or nil
  • Added sound.GetLoudestSoundHint( type, pos ) = table or nil
  • Added ENT:GetSoundInterests for "ai" type SENTs
  • Added PhysObj.SetAngleVelocityInstantaneous
  • Added PhysObj.SetAngleVelocity
  • Implemented ENT:OnTakeDamage for nextbots
  • Added Player.Get/SetVoiceVolumeScale(0 .. 1) - Clientside only, sets the desired voice volume multiplier per player
  • Added Player.LocalEyeAngles(), which returns eye angles unmodified by being parented to a different entity (such as while being in a vehicle)
  • Added a 3rd argument to Pre/PostDrawTranslucent/OpaqueRenderables - isRendering3DSky
  • Added CMoveData.Set/Get for: ConstraintWidth, ConstraintSpeedScale, ConstraintCenter, FinalIdealVelocity, FinalJumpVelocity, FinalStepHeight
  • Added permissions library
  • sound.Generate now flushes its cache on level shutdown (And also with snd_restart)
  • Fixed dedicated server crashing when trying to reference invalid SteamAPI pointers after using the map console command, such as the HTTP functions
  • Fixed sounds not working correctly (playing everywhere) with clientside only entities: Footstep sounds, _G.CreateSound, Entity.EmitSound, Entity.StopSound, Entity.StartLoopingSound
  • Fixed ClientsideRagdoll crashing if called too early
  • CSpawnIcon::RebuildIcon(Ex) now clears the cached spawnicon material like it did before (so the spawnicon appears in its “loading” state again)
  • Fixed Entity.FollowBone glitching around clientside in certain cases
  • Fixed srcds workshop addons missing some fields in engine.GetAddons()
  • SteamID functions return the correct(-ish, the steam universe is hardcoded to "Public" one) value in singleplayer for the player serverside (It was already correct on client)
  • Fixed GetTouchTrace() crashing the game when the entity in the cached trace result no longer exists
  • render.RenderView now resets the "ShouldDrawLocalPlayer" cache, allowing the hook to be called again for those renders, fixing ShouldDrawLocalPlayer not working properly with multiple renders within a frame.
  • Prevent weld constraint assigning a global variable with the last created weld (Community Contribution)
  • Fixed performance discrepancy of Entity:GetMaterials() between different models
  • Fixed GM:PlayerLeaveVehicle not being called when the player is forced into a vehicle while being in a different vehicle
  • Entity.SetAngles properly sets angles on jeeps, they no longer snap back to old angles
  • Fixed some entities (such as props) reporting "took damage" as false in PostEntityTakeDamage when they are killed
  • Fixed some constraint library functions (such as HasConstraints, GetAllConstrainedEntities, etc) not functioning with the world entity
  • Fixed gmsave library (Spawnmenu save system) not saving constraints that are attached to the world entity on both ends (such as ropes)
  • Fixed duplicator library's Min/Max calculations for dupes
  • Use ErrorNoHaltWithStack for numpad.OnDown/OnUp errors when given an invalid key
  • Added con_filter*, gm_video, mat_dxlevel and the new voice cvars to blocked cvar list
  • Switched Think, OnRemove and RunAI entity hooks to use the Lua string pool for "anim" and "ai" SENTs
  • Made Player.IsSpeaking shared (on server, it will return true within 0.1s of the last voice packet from a player, no packets are sent when the voice chat button is held but the player is not talking)
  • Reduced update rate of PlayerCanHearPlayersVoice when nobody is talking to 5 seconds
  • PathFollower functions can now accept player.CreateNextbot() entities instead of the NextBot SENTs. They will also throw proper errors when given invalid entities
  • Made DrawBokehDOF function available to addons, i.e. it is no longer a local function (Community Contribution)
  • Apply PhysObj.EnableMotion to all PhysObjects of a Jeep (it also works on Jeeps now)
  • Entity.GetModelMaterials will now return a complete list of materials if used on a brush model, including the map. Maximum for models is reduced to 128 (from 256) which matches other places in the engine when it comes to models
  • Micro optimization to player:__index (Community Contribution)
  • Forcibly disallow the resource library from adding .xbox.vtx and .sw.vtx files to the server's downloadables list
  • Make sound.Add soundscripts treated as overrides so they are cleaned up/restored on disconnect
  • gma.MountGMA now also clears list of missing materials

New in Garry's Mod (GMOD) 03.31.21 (Apr 1, 2021)

  • (Un)Subscribing to an addon while in a map now refreshes the Spawnmenu > Browse > Addons section to contain the new addons or remove the deleted addons
  • Spawnmenu > Browse > Games also refreshes when a game is mounted or unmounted
  • You can now open the workshop addon on Steam directly from Spawnmenu > Browse > Addons by right clicking
  • You can now right click on any folder in Spawnmenu > Browse > Games to quickly generate a spawnlist for that folder and its subfolders
  • Added duplicated NPC settings to the NPC spawnmenu tab under NPC categories so they are easier to find
  • Added "Games" label to the mountable games button to hopefully better direct players to it, and added "Not Owned" / "Not installed" labels so there's no questions about which icon means what
  • Added Problems panel which displays Lua Errors with quick way to disable/uninstall/report the problematic addon and reports common problems with a button to quickly fix the issue where applicable
  • Workshop content downloading (server addons, dupes, saves) after joining a server/singleplayer will now be displayed with the usual Workshop download progress interface
  • Server browser now has "Add to favorites" button for every server in every section, not just in the Favorites section
  • Server browser will now display an Outdated "tag" when a server is running a version of the game different to the version the client is running. Players can still try to join such servers
  • Added total server and gamemode count readouts to the server browser
  • Added sv_location convar for servers, which is used to set a custom flag icon for the server in the server browser so players can more easily find servers from a preferred location or of a language they can understand
  • Added more filtering/sorting options to the server browser: Gamemode list sorting by server count/name. Server filters by player count and ping
  • Added gamemode categories to the server browser to help players more easily find their preferred gameplay styles. Currently available categories are PvP, PvE, Roleplay and Other. It may take some time for community servers and gamemodes to define tags
  • The decal limit now uses r_decals's current value (with a maximum of 8192), not its default value, which is 2048. Must be set before a map is loaded
  • Fixed Lua errors when generating Spawnmenu tabs when a modded entity or a weapon does not have a Category set, or it is not valid
  • menu_cleanupgmas now takes into account addons that updated to ISteamUGC API from the old API, which makes their old .gma in addons/ unused
  • Fixed subscribed addons not being able to update in the main menu due to them being mounted/used while updating
  • Fixed loading screen progress bar going backwards at certain points, and added more steps to the very end
  • Fixed sounds becoming too quiet sometimes such as underwater when using the new Sound Effects Volume slider
  • Added kill feed translation for point_template (Found on Half-Life 2: Episode 2 maps)
  • Fixed properties (Hold C > Right click on a prop) not working on map/brush entities
  • Fixed DMenuOptions text color not being affected by currently active Derma skin (Community Contribution)
  • Fixed border color of "Server is full" button in the server browser so it matches the color of the button itself (Community Contribution)
  • Fixed "Disable Sprays" checkbox sometimes not being clickable due to it being covered up the invisible part of the label above it
  • Fixed Motor tool applying torque incorrectly when attached to a prop that is rotated 90 or 180 degree from initial position
  • Fixed an issue where dragging icons from Browse => Addons/Games and resizing them would not properly move all other icons to fit the resized icon
  • Potential fixes for models becoming errors on map reload (Fixes L4D1 maps crashing on load)
  • The "Add current server to Favorites" button now changes to "Remove current server from favorites" if the server is already in favorites
  • Addons that have failed to download or are waiting to be downloaded will now display in the Addons menu. Their description also explains why they are not working
  • Do not copy old API .gma subscriptions to .gma.outdated files when an update is needed, the copied file is never used
  • Added map icons for new Fistful of Frags and CS:GO maps
  • Display a UI message when we failed to find models for an addon in Spawnmenu > Browse > Addons
  • Improvements to main menu's bottom navbar for tiny screen resolutions
  • Added "Any/All" aspect ratio to the Video options that shows all supported screen resolutions by the GPU, made it default
  • Added default bindings to Mouse4 and Mouse5 - “Previous weapon” and “Voice chat” respectively. Existing settings unaffected
  • Added extra space for map names in the server list for screens that can fit it
  • Adjusted the server info area of the server browser to show the full server name even if it is too long
  • Fixed player list in the server browser sometimes appearing broken due to long player names
  • Changed server browser search text fields placeholder text to better represent what they search through
  • Added an outline/border to text fields in server browser so they are visible better on bright backgrounds
  • More consistent styling for text boxes in the main menu between operating systems and beta branches
  • Improved performance of the translation system in the main menu
  • Improved performance of the "first click" on the "Start New Game" menu
  • TTT: Added Japanese translation (Community Contribution)
  • TTT: Fixed an issue with LANG.AddToLanguage to do with missing languages (Community Contribution)
  • TTT: Fixed an instant reload exploit (Community Contribution)
  • TTT: Fixed ragdoll pinning HUD for innocents (Community Contribution)
  • TTT: Fixed karma affecting damage when karma system is disabled (Community Contribution)
  • TTT: Brazilian Portuguese translation - Changes to the highlights and to the AFK message (Community Contribution)
  • Implemented a basic "Hold key to continue scrolling" feature to all ListPanel vgui elements, such as old server browser and Hammer's model browser
  • Added lua_dumptimers concommands (each realm has its own suffix) for debugging
  • Added lua_dumpfonts(_menu) for debugging
  • Fixed the game refreshing gamemode and map lists for menus multiple times while loading onto a map or disconnecting, remounting addons or changing gamemode
  • Fixed subscribing to addons while in game remounting addons more than once
  • Fixed memory sizes being displayed incorrectly in certain places with large values
  • Prevent spawnicons with sizes 33-63 from saving "_64" versions of the spawnicons, now uses the default 64x64 image without any suffix like it should
  • Properly remove unmounted (.gma) addon files from internal map so when something tries to access them we don't crash
  • Fixed models loaded by ClientsideModel() or similar methods losing their modelbounds data on map disconnect due to them being reloaded (for now, we don't reload such models)
  • Fixed gui.EnableScreenClicker()'s internal panel showing up after a screen resolution change while it is active
  • Fixes for potential crash issues when handling Lua entities in C++
  • Fixes for potential crashes with MOVECOLLIDE_FLY_CUSTOM, FLY_BOUNCE, FLY_SLIDE, DEFAULT
  • Fixed server browser blacklist being case sensitive
  • Missing the weapons/scripted_ents.Get function at entity creation no longer exits the game (For example when it's only missing clientside)
  • Let people know that -authkey is no longer needed in the srcds console if it is still in the srcds launch options
  • Fixed GameContentChanged hook running 3 times in a row in menu state
  • Fixed first file embedded in the BSP not being decompressed when needed
  • Fixed the default screen resolution selection so it should now select the desktop resolution
  • Added a nullptr check when generating the error texture to prevent crashes
  • Fixed PlayerWeaponColor material proxy hack for Super Grav Gun for cases where people override the default gravity gun (Community Contribution)
  • SteamAPI errors on non first page of Dupes/Saves/Addons/Demos will not hide the pagination so you can go back to the cached pages
  • Fixed a potential issue with Workshop Subscriptions not properly marking files as downloaded
  • Fixed deleting npc_manhack's sprites causing a crash when its deleted sprites are accessed by the NPC code
  • Fixed ErrorNoHalt not being considered a menu state error when it was called in the menu state
  • Fixed a bug with VPK file searching that would result in garbage data in file.Find
  • Fixed potential clientside crashes with ragdolls
  • Potential workaround for "SV_CreatePacketEntities: GetEntServerClass failed for ent 1." error message and crash when disconnecting from a listen server as a host while it is not empty
  • Try to avoid reloading the language multiple times on startup, and add some safeguards when trying to set the language to an invalid one
  • Other minor error handling improvements for Steam Workshop subscriptions
  • Use the new undo.AddFunction return value for "Make Statue" property
  • Made the message "CTextureAllocator::GetTextureRect has invalid texture handle! Expect crashes!" not as spammy
  • Improved handling of invalid texture handles when shadow rendering
  • Added infinite loop prevention for a rare case in shadow rendering
  • Do not try to load filesystem_steam.dll/so/dylib since we do not ship it or use it, should avoid a certain startup crash
  • Minor optimization in Base gamemode's CalcView hook (Community Contribution)
  • Updated CPackedStoreReadCache to its TF2 version, to hopefully fix an uncommon crash
  • Better error handling for getting subscriptions to hopefully prevent "Fetching subscriptions" rarely getting stuck forever for some people
  • Reduced spaminess of "Couldn't find/load font" warnings
  • Added some debug info to "%s overflowed reliable buffer" disconnect message
  • Added "total" count to mat_dump(textures/materials)
  • Saving tool presets now only resaves the changed preset group, not all of the preset groups
  • The default server browser now uses the connection address to connect, not the query address
  • Minor optimization with the PlayerColor material proxy (Community Contribution)
  • Minor optimization with the PlayerWeaponColor material proxy
  • Removed files that are automatically sent from lua/send.txt
  • Deleted the Panel.IsModal existence check from DMenu now that the update is released and that check is no longer necessary
  • Removed unnecessary arguments in C++ => Lua workshop download callbacks in menu state
  • Enabled "Visual Styles 6.0", so Hammer's UI styles should now match OS
  • Added icons for env_sun, point_template and info_lighting_relative,
  • Added targetname keyvalue to light_environment (with a warning about file size) and updated the key names and help text of other keyvalues to better explain what each key does
  • Added "Sprinkle" tool from CS:GO (with an example sprinkle definition)
  • Added Random XYZ and Offset Z to Sprinkle tool
  • Added the Sprinkle Tool to the left sidebar
  • Added func_pendulum to the .fgd
  • Added info_lighting_relative to the fgd
  • Added (Set)LightingOrigin(Hack) inputs and keyvalues to prop_dynamic and all NPCs and (Set)ModelScale for prop_physics, prop_dynamic and NPCs
  • Added a preventative warning when trying to convert a displacement to an entity (Map with that won't compile)
  • Added fade distance keyvalues for prop_door_rotating
  • Texture Browser => Mark now marks decals/overlays if no solids with given texture were marked
  • Creating a new VMF will now spawn a simple box in front of the camera for orientation and select the "Selection" tool
  • Hammer will now select the nodraw texture on VMF load and when creating a new VMF rather than the first texture which will be random depending on custom content installed
  • Fixed Auto visgroups UI being rebuilt for each solid face of the brush textures are being applied to, now rebuilds once
  • Fixed major hang when opening Texture Application Tool with many objects selected
  • Fixed multiple crashes due to .fgd BaseClasses being redefined with fewer variables than they had before
  • Applying textures via the "Face Edit Sheet" window or "Apply Current Texture" Tools no longer rebuilds visgroups UI for each object, only after all textures are applied, so it should be much faster now
  • Fixed custom detail.vbsp in map properties not having an effect in the editor itself
  • Fixed map views forcibly taking focus away from LightingPreviewWindow
  • Fixed custom "detailmaterial" not showing in the editor
  • Fixed the Ray-Traced Preview in Hammer being an error texture
  • Fixed a crash when trying to place a non existent Prefab using the Entity tool
  • Fixed a crash in Object Properties => Model
  • Marked certain Hammer config files as userconfig so they do not get wiped on branch change/verification (You can still delete them and verify to reset)
  • Fixed carving brushes with decals/overlays on them creating "Tell a programmer" windows
  • Fixed releasing LMB/RMB outside of the 3D view while painting displacements continuing to paint until you re-click in the 3D view
  • Fixed crashing issues with Object Properties Output/Input column sorting
  • KeyValue copy & paste now properly pastes the spawnflags (and updates the UI)
  • The Entity Report dialog will now close when its associated VMF is closed to prevent crashes
  • VRAD: Fixed 3d skybox being forced on certain leafs where 2d only skybox is expected
  • Added a missing tooltip for ID_TOOLS_DISP_DRAWREMOVEDVERTS (One of the buttons on the top toolbar)
  • Horizontal resizing of Texture Browser now moves the buttons that would cover the current texture text
  • Adjusted the Texture Application Tool UI (Face Edit Sheet window) to fit longer texture names
  • Added extra width to the right side toolbar so Auto Visgroups can fit without a horizontal scrollbar
  • Adjusted icons for env_skypaint, lua_run (To remove the ugly white lines around the image) and info_lighting
  • Adjusted "Run Map [Advanced]" window to fit more parameters and made the newlines work in the Parameters text box
  • Increased textbox size of Texture scale so it fits the longest value it can have
  • Minor visual adjustments to Object Properties window
  • Made "Show Detail Objects" setting save across sessions
  • Moved the "use count" in texture browser above the texture name and fixed the opaque/self-illum/transparency icons to display properly
  • Made the "Entity Report" window a bit wider and stretched the bottom controls to the right edge
  • Changed the default 3D view type to "Textured Shaded" from "Wireframe"
  • Texture Browser's current selection is now a read only editable text box so you can copy from it
  • Replaced "Select Folder" dialogs in Options menu with the more modern ones
  • Increased the text fields width for many things in the first tab of Object Properties window
  • Model Browser now scrolls to the selected model
  • Marked "Hinge Axis" of prop_door_rotating as non functioning so there is no question about it. ("Fixing" it would break all existing maps)
  • "angles" keyvalue will no longer be created with values "0 0 0" when moving objects that have a model in the editor (such as decals)
  • Opening Entity Report for a different VMF when the Entity Report is already open will now properly recreate it for the currently active VMF
  • Added "CTRL+(SHIFT+)V" text to "Paste (Special)" in right click menus to let the user know about the existence of these shortcuts
  • Added ClientSignOnStateChanged
  • Added SIGNONSTATE_* enums
  • Added 4th argument to GM:PlayerBindPress - button code
  • Added a 3rd argument to gmsave.LoadMap - a callback that is called after the save have been successfully loaded
  • Added DProperty_Entity panel that acts as a entity picker row
  • Allow returning false in undo.AddFunction to skip undo if it's no longer valid (Community Contribution)
  • GM:GameContentChanged is now also called for serverside/clientside realms like originally intended
  • Added DTree_Node.GetExpanded
  • Added DTree_Node.OnNodeAdded( newNode )
  • Added Panel.Set/GetX/Y (Uses Lua Panel.Set/GetPos internally) and switched Panel:Center(Horizontal/Vertical) to use them
  • Made PrecacheSentenceFile() shared (was serverside only)
  • Added spacers support to DComboBox (Community Contribution)
  • Added PreUndo and PostUndo hooks (Community Contribution)
  • Added Entity:GetAnimTimeInterval
  • Added Player:Set/GetActivity
  • Added Weapon:SetActivity
  • Added NPC:SetActivity
  • Added NPC:Set/GetMoveVelocity
  • Added NPC:UpdateTurnActivity
  • Added NPC:HasObstacles
  • Added NPC:AutoMovement
  • Added NPC:Get/SetTaskStatus
  • Added TASKSTATUS_* enums
  • Added NPC:Get/SetMoveInterval
  • Added NPC:GetIdealMoveSpeed
  • Added NPC:GetIdealMoveAcceleration
  • Added NPC:GetMinMoveStopDist
  • Added NPC:GetMinMoveCheckDist
  • Added NPC:IsMoveYawLocked
  • Added NPC:SetMoveYawLocked
  • Added NPC:MoveStart
  • Added NPC:MoveStop
  • Added NPC:MovePause
  • Added NPC:ResetMoveCalc
  • Added NPC:MoveClimbStart
  • Added NPC:MoveClimbExec
  • Added NPC:MoveClimbStop
  • Added AIMR_* enums
  • Added NPC:MoveJumpStart
  • Added NPC:MoveJumpExec
  • Added NPC:MoveJumpStop
  • Added NPC:ResetIdealActivity
  • Added NPC:IsGoalActive
  • Added NPC:ClearBlockingEntity
  • Added NPC:GetNavType
  • Added NPC:SetNavType
  • Added NAV_* enums
  • Added file.AsyncRead
  • Added ProjectedTexture.Get/SetShadowSlopeScaleDepthBias
  • Added ProjectedTexture.Get/SetShadowDepthBias
  • Added ProjectedTexture.Get/SetShadowFilter
  • Added ProjectedTexture.Get/SetTargetEntity
  • Fixed Vehicle.SetVehicleParams taking "steering" parameters from "engine" table, fixed it affecting the speed of some cars due to vphysics shenanigans, fixed it needing boostMaxSpeed, maxRevSpeed and maxSpeed in different units
  • Setting size of a spawnicon AFTER the model should now work correctly (Still not recommend doing so though)
  • SpawnIcon:SetSpawnIcon no longer requires the file to be loaded elsewhere to work
  • Fixed DCheckBoxLabel's vertical alignment of the label (Community Contribution)
  • DTextEntry removes its autocomplete menu if it is open when the text entry itself is removed
  • Fixed an issue with DTree file folders where adding folders to an open node would not populate the added node unless the parent node was collapsed and then expanded again
  • Maintain nicer sorting for numbers in DListView column sorting (Regression fix for previous update)
  • Fixed Panel.LerpPositions not working well with Panel:Center*() functions (or with GetPos() in general)
  • Fixed a self crash with render.DrawSphere when giving the sphere zero/negative segment counts
  • Fixed Entity.GibBreakServer crashing with brush entities
  • Fixed render.SupportsHDR always returning false
  • Fixed Player.GetFriendStatus never showing "blocked" status
  • Fixed cookie library cache having outdated values in certain rare cases (Community Contribution)
  • DProperties now accept the same row types (names) as the DTVar (Entity:NetworkVar) types are called
  • util.TableToKeyValues and CreateMaterial now throw a type error when given not a table to arguments that expect a table
  • util.StringToType now works with "entity" type ( EntIndex )
  • Updated the continue statement implementation in LuaJIT
  • SpawnmenuContentPanel:SwitchPanel now accepts nil to switch to no panel
  • Entity.SetTable now throws a type error when given not a table (used to silently fail)
  • SurfaceInfo.__tostring now contains the ID of the surface
  • steamworks.DownloadUGC now has an internal queue and displays download progress just like workshop subscriptions would
  • Steamworks library: More invalid Lua state safeguards, functions now throw type errors when not given a callback where one is expected
  • render.ReadPixel/render.CapturePixels now returns the alpha channel too (naturally uses more memory)

New in Garry's Mod (GMOD) 01.27.21 (Jan 29, 2021)

  • Added “G String” game mounting support
  • Added a confirmation window when a server tries to force connect a player to a different server
  • Added "Followed" and "Favorites" categories to dupes, saves and demos sections of main menu and the spawn menu
  • The map, gamemode & server name of the server you are joining is now shown on the default loading screen. It also now goes dark mode based on player’s local time
  • Added "Disable Sprays" checkbox to the Options menu
  • Servers that failed to respond to the info/ping requests are now shown in the server browser under "Unreachable Servers" section
  • Added "Disconnect" button to the "open URL" and "connect to a server" confirmation dialogs
  • You can now CTRL+A in console (or in any other RichText GUI element such as default chat window) to select all text
  • Added "Size" display to every addon in the Addons menu
  • Added weapon slot 7, 8, 9 and 0 binds to Options menu as some mods/gamemode might be using more than 6 weapon slots
  • Added map icons for new maps of Team Fortress 2, CS:GO and Fistful of Frags
  • Added sound effect slider to Audio Options menu. This affects all sounds except for voice chat and music, both of which have their own sliders. This allows players to configure voice chat volume separately from the sound effects volume, making the voice chat louder if master ("Game") volume is set to maximum.
  • Fixed graphical glitches on Portal 2 maps when using flashlight (by overwriting skybox materials to have $ignorez set to 1)
  • Fixed certain lights on Portal 2 maps looking incorrect (Refract shader's $localrefract workaround)
  • Fixed Workshop addons not being able to update when joining a server after they have been already loaded by the game
  • Sprays now work in singleplayer
  • Fixed sprays not working for player slots 64-128
  • Fixed not being able to see updated spray image of a player that rejoins the server after changing their spray image until the game is restarted (Also fixes their old spray image becoming error texture)
  • Fixed Half-Life: Source scientists screaming non-stop after getting damaged
  • Fixed an issue with Vehicle duplication when there is no associated player (Community Contribution)
  • Fixed too many NPCs in a squad making new NPCs unable to shoot, which used to happen when spawning over 16 NPCs of the same type through the Spawnmenu at the same time
  • Fixed Gravity Gun sounds being audible only for its owner
  • Fixed weapons sometimes trying to play their sounds from underground, resulting them in not playing any sounds
  • Fixed the broken Gunship patrol pathing code from Half-Life 2 (without hl2_episodic 1) reaching infinite loops and hanging the game
  • Fixed default spawnlists counting as user config, which made them not restore due to a Steam bug if they are deleted
  • Fixed tp_coastal from Fistful of Frags crashing on map load
  • Fixed Faceposer's UI getting filled with 7px tall blank panels when switching Faceposer targets
  • Throwing the last HL2 grenade now maintains previous/last weapon for gravity gun grenade throws
  • Limit maximum force for Thruster tool to 1e10 (from 1e35) to reduce crashing potential
  • Manually installed .gma addons now display their internal title in the Addons menu, not the filename
  • "sv_skyname" now applies changes live, without needing a map restart
  • “sv_gravity” now updates the physics gravity without needing a map restart
  • FOV in Jeep (and its reskins by addons) now matches player configuration in Options menu (Defaulted r_jeepFOV to 0 so it uses player's desired FOV)
  • Fixed r_jeepFOV not updating properly when re-entering a vehicle
  • Made the two Portal 2 DLCs also mount with Portal 2
  • ERROR spawnicons are no longer saved to disk when rendering them in the Spawnicon Editor, unless of course we are editing the icon of models/error.mdl itself
  • Sandbox Camera entity now also uses "noclip"/first person drive type, like Lamp
  • Removed the strange 10 unit distance 3rd person view from "noclip" drive type, now is true first person
  • Crouch and Jump buttons now have an effect in "noclip" and "sandbox" drive types (Hold C > Right click on entity > Drive), similar to normal player noclip
  • Ported more episodic behavior for the Gravity Gun - including being able to pick up props behind grate-type props
  • Removed max values from steam stats, they will now continue to increase after completing their associated achievements
  • Spawnmenu handles screen resolution changes better while on a map
  • Pressing CTRL while a RichText GUI element is focused will no longer reset selection, and neither will copying the text
  • Moved spawnicon queue to a convar (spawnicon_queue) which defaults to 0, and made it target 10fps not 30 when enabled
  • NPCs can now open brush doors if it’s in their way, unless the door specifically disables this
  • Added a replacement for a missing shader which fixes a bunch of Left 4 Dead 2 maps having wireframe textures in the skyboxes
  • Adjusted color of water on Left 4 Dead 2 maps
  • Added fixed versions of nuke_clouds materials for some CS:GO map skyboxes
  • Improved default Face Poser presets to not stretch faces across the whole map
  • Preset editor properly handles different convar capitalization (now forces lowercase) and handles cases where the preset contains less convars than the tool itself
  • Some Left 4 Dead 1 and 2 maps crash on map load. There is a workaround for it on the "dev" beta version of Garry's Mod, but it needs extensive testing before it can be released to public.
  • TTT: Changed a bunch of default values for console variables (Community Contribution)
  • TTT: Renamed Portuguese localization (Community Contribution)
  • TTT: Fixed Magneto Stick ragdoll pinning hint never showing for innocents (Community Contribution)
  • Implemented material conditional tests for GPU level from L4D+ games, assuming GPU level 3, reduces console spam and should improve how certain materials from those games look
  • Added the func_instance_io_proxy entity (No hammer support, just the entity for existing maps)
  • Added support for "boolean" type in .fgd files for GMod's Hammer
  • Added mat_dumpmaterials for debugging purposes
  • Added "Where Is" button to mat_texture_list to help debug addons overwriting materials/textures
  • trigger_push: Added "SetPushDirection" input
  • trigger_push: Added "Only falling players" key value
  • trigger_push: Spawnflag 4096 now acts like it does in CSGO - properly takes into account mass and multiple physics objects
  • Added ProcessID to game's title if -multirun is set (Windows only)
  • Added support for and n to .properties
  • nav_quicksave 2 will now skip mesh visibility computation
  • Fixed not resetting LightmappedGeneric's shader constant 0 ($basetexturetransform) between renders, resulting in it affecting materials which do not have $basetexturetransform set (Also affects Hammer)
  • Right/Middle mouse clicking in Hammer 3D view works better now, by disabling mouse look only when it was started by middle/right clicking a 3D view
  • Shutdown CPlayerPickupController (player_pickup entity) if its associated player somehow becomes NULL to avoid crashing
  • Fixed "whereis" console command not working properly with floating .gma files
  • Fixed modal panels preventing player from interacting with the gui.OpenURL confirmation dialog
  • Prevent studiomdl.exe from writing to out of bounds memory (MAXSTUDIOANIMBLOCKS)
  • Fixed not having an active weapon causing ItemHolsterFrame to not be called on any weapon, which caused issues with the Gravity Gun
  • Fixed FOV desync between server/client for when r_jeepFOV is above player's desired FOV
  • Prevent potential crashes in CShaderAPIDx8::CopyRenderTargetToTextureEx
  • Fixed serverside console spam from the Paint tool
  • Prevent crashing if the BoneToWorld matrix is null while trying to render a model
  • Fixed a memory "leak" when building cubemaps, which would have resulted in crashing during the process
  • Fixed Hammer's Transform dialog (CTRL+M) improperly reading Y and Z coordinates
  • gm_spawnvehicle no longer creates Lua errors when used in dedicated server console
  • Fixed a crash when clearing the console while it is being excessively spammed
  • Applied bone setup crash fixes to Hammer too
  • Fixed crashing issue when trying to pick up an entity without a physics object, or when the physics object of currently carried object somehow becomes invalid (+use pickup)
  • Fixed prop_* entities resetting their render mode when they have fading distances set (now resets to transparent-color only if set to normal render mode)
  • Fixed func_tracktrain's outputs in Hammer
  • Fixed Lua errors when settings/users.txt is somehow missing
  • Fixed gmpublish.exe's "Can't edit workshop id X! (are you the author?)" message interpreting the ID as a 32bit integer
  • Fixed forced ladder move not resetting without an active ladder on player death, resulting in players who died while dismounting a ladder to respawn at the ladder
  • Fixed auto refresh not working when include is called from a C function
  • Fixed ability to crash the game when the dying player receives damage while in a death related hook. This results in Player.Alive returning false ( used to return true ) in PlayerDeath and DoPlayerDeath hooks for the dying player
  • Deleting an active player_pickup entity will now properly stop and cleanup the +use pickup stuff instead of leaving the player in an invalid state
  • base_ai entity now functions when spawned directly, rather than being a floating error so it can now serve as a code example
  • Better error messages when gamemode/weapons/scripted_ents tables do not exist or are invalid types. (sweps, sents errors also no longer close the game)
  • Fixed luavguidcolorbutton.lua not being added to the clientside download list
  • Prevent crashes when dying NPCs create ragdolls and apply infinite force to them
  • Hammer: Display Raytraced preview in the 3d view when it finishes rendering
  • Do not autofocus a panel with SetTabPosition( 1 ), preventing ability to unfocus all text fields
  • Translate SDK_ shaders to their non SDK_ variants
  • You can no longer shoot when clicking on empty space around a modal panel
  • Increased MAXSTUDIOANIMBLOCKS to 512
  • Reset viewmodel skin, bodygroups and pose parameters when the active weapon changes
  • Dedicated Server Workshop: More descriptive error message when Steam failed to download an addon
  • Clientside gravity gun object detachment when a serverside weapon switch happens also destroys the clientside physics object the Gravity Gun creates just like dropping/punting the object does
  • Moved "Edit Instance" button to not cover the input/output icons in Hammer (All 3 also behave better when resizing the window)
  • Studio models now initialize their contents when creating a physics object
  • Cleaned up duplicate collision group rules
  • Changed error string for k_EResultBanned to not scare players. Used to say "VAC Banned", which is inaccurate
  • Added position to buildcubemaps console messages for debugging
  • Added additional info to "MaterialSystem: Out of memory in render data!" warning
  • Updated bass.dll (mp3free) to 2.4.15
  • Do not try to precache Half-Life 1 models/materials and Half-Life 2: Lost Coast harpoon on map load, for cases when those games are not even mounted
  • Serverside gibs now also inherit RenderMode and RenderFX
  • Changed "Model Warning: [%s] might be invalid! " warning to a more descriptive "Warning! '%s' animation requested bone %i, but model only has %i!"
  • More anti lag safeguards for ArmDupe net message
  • env_sprite_clientside can be animated now
  • Updated language files
  • Added extra info to "Failed to lock vertex buffer in CMeshDX8::LockVertexBuffer" error
  • Sandbox entities no longer draw their world tip/outline when the entity is set to not draw (Community Contribution)
  • Improved error handling of dedicated server workshop support
  • Hammer: Added HammerID to the "solid with X faces" and "group of X objects" descriptions for easier distinguishing/debugging
  • Hammer: Disallowed object groups (CMapGroup) to be hidden by the visgroup system - the objects themselves are hidden not the CMapGroup. Fixes "orphaned objects" warning
  • Hammer: Adjusted visgroup validation to allow solids be a child of an object group regardless of format version. Prevents those solids on old .vmfs from losing their visgroup
  • Hammer: Increased amount of recent files to 10, from 4
  • Updated Steamworks SDK to v1.50
  • Added FCVAR_USERINFO flag to gmod_language cvar
  • Decoupled sound.PlayURL/File's threads from server's tickrate, reducing the delay between function call and start of playback
  • Changed translation of base_ai class from "AI" to "Base SNPC"
  • Adjusted the message "C_PhysPropClientside::Initialize: PhysModelParseSolid failed for entity X" to include the model name for debugging
  • Added error messages when failing to allocate memory for model anim blocks
  • Deleted lua/menu/progressbar.lua (unused file)
  • Added GetTimeoutInfo() - returns bool IsTimingOut, float GetTimeSinceLastReceived
  • Added Panel.IsModal
  • Added Panel.IsPopup
  • Added "previewurl" to steamworks.FileInfo, meant as a replacement to previewid
  • Vector.Mul can multiply vector by vector now
  • Added PLAYER.MaxArmor (player classes)
  • Added basic support for bone followers on "anim" type SENTs - Added Entity.CreateBoneFollowers, Entity.UpdateBoneFollowers, Entity.DestroyBoneFollowers (All serverside only)
  • "anim" type sents will render their physics object with vcollide_wireframe if there exists one clientside (yellow for clientside physics object, green for model index vcollide)
  • Added GM:PreRegisterSENT
  • Added GM:PreRegisterSWEP
  • list.Add now returns the index the object was placed at (Community Contribution)
  • Added ITexture.GetNumAnimationFrames()
  • Added ENTITY:GetPreferredCarryAngles( ply ) ("anim" type SENTS only)
  • Added Player argument to GM:GetPreferredCarryAngles
  • Added serverlist.PingServer (menu state)
  • Added input.GetAnalogValue( AnalogAxis )
  • Added ANALOG_* enums
  • Added OnRequestFullUpdate serverside game event ( has all the same data as player_connect_client event, save for bot field )
  • Added .xml, .csv, .jpeg, .mp3, .wav and .ogg file formats to file.Write whitelist
  • Added ErrorNoHaltWithStack
  • Added OnPlayerPhysicsPickup and OnPlayerPhysicsDrop hooks, which handle +use physics pickup
  • Added optional argument to IGMODAudioSteam.SetTime - helps reduce the lag when seeking large MP3 files
  • Added NPC.SetSquad
  • Added NPC.GetSquad,
  • Added NPC.IsSquadLeader
  • Added NPC.GetNearestSquadMember
  • Added ai.GetSquadLeader
  • Added ai.GetSquadMemberCount
  • Added ai.GetSquadMembers
  • Added NPC:GetIdealActivity
  • Added NPC:SetIdealActivity
  • Added ENTITY:OnMovementFailed
  • Added ENTITY:OnMovementComplete
  • Added ENTITY:OnChangeActiveWeapon( old, new )
  • Fixed an infinite loop issue with steamworks.GetList which caused last page of workshop items to never load
  • Fixed Player.SetActiveWeapon while holding a prop with grav gun putting the prop into an invalid state
  • DMenu now better handles opening for modal panels (when it is parented to such panel manually)
  • Fixed a bug with ENT:TriggerOutput when deleting limited usage (Times > 0) outputs
  • steamworks.GetList will always return a table, even on failure. (Fixes infinite loading when loading published items but there are none)
  • Fixed color_white corruption to do with the Color tool/Duplicator system (Community Contribution)
  • Fixed entity function type consistency for Entity.ShouldPlayPickupSound, Entity.SetCreator and Entity.UnFreezable
  • Fixed "vertexlitgeneric" not doing anything as a parameter of Material(), now sets the expected shader, prevents $vertexalpha 1
  • Added additional checks for net.WriteData to prevent crashes
  • Fixed Entity.Set(Sub)Material leaking material reference count on entity removal
  • NextBot NPCs are actually considered NextBots on client
  • Fixed potential issues with serverlist.PlayerList (not canceling the request when destroyed too soon, trying to call nil objects)
  • Fixed inconsistent NEXTBOT:OnEntity(Lost)Sight behavior
  • DComboBox properly updates its text color
  • Fixed non string Lua errors not displaying properly in console
  • ProtectedCall() now displays Lua errors properly in console
  • Fixed mouse wheel events not being picked up by GM:PlayerButtonDown/Up
  • Fixed IMesh.BuildFromTriangles always counting one too many vertices
  • Fixed a crash issue with Global.Mesh when given a material with vertex format 0, now prints a warning and assumes no material set
  • Spawnicon properly initializes self.OverlayFade, and doesn't spawn errors when mods override its PANEL.Paint
  • Fixed using mixed types (strings and numbers for example) within a single DListView column creating Lua errors when sorting
  • Fixed Lua errors when giving a rope constraint an empty string as the material to use
  • Added activator & caller arguments to Entity.Fire, both default to NULL
  • Switched base_entity:TriggerOutput to use Entity.Fire so it uses the internal engine event queue system
  • Switched vgui.Create missing element warning to ErrorNoHalt
  • Made GetPhysicsAttacker's first argument default to 1
  • ENT:HandleAnimEvent can now return true to suppress the default action
  • DProperties handles non existing panel types more properly
  • Panel.KillFocus on EditablePanel now actually kills focus
  • Disallowed DoModal on non Popup panels to prevent bricking the game
  • Player.ConCommand blocked message is now an ErrorNoHalt like RunConsoleCommand
  • "connect" console command is now completely blocked on server realm
  • ENT.Initialize for clientside only entities now acts similarly to networked entities (no longer is automatically called, tied to Entity.Spawn)
  • Lua created materials (CreateMaterial) are now cleaned up on map shutdown
  • Removed prefix restrictions from util.IsValidModel
  • Allowed weapons with a CalcView function to work with player_manager view overrides (fixes taunt camera for SWEPs with a custom CalcView)
  • net.WriteData's length argument is now optional, will ErrorNoHalt when given incorrect length
  • More strict type checking for Entity.SetMaterial
  • ErrorNoHalt when file.Open is given incorrect read/write mode (used to silently fail)
  • Added an ErrorNoHalt when giving net.WriteData not enough data
  • SANDBOX:PlayerSpawn* hooks should consistently no longer receive NULL players
  • net.ReadData errorNoHalts about invalid length (

New in Garry's Mod (GMOD) 10.14.20 (Oct 15, 2020)

  • Added "Addon Presets" feature
  • Added "Toggle" keybind for Hoverball tool
  • Added "Playback rate" slider for Spawn Icon editor
  • You can now undo Weapons spawned through Spawnmenu with middle mouse click or the Creator tool (Community Contribution)
  • Hoverball now shows its "Strength" value in the tooltip
  • Dynamite now shows its "Delay" value in the tooltip
  • Added "Followed" and "Favorite" sections to Addons menu
  • Subscribing to addons with addon dependencies from in-game now displays a nice message telling you which addons you should also install with quick buttons to do so
  • Added ability to hide news in main menu (News posts younger than 7 days are still force shown)
  • Banned/invalid addons now appear in the addon list to give users a chance to uninstall them and to tell them why they are not loaded
  • Added support for the new Left 4 Dead 2 DLC
  • Added 4 map icons from the Team Fortress 2 Halloween 2020 update
  • Added "enable realistic fall damage" option to "start new game" for Sandbox
  • Fixed right clicking or middle mouse clicking on text entries in spawnmenu forcing the spawnmenu to stay hanging unable to be closed with Q
  • Fixed not being able to +use pickup hl2 grenades
  • Fixed not being able to +use pickup weapons (as in, physics pickup)
  • Weapons no longer disappear when you pick up 0 ammo from them with gmod_ammo 0
  • Fixed Half-Life 2 credits not working
  • Don't count "no workshop id" as a workshop id for server browser gamemode list, potentially hiding the install gamemode button
  • Fixed not being able to send large dupes (arm them) to server while being able to download large dupes from server. Dupe anti spam is now per-player on server and also exists on client.
  • Fixed Gravity Gun leaving held prop stuck mid air on client when the Gravity Gun is switched away too quickly
  • physcannon_mega_enabled now works as expected
  • Fixed Gravity Gun launch/punt effects coming from the wrong place in 3rd person for local player
  • Fixed "Cleanup Scripted Weapons" button only cleaning up Scripted Entities and not Weapons (now does both), Added missing translation for "#Cleaned_Sents"
  • Resizing spawnmenu Dupes/Saves tabs now properly updates the icons to fit within the new size
  • Players are no longer in the sit animation in 3rd person when exiting vehicles
  • Fixed Lamp/Light tool effects not rendering
  • Fixed Thruster not working at all if it was turned on while frozen by the Physics Gun
  • Fixed being able to "store an attack" using the Fists SWEP by switching away after pressing LMB and before the attack is performed
  • Fixed entering a vehicle while crouched saving and restoring the crouched view offset when exiting the vehicle even though the player is forced to un-crouch
  • Properly align checkbox labels in New Game settings
  • Partially resolve explosive barrels exploding when catching them and lightly touching ground after throwing
  • Implemented full effects for the Super Gravity Gun
  • It should no longer be possible for the Gravity Gun effects to break when overwriting Garry's Mod files
  • Gravity gun effects now look closer to how they look in Half-Life 2
  • Reduced the minimum value for Light tool brightness to -10 from 0, which makes the light dimmer (-6 in UI)
  • Improvements to prevent spawning props partially inside walls/ground
  • Translated "Unfrozen X objects" and "Undone X" (experimental) hints
  • Added default keybinds to Lamp and Light tools
  • Given Hoverball tool more sensible defaults
  • Revised Hoverball visuals and placement angles
  • Improved UGC (addons/dupes/etc) pagination: Added page number for easy sharing, now works better on extremely small screens and can go beyond page 32
  • Reduced minimum amount of UGC icons to 1 so the UGC menus are at least functional on tiny screens
  • Light tool rope attaches closer to the top of the model like expected
  • Localized Workshop subscription Download/Extraction window
  • Do not display "ServerContent" addons in Latest/Popular/Trending categories in-game
  • Updated Light tool model - color tool applies color only to parts that are meant to be colored similarly to Lamp tool models
  • Finger poser improvements: New background image, scales better with custom tool panel width, holding SHIFT should now make it easier to position fingers
  • Changing spawnicon skin/bodygroups in the spawnmenu triggers "Save Changes" button to show
  • Experimental spawnicon loading 'queue' - prevent complete freezes when opening spawnlists, load spawnicons until we reach 30 FPS or 1 per frame
  • Updated Portuguese translation for TTT (Community Contribution)
  • Hammer: Allow right click on 3D view to activate FPS camera controls, on tools where right click in 3D view is not used
  • Added point_viewcontrol features from CSGO: SetTarget/SetTargetAttachment/ReturnToEyes/TeleportToView/SetTrackSpeed/SetPath inputs, "fov" "trackspeed "fov_rate" keyvalues, Set FOV spawnflag
  • Added env_sprite_clientside
  • env_projectedtexture: Added "style" and "pattern" keyvalues/inputs, SetNear/FarZ inputs and more
  • Added simple multiplayer support for color_correction_volume
  • Added info_particle_target as alias of info_target
  • Added prop_dynamic_glow as alias of prop_dynamic
  • Fixed a crash related to shadow rendering
  • Fixed DNumberScratch's value going out of bounds of the blue background with huge values
  • Preventative fix for large Lua files causing clients to get stuck on loading or completely breaking a server with autorefresh
  • Fixed GMOD_SendToClient having inflated buffer sizes
  • Do not rebuild Derma skin on ALL panels when some single panel gets its skin set
  • Dtooltip inherits derma skin from the panel it is opened for
  • Fixed Hammer not loading vgui language files
  • Fixed certain labels/buttons in Hammer model picker being cut off
  • Fixed HLMV not being able to open VPK folders (and potentially other places not detecting VPK folders)
  • VRAD no longer crashes with invalid model versions on static props (i.e. Portal 2/CSGO models)
  • VRAD no longer bails compiling vertex lighting for static props with invalid model versions
  • VRAD now uses DX90 (used DX8 versions before) vertex format for vertex lighting of static props
  • Fixed "snap to grid" display in Hammer not updating when it should
  • Fixed "Browse" for func_instance in Hammer not filling the field properly when map .vmf is not located in the GarrysMod/garrysmod/maps folder
  • Fixed (env_)explosions not respecting the NODLIGHTS flag
  • Fixed a crash to do with built-in weapons
  • env_projectedtexture shadows can now be turned on while the projected texture is on (previously required the projected texture to be turned off)
  • Fixed hover state of DSlider's draggable "knob"
  • Overflowing serverside sound precache no longer boots you to main menu/crashes the server
  • Fixed MP3/OGG sounds being cached even when they don't exist/failed to load
  • Fixed Lua errors when thrusters are trying to use NULL particle emitters
  • Force disconnecting players to leave their current vehicle properly
  • Fixed Icon Editor erroring when editing a spawnicon which was removed (spawnmenu_reload)
  • Hammer and entity templates can now properly handle post Left 4 Dead 1 map entity Input/Output (ESC delimiter instead of a comma)
  • Fixed a crash with npc_alyx shooting on a server with no players
  • Changed bodygroups to use unsigned integers over signed integers to prevent crashing and increase the bodygroup combination limit somewhat
  • npc_combinegunship's ground attack spawnflag and inputs work now
  • trigger_teleport ejects player from a vehicle when teleporting with the "Only Players In Vehicles" spawnflag
  • Hammer: Fixed .fgd flag/array values inheritance, so spawnflags on trigger_teleport are no longer missing (possibly fixes other entities too)
  • Fixed an infinite loop with CAI_TrackPather on ep2_outland_11a (and possibly other maps/places)
  • Replaced a bunch of Color( 255, 255, 255 ) cases with color_white, etc
  • Hammer: Made the "Default to 15 degree rotations" setting invert what SHIFT does during rotation, not outright enable/disable it
  • Restored invalid model file header checks for VRAD
  • More descriptive error messages when Msg* functions fail to call tostring()
  • Avoid kicking players for "Connection rejected by game"
  • Crash with a nicer message on maps that have (purposefully) corrupted first lump
  • Better Orbit camera for DAdjustableModelPanel
  • Added server related steam error code translations
  • Minor improvements to PrintTable() (Community Contribution)
  • Switched steamworks.GetList to ISteamUGC
  • Better error handling for compressed map lump loading
  • The game no longer loads "Do not mount" state for unsubscribed addons
  • Combined the two loops in weapons.Register into one
  • Print a console message when game is started with -noaddons
  • Increased precision of rotation for all entities to fix prediction errors (lagginess) when walking on frozen props at not straight angles
  • Doubled maximum ammo types
  • Removed usage of SendLua in the undo library
  • Removed some unused variables from Sandbox entities
  • Removed internal STUDIO_TWOPASS hack for Lua entities to hopefully fix the render order issues for good
  • Rollback render.ClearDepth change for DModelPanel as it causes issues for addons
  • Added new argument to Entity.EmitSound - flags, and fixed type checking for the other optional arguments, including pitch and volume arguments not working if soundlevel argument is not given
  • Added 5th optional argument for surface.DrawOutlinedRect - thickness
  • Added ENT/SWEP.IconOverride (Also works for NPCs/Vehicles)
  • Added sound.EmitHint( SOUND_ enum, position, volume, duration, owner = NULL )
  • Added SOUND_ enums
  • Added "NiceName" read only field to Undo structure, contains the text shown in player's undo list UI (Community Contribution)
  • Added basic soundscript support for EmitSound global
  • Added "size" and "updated" (date) keys to engine.GetAddons()
  • Added new optional argument to Entity.DrawModel() - flags (STUDIO_)
  • PrePlayerDraw/PostPlayerDraw now have 2nd argument - flags (STUDIO_)
  • DrawWorldModelTranslucent/DrawWorldModel now have 2nd argument - flags (STUDIO_)
  • RenderOverride now also has 2nd argument - flags (STUDIO_)
  • Added DSP argument to entity.EmitSound and EmitSound global
  • Added 3 new types for steamworks.GetList() - "followed", "friend_favs", "favorite"
  • New optional argument for surface.DrawText - bool - force additive/not additive, defaults to font default
  • Added CTakeDamageInfo.SetBaseDamage
  • Added PlayerHandleAnimEvent and PlayerFireAnimationEvent hooks
  • Added maps/*.lmp to Workshop whitelist
  • Added list.GetTable() (Community Contribution)
  • Better click "animation" for DImageButton depression, added DImageButton:SetDepressImage() (Community Contribution)
  • Added Player.SetMaxArmor
  • Added Player.GetMaxArmor
  • Added render.GetHDREnabled()
  • Added Player.SetViewPunchVelocity
  • Added Player.GetViewPunchVelocity
  • Added player_manager.GetPlayerClasses() and PLAYER:ClassChanged() (Community Contribution)
  • TOOL.ServerConVar actually creates the convars
  • Fixed draw.RoundedBox(Ex) with border value larger than the box height causing the box to render larger than intended
  • HTTP global always returns a boolean, not only on success
  • Fixed nextbots not respecting EF_NOSHADOW
  • Fixed an issue with SWEP:OwnerChanged clientside not being called when initially dropping a weapon
  • Entity.GibBreakServer is no longer affected by breakable_multiplayer convar (Aka it works now)
  • Fixed util.GetModelMeshes returning data for the error.mdl for models that don't actually exist
  • Entity.GetModel() clientside should now return more correct result
  • language.GetPhrase now translates strings starting with #
  • Player.PrintMessage serverside now translates messages like expected
  • Fixed DTree_Node.ExpandRecurse producing Lua errors
  • CSoundPatch:SetDSP now works while the sound is playing
  • Fixed addon spawnlists not supporting subcategories
  • Fixed DNumberScratch (and DNumSlider) constantly firing it's OnValueChanged callback when the value didn't actually change
  • Fixed collision/movement issues with Player.SetModelScale
  • Made NPC.NavSetGoal()'s 3rd argument to default to 100 to prevent old addons from erroring
  • Use a faster method of ignoring newlines in Base64decode
  • Allowed various Draw* global functions related to Post Processing to work directly with RenderTargets (Community Contribution)

New in Garry's Mod (GMOD) 08.19.20 (Oct 7, 2020)

  • Added Filter text field to console UI, direct "bindings" to con_filter_* stuff (only affects new messages)
  • You can now add a spawnmenu label by right clicking empty space in the spawnlist
  • Added "Spawn with weapon" right click option for NPCs that can use weapons
  • Added Preset support for Weld and Camera tools
  • Added right click menu for player model selector icons to copy model path of the player model
  • Fixed combine soldiers only shooting 1 bullet per burst with SWEPs
  • Fixed combine soldiers not using weapon rest times at all (only uses SWEP rest times now)
  • Fixed default secondary ammo HUD not updating its visibility when secondary ammo type changes
  • Fixed a crash issue with secondary ammo display when switching to a NULL weapon
  • Fixed secondary ammo HUD not showing while in a vehicle with weapons in vehicles enabled
  • Fixed wheel ghost spazzing out when aiming at moving entities
  • Fixed wheel ghost preview floating above certain surfaces unexpectedly
  • Fixed wheel direction indicator size spazzing out with certain wheel models on certain surfaces
  • Fixed updating a Thruster stopping its sound after a short while if its active, instead of updating the sound
  • Fixed Motor tool's Force Limit not functioning
  • Fixed a bunch of render order issues with default tool entities and potentially other addon entities
  • Fixed a "CUtlRBTree overflow!" crash to do with detail models (grass and stuff) on maps
  • Fixed prop fading not fading but instantly hiding props
  • Fixed prop fading breaking/being affected by water/mirror reflections
  • SLAM tripmines now properly clean their laser when they are removed, not exploded
  • SLAM weapon no longer tries to throw/place a tripmine/satchel immediately after switching to the weapon if the player switched away during the placing/throwing animation
  • Fixed RPG Launcher shooting a non guidable missile in some cases
  • Fixed a crash when changing r_flashlightdepthres during runtime while having projected textures around
  • Fixed up/down buttons for alpha on tool color selection not functioning
  • Fixed manually entering alpha value for Spawnmenu color selection not updating the UI
  • Try to avoid unexplained crash to do with overflowing font cache and display a warning instead (Another "CUtlRBTree overflow" crash)
  • Fixed jumping animations playing on players when landing in multiplayer (Fixed extra GM:DoAnimationEvent calls with PLAYERANIMEVENT_JUMP)
  • Tracking Sandbox Camera now properly tracks players instead of tracking somewhere above them
  • Fixed gravity gun (and potentially other weapons) not working properly while sitting in a vehicle
  • Fixed gravity gun spamming its "DryFire" sound in a rare case when the prop is picked up but is too far to be thrown
  • Fixed certain NPCs like Combine Camera/Turrets, Nihilanth, etc ignoring "Disable Thinking" setting
  • Combine Ball projectile no longer makes kill sounds when hitting ragdolls, to prevent insane sound spam when it gets stuck in multiple ragdolls
  • Fixed "Keep Ragdolls" setting causing dead rollermines and floor turrets to create uninteractable "ragdolls" on death
  • Citadel version of Half-Life 2 armor recharger now restores the correct amount of armor
  • "Make Statue" property now properly saves and restores via duplicator (affects only new dupes/saves)
  • "Enable Gravity" checked status now properly saves via duplicator (affects only new dupes/saves)
  • Fixed engine saves sometimes having extremely messed up sounds
  • Fixed domain names starting with a number being counted as IP addresses in the old server browser when adding a new favorite server
  • Fixed respawn_entities command breaking weapon sounds until player respawns
  • Fixed Alyx's Gun sounds not working without Episode 1 being mounted
  • Fixed Metropolice freezing the game for too long on initial spawn
  • Spawnmenu now selects the first VISIBLE spawnlist, used to select hidden spawnlists
  • Do not exit the game on "Couldn't create windows font" error
  • Fixed extreme performance loss with SetMaterial and missing materials with Capitalized materials
  • Server's IP address can now be selected and copied in the server browser (Community Contribution)
  • Dissolved entities now have zero G regardless of whether "Keep corpses" is enabled or not
  • Spawning wheels, balloons, lamps, lights, cameras now applies the propspawn effect like other tools
  • Thruster effects now try to conform to the thruster model, so a smaller model produces a smaller effect, a bigger model produces a bigger effect
  • Thruster smoke effect now acts more like smoke (gravity) and acts more like a thruster when not moving
  • Only show the CSS thruster models in the tool's model list if CSS is mounted
  • Spawnmenu editable labels now stretch to fit the text being entered and do now overflow spawnlist panel width
  • Limited Stereoscopy Effect's size to +/-11.5 to prevent "legal wallhack" in Sandbox derived gamemodes
  • Gravity Gun can now successfully complete the upgrade process and is no longer a progression stopper on d3_citadel_03
  • Upgraded Gravity Gun can pick up stuff from further away, has SUPER sounds and can turn NPCs into ragdolls
  • Reworked models/mechanics/solid_steel/type_a_2_16.mdl so it isn't broken anymore
  • item_healthvial dropped by NPCs on death also gets dissolved like the weapon/combine ball ammo drop does if they died from dissolve damage
  • Updated language files, added language strings for Undone_Statue and env_entity_dissolver
  • Spawnmenu handles deletion of all spawnlists upon save better, by first showing hidden ones that require mountable games, and then regenerating default spawnlists if there are no spawnlists left whatsoever
  • Removed "Torque Limit" from ballsocket tool as it did nothing
  • TTT: Added Simplified Chinese language (Community Contribution)
  • TTT: Fixed Duck key while spectating in roaming mode teleporting you to last spectated player (Community Contribution)
  • Fixed TTT's fgd crashing Hammer when used with Half-Life 2 fgd at the same time
  • Added extra info to "version" console command to help debug issues
  • Fixed console de-duplicating empty strings and text less than 10 characters long
  • Fixed IP blacklist sometimes affecting wrong servers
  • Gravity Gun now respects SF_PHYSBOX_NEVER_PUNT, SF_WEAPON_NO_PHYSCANNON_PUNT, SF_PHYSBOX_ALWAYS_PICK_UP, SF_PHYSBOX_NEVER_PICK_UP and SF_PHYSPROP_ALWAYS_PICK_UP spawnflags like expected
  • Fixed self crash with "ent_info worldspawn" console command
  • Fixed bad direct calls to PerformLayout() on built-in panels
  • point_message entity works in multiplayer for the listen server host
  • Added safeguard to CMDLCache::GetStudioHdr from CSGO for an "unknown cause" crash
  • Fixed gestures playing at 2x the speed on Nextbot NPCs
  • Dedicated servers properly go into hibernation once all players have disconnected (Use sv_hibernate_think 1 to avoid)
  • Potentially fixed playing viewmodel animations from the server only not updating them on client properly in multiplayer
  • +use picking up props no longer bails with sv_turbophysics set to 1
  • Fixed Hammer Editor crashing with model heavy maps
  • Fixed potential crashes when hitting entity limit and trying to create flex/bone manipulators
  • Fixed BSP brush models after 999 not working on maps
  • Trying to render out of bounds texture frames no longer crashes the game
  • Restored SF_COMBINE_NO_AR2DROP ep2 spawnflag for npc_combine_s
  • Potentially fixed a crash issue with RichText
  • Fixed a dozen crashes with Half-Life 2 weapons when the server has hit the serverside entity limit
  • Fixed certain ammo items in Hammer Editor having error models
  • Lua Auto-refresh no longer breaks spawnlist saving/reverting
  • Fixed self becoming NULL for Lua Effects when clientside entity limit is reached
  • Fixed NPCData.Weapons (Spawnmenu NPCs) not being counted as valid weapons, causing NPCs like Fisherman from Lost Coast not being able to spawn with his signature weapon
  • Fixed super tiny or 0-length slider and rope constraints causing crazy physics on props and causing potential crashes
  • Replaced usage of "Physgun" and "Physcannon" with "Gravity Gun" in the .fgd files used by Hammer to avoid confusion between GMod's Physics Gun and the Gravity Gun
  • Replaced "Bad field in entity!!" console warning with a far more descriptive one
  • Move "CreateFragmentsFromFile: '%s' doesn't exist." to developer 1
  • A less error prone random walk location for the example Nextbot NPC
  • Thruster entity properly frees it's particle emitters
  • Allow all "anim" type SENTs to automagically calculate their default rendergroup (unless overwritten)
  • Replaced usage of WM_ACTIVATEAPP with WM_ACTIVATE due to a possible Windows bug to hopefully fix system.HasFocus returning wrong value when the game was minimized by clicking on it in the taskbar
  • Reload language files for addons just before Lua gets initialized, instead of just after
  • Added MaxHealth to NPCs that did not have it set
  • DMenuOption text offset is now the same whether it has an icon or not
  • prop_ragdoll no longer resets its collision group if it was set before Spawn(), unless SF_RAGDOLLPROP_DEBRIS is set
  • Removed "dropprimary" console command
  • Removed the "Couldn't find surface in GetColorForSurface()" message
  • Removed a bunch of unused variables and merged double if statements across the sandbox gamemode (Community Contribution)
  • Added SF_PHYSPROP_IS_GIB, SF_PHYSBOX_ALWAYS_PICK_UP, SF_PHYSBOX_NEVER_PUNT, SF_WEAPON_START_CONSTRAINED, SF_WEAPON_NO_PLAYER_PICKUP and SF_WEAPON_NO_PHYSCANNON_PUNT enums (all shared)
  • Added NextBot.IsAbleToSee( ent, useFOV = true )
  • Added NextBot:Set/GetFOV()
  • Added CNavArea.IsPotentiallyVisible( cnavarea )
  • Added CNavArea:IsCompletelyVisible( cnavarea )
  • Added Nextbot.Set/GetMaxVisionRange()
  • Added CNavArea:IsPartiallyVisible( eyepos, ignoreEnt = NULL )
  • Added DLabelEditable.Set/GetAutoStretch, defaults to false
  • Added NEXTBOT:OnEntitySight and NEXTBOT:OnEntitySightLost
  • Added Material:Get/SetVector4D, returns/takes 4 numbers
  • Added DButton.SetMaterial() (Community Contribution)
  • Added Player.OwnerSteamID64(), serverside only, returns the SteamID of family sharing owner of the game license (or just the player's SteamID if not using FS), will be 0 before player is fully authed
  • NPC.NavSetGoalTarget, NPC.NavSetRandomGoal, NPC.NavSetGoal and NPC.NavSetWanderGoal now return a bool - whether the path generation succeeded or failed
  • Added a 2nd argument to util.RedownloadAllLightmaps - update static prop lighting
  • Added "stack" argument for GM:OnLuaError
  • Added DTree_Node.GetChildNodes
  • Added DTree_Node.GetChildNodeCount
  • Added DCollapsibleCategory.SetHeaderHeight
  • Added DCollapsibleCategory.GetHeaderHeight
  • PropSelect.AddModel(Ex) now returns the icon it creates (Community Contribution)
  • RecipientFilter global now has a new optional argument - make unreliable
  • surface.DrawTexturedRect(UV) now work with poster command nicely
  • Fixed clientside DTVar callbacks not being called when setting an "Entity" type property to NULL
  • Fixed PANEL:OnStopDragging being called multiple times per "dragging drop" (Community Contribution)
  • Fixed engine.LightStyle crashing with style=64
  • NPC.NavSetGoal no longer tries to generate a 0 length path failing every time, now has 2 more arguments, minPathLength and direction = vec3_origin
  • Fixed render.DrawQuadEasy producing malformed/squashed quads in very certain rare cases
  • Player.PickupObject now force drops the given object before trying to pick it back up, so the object doesn't get stuck in an invalid state
  • Player.SetNoCollideWithTeammates( true ) no longer causes players with Team ID 1-4 to not receive melee damage from NPCs
  • Fixed walking on player heads not working correctly if SetNoCollideWithTeammates() is set to true and the 2 players are in different teams in teamID range 1-4
  • Fixed players on moving brush entities getting instantly killed if inside each other with SetNoCollideWithTeammates( true )
  • Fixed players getting flung unexpectedly from frozen props, most noticeably with SetNoCollideWithTeammates enabled and standing in teammates
  • Avoid console errors when using PrintMessage with weird input
  • DMenu submenus inherit parent's derma Skin
  • Fixed HTTP() global trying to use invalid ISteamHTTP pointer after changelevel on dedicated servers causing a crash
  • DModelPanel clears render depth automatically fixing weird artifacts when 2 or more DModelPanels are on top of each other
  • DNumberWang.OnValueChanged is now only called when the value has actually changed
  • Increased precision of doubles in util.TableToJSON
  • Player.SetActiveWeapon( NULL ) now hides the view model as expected
  • Player.SetActiveWeapon( NULL ) no longer causes next selected weapon to be force-lowered
  • surface.DrawCircle is no longer made out of dots but uses lines and it's color argument is now optional
  • Promoted "HTTP failed - ISteamHTTP isn't available!" to an ErrorNoHalt with stack to help identify what addon is causing the error message
  • Weapon.SetClip1/SetClip2 marks the weapon to not give out reserve ammo/reset clips on weapon pickup
  • Made Entity.Use's last 3 arguments optional
  • More consistent "self" type/NULL checking for CNavArea and CLuaEmitter
  • CLuaParticle.SetThinkFunction/CollideFunction now ErrorNoHalts on bad input, instead of a silent message
  • DCollapsibleCategory now works better with Derma skins
  • CreateSound() no longer forces the internal filter to be reliable

New in Garry's Mod (GMOD) 06.24.20 (Jun 25, 2020)

  • Added client console de-duplication, can be toggled with con_filter_dupe
  • Added Mass icon resize and re-render feature to the spawnmenu, by selecting many icons and right clicking on them
  • Added Freeze/Unfreeze effects check boxes to Physics Gun Settings
  • Added "Sandbox Settings" in User category in Utilities which contains the search max results slider + some sandbox related toggles from the menubar
  • Weapons in the weapons tab now have an "NPC" icon if they can be used as NPC weapons, with a right click option to set that weapon as the current NPC weapon override
  • Added kill icons for prop_ragdoll, prop_physics_respawnable, func_pushable and func_physbox (same as prop_physics)
  • Added 51 new main menu backgrounds from the contest, replacing old ones
  • Fixed extreme lag when entering PVS with props that have material override pointing to a non existent material, most noticeable on multiplayer Sandbox servers
  • Fixed extreme performance loss when trying to render unmounted materials (unmounting CSS while on a map that uses CSS content and re-joining that map)
  • Fixed certain props disappearing and spamming the console on map change
  • Underwater sounds no longer play when dead and player's camera is not underwater
  • Dying to Half-Life 2 leeches no longer keeps playing the leech sounds until you respawn
  • Dying above water with leeches also no longer plays the leech sounds when your player entity falls underwater while you are dead
  • Addons that use too many decals will no longer boot players to main menu when trying to start singleplayer game
  • Fixed Undo & Cleanup panels in Utilities becoming blank after spawnmenu_reload
  • Fixed Motion Blur and Overlay Post Processing effects not working well with poster command
  • Fixed Toy Town post processing effect having 1px tall gap at the bottom of the screen with certain settings
  • SuperDOF UI window now repositions itself when player's screen resolution changes so it will not be left off-screen
  • Fixed a large memory leak when decompressing files embedded in the BSP map file
  • Physics Gun glow/beam will no longer render in 3rd person if the weapon itself is not visible
  • Fixed echo and other DSP effects not resetting on map change
  • "retry" console command in singleplayer now acts like "map currentmap.bsp", instead of locking up the game
  • Reduced/removed high frequency noise on wood, concrete, tile and metal footsteps
  • Reduced hard cutoff on rubber footstep sounds (loud clicking noises) when sprinting
  • Player's footsteps no longer play mid-air if the prop they were walking on got deleted
  • Reduced volume of chain link footsteps to match the other footstep sounds
  • Fixed missing Stalker NPC sounds
  • Right click removing stuff with the Remover tool now properly progresses the Remover achievement on Steam (Community Contribution)
  • Fixed missing sounds for Narrator from The Stanley Parable
  • Self-controlled func_tank turrets obey "Ignore Players" option
  • Fixed props on certain maps (Half-Life 2 Episode 2 for example) going invisible or becoming transparent unexpectedly
  • Fixed Star Scale, Fade and Speed fields of Sky Editor not saving/restoring properly with the duplicator/save tab
  • Fixed certain (looping) sounds not restarting when reconnecting to a server
  • Fixed certain (looping) sounds not updating properly sometimes (such as Thruster sounds keep playing when the thruster is turned off)
  • Fixed addon titles in the Spawnmenu not properly reflecting the addons' Workshop title
  • Picking up an Effect with the Physics Gun now applies the glow effect to the model itself, not the green ring
  • Fixed spawnlist divider not restoring its width properly (Community Contribution)
  • Fixed pressing Enter in Tool tab search/filter collapsing all categories unexpectedly
  • Changed "persistence mode" to "persistence file" and added a bit more info about persistence itself to Spawnmenu's Sandbox Settings menu
  • Garry's Mod Terms Of Service and Privacy Policy now open in Steam overlay if possible
  • Links that open in Steam Overlay fallback to built-in HTML renderer if Steam Overlay is disabled
  • Servers with ping under 60 now have identical ranking impact from ping in the server browser (Community Contribution)
  • Bot players are also subtracted from maxplayers, so there are no cases of server appearing with open slots while it has none
  • NPC weapon selection is now sorted alphabetically
  • Added sk_npc/plr_dmg_crowbar/stunstick convars that control Crowbar and Stunstick damage, as a result default crowbar and stunstick damage was reduced to its Half-Life 2 values, matching all other built-in weapons
  • Improved performance of projected textures (Lamp tool, flashlight, etc) when looking away from them (Community Contribution)
  • Reduced minimum width for rope based constraints to 0.2, from 1 (Community Contribution)
  • weapon_fists now obeys the phys_pushscale convar (Community Contribution)
  • Updated language files
  • Main menu backgrounds never switch to the same image unless there's only 1 image
  • Exiting the server browser will now immediately stop searching for servers
  • Resizing the spawnmenu tabs will affect all tabs on the same side at the same time
  • Removed cheat flag from "viewmodel_fov" console variable
  • "Drive" property no longer appears for Jeeps as it simply cannot move them
  • TTT: Fixed an incorrect comment (Community Contribution)
  • TTT: Added French translation (Community Contribution)
  • TTT: Optimized streaming of end-of-round report (Community Contribution)
  • TTT: Avoid clipping victory text in round report and other fixes (Community Contribution)
  • Added current material count to mat_texture_list when expanded
  • point_teleport - Added the episodic "Teleport into crouch" spawnflag, Added TeleportEntity & TeleportToCurrentPos inputs (Hammer Editor included)
  • Added mat_dumptextures console command - dumps all used textures by the engine, for debugging
  • Fixed a rare Javascript error with the server browser
  • Fixed materials without a valid shader becoming completely inivisible, now appear as wireframe
  • Fixed a typo in a certain gm_save console message (Community Contribution)
  • Fixed prop_physics_respawnable not respawning as expected
  • Fixed loading of .png textures after a map change trying to load non existent .vtf versions of the textures
  • Fixed mounting Portal 2 making models/player.mdl spawn as an unmovable, uninteractable object
  • Fixed servers trying to send a random Lua file to clients if there is no files needed to be sent
  • Fixed some procedural textures allocating a material slot every time they are reloaded, for example spawnmenu icons on spawnmenu_reload/map reload and Material() calls with backslashes
  • npc_barnacle clears the entities it spawns when removed
  • trigger_weapon_dissolve no longer crashes the game if one of the weapons it is meant to delete got removed prematurely by something else
  • npc_barnacle no longer crashes the game if it is missing its "tongue" entities
  • Shadow rendering doesn't crash when it encounters a null renderable
  • Potential fix for crashing with Inverse Kinematics on certain models
  • Fixed decal related crashes on world geometry (brushes/displacements) when the material they are applied to/rendering with is unmounted
  • More crash safeguards when loading localization files
  • Fixed gamemode ConVars being recreated multiple times during map loading, possibly leaking memory
  • Sandbox persistence now trims whitespace on input so you don't end up with files that the game refuses to write to/read from
  • Minor improvement for addonsystem from x64
  • Delete physics object of Toolgun ghost as it doesn't need physics at all
  • Added filename to "steamworks.DownloadUGC: Failed to read addon file" console message
  • Increased MAXSTUDIOFLEXVERTS to 65536
  • Switched GM:GetFallDamage to use GetConVar() over GetConVarNumber() in base gamemode (Community Contribution)
  • Broken Patch materials fallback to LightmappedGeneric, instead of Wireframe, reducing invisible walls, floors, etc
  • Increased MAX_MAP_MODELS to 4096
  • Quadrupled console history log if game is started with "developer 1" or higher
  • "Something is creating script errors" message now also shows the folder addon names, instead of falling back to the default "Something is creating script errors"
  • Hide mat_texture_limit console variable
  • Added GM:PlayerAmmoChanged
  • Added GM:PreDrawViewModels
  • Added SANDBOX:CanArmDupe
  • Added Player.GetUseEntity
  • Added Player.PickupWeapon
  • Added NPC.PickupWeapon
  • Added NPC.GetWeapons
  • Added NPC.GetWeapon
  • Added NPC.SelectWeapon
  • Added NPC.RememberUnreachable, to give NPC.IsUnreachable a reason to exist
  • Added NPC.HasEnemyEluded
  • Added NPC.HasEnemyMemory
  • Added NPC.GetEnemyLastKnownPos
  • Added NPC.GetEnemyLastSeenPos
  • Added NPC.GetEnemyLastTimeSeen
  • Added NPC.GetEnemyFirstTimeSeen
  • Added NPC.SetIdealYawAndUpdate
  • Added ENT:OnChangeActivity for base_ai entities
  • Added Entity.SetLayerSequence
  • Added Entity.GetLayerSequence
  • Added utf8.sub and utf8.GetChar (Community Contribution)
  • Added GM:PlayerCheckLimit (Community Contribution)
  • Added GM:CanUndo (Community Contribution)
  • Added PLAYER:Death (Community Contribution)
  • Added optional argument to render.DrawScreenQuad() - Apply poster corrections
  • Added optional argument to NPC.MarkEnemyAsEluded and NPC.ClearEnemyMemory - Enemy entity override
  • Added .vmt to file.Write whitelist
  • Current value is passed to DTextEntry's OnEnter callback (Community Contribution)
  • ENT:StoreOutput() works for newer Source Engine map IO format
  • Fixed OBS_MODE_FIXED/CHASE/IN_EYE having bad spectator behavior due to the player's movetype being set to NONE
  • Fixed SWEP:OwnerChanged being very unreliable and inconsistent
  • Fixed ents.CreateClientside entities not receiving projected textures
  • Fixed returning true in GM:EntityEmitSound hook when the Entity is a clientside only entity causing the ent index to be read incorrectly, which in turn caused infinite scrape sounds for gibs
  • Fixed effects.BeamRingPoint having its blue and green color channels swapped
  • Fixed NPC.Give() being able to give an NPC multiple copies of the same weapon, now returns the existing copy
  • Fixed double "expected" in VMatrix.__mul type error message
  • Fixed PANEL:OnMouse* and PANEL:OnCursor* hooks not working on panels derived from RichText
  • Fixed cvars.AddChangeCallback's identifier not working as intended (Community Contribution)
  • base_gmodentity.GetPlayer() now properly returns the player object after player reconnected to the server for base_gmodentity derived entities (Community Contribution)
  • Fixed loading of .png materials with different material parameters not working properly
  • Fixed Entity.AdvanceFrame crashing the game with invalid sequences
  • Fixed Lua errors from PositionSpawnIcon() with bad entities
  • Fixed Entity.NetworkVarElement not saving/restoring properly
  • Fixed NWVars not updating properly on clients when joining a server/reconnecting
  • controlpanel.Get will no longer return panels that are about to be deleted (in the next frame)
  • Vector.__div now type checks its second argument
  • Angle/Vector.__newindex now type checks its 3rd argument
  • Added a non-halting error message when mods are trying to send an overflowed net message
  • Entity.Set/GetLayerDuration, Entity.Set/GetLayerCycle, Entity.SetLayerBlendIn, Entity.SetLayerBlendOut, Entity.IsValidLayer are now shared
  • render.Capture now accepts "jpg" as an alias of "jpeg" format

New in Garry's Mod (GMOD) 04.29.20 (Apr 30, 2020)

  • Added Fistful of Frags mounting support
  • Added The Stanley Parable mounting support
  • Added "Steam Voice Options" to Voice tab in Options
  • Added "sbox_search_maxresults" console variable, affects Sandbox search result limit
  • "Enable PvP" option being disabled (sbox_playershurtplayers) no longer unexpectedly disables self damage
  • "Make Persistent" property is now properly hidden if persistence is disabled
  • weapon_base no longer creates Lua error when given to NPCs
  • Fixed suit death voice lines playing on respawn with gmod_suit 1
  • Models that exceed MAXSTUDIOFLEXVERTS no longer crash the game, such as SFM models
  • Weapons dropped by players no longer give extra reserve ammo when picked back up
  • Undoing in TextEntry (CTRL+Z) also restores the scroll amount, fixing weird behavior in certain cases (issues/1588)
  • Fixed view model hands sometimes floating in the direction of map origin, notably when exiting vehicles
  • "Players have godmode" setting (sbox_godmode) works in singleplayer
  • You can now use tools like Balloons on brush entities such as gm_construct's colorable room and the mirror
  • Throwing props at NPCs/Players using the Physics Gun now correctly gives kill credit to the player who threw the prop, not the prop itself
  • "fps_max" console command can now be changed while in a server
  • Some sounds are now properly muted if game loses focus and snd_mute_losefocus is set to 1
  • Increased voice chat sample rate to 44100Hz to improve voice chat quality
  • Added expected download size for Workshop files when connecting to servers. This is a rough estimate of how much disk space will be used, not bandwidth which will always be lower
  • Added icons for the 2 new CS:GO maps and for maps from new mountable games
  • Updated Facepunch logo on the intro screen
  • Sandbox Balloons, Buttons and Emitters can now be made transparent via the Color tool
  • Translated right click menu for spawnlist headers and added icon to match existing right click menus
  • Translated right click menus for Tools in spawnlists & multi selection right click menu (Community Contribution)
  • Post Processing icons can now be deleted from spawnlists
  • Tool search in spawnlists now works with localization
  • Added a warning about certain options doing nothing in singleplayer to the Utilities > Sandbox Settings menu
  • Spawnicons and spawnlist tools now obey read only parents (such as spawnlist Search)
  • Right-clicking non selected spawnmenu icons while having some selected will not override right click menus of non selected spawnmenu icons
  • ".mdl" part of models paths is no longer being searched in Spawnmenu search
  • Tool menu quick filter now expands the categories if they were collapsed by the player
  • DCollapsibleCategory (Tool categories) now show a tiny icon when it is collapsed, telling the player it is collapsed and not just empty
  • Spawnmenu Header panels obey parents read only state by not allowing its text to be edited
  • Spawnmenu search prop indexer now uses a notification with a progress bar over the blue progress bar
  • Having your spawnmenu closed during search will automatically update search results next time you open it if necessary
  • Custom addon spawnlists, Game props and Addon props lists are now read only (i.e. you can't delete icons from them)
  • Reduced default voice chat gain/multiplication (voice_maxgain) from 10x to 2x to improve voice chat quality
  • TTT: Fixed GetEyeTrace override, potentially improving performance (Community Contribution)
  • TTT: Removed unnecessary GetWeapons and HasWeapon overrides (Community Contribution)
  • TTT: Updated language files (Community Contribution)
  • TTT: Added Italian translation (Community Contribution)
  • Added "sv_timeout_signon" for servers, affects how much time a player has to connect to the server before getting kicked for timing out
  • Added "Activator only" flag for env_fade in Hammer Editor
  • Added "Max Fog Density" to sky_camera in Hammer Editor
  • resource/localization/ files now load from addons properly
  • Gamemodes with malformed gamemode.txt file no longer produce Lua errors in the main menu (Community Contribution)
  • RichText - Fixed links getting previous link signals in certain cases, fixed multi-line links going beyond panel bounds
  • Main menu no longer errors if we failed to load API manifest or its fields changed
  • Scripted entities clientside (SWEPS) update their Lua data before calling Initialize, not after
  • env_fade no longer crashes the game with its hidden activator only flag set and and the activator is null
  • npc_launcher and its grenades no longer try to play NULL sounds causing performance problems
  • npc_launcher defaults to RPG rocket model and 500 launch speed if those keyvalues are unset
  • env_entity_dissolver will no longer remove players, will apply dissolve effect to players as expected, and will not credit its kills to a random player
  • Reduced spam from mount.cfg in console, moved certain fs_tellmeyoursecrets messages to fs_tellmeyoursecrets 2
  • Blacklisted servers display why they were blacklisted in console
  • Changed RENDERMODE_TRANSALPHA to TRANSCOLOR in Sandbox stuff like it should always have been
  • Missing localization now falls back to English rather than nothing
  • Add more explanations about comments in the mount.cfg itself to maybe hopefully help people figure out why it "doesn't work"
  • Added IGModAudioChannel.GetPan
  • Added IGModAudioChannel.SetPan
  • Added IMesh.IsValid
  • Added PANEL:TestHover( x, y ) hook
  • Added SentenceDuration( name )
  • Added IGModAudioChannel.GetTagsHTTP()
  • Added IGModAudioChannel.GetTagsVendor()
  • Added IGModAudioChannel.GetTagsOGG()
  • Added IGModAudioChannel.GetTagsMeta()
  • Added IGModAudioChannel.GetTagsID3()
  • Added GM:OnScreenSizeChanged hook
  • Added GetPredictionPlayer()
  • Added effects.BeamRingPoint
  • Added effects.BubbleTrail
  • Added effects.Bubbles
  • Added util.Base64Decode
  • Added input.TranslateAlias( str )
  • "gmod_language" is now passed to loading screens
  • New members for PhysicsCollide hooks - OurSurfaceProps, TheirSurfaceProps, HitSpeed, OurNewVelocity, TheirNewVelocity, OurOldAngularVelocity, TheirOldAngularVelocity
  • Added 5th argument to SWEP:FireAnimationEvent - source entity, which will be the viewmodel entity on client and the weapon itself on server
  • search.GetResults now has a 3rd optional argument - maximum results to return
  • notification.AddProgress now has an optional 3rd argument - fraction - 0 to 1 value overriding the progress bar animation to show a desired value
  • Added Panel:SetTooltipPanelOverride
  • Added Entity.IsSequenceFinished()
  • Added effects.GetList() (Community Contribution)
  • Added BASSCHANNEL:Set3DEnabled()
  • Added BASSCHANNEL:Get3DEnabled()
  • Entity.PlayScene now has a second return value - the scene entity, removing which will stop stopping the scene
  • Fixed net.Start's ErrorNoHalt crashing the game
  • Fixed Player.GetEyeTraceNoCursor caching & switched Player.GetEyeTrace(NoCursor) to use FrameNumber() over CurTime() (Community Contribution)
  • Derma Skin PaintShadow & PaintFrame no longer uses global SKIN and uses self instead (Community Contribution)
  • Entity.GetSequenceInfo now try to fill the activity field in case the model it is used on didn't use the ACT_ stuff yet
  • Negative playback rate now properly affects viewmodels
  • util.IsValidModel no longer returns false for precached clientside only dynamic models
  • ents.CreateClientProp's entity properly initializes its world matrix on creation
  • ents.CreateClientProp automatically precaches the model it is given
  • Calling ents.CreateClientProp with a model with no physics or no model and setting it later will no longer bail mid initialization and cause problems such as the prop not receiving projected textures, etc
  • Constraint library minor improvements and fixes
  • Entity.Remove() no longer sets FSOLID_NOT_SOLID while in a Physics callback, potentially causing crashing issues
  • Entity.SetPhysicsAttacker works on more entities now, such as "anim" type SENTs and vehicles
  • ENT:TestCollision now reacts to "true" return value - allows the entity to collide as it normally would
  • Use floats for LuaParticle start/end sizes, fixing extremely small particle sizes not working (

New in Garry's Mod (GMOD) 03.17.20 (Mar 18, 2020)

  • Fixed func_breakable being misaligned on Half-Life: Source maps
  • Fixed Half-Life: Source snarks not attacking anything when spawned from spawnmenu on flat surfaces
  • Fixed Faceposer tool forcing hidden "useless" flex controllers to 0 causing problems with other flexcontrollers, such as eyelid control on Team Fortress 2 player models
  • Half-Life: Source turrets start in retracted animation rather than in the firing? animation
  • Restored close caption support
  • Fixed certain build-in chat messages getting cut off if player's name is too long
  • Very tall disconnect messages are no longer being cut off vertically midway and don't go off screen
  • Fixed a progression stopper on d2_coast_11.bsp if "Keep Corpses" option is turned on
  • Fixed a progression stopper on c2a5g.bsp (not being able to use the airstrike controls)
  • Level transitions (as well as loading engine saves) no longer resets Suit Power as well as Crouched and Flashlight states
  • Combine Soldiers, Metrocops, Stalkers, Zombine, Eli and Antlion Guards get their custom footsteps back
  • Death ragdolls copy dead NPC/Player's flex and bone manipulations, as well as RenderFX and targetname (serverside ragdolls)
  • Sandbox's prop_effect will now change its color if the player is looking at it, indicating which/if prop_effect will be picked up via Physics Gun/Tool Gun
  • Only allow vehicle boost/"nitro" in forward direction and only if we are not recovering from previous boost
  • Added closecaptions and subtitles for all languages supported by Half-Life 2 games
  • Switch spawnicon editor skins/bodygroups to sliders from dropdowns
  • Updated language files
  • Translated drag'n'drop right click drag dropdown menu
  • You can no longer modify unmodifiable Spawnmenu tabs (NPCs, Weapons, etc), but you can still copy from them to your spawnlists as usual
  • Display a console warning during addon mounting when an addon contains a Lua file already mounted from another addon
  • "Missing map somemap.bsp, disconnecting" error now tells the player if their cl_downloadfilter is set to not download maps and how to fix it
  • Renamed Other tab back to Multiplayer in the Options menu
  • Added "Do not download Workshop addons" option to the download filter in Multiplayer Options menu
  • Spawnmenu resizes save between sessions
  • Added "Revert changes" button when editing spawnlists
  • Sprinting and clicking on spawnicons no longer selects them and allows the player to spawn things
  • Area selection while holding Shift key only adds to current selection, while holding Control will invert current selection (old behavior)
  • Holding control key (CTRL) now also toggles multi-selection in spawnmenu
  • Adjusted minimum sizes for spawnmenu areas to work better on extremely small resolutions
  • Increased brightness on some map icons (Half-Life Source) so you can actually see what's on them and added some missing icons for Left 4 Dead and Counter-Strike: Global Offensive maps
  • Moved certain community made maps from Counter-Strike games into their own category (aim, fy, awp, etc)
  • Renamed certain games in the mountable games list to more closely match their actual names on Steam
  • Do not complain about undefined water overlays in console
  • TTT: Updated Portuguese translation (Community Contribution)
  • Disabled overview_mode completely (Counter-Strike like radar), it was used to cheat, and is completely replaceable by Lua
  • Do not try to mount Workshop files we failed to rename when joining a server and mount the old file instead
  • Fonts are now properly extracted from Workshop addons when joining severs
  • Resolved some issues with stuck download prevention for server Workshop downloads
  • Subscribing to addons with missing Type tags while in-game no longer fails
  • Minor changes to Workshop subscriptions
  • Workshop server downloads: Also try to mount the old steamworks.Download files if they exist
  • Include Workshop file ID for the "There is no file to mount" console error message
  • Improved Offline Mode for workshop addons - now uses the cached subscribed list from Steam
  • Do not mount already mounted Workshop files when joining servers
  • Loading Screens are now passed game volume via GameDetails() (Community Contribution)
  • Added new CLIP tool textures with custom step sounds to mimic Counter-Strike: Global Offensive
  • Allowed usage of multiple unique clip brush textures in vbsp.exe to enable custom footsteps on them
  • Added -nocrc option to gmad.exe which will skip CRC calculations when creating addons to help with very big addons
  • Do not reset angles/position/speed when unparenting entities since it causes unexpected results
  • $decalfadeduration now works on world brushes & displacements (Jeep gauss gun hit marks now fade away like intended)
  • Changing RT no longer sometimes clamps viewport bounds to backbuffer bounds
  • Fixed a crash issue with prop_combine_ball when it's missing its physics object
  • Clientside crazy physics: Delete the entity AFTER simulating all of its physics objects to avoid crashing
  • Fixed an infinite loop with decal cleanup
  • Striders no longer leave entities they created behind slowly filling up server entity limit
  • buildcubemaps no longer crashes the game in main menu
  • Fixed RichText selection being offset from cursor with clickable text using a different font to the rest of the text
  • Fixed RichText clickable text becoming unclickable if the currently rendering text ranges start with a clickable text
  • RichText now uses clickable text font height for clickable text overlay panels
  • RichText's default color is now black, not fully transparent
  • Fixed RichText clickable panels never being clickable if the first character is a new line
  • Fixed RichText crashing when containing a lot of text without a newline and with the same color
  • Force lowercase map names on changelevel/map
  • Updated "DefaultUnderline" font to match "Default" font's weight so that RichText URLs and text look consistent
  • Made Menu Lua errors appear mostly like Client/Server errors appear (formatting)
  • Made ErrorNoHalt w/ trace and menu errors trigger the "Something is creating script errors" message
  • Minor changes to config_default.cfg - mp_decals & r_decals set to 2048 (from 5000), sensitivity set to 6 (from 8) and removed spawnmenu_icon_precache since it doesnt exist (Community Contribution)
  • WaterLevel() for non player entities will report WL_Eyes(3) if touching water, rather than WL_Feet(1) when fully submerged
  • Do not add models/*.sw.vtx files to the server download list automatically
  • Fixed Dedicated servers not being able to read unlisted collections
  • "Connection to Steam servers lost" message now also displays user friendly error messages
  • Fixed Lua autorefresh on Linux causing Lua errors with big files and SFTP
  • Added position printout to vrad.exe's "Zero area child patch" message
  • Added Toggle input for func_brush in base.fgd
  • gmad.exe will complain and bail if it fails to get file's size instead of writing 0 causing malformed addon files being created
  • Reduced amount of "Failed to grow buffer" errors with gmad.exe
  • Skip newline as first character when copying text from RichText
  • Added Entity.GetHitBoxHitGroup( hitbox, set )
  • Added Player.SetLastHitGroup( group )
  • Added NPC.GetCurWaypointPos()
  • Added NPC.GetNextWaypointPos()
  • Added Entity.LookupPoseParameter( name ) = id
  • Added 3rd argument to Player.SetFOV - requester entity
  • Added GM.PostEntityTakeDamage( ent, dmginfo, tookDamage )
  • Added Entity.GetLayerPlaybackRate (shared)
  • Added Panel.SetUnderlineFont( font ), sets the clickable text font for RichText panels
  • Added Panel.GetFG/BGColor()
  • Added Panel.GetSelectedTextRange() = start,end pos, works for both RichText and TextArea
  • Added Panel.Set/GetMaximumCharCount, both of which work on TextEntry and RichText
  • Added CLuaParticle.Set/GetMaterial
  • Added File.EndOfFile
  • Added Entity.RemoveInternalConstraint( num = -1 )
  • Added GM:OnEntityWaterLevelChanged( ent, old, new ) hook
  • Added BLENDFUNC_MIN and BLENDFUNC_MAX enums
  • Added GM:PlayerChangedTeam( ply, old, new ) - serverside
  • Added PhysObj.GetFrictionSnapshot()
  • steamworks.DownloadUGC's callback now has a second argument - a File object pointing to the .gma file
  • DisableClipping global now returns the previous state of Clipping
  • Added Player.SetSlowWalkSpeed( new speed )
  • Added Player.GetSlowWalkSpeed() = speed
  • Added Player.SetLadderClimbSpeed( new speed )
  • Added Player.GetLadderClimbSpeed() = speed
  • Fixed SendUserMessage erroring on client (Community Contribution)
  • Fixed HSVToColor and HSLToColor freezing the game with large Hue values
  • Fixed CNavArea.ConnectTo crashing the game when we could not compute a direction between the 2 nav areas
  • Fixed DListView's non sortable columns creating duplicate panels
  • Fixed Entity.TranslatePhysBoneToBone not working on ai_serverragdolls 1 ragdolls
  • Fixed DFrame causing issues with 3D2D
  • Fixed underline not working for custom fonts
  • steamworks.DownloadUGC doesn't fail with 2 or more files downloading concurrently
  • Vehicle.SetVehicleParams doesn't unexpectedly change maxSpeed, boostMaxSpeed and maxRevSpeed when not given new values for those fields
  • Entity.SetMaterial works on Brush entities (You can now also use LightmappedGeneric materials on brush entities with SetMaterial)
  • Disabling suit zoom (Player:SetCanZoom(false)) no longer prevents firing weapons when trying to use suit zoom
  • Allow using "Model" keyvalue from Spawnmenu on Zombie NPCs
  • Automatically remove FCVAR_ARCHIVE from replicated convars clientside
  • Made Entity.SetLayerPlaybackRate and Entity.Set/GetLayerWeight shared (currently only intended to be used on players as a trial)
  • Made Vehicle.GetDriver, Vehicle.GetPassenger, Vehicle.GetVehicleViewPosition shared
  • Added DevWarnings for trying to base surface.CreateFont fonts off of game/existing fonts
  • CTakeDamageInfo.__tostring now includes the damage value
  • Entity.StopSound now also sort of works with direct paths
  • Move certain S_RegisterSound messages to developer 1 (sound.Register)
  • Stack trace for "[ParticleEmitter:Add] Material Handle is invalid!"
  • Converted umsg.Start error messages into ErrorNoHalts
  • Not providing the first argument to umsg.Start won't create a new message and then just fail and do nothing with it
  • surface.DrawPoly with no arguments causes an expected Lua error, rather than printing a warning into console.
  • Minor optimizations to player.GetBy* functions (Community Contribution)
  • util.TypeToString now works nicer for angles (Community Contribution)
  • Better error handling for Entity.SetBonePosition, Entity.GetBonePosition, Entity.SetBoneMatrix, Entity.GetBoneMatrix

New in Garry's Mod (GMOD) 01.21.20 (Jan 22, 2020)

  • Added CSGO map icons from the new operation
  • Added Dupes section to main menu to allow deletion of dupes in-game
  • You can now subscribe to Demos, Saves and Dupes in the main menu
  • New "Publish Creation" UI that also allows updating of Dupes/Saves/Demos
  • Added -language launch option to override Source Engine language
  • Player Model Selector now has a filter/search bar
  • Reenabled monster_flyer sounds
  • Added Default preset value for gmod_suit in server settings
  • Fixed Sandbox control panel sliders with invalid convars making errors
  • Apply FCVAR_SERVER_CAN_EXECUTE to stopsound, not stopsounds
  • Changes towards fixing errors from opening the context panels too soon
  • The ladder mount sounds now match the footstep sounds for custom footstep sounds
  • Fixed deleting Saves not deleting the associated image file
  • Fixed server downloads trying to download compressed files from FastDL when we just got them from Workshop
  • Yet another ragdoll crash fix (trigger_remove)
  • Failed server downloads (0 byte files in download/ folder) will no longer prevent server downloads from working for that file
  • Fixed copying text from TextEntry with new lines cutting off copied text by the amount of new lines
  • Fixed Black Mesa Source's maps having missing props all over the place
  • -noworkshop launch option properly affects and is displayed in Dupe/Save/Demo sections of the main menu
  • Fixed func_tankrocket on Half-Life 1 maps firing stationary rockets that do no damage
  • Fixed a console warning when turning off func_tracktrain controls
  • Fixed being able to control any func_tracktrain (even uncontrollable ones) using Physgun
  • Limited Light tool brightness to 20 (from 255)
  • Reset runspeed every frame like we used to, even if we are sprinting/walking
  • Make the map name more noticeable in the missing map error when loading saves
  • Display a message when a save or demo fails to download from Workshop
  • Delete map.pack on game start to hopefully reduce cases of BSP embedded content not loading when the map is loaded from Steam Workshop (Missing textures fix)
  • Certain Steam related errors now display a user friendly error message rather than an error code that you have to google
  • Improved handling of hidden addons on Steam Workshop, so they are displayed as such in the addons menu
  • Certain gm_load errors are now displayed nicely to client instead of printing to console
  • Don't draw the Suit Power HUD at all with gmod_suit 0
  • Translate "Character" shader into "VertexLitGeneric" (Support for new CSGO models)
  • Translate "SolidEnergy" shader into "UnlitGeneric" (Black Mesa Source Xen support)
  • Updated language files
  • Limited chat history to 64k characters to avoid lag/freezes with long chat logs
  • Translated more parts of the game, such as: Spawnicon Editor (partial), Player Model Selector, script error UI, spawnicon and spawnlist right click menus, workshop mounting and fetching subscriptions messages
  • Source Engine language system is no longer forced to English and uses Steam's UI language.
  • Subscribe/Install buttons in main menu are now hidden with -noworkshop active
  • TTT: Fixed infinite traitor selection loop in case of bad console variable value
  • TTT: Added sphere option to .fgd to display radius of ttt_traitor_button in Hammer (Community Contribution)
  • TTT: Removed unused exploitable console command "wepswitch"
  • -allowlocalhttp launch option for servers
  • Extra messages when failing to write map.pack to disk and more verbose warnings when failing to create fonts
  • Non halting Lua errors no longer crash the game in menu state
  • Fixed first font ranges (starting with 0) never working for Lua created fonts
  • Fixed gmad.exe not being able to create files over 500MB
  • Further improved performance with clientside DTVar callbacks
  • Disable "EmitSound: Whatever out of bounds" and just clamp the values instead of not playing the sound
  • Try to reduce amount of "failed to create font" warnings from badly made addons
  • Switched Steam Workshop support completely to ISteamUGC
  • Get rid of menu_reload altogether, since it was disabled ages ago
  • Added Entity.GetBrushSurfaces for simple brushes
  • DListView.GetSelectedLine now also returns the actual line panel, not just an index
  • Added steamworks.DownloadUGC( workshopID, fCallback ) - replaces steamworks.Download for game.MountGMA needs (also is also used for dupes/saves/demos)
  • Added cam.GetModelMatrix
  • Added second argument (optional, defaults to false) to cam.PushModelMatrix which multiplies given matrix with the currently active matrix
  • Added Entity.GetNWVarTable()
  • util.TableToJSON now properly writes boolean keys
  • Bootil's JSON functions support writing NaNs and Infinity (as nulls), as well as reading nulls (as empty strings) which all now also applies to GMod's JSON functions
  • Entity arguments now properly error on type mismatch
  • Change DImageButton default preview image to be different from DImage
  • Get rid of steamworks.VoteInfo usage in base game and make it alias of steamworks.FileInfo
  • steamworks.FileInfo now returns the vote info as well (same key names as VoteInfo)
  • Increased Entity.GetMaterials limit to 256 (from 127) for certain maps have a lot of materials and 128 is not enough
  • Added "visibility" key to steamworks.FileInfo, and replaced title and description with "Hidden addon" if they are empty
  • Added stack trace to the rest of non-halting errors produced by Lua functions
  • Upgraded steamworks.Publish to support ISteamUGC and Workshop item updating
  • Apply special TextEntry hack for Panel.GetValue from Panel.GetText to get rid of the 8k char limit
  • steamworks.FileInfo's "children" key uses numbers as keys, not strings

New in Garry's Mod (GMOD) 11.12.19 (Nov 13, 2019)

  • Added Left 4 Dead 2 & other missing map icons
  • Added ability to remove favorite servers from the Favorites list
  • Restored HEV Suit oxygen, sprint and flashlight systems from Half-Life 2 (Disabled by default via gmod_suit console variable)
  • You can now ignite "simple_physics_prop" entity via Ignite property
  • The initial addon mounting in main menu now displays a message that we are doing something
  • Spawnmenu will automatically open UI of currently selected toolmode on when joining a server or starting a new game
  • Added cl_enable_loadingurl, which allows players to disable custom loading screens in the Options menu (#1265) (Community Contribution)
  • Readded point_flesh_effect_target entity, fixing the Half-Life 2 Episode 2 flesh effect on Alyx in "This Vortal Coil" chapter
  • Spawnicon editor loads bodygroups from picked models
  • Fixed Lua errors with certain symbol inputs in Sandbox search fields
  • Fixed some weapons (RPG, AR2, HL1 357, Glock, Shotgun) spamming sounds underwater while holding Right Mouse Button
  • Fixed brush ladders and Physics Gun's +use allowing you to fly into air indefinitely
  • Restored func_traintrain's control HUD (Can be disabled by gamemodes via HUDShouldDraw)
  • Fixed some CS:GO maps having terrible looking water and black skyboxes
  • Fixed static props and func_lod's having broken fade distances on CS:GO and Left 4 Dead 1 maps
  • Fixed an issue which caused weapons to go invisible under very specific circumstances
  • Fixed certain decals not receiving shadows from projected textures (lamp tool, flashlights)
  • Player's health and armor are no longer reset on level transition
  • Fixed sun glow sprite disappearing when looking at it
  • Fixed undoing specific history element breaking Undo logic for newly spawned entities
  • Fixed duplicator tool save icons not showing skins and bodygroups
  • Fixed Lamp and Light Tool's glow as well as other mod functionality (util.PixelVisible) not drawing when viewed through a reflective/refractive glass (such as the mirror on gm_construct)
  • Fixed CS:S shells not playing sounds
  • Fixed script_intro entity not working properly in multiplayer after playing for a while
  • Fixed weapon's primary and secondary clips only networking first 8 bits, "limiting" the value in multiplayer to 255
  • Changed default binding for Alt from "Last Weapon" to "Slow walk" (#1559) (Community Contribution)
  • Restored non HDR depth buffer range to 192 from 8192, which fixes particle systems looking weird, clipping through ground
  • Adjusted contrast on disabled checkboxes and combo boxes
  • Updated Ammo HUD to allow secondary ammo to fit at least 3 digits as opposed to the original 1.5
  • Garry's Mod no longer automatically unsubscribes from banned Steam Workshop addons
  • The game now automatically enables the Workshop addon the player unsubscribed from or subscribed to, to reduce cases of addons not working after installing them
  • Improvements to NPCs using the Half-Life 2 crossbow
  • Floating .gma addons do not show rate and install buttons and cannot be disabled
  • Changes to allow larger maps to not crash with "Engine Hunk Overflow" error
  • Fixed non English player nicknames being cutoff
  • Increased map displacement limit to 16384, from 5500, allowing certain CS:GO maps to be loaded
  • Disabled hull trace surface property (Shotguns applying wrong decals on glass) fix as it caused crashes in certain cases
  • Added support for dynamic Render To Texture shadow angles
  • Added support for _castentityshadow in Hammer
  • Added SetShadowsFromLocalLightsEnabled and enableshadowsfromlocallights for shadowcontrol entity
  • Added $treesway support for UnlitGeneric shader
  • You can now drag'n'drop .vmf files onto Hammer to open them
  • Clientside only physics scrape sounds (for example from prop gibs) play properly at the entity location, not at world origin
  • Fixed CTransitionTable::OverrideBlendSeparateAlpha and mat_fillrate
  • debug_dump now handles FCVAR_NEVER_AS_STRING convars properly
  • EFL_NO_DAMAGE_FORCES flag now also works on players
  • Taunt cam hides quick info HUD as expected
  • env_explosion's sparks now work as intended
  • Fixed reflections on brushes in Hammer having the checkerboard pattern
  • Fixed a few crashes with NULL physics objects in multi-physics object entities
  • Some minor code cleanups (Pull Requests #1606 #1603 #1602 #1504) (Community Contribution)
  • Console variables will try to be set to "3" instead of "3.000000"
  • Changed the toolgun RenderTarget to use render.Push/PopRenderTarget() to show the proper way of doing Render To Texture
  • The game no longer tries to delete Steam Workshop files outside of Garry's Mod's directory (ISteamUGC item files)
  • Moved Server Workshop Addons to the ISteamUGC system
  • Dedicated servers now actually mount ISteamUGC addons
  • Got rid of the "Can't init {classname}" console message as it is a duplicate warning of "Attempted to create an unknown entity {classname}"
  • Cleaned up unused argument of Player.PhysgunUnfreeze() (#1604) (Community Contribution)
  • Default SWEP:ShootBullet now has 3 optional arguments - ammo_type, force, tracer (#1502) (Community Contribution)
  • Added ITexture.IsErrorTexture
  • Added support for DTVars change callbacks on client
  • Added LuaLocomotion:Set/GetGravity()
  • Added COLOR.Unpack COLOR.SetUnpacked and COLOR.ToTable (#996) (Community Contribution)
  • Added Vector.Unpack, Vector.SetUnpacked and Vector.ToTable
  • Added Angle.Unpack, Angle.SetUnpacked and Angle.ToTable
  • Added VMatrix.Unpack and VMatrix.SetUnpacked
  • Added Entity.Get/SetLightingOriginEntity
  • Added VMatrix.Zero and IsZero
  • Added HSL color functions - HSLToColor, ColorToHSL and COLOR:ToHSL()
  • All DProperties default data type rows, DNumberScratch, DNumSlider and DSlider now support Set/IsEnabled
  • Added optional min and max arguments to Create(Client)ConVar
  • Added ConVar.GetFlags, IsFlagSet, GetMin and GetMax
  • Added Convar.Revert, works only on Lua created ConVars
  • Added Player.GetPreviousWeapon()
  • Added 'ignorez' to Material() function
  • Added sql.IndexExists() (#1105) (Community Contribution)
  • Added Entity.UpdateShadow()
  • Added ENT_ANIM.GetShadowCastDirection() hook
  • Added Player.Set/GetSuitPower
  • DListView_Column.SetFixedWidth with negative values no longer freezes the game
  • Fixed Entity.MapCreatedID() and Entity.CreatedByMap() being set a bit too late for GM:EntityKeyValue
  • Some Derma functions no longer pollute global table (#1598) (Community Contribution)
  • Weapon inheritance doesn't error when baseclass weapon has non table values (#1586) (Community Contribution)
  • Fixed Player.Give's second argument soft-breaking non clip using weapons such as built in frag grenades
  • Fixed Entity.Activate on a SetModelScaled ragdolls causing a crash (It still won't scale ragdolls)
  • Entity.PhysicsDestroy on ragdolls no longer crashes the game
  • Fixed ConVars with FCVAR_NEVER_AS_STRING not firing ConVar change callbacks
  • Fixed SWEP.TranslateFOV not opening area portals
  • Player.GetFOV now returns a float on server to match clientside behavior
  • Managed Lua ConVars save properly with FCVAR_NEVER_AS_STRING flag
  • Moved GM:PlayerShouldTakeDamage definition to init.lua from shared.lua (#1600) (Community Contribution)
  • GM:GravGunPunt is no longer called for NULL entities on client
  • DTooltip will now remove its contents (if appropriate) when its target panel is removed
  • Entity.SetPreventTransmit can now override transmit state of TRANSMIT_ALWAYS
  • Updated Stack (Lua object) implementation (#1566) (Community Contribution)
  • SWEP.TranslateFOV is now shared
  • string.NiceSize calculates MBs not MiBs, etc like the suffix suggests (#1615) (Community Contribution)
  • Second argument of Player.SetFOV is now optional
  • Tightened IsEntityPositionReasonable bounds to avoid crashes
  • Prevented usage of PhysicsInit* and PhysicsDestroy functions on the world entity and ragdolls to avoid crashes
  • TTT: Stop bleeding on respawn (#1611) (Community Contribution)
  • TTT: Optimized type checks (#1596) (Community Contribution)
  • TTT: Micro Optimized loops (#1610) (Community Contribution)

New in Garry's Mod (GMOD) 09.03.19 (Sep 5, 2019)

  • Having Half-Life 1: Deathmatch mounted now also adds the Half-Life 1 weapons, entities and NPCs into the spawnmenu
  • Add a message to Addons menu if -noworkshop is active
  • Added search bar for gamemode list in "Find Multiplayer" menu
  • Added gmod_maxammo, defaulted to 9999, affects max carried ammo of players, values below 1 mean use the ammo type's maximum
  • Half-Life 2 jeep gets its gun on Half-Life 2 maps automatically
  • Most local user content (dupes/saves/demos/spawnlsits/toolgun presets) now saves to Steam Cloud automatically
  • Mounting Left 4 Dead 1 will also mount its "The Sacrifice" DLC
  • Added missing Left 4 Dead 1 and CS:GO map icons
  • Added Enabled/Disabled Only filters to Subscriptions in Addons menu
  • Middle mouse click reset feature on sliders works for all default tools in Spawnmenu
  • Half-Life 2 NPCs can use Half-Life 1 .357 Handgun and Shotgun
  • Flechette Gun can be picked up and used by NPCs
  • Fixed Half-Life 1 ammo pickups giving wrong ammo types
  • Fixed some models flickering on Left 4 Dead/CS:GO Maps as well as other visual fixes
  • Fixed Half-Life 1 Osprey and Apache bleeding in multiplayer
  • Fixed some CS:GO maps having weird water around in them (Fixed grenadeclip brushes acting as water)
  • Half-Life 2 shotgun with no ammo no longer tries to force switch away
  • Fixed Half-Life 2 grenade sprite to match its appearance in Half-Life 2
  • Fixed missing textures on Half-Life 1: Deathmatch maps with only Half-Life 1: Deathmatch installed
  • Picking up ammo no longer forces you to switch away from your current weapon
  • Fixed Half-Life 1 Glock spamming sounds with no ammo
  • Weapon selection properly ignores invalid weapon slot commands and doesn't play sounds (slot0, slot7-10 commands)
  • func_breakable_surf break sounds are no longer played at the 0,0,0 position
  • func_breakable_surf and other entity impact sounds are no longer played at 0,0,0 position
  • Restored npc_dog footsteps
  • Fixed Half-Life 2 Ceiling Turret's shooting sounds and muzzle flash effect
  • Fixed visual effects for Stunstick, RPG, Crossbow and Gravity Gun
  • Fixed sounds for RPG, Crossbow and Gravity Gun in multiplayer
  • Fixed Gravity Gun launching jeeps and airboats too hard
  • Fixed Gravity Gun punting not clamping its force (potentially throwing other objects too far)
  • Fixed Rollermine NPC on fire constantly jumping and not doing much else
  • Fixed killing yourself with the Jeep's Gauss Gun making the vehicle bugged, unenterable and sometimes driving forward endlessly
  • Fixed saving a dupe not automatically updating the local dupe list
  • NPCs no longer crash the game when using Half-Life 2 Crossbow
  • Fixed clientside Half-Life 1 gibs not despawning
  • Fixed some Half-Life 1 NPCs spawning Half-Life 2 gibs
  • Fixed NPC support for manhack_welder
  • Fixed NPCs not following the player in multiplayer on some Half-Life 2 campaign maps on which they do in singleplayer
  • Fixed first person spectator weapon effects for Gravity Gun, Physics Gun, Stunstick as well as Bullet tracers
  • Fixed Suit Chargers being unintentionally forced to 30 energy instead of 75
  • Fixed player's speed not being forced by player_speedmod in singleplayer when it should be, for example in the Half-Life 2 teleporter sequence
  • Fixed dying in a trigger_playermovement causing crouching key stuck until retouching the trigger or rejoining the server
  • Fixed Half-Life map transitions/changes resetting player weapons and position unintentionally in Sandbox and Base gamemodes
  • Fixed weapon_fists breaking props in multiplayer not spawning gibs on client (Community Contribution)
  • Restored hud_quickinfo console variable, disabled by default, doesn't save (May require a game restart to disable itself initially)
  • Fixed non-admin players being able to run vehicle_flushscript
  • Fixed Combine Balls not seeking NPCs like they do Players
  • Fixed RPG reload animations playing too soon after shooting a rocket
  • Fixed Nextbot shadows looking bad when they are 400 units or more away from the player
  • Fixed some (server/addon) sounds ceasing to work when switching audio devices
  • Fixed shotgun bullet holes having wrong decals on certain surfaces such as the mirror on gm_construct
  • Fixed SHIFT+F2 not working in main menu after exiting a server
  • Fixed cursor staying on screen indefinitely when releasing context menu button while holding a mouse button
  • Fixed Bodygroups tab in Player Model Selector being invisible in certain cases
  • Fixed potential errors with Spawnicon Editor
  • Ragdolls on client will set proper surface property for traces (Bullet holes have correct textures)
  • Gamemode list tries to display prettier/correct-er names (i.e. prefers "Sandbox" over "sandbox")
  • Made the server list usable on 800x600 and below
  • Search boxes in server browser got a border so they are visible on white backgrounds, and are a bit wider
  • Updated TTT to its latest version
  • Trying to load a save with missing map will now display a more explicit/nicer error message
  • NPCs wielding Half-Life 2 Crossbow use Shotgun animations instead and are more accurate with it
  • Disallowed Half-Life 2 NPCs from picking up SLAM, Frag grenade, Bugbait, Physics and Gravity Guns and Half-Life 1 throwables (Satchel, Hand grenade, Tripmine, Snark) since they can't use those weapons
  • The game no longer saves selected gamemode across sessions
  • Centered text vertically in Sandbox's pickup history
  • Disabled certain duplicate Half-Life 2 pickup history elements still displaying (health/armor kits)
  • Added a warning for when env_sprite is given a non sprite material (an unlitgeneric), which apparently can cause crashes
  • Added support for 16384 = SF_BUTTON_NOTSOLID spawnflag to func_button from CS:GO
  • Added beam_spotlight.SetColor input
  • Added SetDamage input to Half-Life 2's crossbow_bolt
  • Replace corrected materials with in-code solution for bumpmapped decals and Half-Life 1 chrome effects
  • Improved support and stability for 128+ bone models
  • Some minor changes to menu_cleanupgmas to maybe help debug an issue where it "doesn't work sometimes"
  • Updated studiomdl.exe to be closer to the TF2 counterpart - Now tries to preserve sequence order (and names?) when recompiling, more console output when model file exceeds buffer sizes
  • g_debug_ragdoll_visualize no longer crashes with ClientsideModel present
  • Monster Osprey doesn't create its looping sound after being deleted creating a console error
  • Gravity Gun no longer updates its effects and poseparameters when not held, affecting other weapons
  • Fixed mountdepots.txt not using the values at all to decide if a game should be mounted
  • Fixed env_fade problem from source-sdk-2013/issues/479 (Community Contribution)
  • Fixed cc_random crashing the game with closecaptions disabled
  • Fixed SWEPs firing network change callbacks too often/when nothing has changed
  • Removed unused variable from gmod_cameraprop.lua (Community Contribution)

New in Garry's Mod (GMOD) 08.28.19 (Sep 5, 2019)

  • Added Entity.GetBoneContents
  • Added Entity.GetBoneSurfaceProp
  • Added Entity.IsNextBot
  • Added NPC.DropWeapon
  • Added game.GetAmmoTypes
  • Added game.GetAmmoData
  • Added NEXTBOT:OnTraceAttack
  • Added ENT_AI.IsJumpLegal hook
  • Added SWEP.GetNPCRestTimes
  • Added SWEP.GetNPCBurstSettings
  • Added SWEP.GetNPCBulletSpread
  • Added SWEP:CanBePickedUpByNPCs hook, which allows Citizen NPCs to pick up SWEPs from the ground
  • Added "Contents" field to TraceResult
  • Added ModelKeyValues field to util.GetModelInfo
  • base_nextbot automatically calls GM:ScaleNPCDamage
  • Allowed writing of .json files to data/ folder using file.Write
  • Added "anims" field to Entity.GetSequenceInfo, contains all AnimationIDs associated with given SequenceID
  • Added RT_SIZE_REPLAY_SCREENSHOT, RT_SIZE_LITERAL, RT_SIZE_LITERAL_PICMIP
  • Added new optional arguments to Player.DropNamedWeapon and Player.DropWeapon
  • Player.DropWeapon's first argument is now optional
  • Added the missing ACT_HL2MP_SIT_KNIFE/MELEE2 Lua enums
  • Player.SelectWeapon() can now accept Weapon entities directly
  • Added a second argument to GM:PlayerSelectSpawn, GM:PlayerSpawn and GM:PlayerInitialSpawn - transition
  • language.Add can now override strings it previously set
  • Fixed crash issues with Entity.SetCycle, Entity.SetPlaybackRate and Entity.SetPoseParameter
  • Entity.TranslatePhysBoneToBone now works on entities from ClientsideRagdoll
  • Fixed Player.Say not working sometimes
  • ClientsideModels initialize their world transform matrix on creation just like entities do
  • Fixed a crash issue with Entity.SetMaterial()
  • Fixed crashing issues with Entity.GetSequenceInfo and Entity.GetAnimInfo with out of bounds IDs (returns nil instead)
  • Fixed using any NWVar functions on game.GetWorld() resetting its NWVars/GlobalNWVars
  • Fixed NPCs firing SWEPs twice a frame
  • Fixed Player.GetTable() resetting on player disconnect and before GM:EntityRemoved is ran on the player
  • Fixed Entity.SetBloodColor() not working properly with zombie and antlion blood types
  • render.Draw(Wireframe)Sphere will fallback to 24 longitude/latitude steps if we are about to crash
  • Replaced a bunch of internal ErrorNoHalt calls in Lua bindings to also include stack trace
  • Net message warnings now contain the net message name they belong to
  • Improved the "Warning: Tried to set missing key on Dynamic Light object" message to include stacktrace and proper newlines
  • Filled NPC animation translations for weapon_base
  • GetInternalVariable, GetSaveTable and SetSaveValue now can read and write clientside prediction table
  • GetSaveTable() now has an optional parameter to return all internal variables, not just the ones used for save system
  • Player.GetWeapons() ensures the output table is sequential
  • More errors into console when steamworks.Publish fails

New in Garry's Mod (GMOD) 07.02.19 (Jul 3, 2019)

  • Added Half-Life 1 weapons and ammo entities to the spawn menu
  • Half-Life 2 NPCs can now use Half-Life 1 Glock and the Half-Life 2 .357 Magnum
  • Given all Half-Life 1 weapons 3rd person player animations
  • Given all Half-Life 1 weapons proper world/3rd person models
  • Players can now run over friendly NPCs with vehicles
  • Prop gibs now inherit the color of the broken entity
  • Added icons for NPC only weapons and for some missing Half-Life 1 NPCs
  • Static props get their proper color if the map supplies the information
  • Rotating prop doors are now breakable if the model supports the feature and map designer has the feature enabled (Retroactively works on existing maps, such as L4D and CS:GO maps)
  • Fixed a crash issue with weapon_striderbuster
  • Updated BASS.DLL to an unreleased version for potential crash fixes
  • Fixed progression stopper at c3a2d.bsp from Half-Life: Source
  • Half-Life 2 Barnacle no longer crashes the game with invalid physics objects
  • Fixed Half-Life 1 weapon shell eject effect, sounds, effects and NPC muzzle flashes
  • Fixed missing S.L.A.M sound
  • Tickrate is now reset on client when disconnecting from a server
  • Fixed prop_vehicle_crane's interference with vehicle 3rd person camera and properties system
  • Sandbox Desktop Widgets feature (Context menu icons like Player Model Selector) no longer prevents properties system from being able to target entities, and will automatically stretch to fit its contents with too many icons
  • Fixed Citizens being unable to guide RPG rockets into Gunships
  • Fixed SMG1 and AR2 fired by NPCs cutting off previous firing sounds
  • Fixed SMG1 alt-fire grenade smoke effect always pointing up
  • Fixed some addon props missing from spawn menu search
  • Entering a full model path (models/whatever.mdl) will properly find the model in the Spawnmenu search
  • The game no longer tries to play missing/non-existent .mp3/.ogg files
  • Fixed "BAD STATIC LUMP V101" error message on some CS:GO maps
  • Trails tool clamps its values in the Duplicator function, not in the tool to fix an exploit
  • Trails tool will no longer create invisible trails (0 start and end sizes)
  • Players can now exit the noclip drive mode (exit driving Lamps in Sandbox) by pressing E
  • Performing an undo from the Undo section of the Spawnmenu properly removes the selected entry
  • Fixed a crash issue caused by Lua errors in Addons Menu (Main Menu) under very specific circumstances
  • Fixed Server Settings not always applying ("not saving") when starting a new server from the Main Menu
  • NPCs will be less likely to fall through ground when spawned on a slope (Community Contribution)
  • Fixed Half-Life 1 Gargantua making sounds when removed (including when changing NPC relationships)
  • Fixed Half-Life 1 snark and turrets as well as Half-Life 2 ceiling turret not respecting relationship changes while attacking
  • Fixed Half-Life 1 Nihilanth's and Bullsquid's projectile attacks not being credited to the NPC
  • Fixed Half-Life 1 Nihilanth not attacking when spawned through the Spawnmenu
  • Fixed Half-Life 1 Barnacle, Leech, Cockroach and Half-Life 2 Barnacle not showing up in kill feed when killed
  • Fixed Manhacks and Scanners killed by physics objects (props, AR2 alt-fire) not being credited to the player
  • Restored Combine Soldier pain sounds
  • Added missing Lost Coast scenes so players can now complete the map
  • Fixed Citizens and Alyx not being able to pickup any weapons
  • Restored impulse 50 console command (tell Citizens in player squad to move to where the player is looking)
  • You can switch to Satchel Charge even if it has no ammo left
  • Fixed certain NPC deaths such as Striders to not working as expected
  • Fixed the weapon constraint not breaking when it should if the weapon has SF_WEAPON_START_CONSTRAINED spawnflag set causing weapons to float when their carriers are killed
  • Names of default weapons in spawnmenu are no longer all uppercase
  • Adjusted 3rd person seating positions for Jalopy and Crane models
  • hud_draw_fixed_reticle is no longer saved across sessions
  • Elite Combine soldiers will no longer try to fire their Energy Balls (and make the noise/stop shooting) if their currently equipped weapon does not have an alt fire (i.e. is not AR2)
  • Elite Combine soldiers can now use their Energy Balls against any NPC or player, not just player allies
  • Increased Undo limit in Spawnmenu's Undo section from 32 to 100
  • Changed spawnpoint entity for Left 4 Dead maps from info_survivor_position to info_survivor_rescue
  • Updated many spawnmenu NPC icons to be brighter
  • Updated language files
  • Half-Life 2 Grenade is stripped with no ammo as expected, on holster or after throw
  • Disabled SHIFT+F2 opening "demoui" in multiplayer
  • Added point_spotlight features from Alien Swarm - SetColor and ForceUpdate inputs
  • Added beam_spotlight entity from newer Source Engine games
  • Added info_target features from Alien Swarm - "Spawnflag 2 - always transmit"
  • Added spawnflag 1 to lua_run entity - Run code on Spawn (Community Contribution)
  • Added 262144 spawnflag to Nihilanth to automatically enable his attacks (Used by the spawnmenu)
  • prop_dynamic additions from newer Source Engine games - new HoldAnimation & AnimateEveryFrame keyvalues, new SetAnimationNoReset, BecomeRagdoll and FadeAndKill inputs
  • prop_door_rotating will automatically block nav areas when its locked
  • prop_door_rotating new input: MoveToRotationDistance, new output: OnRotationDone, new spawnflag: 524288 - Start breakable (unset by default)
  • Fixed bspzip.exe not working properly
  • dumpgamestringtable no longer crashes the game
  • Fixed muzzleflashes sometimes not displaying at all when they should
  • Restored MAX_DOWNLOADABLE_FILES to 8192 from 4096
  • DListBoxItem now properly checks its IsSelected() state for drawing selected state rather than relying on DListBox not having mutliple selections and testing whether the selected item has the same text as its own text
  • Fixed console errors related to saving of weapon_gauss
  • The game will no longer crash if it doesn't have a matrix to render a model with
  • RCON no longer accepts clients and reads from them when there is no RCON password set on the server
  • RCON will drop connections that try to send too much data
  • Added safeguards for Player.GetVehicle not returning a vehicle in properties system (Community Contribution)
  • Minor optimizations by replacing table.Count comparisons in TTT and Duplicator icon generation (Community Contribution)
  • Restore active gamemode when disconnecting from a server more thoroughly
  • Replaced usage of type( var ) == "type" with is( var ) (Community Contribution)
  • Do not empty Lua cache on disconnect, it causes problems with retry command in local multiplayer
  • The Undo system will no longer add empty Undos onto its list
  • SetHealth input on NPCs will pass the activator as attacker to try to improve kill feed messages
  • Added Entity.GetParentWorldTransformMatrix
  • Added Panel:IsWorldClicker
  • Added Player.GetAmmo
  • Added CLuaLocomotion.GetNextBot
  • Added PathFollower.GetGoalTolerance
  • Added PathFollower.GetMinLookAheadDistance
  • Added CNavArea.AddHidingSpot
  • Added list.HasEntry (Community Contribution)
  • Added SF_LUA_RUN_ON_SPAWN global for addons (lua_run entity)
  • Added util.GetModelMeshes( strModel, lod = 0, bodygroupMask = 0 ) (Community Contribution)
  • net.BytesLeft and net.BytesWritten now return 2 values - second being the bit value
  • Added ability to disable the tooltip via argument to SetColor for DColorButton panel (Community Contribution)
  • DynamicLight now as a second parameter to allocate ELights when set to true - Used for Sandbox Light tool
  • CNavArea.GetHidingSpots how has an optional 1st argument - flags
  • Entity.GibBreakClient now has an optional second argument, to override the gib color
  • VectorRand and AngleRand now have optional min and max arguments (Community Contribution)
  • Added GM:OnPhysgunPickup hook, called after PhysgunPickup after a successful pickup has happened, to mimic GravGunPickupAllowed and GravGunOnPickedUp
  • Giving Matrix() another matrix will now copy its values, instead of erroring
  • Fixed ai.GetTaskID returning values on wrong scale
  • Changes to Vehicle.CheckExitPoint to make it functional
  • DHorizontalScroller no longer errors when its children are missing the ApplySchemeSettings hook definition
  • Fixed a crash issue when steamworks.FileInfo does not successfully complete
  • Spawnmenu and Contextmenu hook fixes (Community Contribution)
  • Restored SetNWVarProxy to working condition (both clientside and serverside, moved previous SetNWVarProxy stuff to SetNW2VarProxy, etc.)
  • Entity.Remove will no longer crash trying to make crazy physics objects non solid
  • Entity.RemoveAllDecals works on brush entities too now (Community Contribution)
  • Corrected BASS.DLL error code names (sound.PlayURL/File)
  • prop_vehicle_crane is now considered a vehicle by Lua
  • ENT:HandleAnimEvent now works for "ai" NPCs too
  • Fixed ENT:Use not working for "ai" SENTs
  • surface.CreateFont()'s maximum size is now 255 (from 128)
  • Limited blursize of surface.CreateFont to 0-80 (inclusive) to avoid crashes
  • Enabled BASS_CONFIG_NET_PREBUF_WAIT to improve sound.PlayURL reliability
  • Fixed file searches (file.Find included) ignoring addons sometimes
  • util.JSONToTable now ignores the UTF-8 Byte Order Mark (BOM)
  • The 1st argument of CNavArea.IsBlocked is now optional
  • table.ToString handles colors better (Community Contribution)
  • math.Clamp nano optimization (Community Contribution)
  • RunString will display a better stack trace on error
  • Moved where DTextEntry.AllowInput is called from so it also catches pasted text
  • Blocked running "gamemenucommand quitnoconfirm" from non-menu state
  • Better physenv.AddSurfaceData, util.KeyValuesToTable and util.KeyValuesToTablePreserveOrder errors in console on failure
  • Beam functions in the render library were rewritten to be less insane
  • SendLua/BroadcastLua/lua_run_cl will print its code to console on Lua error to help track down the problem source if the developer ConVar is set to non 0

New in Garry's Mod (GMOD) 04.30.19 (May 23, 2019)

  • Added icons to Spawnlist right click menus
  • Added Hints for spawnmenu editing features
  • Added No Collide option to Weld tool (Community Contribution)
  • Added Toggle option to Hydraulic tool
  • DPropertySheet tabs can now be right clicked to quickly switch between tabs when they overflow DPropertySheet's width
  • Added Legal tab to Options menu
  • Fixed Half-Life 2 barnacle putting players into an invalid state if they are being eaten and the barnacle gets removed
  • Fixed Flechette Gun console spam and multiplayer effects
  • Left 4 Dead 1 map geometry no longer flickers (Unsupported $detailblendmode modes fallback to 0)
  • Fixed cables on Left 4 Dead 1 maps ( and probably post L4D1 maps too ) being invisible. SplineRope shader fallbacks to Cable shader
  • Half-Life 1 NPCs no longer can talk to acting NPCs, putting them into invalid state
  • Fixed particles with material proxies crashing the game
  • func_breakable will drop *_hl1 versions of the Half-Life 1 weapons
  • Fixed a small issue with Hydraulic tool which required players to press the button twice after initial spawn
  • Unknown Windows languages no longer crash the game when right clicking text areas
  • npc_metropoilce will acknowledge existence of multiple players in multiplayer
  • Certain player weapons (hl1, bugbait, etc) are no longer removed on map cleanup
  • Automatically enable and disable hl2_episodic on map load depending on map prefix, to improve/fix gameplay on maps from Half-Life 2 Episodes
  • Updated TTT (Community Contribution)
  • Updated AI nodegraphs for gm_construct and gm_flatgrass
  • Minor changes to Spawnicon Editor - Added tab icons and sligltly improved performance
  • Updated language files (Community Contribution)
  • Added support for $treeswaystatic
  • Middle Mouse Click on Hammer 3D view now acts as mouse look
  • Added SetWindDir( int ) input to env_wind
  • Fixed func_detail smoothing groups not working (Community Contribution)
  • Fixed OnFlashlightOn/Off not working for logic_playerproxy
  • Removing physics object of a Jeep or Airboat will no longer crash the game server, but you still shouldn't do it
  • Prisoner Pods/Chairs and Airboats update water level of their drivers just like Jeeps do
  • Fixed Hammer crashing when trying to load over 1024 models at the same time and other stability improvements
  • Fixed a server crash issue when an entity has "angle" key value (opposed to "angles")
  • Fixed a server crash issue when Player.SendLua has created a Lua error
  • Fixed "starts locked" spawnflag not working on spawn for func_rot_button
  • Clientside Lua errors will no longer be sent to servers from previous client connection
  • Fixed crash exploit when overriding material with certain naughty materials
  • CBaseVPhysicsTrigger-based triggers set their solidity when their physics are created depending on whether they are enabled or not
  • Some minor fixes to triggers from newer Source Engine (Don't try to hurn disconnected players, trigger push lagcomp change, dead players can no longer touch triggers)
  • Switched Lag Compensation back to local coordinates from absolute ones to fix vehicle seat position shifting
  • Better multiplayer support for env_zoom and point_viewcontrol
  • env_screenoverlay will now disable its overlay if it was enabled when it is removed
  • Updated BASS.DLL to 2.4.14-mp3free
  • Some (Inputs/Outputs/targetnames) Hammer Drop Downs will size themselves to fit up to 15 elements at the same time instead of the old random 5 to 9
  • Adjusted colors of Source Engine checkboxes for better contrast
  • VRAD and VBSP no longer check for model versions (but still display warnings)
  • Use table.IsEmpty instead of table.Count where possible (Community Contribution)
  • Updated VRAD to the latest TF2 version we have (Feb 2016)
  • gmad.exe now auto ignores thumbs.db and desktop.ini
  • lua_error_url is reset when player starts a local multiplayer game and will receive the proper GMod version
  • Reset active gamemode on client after exiting a server to prevent crashing when starting a new game
  • Forced net_maxroutable to its default value on level init to hopefully fix getting stuck on the loading screen
  • Added SURF_SKY2D
  • Added DISPSURF_ enums
  • Added SurfaceFlags and DispFlags to TraceResult
  • Added net.BytesLeft
  • Added ImageCheckBox.Set/GetChecked
  • Added Entity.GetModelContents() = int
  • Added table.IsEmpty (Community Contribution)
  • Nextbot.BecomeRagdoll returns the ragdoll it created, if one was created
  • Added Panel.GetTooltip() and Panel.GetTooltipPanel() (Community Contribution)
  • Added MarkupObject to the registry (Community Contribution)
  • Player.Set/RemovePData() now return whether they were successful or not (Community Contribution)
  • Added PathFollower.PriorSegment
  • Added PathFollower.NextSegment
  • Added DNumberWang.Get/SetInterval (Community Contribution)
  • Added ENT.MaxWorldTipDistance and improved implementation of ENT:BeingLookedAtByLocalPlayer (Community Contribution)
  • Added DHorizontalScroller.GetCanvas
  • Added DHorizontalScroller.ScrollToChild
  • Added DHorizontalScroller.SetScroll
  • Added support for ENT:DoImpactEffect for "anim" entities
  • Added ents.CreateClientside
  • Added Entity.GetEntityInUse
  • Entity.GetBrushPlane no longer returns garbage for non brush models
  • error() no longer crashes with certain inputs and no longer cuts off text weirdly before and after symbol "]"
  • SWEP.DrawAmmo now disables correct HUD elements
  • DCategoryList.SetBackgroundColor now has an effect
  • Switched steamworks.FileInfo to ISteamUGC and added "children" and "error" keys (error will only appear as the only key in case of an error)
  • point_viewcontrol is no longer filetered from game.CleanUpMap()
  • halo.Add() with no entities will no longer try to draw empty halo
  • PlayerSilentDeath is called at a time which is more consistent with PlayerDeath hook
  • Panel.SizeToChildren() and Panel.ChildrenSize() no longer count panels marked for deletion
  • Panels marked for deletion will also no longer affect Dock()ing, just like invisible panels don't
  • file.Rename now forces filenames lowercase (both arguments)
  • file.Open now forces filenames lowercase for writing and reading from the data folder
  • file.* functions automatically remove double or more consecutive slashes
  • Error and ErrorNoHalt no longer have the 512 character limit
  • OnEntityCreated is now called when it is expected - when the entity is created (instead of when the entity is first pushed to Lua, which sometimes was never)
  • Removed MarkupObject:Create (Community Contribution)

New in Garry's Mod (GMOD) 10.17.18 (Oct 18, 2018)

  • Added quick search to Material tool
  • You can now ignite ragdolls
  • Restored Half-Life 1 turret entities
  • Added support for $treesway shader paramters, which is affected by env_wind entities on existing maps
  • Downloading workshop items when joining servers now deletes the useless .compressed files that waste space
  • npc_sniper no longer becomes pacifist after one player kill
  • Fixed a crash issue with monster_flyer
  • Fixed a crash issue with Half-Life: Source monster_*_dead NPCs
  • Fixed model of monster_hevsuit_dead
  • Fixed HL2 barney appearing on HL1 map c1a1
  • Fixed HL1 and HL2 episodes not displaying their chapter titles and other on-screen text
  • Fixed purple blood color on HL1 alien NPCs
  • Fixed a crash on srcds when combine soldiers with smg1 die and there isn't a player in first server slot
  • Fixed a rare crash with npc_combie_s trying to shoot a gun they don't have
  • Fixed a potential AI pathfinding crash
  • Reenabled monster_bigmomma hp recovery system
  • Fixed npc_barnacle not picking up players from vehicles
  • Fixed chatbox filters looking weird
  • Fixed default join messages not working on dedicated servers
  • Fixed some scenes not playing
  • Smooth scrape sounds are no longer repalced by rough scrape sounds for glass and tile textures
  • Fixed flashlight sound stopping weapon sounds
  • Fixed some effects (mostly on NPCs) not working in multiplayer
  • Fixed some HL1 NPCs not talking in multiplayer
  • Addon entities ("anim" type SENTS) are now properly credited as inflictor and not the attacker when thrown into a player with a gravity gun
  • Updated language files (Community Contribution)
  • Updated TTT to its latest version
  • Added proper distance and entity validity checks for all default properties to stop them from being exploited by clientside scripts
  • Spawnmenu Icons no longer save images of missing models to disk
  • Minor changes to NPC difficulty to match Half-Life games (Community Contribution)
  • Added CTakeDamageInfo.__tostring
  • Added CNavArea.GetPlace()
  • Added CNavArea.SetPlace()
  • Added PhysObj.GetPositionMatrix()
  • Added Entity.GetWorldTransformMatrix()
  • Added DMG_SNIPER and DMG_MISSILEDEFENSE
  • Added util.GetSurfaceData()
  • Added Half-Life: Source CLASS_ enums
  • Added input.GetKeyCode(), works opposite of input.GetKeyName
  • Added ProjectedTexture:SetQuadraticAttenuation()
  • Added ProjectedTexture:SetLinearAttenuation()
  • Added ProjectedTexture:SetConstantAttenuation()
  • Added ProjectedTexture:GetQuadraticAttenuation()
  • Added ProjectedTexture:GetLinearAttenuation()
  • Added ProjectedTexture:GetConstantAttenuation()
  • Added player.GetByAccountID( id ) ( Community Contribution )
  • Added render.WorldMaterialOverride
  • Added return value to DColumnSheet.AddSheet (Community Contribution)
  • Added player_connect_client gameevent
  • Fixed FL_ANIMDUCKING not resetting when entering a vehicle
  • Fixed HTTP() cutting off post body at the NULL byte
  • Fixed func_breakable_surf crashing when damaged by DMG_BLAST with no inflictor
  • Fixed crash issues with CNewParticleEffect.AddControlPoint and CNewParticleEffect.StopEmissionAndDestroyImmediately functions
  • Fixed Player and Entity.__newindex crashing the game when assigning non string keys onto those entities
  • CTakeDamageInfo.GetDamageType now properly returns an unsigned int
  • JSON functions now can handle NULL bytes properly
  • IGModAudioChannel.__gc no longer crashes the game in some cases
  • Fixed an error with empty nextbox NPCs (Community Contribution)
  • SWEP Holdtype is now updated clientside whenever server sends a holdtype update
  • PlayerUse no longer blocks using when Lua doesn't return a value or returns a non boolean
  • Fixed DMenu's non self deleting submenus not opening in some cases
  • Player.Kick no longer fails with reasons too long ( now cuts them off at ~512 )
  • util.SpriteTrail no longer crashes the game if you do not give the material ".vmt" extension
  • util.SpriteTrail no longer silently fails halfway through when not given a color
  • Dragginig/Resizing DFrame as a child element now works properly (Community Contribution)
  • Consistent caching between Entity.GetEyeTraceNoCursor and Entity.GetEyeTrace (Community Contribution)
  • Fixed a crash issue with Vehicle.GetVehicleViewPosition
  • Fixed a few Vehicle functions returning garbage in certain cases ( GetVehicleViewPosition, GetPassengerSeatPoint, GetWheelContactPoint )
  • Fixed RebuildSpawnIcon() not taking bodygroups into account
  • Added voice_overdrive, volume and _restart on client to the blocked console command list
  • prop_vehicle and prop_vehicle_driveable are now considered Vehicles by Lua
  • Entity.GetSaveTable now works properly with most array fields, they will show up as 1-based table in Lua
  • Entity.SetSaveValue can now handle array fields, just like GetSaveTable()
  • Entity.GetInternalVariable now supports all field types as GetSaveTable/SetSaveValue does
  • CLuaEmitter.Add will now also initallize startSize
  • util.GetSurfacePropName now returns "" for out of bounds input
  • IGModAudioChannel:IsValid now properly reflects the validity of the sound channel instead of testing existence of the Lua objecct
  • Most IGModAudioChannel functions now also check for channel validity
  • DoModal no longer works without cursor visible for all panels, not just "Frame"
  • Vector.WithinAABox now orders vectors on its own
  • Entity.GetAttachments, Entity.GetBodyGroups and Entity.GetMaterials will now return an empty table where they used to return nil
  • util.(De)Compress and util.Base64Encode error on no input and return an empty string when given an empty string
  • Failed-to-send net messages now reset current net message
  • Calling net.Start() while a net message is already active now displays a message
  • You can no longer send net messages with no players on the server
  • Entity.GetSaveTable and Entity.GetInternalVariable no longer iterate over Inputs and Outputs
  • Entity.SetHitboxSet no longer assigns non existent hitbox sets when using a string as the first argument resulting in a console warning spam
  • You can no longer remove player_manager entity
  • Made DLabelURL's color functions work consistently to DLabel's
  • Vehicle.GetVehicleViewPosition's only argument is now optional
  • Entity.SetModelScale is now limited to +-400 on server (unchanged on client)
  • Keys in mount.cfg are now marked as mounted ( for IsMounted() ), if they are in the list of mountable games
  • Restored Gib Model functionality of func_breakable from HL1
  • mountdepots.txt will now be automatically created if it doesn't exist so dedicated server owners can edit it
  • Fixed nav file error 4 (out of date) being displayed when the nav file is in fact up to date
  • Nav file errors now properly displays the actual error by name, not error ID
  • Updated surfaceproperites.txt to remove some entries to fit the 128 entry limit
  • Bumped maxiumum key length of key values in bsp to 64 (from 32)

New in Garry's Mod (GMOD) 05.29.18 (May 30, 2018)

  • Engine/General Changes:
  • Updated: Added Entity Classname and Index to the "Changing collision rules within a callback is likely to cause crashes!" error message
  • Updated: Updated .fgd files (for Hammer) to include GMod specific Sandbox key values
  • Updated: Moved the Map and Source Engine Version text when console is open a bit down so it can be read
  • Updated: Changed the default value of r_hunkalloclightmaps to 0
  • Updated: GMPublish now works better with big addons
  • Fixed: Fixed a crash having to do with playing sounds
  • Removed: Removed game/bin/sdk.fgd, as it was unused and contained non-existent/duplicate entities
  • Lua API Changes:
  • NEW: Added render.OverrideBlend (replaces render.OverrideBlendFunc)
  • NEW: Added Entity.GetSequenceMovement
  • NEW: Added Player.IsSprinting
  • NEW: Added Vector.Div
  • NEW: Added Angle.Div & Angle.__div
  • NEW: Added Angle.Mul
  • NEW: Added Angle.Add
  • NEW: Added Angle.Sub
  • NEW: Added serverlist.AddCurrentServerToFavorites
  • NEW: Added CanAddServerToFavorites
  • NEW: Added CreatePhysCollidesFromModel
  • NEW: Added CNavLadder.GetTop
  • NEW: Added CNavLadder.GetBottom
  • NEW: Added CNavLadder.GetWidth
  • NEW: Added PhysObj.ApplyTorqueCenter
  • NEW: Added PhysObj.GetShadowPos
  • NEW: Added PhysObj.GetShadowAngles
  • NEW: Added PhysObj.GetVelocityAtPoint
  • NEW: Added PhysObj.SetContents
  • NEW: Added PhysObj.GetContents
  • NEW: Added DNumSlider.GetDefaultValue
  • NEW: Added DNumSlider.SetDefaultValue
  • NEW: Added DNumSlider.ResetToDefaultValue
  • NEW: Added navmesh.GetGroundHeight
  • NEW: Added engine.TickCount
  • NEW: Added file.Rename, same restrictions as file.Write/file.Open apply
  • NEW: Added BLENDFUNC enums
  • NEW: Added game.GetAmmoNPCDamage
  • NEW: Added game.GetAmmoPlayerDamage
  • NEW: Added game.GetAmmoForce
  • NEW: Added game.GetAmmoDamageType
  • NEW: Added ents.FindAlongRay
  • NEW: Added TYPE_PHYSCOLLIDE enum
  • NEW: Added PLAYERANIMEVENT_CANCEL_RELOAD enum
  • NEW: Implemented DNumSlider.GetText
  • NEW: Added support for BodyGroups in Sandbox NPC list
  • NEW: Added ConVar support for plydmg, npcdmg and maxcarry keys of game.AddAmmoType
  • Fixed: Entity.DeleteOnRemove() can no longer remove players or the world
  • Fixed: Fixed a stack overflow in DListView
  • Fixed: Entity.IsRagdoll will attempt to return proper value when the entity is marked for deletion
  • Fixed: render.DrawSphere will no longer draws one less longitude step than specified
  • Fixed: game.CleanUpMap() will no longer crash on LZMA compressed maps
  • Fixed: Fixed util.DecalEx's scale arguments not working
  • Fixed: Fixed util.DecalEx using inverted normal for non brush entities
  • Fixed: Fixed game.AddDecal not precaching added decals resulting in util.DecalMaterial not working as expected in some cases
  • Fixed: Fixed util.DecalEx not working on entities with brush models
  • Fixed: Fixed util.Base64Encode output for 0 and 1 byte inputs
  • Fixed: Fixed Entity.GetAnimInfo not working at all
  • Fixed: Fixed Entity.SetGravity resetting on players when they use ladders
  • Fixed: Player.IsFullyAuthenticated no longer returns the player object in some cases
  • Fixed: Fixed prediction errors caused by using Player.SetHull(Ducked)
  • Fixed: Player.SetAmmo now has proper ammo typeID bounds check, as well as proper max ammo check (0-9999)
  • Fixed: Fixed calling Player.Spawn() on a player inside a vehicle putting the player in an invalid state where NPCs can't see them
  • Updated: Entity.AddCallback will now error instead of silently failing when given not a function on its 2nd argument
  • Updated: Vector/Angle.Mul and Div methods now have correct type checking and errors
  • Updated: util.TableToJSON returns nil unless top-most element is an object or array
  • Updated: file.Exists and file.IsDir will return false where it used to return nil
  • Updated: ScriptedEntityType field will now work equally on all entity types
  • Updated: Added better bounds checking to Entity:GetSequenceActivity
  • Updated: GetCreator now returns NULL for no creator, instead of nil (Community Contribution)
  • Updated: IsValid micro optimisation (Community Contribution)
  • Updated: Improvements to Entity.GetKeyValues() - Vectors actually work now, added support for FIELD_SOUNDNAME and FIELD_EHANDLE
  • Updated: FL_ANIMDUCKING is now used and set automatically
  • Updated: Return type consistency for Player.TraceHullAttack, Player.GetObserverTarget, Player.GetRagdollEntity, NPC.GetBlockingEntity, NPC.GIve, Entity.GetRagdollOwner, they now return NULL entity where they used to return nil
  • Updated: Better/Faster implementations of SortedPairs and similar functions (Community Contribution)
  • Updated: PrintTable will no longer try to print the table its currently printing (Community Contribution)
  • Updated: DNumberScratch decimal changes for the pop up window (Community Contribution)
  • Faceposer Changes:
  • NEW: You can now middle mouse click on a slider's knob to reset the slider to its default value
  • NEW: Faceposer now has a quick filter feature, allowing to quickly search through flexes by name
  • Fixed: Context panel now properly clears itself when targeted entity becomes invalid
  • Fixed: Right clicking a model will no longer break the face on certain models like HWM TF2 models or Alyx
  • Fixed: Clear function of the Faceposer will now properly reset all values to their defaults, so faces are no longer broken
  • Fixed: Faceposer now supports 128 flexes not just 64
  • Fixed: The secondary presets (pictures) no longer occupy 3 rows if only 2 or even 1 row is populated
  • Updated: Improved the flex list so that the text is not cut off on the bottom
  • Updated: Flex names are now prettier
  • Updated: Better placement of the orange ring around the face, so it is no longer in the stomach of certain TF2 models
  • Game Changes:
  • NEW: Added "Favourite this server" button to the bottom bar of the main menu when you are on a server
  • NEW: Eye Poser and Finger Poser Tools can now be used on Effects
  • NEW: Added vid_sound 1/0 to control sound recording of gm_video (Community Contribution)
  • NEW: Bone manipulation will now properly affect hit boxes of Players and NPCs
  • NEW: 3rd person reload animations are now automatically stopped when switching weapons
  • Updated: Updated default spawnlists: Portal 1, Builder and HL2: Characters categories, added Garry's Mod category. This only affects new players
  • Updated: Updated some HL2 map icons to be more recognizable
  • Updated: Changed Toolgun's holdtype from pistol to revolver to match the view model (Community Contribution)
  • Updated: Bone manipulation now works properly on players
  • Updated: Improved 3rd person crouching animations to better represent what happens in 1st person
  • Updated: Medkit Weapon now heals up to max health properly, and lag compensates when used by players (Community Contribution)
  • Updated: Slightly improved performance of player animations (Community Contribution)
  • Updated: Updated language files
  • Fixed: Restored functionality of env_wind
  • Fixed: Fixed pick up HUD ( ammo, weapons, etc ) not working properly for some time after HL2 campaign loading screens
  • Fixed: Restored functionality of monster_mortar to fix a crash issue on a Half-Life Source map
  • Fixed: Fixed entities inside player clip brushes not being usable by +use for Half Life Source maps
  • Fixed: Fixed Paint Tool's reload not removing the duplicator entity modifiers (Community Contribution)
  • Fixed: Reduced lag with a very huge amount of Sandbox notifications
  • Fixed: Reduced probability of the game crashing when saving a dupe
  • Fixed: Fixed Half-Life: Source Scientists always having random skins
  • Fixed: Fixed Half-Life: Source Tentacles not dealing damage
  • Fixed: Half-Life: Source Headcrabs no longer break Half-Life 2 Headcrabs and vice versa

New in Garry's Mod (GMOD) 02.26.18 (Feb 27, 2018)

  • Lua API Changes:
  • NEW: Added NPC.GetCurrentSchedule
  • NEW: Added File.ReadUShort
  • NEW: Added File.ReadULong
  • NEW: Added File.WriteUShort
  • NEW: Added File.WriteULong
  • NEW: Added CreatePhysCollideBox
  • NEW: Added PhysCollide:TraceBox
  • NEW: Added PhysCollide:Destroy
  • NEW: Added PhysCollide:IsValid
  • NEW: Added mesh.UserData
  • NEW: Added ENT:GetRenderMesh
  • NEW: Added GM.PlayerDroppedWeapon( ply, wep )
  • NEW: Added CNavArea.SetCostSoFar( num )
  • NEW: Added type error to render.Capture
  • NEW: NextBot functions now properly error if used on invalid entity
  • NEW: IMesh:BuildFromTriangles can do userdata too
  • FIXED: Fixed errors when calling Setup() without second argument on DProperty_Float and DProperty_Int
  • FIXED: Fixed deriving from DDragBase requiring to define OnModified
  • FIXED: Fixed Panel.InvalidateChildren being always recursive
  • FIXED: Fixed Panel.NewAnimation ease values 0-1 being weird
  • FIXED: Fixed calling SetAllowWeaponsInVehicle( false ) in PlayerLeaveVehicle hook breaking weapon selection
  • FIXED: Fixed DBinder not working when its convar is set to NaN
  • FIXED: Fixed DBinder overriding SetSelected( bool )
  • FIXED: Fixed util.GetModelInfo crashing with empty string
  • FIXED: Fixed a crash issue with Weapon functions
  • FIXED: Fixed NeedsDepthPass not working for addons
  • FIXED: Fixed string.Comma with very large numbers
  • FIXED: NextBot.GetRangeSquaredTo now actually works the way it's intended to, by returning squared range
  • FIXED: Updated most render library functions to not lock up when a Lua type error occurs during function execution
  • FIXED: Prevent potential stack overflows in scripted_ents.Get
  • FIXED: Fixed the utf8 library failing with certain UTF8 strings
  • UPDATED: Switched base_anim to CBaseAnimatingOverlay, allowing more functions to be used on "anim" entities
  • UPDATED: DProperty_VectorColor now works with standard colors as well ( vector color support unchanged )
  • UPDATED: Added better type checking and error output to NextBot.GetRange(Squared)To()
  • UPDATED: render.Capture can no longer capture Steam Overlay
  • UPDATED: cam.Start() will now error when given no arguments
  • REMOVED: Removed NPC.RemoveMemory
  • Game Changes:
  • UPDATED: Added translations for env_fire and npc_fisherman when shown in the kill feed
  • UPDATED: Updated TTT to the latest version
  • UPDATED: Increased offset for rollermine to prevent it from spawning below ground
  • UPDATED: Changed maximum value for Frame Blend's Shutter slider so it doesn't just black screen
  • UPDATED: Changed the link on the version button in main menu to link to the new website
  • UPDATED: Updated all built in weapons to work better with NPCs
  • FIXED: Properly turn off thirdperson on level shutdown
  • FIXED: Fixed certain tools erroring when their console variables are set to "nan"
  • FIXED: Applied a potential fix to stop tooltips from being displayed when they are not meant to be displayed
  • FIXED: Improved flashlight effect on custom entities
  • FIXED: Fixed Stunstuck sprites rendering in weird positions
  • FIXED: Clientside ragdolls of dead NPCs will now properly inherit material override
  • FIXED: Serverside ragdolls of dead NPCs will now properly inherit color and material override
  • Engine Changes:
  • UPDATED: Updated BASS.DLL to 2.4.13.8-mp3free
  • UPDATED: Potentially improved vrad.exe performance
  • UPDATED: Better "Error loading gamemode:" errors that actually describe what's wrong
  • FIXED: Fixed support for Zombie Panic! Source mounting
  • FIXED: Fixed hammer_update_entity console command crashing the game
  • FIXED: Fixed a bunch of different exploits

New in Garry's Mod (GMOD) 12.11.17 (Dec 23, 2017)

  • Engine Changes:
  • Fixed: Fixed soundscapes on some custom maps not working in multiplayer
  • Fixed: Fixed off-by-one error with GMA FileHandle seeking
  • Fixed: Fixed potential deadlock in multicore rendering when messing with colour correction
  • Fixed: Fixed an issue where removing ai_network before game.CleanUpMap() will crash the game
  • Fixed: Fixed kickid command appending a space to kick reason
  • Fixed: Fixed crash issues with vehicle radars
  • Fixed: Fixed a client crash related to clientside bone manipulations
  • Fixed: Fixed a common material system crash with multicore rendering
  • Fixed: Properly handle VOX sentences that fail to load instead of crashing later
  • Updated: Improved crazy physics prevention when welding world to certain props
  • Updated: Better handling of version 49 model format that differs between games
  • Updated: Mac OS builds use libc++ & 10.7 SDK
  • Updated: Changed the default value for tv_maxclients from 128 to 64
  • Updated: Dedicated Server will print P2P address to console when P2P is enabled
  • Updated: Improved Version 21 map support
  • Lua API Changes:
  • New: Added engine.ServerFrameTime
  • New: Added the missing TYPE_PROJECTEDTEXTURE enum
  • New: Added a callback for steamworks.RequestPlayerInfo that is fired when the info is received
  • New: Added DTextEntry.SetPlaceholderText
  • New: Added DTextEntry.SetPlaceholderColor
  • New: Added CNavArea.Remove
  • New: Added CNavArea.SetCorner( int corner, Vector v )
  • New: Added CNavLadder.Remove
  • New: Added CNavArea.ConnectTo( CNavArea/CNavLadder )
  • New: Added CNavArea.Disconnect( CNavArea/CNavLadder )
  • New: Added CNavArea.PlaceOnGround( int corner )
  • New: Added navmesh.CreateNavArea( Vector corner, Vector opposite_corner )
  • New: Added CNavLadder.Disconnect( CNavArea )
  • New: Added DTree_Node:Clear()
  • New: Added DPropertySheet:OnActiveTabChanged( old, new )
  • New: Added DPropertySheet.GetItems
  • New: Added a second argument to search.GetResults (optional)
  • New: Added mask as a 5th argument to ENT:TestCollision
  • Updated: Changing value of SetAllowWeaponsInVehicle will now be applied immediately and it is no longer necessary to reenter the vehicle
  • Updated: Entity.WorldSpaceCenter will no longer silently fail when used on a NULL entity
  • Updated: Entity.IsLineOfSightClear will no longer silently fail when given no argument or a NULL entity
  • Updated: Improved rendering of draw.RoundedBox corners at corner size > 64 and 16-32
  • Updated: Implemented DTree:Clear()
  • Updated: Implemented DHorizontalScroller:Clear()
  • Updated: Better error checking for DPropertySheet
  • Updated: Certain HL2 weapons ( pistol, smg1 ) now also set the attacker in GM:EntityTakeDamage
  • Updated: Made DLabelEditable.OnLabelTextChanged's return value optional
  • Updated: DColorCombo's palette will update the DColorMixer's color
  • Updated: DNumberScratch.OnValueChanged will no longer have nil value as first argument in some cases
  • Updated: DIconBrowser now also includes mountable game icons (materials/games/16/)
  • Updated: Entity.SetMoveCollide is now shared
  • Updated: Panel.GetText is no longer limited to 1023 characters for TextEntry element
  • Fixed: Fixed DFileBrowser not working with root/empty base directory.
  • Fixed: Fixed SWEP.TranslateFOV set the FOV to 0 when invalid return value is given
  • Fixed: Fixed passing Lua's NULL to certain tables where non-Entity is expected causing a crash
  • Fixed: Fixed DColorCombo.GetColor returning nil
  • Fixed: Fixed DGrid.SortByMember's second parameter being forced to true
  • Fixed: Fixed a bug with DToolTip that prevented Panel.SetTooltipPanel from working properly
  • Fixed: Fixed crosshair disappearing when entering a vehicle with SetAllowWeaponsInVehicle set to true
  • Fixed: Fixed Entity.StartLoopingSound so that it actually starts playing the sounds it creates
  • Fixed: Fixed a crash with GetRenderTargetEx and ENVMAP texture flag, now displays a warning
  • Game Changes:
  • New: Added Quick Filter feature to all Tool Tabs in spawnmenu
  • New: Added search bars for NPCs, Weapons, Entities and Vehicles that search content only in that tab
  • New: Added Combine Shotgunner skin to the Combine Soldier player model
  • New: Added missing background from the background competition winners
  • New: Added INFRA mounting support ( No map support )
  • New: Added map icons for new TF2 Jungle Update maps
  • Fixed: Fixed installed and owned games not being mountable in some cases
  • Fixed: Fixed workshop UI displaying [unknown] for most user names
  • Fixed: Fixed DFrame close buttons being higher than the header
  • Updated: Spawnmenu model search will no longer search the "models/" part of every model
  • Updated: Spawnmenu search now searches classname AND the display name, instead of one or the other
  • Updated: Non spawnable weapons will no longer appear in the Spawnmenu Search results
  • Updated: Updated preset editor to be actually functional
  • Updated: Better support for lower screen resolutions (1152x864 and lower)
  • Updated: Dead player's ragdolls now also inherit the player's color and rendermode
  • Updated: Updated TTT gamemode to the latest version
  • Updated: Improved "Edit Spawnlist" toolbox, including addition of a quick filter to the icon browser
  • Updated: Improved DNumberWang, you can now click and drag to change value as well as use scroll wheel to change value

New in Garry's Mod (GMOD) 12.11.17 (Dec 19, 2017)

  • New Spawnmenu features:
  • This update adds a few new Spawnmenu features for all Sandbox users.
  • First of all, we have added the Search functionality to all tabs, not just the Spawnlists one.
  • You can now search through the contents of each tab separately, no more remembering which category a specific item is under.
  • We have also added similar functionality to all of the tool tabs, which allows you to quickly filter through all installed tools. This also includes all modded tabs.
  • We have also slightly improved the spawnlist editing feature, adding a Quick Filter to the icon selection.
  • The preset editor was also changed, which now allows you to view and edit each preset manually.
  • New Mountable Game:
  • You can now mount INFRA if you own it on Steam (and have it installed) and use assets from that game in Garry's Mod.
  • Game Changes:
  • New: Added Quick Filter feature to all Tool Tabs in spawnmenu
  • New: Added search bars for NPCs, Weapons, Entities and Vehicles that search content only in that tab
  • New: Added Combine Shotgunner skin to the Combine Soldier player model
  • New: Added missing background from the background competition winners
  • New: Added INFRA mounting support ( No map support )
  • New: Added map icons for new TF2 Jungle Update maps
  • Fixed: Fixed installed and owned games not being mountable in some cases
  • Fixed: Fixed workshop UI displaying [unknown] for most user names
  • Fixed: Fixed DFrame close buttons being higher than the header
  • Updated: Spawnmenu model search will no longer search the "models/" part of every model
  • Updated: Spawnmenu search now searches classname AND the display name, instead of one or the other
  • Updated: Non spawnable weapons will no longer appear in the Spawnmenu Search results
  • Updated: Updated preset editor to be actually functional
  • Updated: Better support for lower screen resolutions (1152x864 and lower)
  • Updated: Dead player's ragdolls now also inherit the player's color and rendermode
  • Updated: Updated TTT gamemode to the latest version
  • Updated: Improved "Edit Spawnlist" toolbox, including addition of a quick filter to the icon browser
  • Updated: Improved DNumberWang, you can now click and drag to change value as well as use scroll wheel to change value: Lua API Changes
  • New: Added engine.ServerFrameTime
  • New: Added the missing TYPE_PROJECTEDTEXTURE enum
  • New: Added a callback for steamworks.RequestPlayerInfo that is fired when the info is received
  • New: Added DTextEntry.SetPlaceholderText
  • New: Added DTextEntry.SetPlaceholderColor
  • New: Added CNavArea.Remove
  • New: Added CNavArea.SetCorner( int corner, Vector v )
  • New: Added CNavLadder.Remove
  • New: Added CNavArea.ConnectTo( CNavArea/CNavLadder )
  • New: Added CNavArea.Disconnect( CNavArea/CNavLadder )
  • New: Added CNavArea.PlaceOnGround( int corner )
  • New: Added navmesh.CreateNavArea( Vector corner, Vector opposite_corner )
  • New: Added CNavLadder.Disconnect( CNavArea )
  • New: Added DTree_Node:Clear()
  • New: Added DPropertySheet:OnActiveTabChanged( old, new )
  • New: Added DPropertySheet.GetItems
  • New: Added a second argument to search.GetResults (optional)
  • New: Added mask as a 5th argument to ENT:TestCollision
  • Updated: Changing value of SetAllowWeaponsInVehicle will now be applied immediately and it is no longer necessary to reenter the vehicle
  • Updated: Entity.WorldSpaceCenter will no longer silently fail when used on a NULL entity
  • Updated: Entity.IsLineOfSightClear will no longer silently fail when given no argument or a NULL entity
  • Updated: Improved rendering of draw.RoundedBox corners at corner size > 64 and 16-32
  • Updated: Implemented DTree:Clear()
  • Updated: Implemented DHorizontalScroller:Clear()
  • Updated: Better error checking for DPropertySheet
  • Updated: Certain HL2 weapons ( pistol, smg1 ) now also set the attacker in GM:EntityTakeDamage
  • Updated: Made DLabelEditable.OnLabelTextChanged's return value optional
  • Updated: DColorCombo's palette will update the DColorMixer's color
  • Updated: DNumberScratch.OnValueChanged will no longer have nil value as first argument in some cases
  • Updated: DIconBrowser now also includes mountable game icons (materials/games/16/)
  • Updated: Entity.SetMoveCollide is now shared
  • Updated: Panel.GetText is no longer limited to 1023 characters for TextEntry element
  • Fixed: Fixed DFileBrowser not working with root/empty base directory.
  • Fixed: Fixed SWEP.TranslateFOV set the FOV to 0 when invalid return value is given
  • Fixed: Fixed passing Lua's NULL to certain tables where non-Entity is expected causing a crash
  • Fixed: Fixed DColorCombo.GetColor returning nil
  • Fixed: Fixed DGrid.SortByMember's second parameter being forced to true
  • Fixed: Fixed a bug with DToolTip that prevented Panel.SetTooltipPanel from working properly
  • Fixed: Fixed crosshair disappearing when entering a vehicle with SetAllowWeaponsInVehicle set to true
  • Fixed: Fixed Entity.StartLoopingSound so that it actually starts playing the sounds it creates
  • Fixed: Fixed a crash with GetRenderTargetEx and ENVMAP texture flag, now displays a warning: Engine Changes
  • Fixed: Fixed soundscapes on some custom maps not working in multiplayer
  • Fixed: Fixed off-by-one error with GMA FileHandle seeking
  • Fixed: Fixed potential deadlock in multicore rendering when messing with colour correction
  • Fixed: Fixed an issue where removing ai_network before game.CleanUpMap() will crash the game
  • Fixed: Fixed kickid command appending a space to kick reason
  • Fixed: Fixed crash issues with vehicle radars
  • Fixed: Fixed a client crash related to clientside bone manipulations
  • Fixed: Fixed a common material system crash with multicore rendering
  • Fixed: Properly handle VOX sentences that fail to load instead of crashing later
  • Updated: Improved crazy physics prevention when welding world to certain props
  • Updated: Better handling of version 49 model format that differs between games
  • Updated: Mac OS builds use libc++ & 10.7 SDK
  • Updated: Changed the default value for tv_maxclients from 128 to 64
  • Updated: Dedicated Server will print P2P address to console when P2P is enabled
  • Updated: Improved Version 21 map support

New in Garry's Mod (GMOD) 11.21.17 (Nov 21, 2017)

  • Fixed an exploit that allows players to crash servers with the physgun.

New in Garry's Mod (GMOD) 11.15.17 (Nov 15, 2017)

  • This update fixes some common crashes, including a crash caused by particles from a recent Team Fortress 2 update:
  • Added input.SelectWeapon( entity )
  • Fixed particle crashes on map load related to the recent Team Fortress 2 update
  • Fixed a couple exploits, including one that can prevent your game from starting up
  • Fixed a crash related to Awesomium ftp:// link redirects
  • Fixed halo effect Physgun on bouncy balls being square instead of circular
  • Reduced user's ability of being able to exploit the "Remove" property to delete everything on the map on servers with clientside Lua enabled

New in Garry's Mod (GMOD) 07.25.17 (Jul 26, 2017)

  • Fixed crash when rendering models with invalid flex rules
  • Fixed RCE exploit discovered by One Up Security

New in Garry's Mod (GMOD) 07.21.17 (Jul 22, 2017)

  • Updated:
  • gui.OpenURL now asks users for confirmation before opening a website
  • Opening websites:
  • Now when a server attempts to open a website in a player's Steam overlay, the player will be asked for confirmation first. You should always take care when visiting websites you don't know, so allowing servers to just pop open websites was never a great idea.

New in Garry's Mod (GMOD) 07.06.17 (Jul 11, 2017)

  • Game Changes:
  • NEW - Preset support for Utilities menus
  • NEW - 'Quick Preset' button - allows for easier access to the preset system
  • NEW - Addons menu can now manage multiple addons at once (e.g. bulk unsubscribing)
  • NEW - Demos, saves, and duplications menus now list items that the user is subscribed to
  • NEW - Addons menu now has a search bar to quickly search through subscriptions
  • NEW - The '-notty' startup parameter on Linux servers will send console output directly to stdout
  • UPDATED - Weapons no longer turn upside-down when zooming in too far
  • UPDATED - Improved support for CS:GO/Portal 2/TF2 maps
  • UPDATED - Game returns to DirectX 9 mode if '-dxlevel' is not specified in the command-line
  • UPDATED - Improved relationships between Half-Life and Half-Life 2 NPCs
  • UPDATED - Improved behaviour of collisions between players and 'no collided' entities created by tools
  • UPDATED - Added more information to crash dumps (.mdmp files)
  • UPDATED - r_eyes_* console variables are no longer saved
  • UPDATED - The emitter tool's explosion effect no longer creates sounds
  • UPDATED - Bots can longer be created before the InitPostEntity hook has fired
  • UPDATED - Improved how serverside ragdolls are handled on the client - hull traces can hit them now
  • UPDATED - Updated the Half-Life Model Viewer to have newest features from Team Fortress 2 veresion
  • FIXED - Odessa no longer has female voices
  • FIXED - Fixed errors caused by the spawn menu's search feature not having access to certain directories
  • FIXED - Fixed many crashes related to NPCs trying to use non-existent entities
  • FIXED - Checkboxes and radio buttons in HTML panels are now displayed properly on Linux/macOS
  • FIXED - Half-Life Ichthyosaur can now cause damage
  • FIXED - Half-Life Tentacle NPC no longer continues playing sounds after being removed
  • FIXED - Fixed massive FPS drops when missing sounds are playing on servers
  • FIXED - Fixed crash that occurs when console variables created by Lua are removed too early on level change
  • FIXED - Fixed late loading of memory allocator on Linux causing the game to crash for some people
  • FIXED - Impulse 200 command no longer crashes when the player has no active weapon
  • FIXED - Fixed prediction errors when firing weapon_357
  • FIXED - weapon_357 now has the 'revolver' holdtype
  • Lua API Changes:
  • NEW - Entity:PhysicsInitStatic( ... )
  • NEW - Entity:RemoveCallback( ... )
  • NEW - Entity:GetCallbacks( ... )
  • NEW - CLuaEmitter:IsValid( ... )
  • UPDATED - Entity:PhysicsInit* methods now return either true or false based on success
  • UPDATED - Entity:Remove() can no longer remove the world
  • UPDATED - Weapon:IsScripted() will now return false instead of no value when ran on non-scripted weapons
  • UPDATED - Player:Give( ... ) no longer fills a player's gun with ammo when asked to not give ammo to players
  • UPDATED - Entity:GetBoneCount() and Entity:GetBoneParent( ... ) will now return -1 on failure
  • UPDATED - Entity:TranslateBoneToPhysBone( ... ) will now return -1 on failure
  • UPDATED - Entity:SetSaveValue( ... ) now returns false on failure
  • UPDATED - Entity:DispatchTraceAttack( ... ) will now trigger an error when passed invalid parameters
  • UPDATED - Entity:HasBoneManipulations() and Entity:HasFlexManipulatior() return false on failure
  • UPDATED - Entity:GetBrushPlaneCount() will now return false on failure
  • UPDATED - Entity:GetFlexScale( ... ) now always returns 1 on failure, rather than just sometimes
  • FIXED - Entity:GetBrushPlaneCount() and Entity:GetBrushPlane( ... ) now work on brush entities
  • FIXED - PathFollower:Compute() no longer leaks Lua references
  • Hammer Changes:
  • UPDATED - Improved performance of 2D/3D views
  • UPDATED - 2D views are now rendered during scroll operations, rather than after
  • UPDATED - Increased max render distance from 10,000 to 32,000
  • UPDATED - Vertices no longer need to be in the exact same location to be merged
  • FIXED - Blended textures are now rendered correctly - it should be identical to in-game
  • FIXED - Model browser no longer freezes after being opened multiple times
  • FIXED - Overlays no longer flicker when rendered in 3D shaded mode
  • FIXED - Scrollbars on 2D views are now correctly sized when zoomed in
  • GitHub Pull Requests:
  • UPDATED - Removed CAP_INNATE_RANGE_ATTACK1 from weapon_base[github.com]
  • UPDATED - Removed unused function parameters[github.com]
  • FIXED - Result of COLLISION_GROUP_DEBRIS trace in properties.Gethovered is no longer ignored[github.com]
  • FIXED - Fixed use of non-existent enum in DModelPanel[github.com]
  • FIXED - Fixed 'Cannot set property' JavaScript error in main-menu[github.com]
  • NEW - Trouble in Terrorist Town: Enabled scoreboard to be sorted by different criteria[github.com]
  • UPDATED - Trouble in Terrorist Town: Corpses get skin/bodygroups of dead players[github.com]
  • FIXED - Trouble in Terrorist Town: Fixed incorrect fall damage[github.com]
  • FIXED - Trouble in Terrorist Town: Fixed 2 DoS exploits[github.com]

New in Garry's Mod (GMOD) 05.25.17 (May 26, 2017)

  • An update has been released which fixes an issue that allows malicious clients to cause game-servers to crash. If you don’t want this to happen to your server, you should update it.
  • All dedicated servers should be updated through either your Game Server Provider’s control panel or SteamCMD.

New in Garry's Mod (GMOD) 04.17.17 (Apr 18, 2017)

  • ENGINE CHANGES:
  • NEW: Added missing TF2 icons
  • NEW: Added cl_downloadfilter noworkshop – disables only all of the workshop downloads
  • UPD: Set r_radiosity default value back to 4
  • UPD: Increased lightcache size from 200 to 8287
  • UPD: Updated localization files
  • UPD: Updated Steamworks SDK to v1.38a
  • UPD: Switched SRCDS Steam Workshop to ISteamUGC API
  • UPD: Moved SRCDS workshop files to cache/srcds/id.gma, from addons/ds_id.gma
  • UPD: BASS error messages now print the actual error names instead of error IDs
  • UPD: Only display warnings about unused .gmas when there are such .gmas
  • UPD: Default screen resolution is now your desktop resolution
  • UPD: GMod will no longer try to send Lua errors to errors.garrysmod.com
  • UPD: Improved crazy physics detection to avoid more crashes
  • UPD: Updated LuaJIT to 2.0.4
  • UPD: Multiple optimizations and multicore rendering fixes
  • FIX: Fixed a problem with the addon system when using “Subscribing to All” on a collection with items that you are already subscribed to
  • FIX: Fixed a potential crash/memory leak when loading compressed TF2 maps
  • FIX: Fixed certain CS:GO textures failing to load
  • FIX: File download process no longer get stuck if a single download fails in CNetChan::HandleUpload
  • FIX: Fixed GMad.exe stopping writing the .gma once it encounters an empty file
  • FIX: Fixed hlfaceposer.exe and hlmv.exe (Model Viewer) not working out of the box
  • FIX: Fixed a problem where soundscripts would be precached as sound files causing lag
  • FIX: Fixed floating addons not being mounted on dedicated servers in the root folder
  • FIX: Fixed multiple various crash issues
  • GAME CHANGES:
  • NEW: Addon spawnlists are now separated
  • NEW: Added episodic effects for env_screeneffect
  • NEW: Spawnmenu NPCs are now capable of more actions
  • UPD: Gonarch (monster_bigmomma) can now be killed on maps that are not from Half-Life: Source
  • UPD: Updated default damage for HL:S 9mmAmmo type to their proper values
  • UPD: Renamed flechette gun icon so it properly appears in the spawnmenu
  • UPD: Don’t load new images background when in-game
  • UPD: Background images are now unloaded on change
  • UPD: Godmode is no longer enabled by default in Sbox MP
  • UPD: sbox_persist changes are now applied as the convar changes
  • UPD: Player model selector will always fit game window
  • UPD: All props can now be ignited
  • UPD: More entities can now be selected by holding C & right clicking on stuff
  • UPD: Attack Helicopter now takes 6 or so rockets to die in Sandbox
  • UPD: Increased max Field Of View from 90 to 100
  • UPD: Resized all backgrounds to be under or equal to 1080p
  • UPD: Updated hitboxes on the fast zombie player model
  • UPD: Slightly improved performance of player animations
  • FIX: Fixed certain HL:S npcs having broken materials
  • FIX: Fixed regresssion when player dies on a ladder
  • FIX: Fixed a possible regression with Favorites server list
  • FIX: Fixed an issue with Paint Tool where paitning below your feet didn’t work
  • FIX: Fixed pulley constraints in maps being completely broken
  • FIX: Fixed physgun’s controller not releasing entities properly when the physgun is removed
  • FIX: Fixed CRC comparison errors with autorefresh and AddCSLuaFile() calls
  • FIX: Fixed drag’n’drop in spawnmenu get stuck to the cursor in a certain case
  • LUA API CHANGES:
  • NEW: Added player.GetCount()
  • NEW: Added ents.GetCount()
  • NEW: Added a second parameter for Player.Give – boolean, set to true to not give any ammo ( at all ) when the weapon is given
  • NEW: Scrollbar – Allowed to have no up/down buttons
  • NEW: Override spawnlist NPC health option
  • NEW: Added FireBulletsInfo.IgnoreEntity
  • NEW: 3000-range anim events from SWEPs are now passed to SWEP:FireAnimationEvent
  • NEW: Added game.GetGlobalState( name )
  • NEW: Added game.GetGlobalCounter( name )
  • NEW: Added game.SetGlobalState( name, state )
  • NEW: Added game.SetGlobalCounter( name, value )
  • NEW: Added Weapon.SetLastShootTime( time )
  • NEW: Added render.OverrideBlendFunc( OverrideEnabled, SrcBlend, DestBlend, SrcBlendAlpha, DestBlendAlpha )
  • NEW: Added BLEND_* enumerations to Lua
  • NEW: Added GLOBAL_* enumerations to Lua
  • NEW: Added EF_FOLLOWBONE enumeration to Lua
  • NEW: Added a 4th argument to util.Decal – ignore entity
  • NEW: Added 2 more types to GM:ChatText – servermsg and teamchange
  • NEW: Added DFrame.GetTitle()
  • NEW: Add headers argument to http library functions
  • UPD: Made SWEP.PrintName shared
  • UPD: game.AddAmmoType now overrides duplicate names
  • UPD: math.IntToBin micro optimisation
  • UPD: Prevented Player:CanUseFlashlight() from returning nil
  • UPD: Improved Entity:GetKeyValues to show actual values of keys and to show ALL keys
  • UPD: Angle() can now also accept only 1 argument, to match the Vector()
  • UPD: Optimized draw.RoundedBox(Ex) a bit
  • UPD: Optimized DNumberScratch
  • UPD: Minor optimisation of GM:MouthMoveAnimation default action
  • UPD: timer.Exists will now return false for timers with deleteme flag
  • UPD: Player.SetEyeAngles will now only work on local players when used clientside
  • UPD: Entity.GetKeyValues will convert boolean values to integers instead, for compatibility with SetKeyValue
  • UPD: Entity.IsRagdoll no longer throws Lua errors when used on invalid/NULL entities, returns false instead
  • UPD: Entity.IsRagdoll nows return false where it used to return no value
  • UPD: Moved Material() extension to shared
  • UPD: If Steam says the a game is not installed – it is not installed. ( Mountable games list )
  • UPD: Entity.PrintMessage clientside will appear as type “none” in GM:ChatText
  • UPD: Increased maximum panel size, position and clipping data sizes to fix a problem with spawnmenu addon list breaking when trying to show too many addons
  • UPD: .txt convars now have LUA_SERVER flag and can be hooked onto with cvars.AddCallback
  • UPD: Panel.OpenURL now also works with “about:blank”
  • UPD: Clamped possible values of render.SetLightingMode to 0-2 to avoid crashes
  • UPD: render.Capture now has an “alpha” option ( default true ) that allows to disable alpha on the captured image
  • UPD: Player.ScreenFade is now shared
  • UPD: GM:RenderScreenspaceEffects will no longer be called with ViewData.dopostprocess set to false
  • FIX: Fixed a little issue with DCheckbox convar support
  • FIX: DNumSlider.IsHovered now works properly
  • FIX: Fixed widget_base producing Lua errors
  • FIX: Fixed changing Lua variables of SWEPs in hooks such as GM:WeaponEquip not being applied to engine functions instantly
  • FIX: Fixed first HUD_PRINTCENTER message being wrong color
  • FIX: Fixed a crash issue with Panel.GetChild
  • FIX: Fixed Entity.GetPoseParameterName crashing the game with invalid values
  • FIX: Fixed an issue with string.GetFileFromFilename
  • FIX: Fixed Weapon.LastShootTime being always 0 serverside
  • FIX: Player.SetMuted()’s first argument now actually works
  • FIX: DComboBox.Clear now resets the selected item
  • TTT GAMEMODE CHANGES:
  • NEW: Added hooks to allow easier modification of corpse id/search behavior
  • NEW: Added check if player is alive when testing players
  • NEW: Added C4 Hooks
  • NEW: Added some useful things
  • NEW: Added check if player can carry loadout weapons
  • NEW: Added GenerateNewEquipmentID() to avoid overriding Equipment IDs
  • NEW: Added new “TTTCanOrderEquipment” hook to prevent people from buying equipment
  • NEW: Added new “TTTSelectRoles” Hook
  • FIX: Fixed C4 wire cut sound error
  • FIX: Fixed very old C4 Bug
  • FIX: Fixed for traitor buttons having awkward init/render behavior
  • FIX: Fixed missing background of score panel
  • FIX: Fixed enter button for disguiser
  • FIX: Fixed a Lua error regarding weaponry
  • FIX: Fixed Anti-AFK Exploit
  • FIX: Fixed End Round Timer not stopping when forcing round restart
  • FIX: Fixed spectator mode not syncing after level change
  • FIX: Fixed silenced pistol retaining sights despite holstering
  • UPD: Streamlined and better options
  • UPD: Force all players to innocents on preparing
  • UPD: Micro-optimization
  • UPD: Call GM:PlayerLoadout as hook
  • DEL: Removed fingerprint functionality from beacons

New in Garry's Mod (GMOD) 02.16.17 (Feb 16, 2017)

  • An update has been released which fixes an issue that allows malicious clients to cause game-servers to crash. If you don’t want this to happen to your server, you should update it.
  • All dedicated servers should be updated through either your Game Server Provider’s control panel or SteamCMD.

New in Garry's Mod (GMOD) 12.19.16 (Dec 19, 2016)

  • Game Changes:
  • NEW: Added ‘-nogammarmap’ command-line parameter. This will disable the game’s built in gamma correction and use your system’s settings
  • NEW: Hunter helicopters now perform behaviour from Half-Life 2: EP1 and EP2
  • UPD: Server browser now shows more servers and ranks them slightly differently
  • UPD: Burning props no longer have their gibs ignited on destruction. This was causing some performance issues
  • UPD: Disabled the VGUI hotkey system (freaky internal behaviour that made ampersands work weirdly)
  • UPD: Improved error messages when failing to initialize the Steam API
  • UPD: Updated resource/HALFLIFE2.ttf
  • UPD: Re-enabled some fixes for d1_trainstation_05/ep2_outland_01 plug sockets
  • UPD: Improved performance of voice-chat mouth movement animations
  • UPD: Improved performance of traces (traces that have a function as their filter no longer have the filter called way too many times)
  • UPD: Improved performance when checking if entities have a RenderOverride method
  • FIX: Fixed some animations not looping (e.g. noclip animation)
  • FIX: Game no longer crashes when applying decals to models with a high amount of polygons
  • FIX: Fixed buggy behaviour when a player dies whilst climbing a ladder
  • FIX: Fixed crash that occured when printing some characters to the console when Windows is set to use certain non-english languages
  • FIX: Game no longer attempts to load vaudio_miles module. This caused issues for some people who had weird installations of the Source SDK on their system
  • Lua API Changes:
  • NEW: Added Entity.GetFlexIDByName
  • NEW: Added Player.SimulateGravGunPickup, Player.SimulateGravGunDrop
  • NEW: Added Player.GetPreferredCarryAngles
  • NEW: Added ITexture.__tostring
  • UPD: GetConVar moved from C to Lua, results are now cached
  • UPD: IMaterial.__tostring now acts more similarly to other __tostring metamethods in the game
  • FIX: game.CleanUpMap no longer crashes when called too early on maps containg AI nodes
  • FIX: game.GetTimeScale/game.GetSkillLevel now return nothing when called too early
  • FIX: Entity.GetPoseParameterName no longer crashes when given an invalid input
  • FIX: RunConsoleCommand’s error message now ends with a new-line when trying to run a blocked command
  • FIX: render.PopFilterMag/render.PopFilterMin now properly apply changes when the filter stack is emptied
  • FIX: render.Pop* functions no longer crash the game when over-popping
  • GMadChanges to the GMad program:
  • UPD: Improved error messages when trying to create addons

New in Garry's Mod (GMOD) 10.28.16 (Oct 28, 2016)

  • NEW:
  • Added “Fetching Subscriptions” progress window to the main menu
  • Added boolean parameter to render.RedownloadAllLightmaps to apply lighting changes to static props
  • UPD:
  • Holding attack whilst opening the weapon selection dialog no longer instantly changes weapon
  • Adjusted HL2 weapons’ idle times to match sv_defaultdeployspeed ConVar
  • Deploy animation of the fists SWEP now obeys the sv_defaultdeployspeed ConVar
  • Automatically named procedural texture names (__vgui_texture_XXX) are now recycled to help avoid “CUtlRBTree overflow!” engine error
  • Removed the unnecessary check for whether the user owns Source SDK Base 2006
  • FIX:
  • Player shadows no longer get clipped within the players’ render bounds
  • Inactive weapons’ shadows are no longer drawn in 3rd-person mode
  • AvatarImage panels’ fallback image no longer (sometimes) renders at the incorrect size
  • Numeric values inside DComboBox are now sorted properly
  • Using the light tool on the world will no longer cause errors
  • Fixed an issue preventing addons adding custom spawnlists with spawnmenu.AddPropCategory, even though they really shouldn’t be allowed
  • Fixed mounting of gamemodes/*/content for gamemodes inside GMAs
  • Fixed PreCleanupMap hook not being called on client
  • Fixed a crash related to rendering many ropes in a single frame
  • Fixed massive FPS loss when Entity.Set(Sub)Material is used with unloaded materials
  • Fixed compression artifacts that were on the gui/corner… materials
  • DEL:
  • render.RedownloadAllLightmaps defaults to old behavior (The original change was slow and caused issues on large maps)
  • Undone EffectData() changes from the latest update (until we find a way not to break ShellEject effects)

New in Garry's Mod (GMOD) 10.10.16 (Oct 10, 2016)

  • This update brings the following to Garry’s Mod:
  • Peer-To-Peer friends only mode – Enable this to only allow friends to join your games
  • Substantial updates & optimization to Sandbox and User Interface
  • NPC networking optimizations
  • Numerous crash & security fixes
  • New main menu backgrounds created by the community
  • Numerous Physics gun improvements
  • Engine Changes:
  • NEW: Mouse sensitivity can no longer be set greater than 10,000
  • FIX: Trying to load a texture with an empty name no longer leaks memory
  • FIX: Vehicles no longer crash the server when attempting to disable their engines too soon after being spawned
  • FIX: Manhacks without a valid physics object will no longer crash the game
  • FIX: prop_dynamics entities no longer crash the game when created too early
  • FIX: func_precipitation no longer crashes when using an unsupported precipitation type (fixes issues on some L4D maps)
  • FIX: Multiple issues caused by weapons with having no owners no longer crash the game
  • FIX: menu_cleanupgmas console command no longer crashes when the game is launched with -noworkshop
  • FIX: menu_cleanupgmas console command no longer freaks out when the client has 0 subscriptions
  • FIX: Auto-Refresh will no longer crash the game when files with a strange include-pattern exist, such as two files that load each other
  • FIX: Fixed dumpstringtable* console commands being registered multiple times
  • UPD: Updated SQLite version from 3.6.23.1 to 3.12.2
  • UPD: Updated FreeImage version from 3.15.3 to 3.17.0
  • UPD: Updated BASS to version 2.4.12
  • UPD: Client->Server bandwidth is no longer constantly increased whilst keys are being held down
  • UPD: SENT/SWEP render groups now default to the engine’s default instead of OPAQUE
  • UPD: Lua console commands are now removed on disconnection/level change
  • UPD: Receiving non-existant replicated ConVars no longer spams the console with warnings
  • UPD: VGUI panels created by the engine can no longer be removed by Lua
  • UPD: Entities now have the modelscale keyvalue and SetModelScale input from newer versions of Source
  • UPD: NPC IK calculations are no longer networked from clients to the server, this means having a bunch of NPCs won’t disconnect/lag clients horrifically
  • UPD: Clientside auto-refresh no longer depends on the placement of serverside AddCSLuaFile calls
  • UPD: Updated SourceSDK/HL2 content
  • UPD: g_sky shader can now display up to 3 star layers
  • UPD: env_skypaint positions star textures based on the client’s time instead of the server’s time (fixes some jittery movement for internet games)
  • UPD: ClientLeafSystem can now contain many more entries
  • UPD: PNG/JPEG textures/materials are now properly garbage collected and will be free’d on a level change
  • UPD: Certain addons will no longer cause water reflections/refraction to stop working properly
  • UPD: Sprites now render facing the correct direction in mirrors and water reflections/refraction
  • DEL: Removed auto generated files to fix the “1 file failed to pass validation” on Steam after starting the game
  • DEL: Removed FCVAR_ARCHIVE from npc_height_adjust ConVar
  • DEL: Removed the func_physbox hack for d1_trainstation_05 as it seems to work without it now
  • Game Changes:
  • NEW: Added new main menu backgrounds
  • NEW: env_skypaint now has an option to change the number of star layers rendered
  • NEW: Added reload_legacy_addons console command
  • NEW: Added gmod_drawtooleffects ConVar to hide certain tool UI and Effects
  • NEW: Added p2p_friendsonly ConVar
  • NEW: Added -noaddons command-line parameter which will disable legacy/folder addons when set
  • FIX: NPCs no longer become invisible when a player noclips in to them
  • FIX: Certain vehicles/NPCs are no longer silent when spawned outside of the client’s audible area
  • FIX: Fixed some PHX materials becoming completely invisible when they are rendered with an alpha less than 255
  • FIX: Fixed physics mesh for modelsprops_phxgearsbevel90_24.md, arm_base_b.mdl & metal_plate_pipe.mdll
  • FIX: RPG launcher no longer spams sounds on first equip in multiplayer
  • FIX: Fixed Model Viewer background for Hammer
  • UPD: Added missing TF2 & L4D1 map icons
  • UPD: Updated all default spawnicons
  • UPD: Updated seats/chair models – more accurate physics mesh and additional Hitboxes to allow getting damaged in those seats
  • UPD: Updated Crossbow materials to remove pixelated reflections from the scope
  • DEL: Removed the “VehicleType:prop_vehicle_jeep” console message when entering vehicles
  • Physgun:
  • NEW: Added physgun_maxrange ConVar
  • FIX: Physgun beams no longer lag behind when moving non-MOVETYPE_VPHYSICS entities
  • FIX: Physgun angle-snapping no longer jitters between snapped/unsnapped when releasing shift/use
  • FIX: The Physgun can now only rotate NPCs without physics objects around their yaw axis
  • FIX: The Physgun no longer encounters gimbal lock when rotating around pitch axis
  • Tools:
  • NEW: All tools now use the new help system
  • NEW: All tools (where applicable) are now using model whitelists to prevent abuse
  • NEW: The paint tool now clears decals on the target entity when the reload key is pressed
  • NEW: Added limit to the Camera tool (defaults to 10)
  • NEW: Added a new Hoverball moDEL: NEW: Added Partial “Right Click > Edit Properties” support for Balloon, Button, Dynamite, Emitter, Hoverball, Lamp and Light tools
  • FIX: The inflator tool should no longer freak out on high latency servers
  • FIX: The paint tool no longer applies the decals twice on client and it no longer plays the sound twice in multiplayer
  • FIX: The muscle tool’s “Start On” option is now functional
  • FIX: Fixed being able to bypass the light tool’s multiplayer limit with Duplicator
  • FIX: Fixed being able to bypass the “Cleanup” menu with duplicator
  • FIX: Fixed the camera tool adding 1 extra undo when duplicated
  • UPD: The color tool copies the target entity’s color on right-click and resets the color on reload
  • UPD: The material tool now copies the target entity’s material on right-click and resets the material on reload
  • UPD: The inflator tool now scales adjacent bones properly
  • UPD: The faceposer tool can now be used on prop_effect entities
  • UPD: Increased the limit of lights created by the light tool
  • UPD: Dynamite damage is now clamped properly and cannot be bypassed
  • UPD: Duplicator will now transfer data in parts instead of failing when the dupe is too large
  • Tool UI:
  • NEW: Auto Stretch UI for Paint Tool
  • NEW: All prop select panels are now auto sizing in height
  • UPD: Changed the material tool’s context menu to show 4 materials per row
  • UPD: Lamp Tool – MatSelect is now 4 images tall
  • UPD: Rearranged some controls for tool settings to be more consistent
  • UPD: Many improvements to Spawnmenu UI to be less laggy, better scaling, ability to manually resize spawnmenu parts, etc
  • Lua API Changes:
  • NEW: Added PANEL:OnKeyCodeReleased() hook
  • NEW: Added CRecepientFilter support for net.Send
  • NEW: Added IGModAudioChannel:GetAverageBitRate()
  • NEW: Added Player.AccountID
  • NEW: Added Panel:GetDockMargin & Panel:GetDockPadding – both return 4 numbers
  • NEW: Added IMaterial:GetVector that returns proper ‘unclamped’ values
  • NEW: Added ProjectedTexture:SetOrthographic
  • NEW: Added ProjectedTexture:GetOrthographic
  • NEW: Added CNewParticleEffect.Render()
  • NEW: Added CNewParticleEffect.SetShouldDraw( bool )
  • NEW: Added CNavArea.__eq
  • NEW: Added FFT_32768
  • FIX: steamworks library will no longer cause crashes when called shortly before the Lua state is destroyed
  • FIX: Fixed timer library in menu state temporarily ceasing to work after starting a new map
  • FIX: Fixed Entity:SetEyeTarget() having no effect on “anim” type SENTs
  • FIX: Fixed ‘/**/’ being treated as ‘/*/’ in lua lexer (not closing the comment)
  • FIX: Fixed not being able to create more than one font with different scanline sizes but otherwise identical parameters
  • FIX: Entity.GibBreakClient will no longer crash when used on brush entities ( Can only be called on non BaseAnimating entities )
  • FIX: cam.Start now supports “poster” console command in 3D mode
  • UPD: render.RedownloadAllLightmaps now updates lighting on static props as well
  • UPD: EffectData() now resets its member values
  • UPD: Vector() * nil will now error instead of returning empty vector
  • UPD: Proper NULL checks for most Vehicle class functions to prevent crashes
  • UPD: game.LoadNextMap, game.SetTimeScale, game.SetSkillLevel, game.GetTimeScale, game.GetSkillLevel no longer crash when g_pGameRules = null
  • UPD: Weapon.GetPrintName is now shared
  • UPD: Renamed IMaterial:GetVector to IMaterial:GetVectorLinear
  • UPD: Panel.Remove now causes parent to InvalidateLayout
  • UPD: Panel.SizeToChildren does not fail to resize to 0 values
  • UPD: Angle() global function now works the same way as Vector() global, i.e. Giving it an Angle object will return a copy of it, etc
  • UPD: gmod_tool:CheckLimit() is now shared
  • User Interface Panels:
  • NEW: DIconLayout – Added SetStretchWidth & SetStretchHeight to enable/disable auto stretch of the panel
  • NEW: DBinder – Added OnChange hook
  • NEW: DColorPalette – added ResetSavedColors & better Paint function to account for children & “networking” of the palette changes
  • NEW: DComboBox – Proper sorting and ability to disable it
  • NEW: DAlphaBar – better background grid code for super tall sizes
  • NEW: DColorMixer – DColorPalette got new right click menu with ability to reset the palette
  • FIX: DScrollPanel – Fixed up resizing putting scroll position too far down in some cases
  • FIX: MatSelect – Fixed the panel not rebuilding when needed and fixed child size calculation for child sizes less than 1 to take into account spacing and padding
  • FIX: DFileBrowser – Fixed Clear() leaving some variables to a chance of inheriting values of a global variable named “_”
  • FIX: DPanelSelect – Fixed the panel not restoring old PaintOver()s
  • FIX: DTree_Node – Fixed wildcard not properly applying to child elements
  • FIX: DListView – Fixed white line in the middle of a line when line height is set to high values
  • FIX: DTree_Node (DTree) first expansion will no longer try to expand to a size higher than necessary
  • FIX: DLabelEditable – You can no longer use translated strings with this panel (sort of)
  • FIX: PropSelect – Auto vertical height support
  • UPD: DHorizontalDivider – Many IsValid checks, better handling of resizing to prevent firing PerformLayout every frame
  • UPD: DNumSlider – SetDecimals now refreshes the displayed number
  • GitHub changes:
  • NEW: Added PrintNames to sandbox entities
  • NEW: Added snow with normal friction
  • NEW: Added derma_controls_menu ConCommand
  • NEW: Added Newline support for notification library
  • NEW: GWEN* functions now accept material override
  • NEW: New spawnmenu hover/selected graphics
  • NEW: Added support for mods to be able to add custom Thruster effects
  • FIX: Fixed thruster rendering
  • FIX: Fixed Sandbox hints being misplaced on low FPS
  • FIX: Fixed DTileLayout in derma_controls
  • FIX: Fixed spawnmenu dragndrop leaving cursor enabled
  • FIX: Fixed CtrlNumPad firing PerformLayout too often
  • FIX: Fixed spawnmenu_reload duplicating spawnlists
  • FIX: Fixed DTileLayouts SpaceX/Y & Border
  • FIX: Fixed OnRowSelected not being called for SHIFT selecting
  • FIX: Fixed PropSelect not restoring PaintOver functions
  • FIX: Fixed an issue with Browse section
  • FIX: Fixed Panel.DoModal breaking DComboBox functionality
  • FIX: Fixed main menu map names overflowing
  • FIX: Fixed Tool Ghosts being left behind in multiplayer
  • FIX: Fixed a stack overflow with DListView
  • FIX: Player.CheckLimit will no longer error clientside
  • FIX: Fixed string.ToColor with invalid string input
  • FIX: Fixed some problems with the cookie library
  • UPD: Moved Tool Gun’s PrintName Shared
  • UPD: Saves will now save vertical angles and noclip state
  • UPD: Improved NPC and ragdoll dupe support
  • UPD: Loading saves in singleplayer now restores position
  • UPD: Improved Inflator
  • UPD: Improved handling of horizontal divider in Q menu
  • UPD: Auto refresh now also reloads SWEP bases
  • UPD: Updated dragndrop library
  • UPD: Renamed DLabelEditable.OnTextChanged to DLabelEditable.OnLabelTextChanged
  • UPD: Do not allow editing of nodes that don’t save
  • UPD: Do not rebuild the search results so often
  • UPD: Prop search now auto updates the search results
  • UPD: Cleaned up DPropertySheet + PropSelect
  • UPD: Populate spawnmenu tabs as soon as possible
  • UPD: Cleaned up more vgui panels
  • UPD: Improvements to DCollapsibleCategory
  • UPD: Given DAdjustableModelPanel an example
  • UPD: Updated DCollapsibleCategory rendering
  • UPD: Improved Main Menu scaling for small screens
  • UPD: Improved the “bad model” filter for Sandbox
  • UPD: Updated color mixer alpha background
  • UPD: Improved default spawnicon generation angles
  • UPD: Remove prop_effect if its prop_dynamic is deleted
  • UPD: Clamped Rope tools’ addlength argument
  • UPD: Improved sandbox search
  • UPD: Alphabetized cleanup/max menus
  • UPD: Fixed some NPCs not being able to be duplicated
  • UPD: Better Enabled/Disabled support for DTextEntry
  • UPD: Updated Spawnicon generation for certain models
  • UPD: Updated Spawnicon Editor
  • TTT Gamemode Changes:
  • NEW: Added an option to mute all players if you are dead
  • NEW: Added missing translations for weapon menu
  • NEW: Added a ShouldScore() query at the point where deaths get added. (This helps some addons like the Power Round Addon.)
  • NEW: Added hook to set scoreboard row color per player (GM:TTTScoreboardRowColorForPlayer)
  • UPD: Bumped TTT version
  • UPD: Replaced deprecated function calls with non-deprecated alternatives
  • UPD: Major optimizations to start round and WEPS.ForcePrecache
  • UPD: Improved Autocomplete
  • UPD: Replaced most UniqueID usage with SteamID
  • UPD: Updated Traditional Chinese translation
  • UPD: Updated German translation
  • UPD: Improved some German translations
  • UPD: Switched some entities to use new Lua API
  • UPD: Corrected some strings in German translation
  • FIX: Fixed radio calling out dead players
  • FIX: Fixed spectators being able to own weapons
  • FIX: Fixed possible script error
  • FIX: Fixed rare cl_hudpick error
  • FIX: Fixed error when using “wepswitch” concommand
  • FIX: Fixed identation in some weapon files
  • FIX: Fixed up weapon base file
  • FIX: Fixed a small issue and remove some unused things
  • FIX: Fixed an issue with the Newton Launcher
  • FIX: Fixed hiding crosshair breaking Help UI
  • FIX: Fixed Beacon item
  • DEL: Removed some unused variables and fixed some smaller things
  • DEL: Removed old fretta leftovers
  • DEL: Removed unused things
  • DEL: Removed unused variable and fixed a small issue
  • Community Contributions:
  • NEW: Added Undone_Manhack and Undone_Rollermine language strings
  • NEW: Added duplicator support to the Eye Poser tool
  • NEW: Added large ammo entities to the spawnlist
  • NEW: Added alpha support for DModelPanel
  • UPD: Moved DTabs in DPropertySheet a bit to fix a visual glitch
  • UPD: Replaced deprecated function calls with non-deprecated alternatives
  • UPD: SBox+Base: Replaced deprecated function calls with non-deprecated alternatives
  • UPD: Refactored DTab height to its own method
  • UPD: Made DMenu.AddSpacer use the SKIN:PaintMenuSpacer hook
  • UPD: Renamed table for entity outputs in base entity
  • UPD: Optimized string.Explode and string.Replace
  • UPD: Optimized math.Approach
  • UPD: Reversed math.Dist and math.Distance definitions
  • UPD: Reused CEffectData in selection_indicator effect
  • FIX: Fixed a typo in a comment
  • FIX: Fixed a tiny spelling mistake in a comment
  • FIX: Fixed backwards bunnyhopping
  • FIX: Fixed entity autoreload not updating children
  • FIX: Fixed DCollapsibleCategory animation sometimes not finishing
  • FIX: Fixed multiple issues with DCollapsibleCategory
  • FIX: Fixed SKIN:PaintListView not respecting PaintBackground property
  • FIX: Fixed debug.Trace formatting
  • FIX: Fixed TOOL.GetClientNumber accepting strings as the default value
  • FIX: Fixed DImage erroring while being drag’n’dropped
  • FIX: Fixed info_player_deathmatch having a higher chance of being selected as a spawnpoint
  • FIX: Fixed a problem with Bodygroups property and its interaction with 3rd party mods
  • DEL: Removed SWEP.Precache
  • DEL: Removed unused variable
  • DEL: Removed useless nil check in DNumSlider

New in Garry's Mod (GMOD) 07.06.16 (Jul 7, 2016)

  • PEER-TO-PEER LISTEN SERVERS:
  • Servers that are created via the main-menu’s “Start New Game” button can now be connected to via Steam’s P2P networking. This means that – on most networks – friends are able to connect to each other’s games without any special network configuration being required (e.g. port forwarding).
  • To use it, all you have to do is use your friends list to join/invite a friend!
  • QUEUED (MULTI-CORE) RENDERING:
  • This isn’t finished yet, but queued rendering should be pretty robust now. Any changes in performance are entirely dependent on your hardware and the scene being rendered.
  • You can enable it by running a few commands when you launch the game (press Shift+Escape to open the console):
  • gmod_mcore_test 1
  • mat_queue_mode -1
  • cl_threaded_bone_setup 1
  • OTHER CHANGES:
  • NEW: Added mat_requires_rt_alloc_first ConVar from upstream.
  • UPD: Lua console commands are now removed when disconnecting from a server/changing level.
  • FIX: Replicated Lua ConVars are now properly synched with the server.
  • FIX: Scripted weapons now function correctly when switching to a weapon with no ammo.
  • FIX: Clients will no longer be disconnected with the reason “CL_CopyExistingEntity: missing client entity”.
  • FIX: Crouch-jumping will no longer cause the screen to flicker after a certain amount of server up-time.
  • FIX: Fixed rare crash that occurs when increasing the outgoing network buffer size for game-state snapshots.
  • FIX: Ropes no longer cause the game to not properly close on exit.
  • FIX: Fixed issue that could cause the “GetLuaTable != TABLE” crash to occur on level change.
  • FIX: file.Find() now sorts its results properly. The default behavior is unchanged.
  • FIX: HTTP() no longer leaks request references and won’t crash if the Lua state is destroyed during a request.
  • FIX: Some security fixes.

New in Garry's Mod (GMOD) 04.28.16 (Apr 28, 2016)

  • ENGINE CHANGES:
  • NEW: Added ‘mat_reloadtexture’ console command. It reloads a single texture
  • NEW: Added ‘sv_crazyphysics_wheels’ console variable. Toggles crazy physics detection for vehicle wheels
  • NEW: Added lua_findhooks (contribution by TheFreeman193)
  • NEW: Support for AE_CL_STOP_PARTICLEEFFECT & AE_CL_ADD_PARTICLE_EFFECT_CP
  • FIX: Texture auto-refresh no longer reloads every texture in the game and can reload JPEGs
  • FIX: Fixed TLK_PLAYER_ASK_FOR_BALL console warning message
  • FIX: Fonts on Windows and OSX can now display non-latin characters
  • FIX: Fonts contained within Workshop addons are now properly loaded
  • FIX: HTML panels and anti-aliased text are now correctly alpha-blended on OSX
  • FIX: The game can now be played on OSX from case-sensitive filesystems such as NTFS
  • FIX: Workshop Lua files now emit errors with the correct file path
  • FIX: Gamemodes within addons now have their ‘entities’ and ‘content’ directories mounted
  • FIX: Cyclic entity parenting no longer crashes the game
  • FIX: Navigation meshes can now be loaded from within addons
  • FIX: Engine tools now work. You can access them by launching the game with the “-tools” parameter
  • FIX: Airboat guns no longer cause a crash if fired as a player is joining
  • FIX: Airboats no longer cause a crash when attempting to eject a NULL player
  • FIX: Multiple bug fixes for hammer
  • FIX: Armor is now networked as a 32-bit unsigned integer
  • FIX: Health and max-health now properly update when changed on “anim” SENTs in singleplayer
  • FIX: “kill” input no longer puts players in an invalid inescapable state
  • FIX: The pistol now uses less network bandwidth when equipped
  • FIX: Fixed corruption in the SVC_PacketEntities net message. This should stop disconnections from servers with ‘random’ reasons and some other odd behaviour
  • FIX: Fixed crash issues with npc_cscanner
  • FIX: Fixed Nextbot NPCs being deleted on map spawn
  • FIX: Fixed a crash related to creating particle effects
  • FIX: Fixed crash when CNewParticleEffect has an invalid particle collection
  • FIX: Fixed detection of VRAM size when you have more than 2GiB
  • FIX: Fixed hang when loading certain fonts
  • FIX: NPCs will now play footsteps when walking
  • FIX: Fixed HTML menu erroring when loaded outside GMod (contribution by Bo98)
  • UPD: The max size of reliable snapshots has been increased from 256KiB to 1024KiB. This should reduce or eliminate any “Couldn’t send snapshot.” errors
  • UPD: Major improvements to text rendering on OSX
  • UPD: The console can now be opened by pressing shift+escape. The old behaviour remains unchanged
  • UPD: Improved delta encoding of ragdoll bone positions/angles. They should now use slightly less bandwidth
  • UPD: Improved the error message emitted when patch materials have failed to load
  • UPD: Limited length of URL in JavaScript error prints
  • UPD: Improved GMA mounting performance
  • UPD: gamemodes/, lua/, addons/ can no longer be marked for FastDL downloads
  • UPD: Game will no longer try to load non TTF fonts and crash
  • GAME CHANGES:
  • FIX: Doors now properly play their open/close sounds even when penetrating the world
  • FIX: Fixed vertical text alignment on spawnicon labels
  • FIX: Entity spawn/remove effects should now always play properly in Sandbox
  • FIX: Footsteps now properly alternate between left/right clientside
  • FIX: Animations such as swimming and crouching are now properly applied to all players
  • FIX: Clientside debris will no longer get stuck inside itself
  • FIX: S.L.A.M. weapons now play their sounds (still requires HL2:DM)
  • FIX: Suit rechargers now stop playing their sounds when removed
  • FIX: weapon_rpg no longer plays its holster sound every time it leaves the PVS
  • FIX: Chatbox auto-completion no longer fails when a player’s name contains certain characters (contribution by Chewgum)
  • FIX: Players can no longer noclip when dead (contribution by code_gs)
  • FIX: Footsteps no longer play while players are dead (contribution by code_gs)
  • FIX: Fixed bypass of certain prop-protection addons when right clicking with Hydraulic/Muscle/Slider/Winch tools (contribution by Mista-Tea)
  • FIX: Ceiling turrets no longer play infinite sounds when removed
  • FIX: Fixed npc_grenade_frag creating new effects when picked up by gravity gun without deleting the old ones
  • FIX: Fixed Estonian language having Ethiopian flag
  • FIX: Fixed duplicator support for old Scripted Entities
  • FIX: Fixed face poser not posing the last flex on some models (contribution by NO-LOAFING)
  • UPD: Prop spawn/Entity Removed effects now appear properly all of the time
  • UPD: Updated some pre-rendered spawnicons
  • UPD: Corpses in Trouble in Terrorist Town now retain any blood splatters and the colour of the deceased player
  • UPD: Disallowed non admins to edit admin only entities
  • DEL: Removed unused html files
  • TTT GAMEMODE CHANGES:
  • UPD: Corpses in TTT now look like the dead player
  • UPD: Fixed weapon shortage on CSS maps
  • LUA API CHANGES:
  • NEW: CRecipientFilter:AddRecipientsByTeam( teamid )
  • NEW: CRecipientFilter:RemoveRecipientsByTeam( teamid )
  • NEW: CRecipientFilter:RemoveRecipientsNotOnTeam( teamid )
  • NEW: debugoverlay.Grid( Vector )
  • NEW: debugoverlay.ScreenText( x, y, txt, duration, clr ) ( x/y 0-1 )
  • NEW: debugoverlay.Triangle( vec1, vec2, vec3, duration, clr, ignorez )
  • NEW: debugoverlay.SweptBox( vStart, vEnd, vMins, vMaxs, dur, clr )
  • NEW: debugoverlay.EntityTextAtPosition( pos, line, txt, durat, clr )
  • NEW: Entity:GetBaseVelocity()
  • NEW: Entity:SnatchModelInstance( srcEntity )
  • NEW: Entity:TestPVS( testPoint )
  • NEW: ents.FindInPVS( viewPoint )
  • NEW: CUserCmd:IsForced()
  • NEW: Clientside bindings for creating and manipulating Projected Textures
  • NEW: Added __tostring metamethods for File and ConVar
  • NEW: Added Player:GetHull()
  • NEW: Added Player:GetHullDuck()
  • NEW: Added Entity:GetChildren()
  • NEW: Added “extended” option to surface.FontCreate
  • NEW: Added IMaterial:GetKeyValues()
  • NEW: Added DComboBox.GetOptionTextByData
  • NEW: Added render.SuppressEngineLighting to halo library (contribution by Luabee)
  • NEW: Added Particle convenience function (contribution by code_gs)
  • NEW: CreateClientConVar now supports help text (contribution by code_gs)
  • FIX: CRecipientFilter:GetPlayers and CRecipientFilter:GetCount now ignore null players
  • FIX: Entity:GetFlexName and Entity:GetFlexBounds no longer perform undefined behaviour when called with invalid IDs
  • FIX: game.CleanUpMap should now always respawn doors properly
  • FIX: Entity:SetSaveValue can no longer write to entity inputs (and then crash)
  • FIX: Entity:WaterLevel now returns correct results clientside when ran on other players
  • FIX: Entity:IsOnGround now returns correct results clientside when ran on other players
  • FIX: util.TableToJSON no longer treats non-sequential tables as sequential
  • FIX: surface.GetTextSize now returns correct results on OSX
  • FIX: ents.FindByModel now returns correct results clientside
  • FIX: markup.Parse no longer errors when attempting to wrap an empty string
  • FIX: Traces created within Lua can now use MASK_ALL
  • FIX: SKIN:SchemeTextEntry now works properly with Panel:SetSkin (contribution by Bo98)
  • FIX: Fixed ents.FindInSphere clientside working as ents.FindInBox
  • FIX: Partially fixed ents.FindInCone ( Still need to figure out the angle argument )
  • FIX: Fixed some issues with PlayerButtonDown and PlayerButtonUp hooks
  • FIX: Fixed DHTMLControls (contribution by Bo98)
  • UPD: SetClipboardText now works with non-latin text
  • UPD: file.Open can now write “.vtf” files
  • UPD: Added viewCheck parameter to debugoverlay.Text
  • UPD: Derma checkboxes can now use custom fonts (contribution by Donkie)
  • SECURITY CHANGES:
  • FIX: Stopped certain file names from tricking the netchannel’s security filters

New in Garry's Mod (GMOD) 03.31.16 (Mar 31, 2016)

  • This update is a small part of the previous update and focuses on fixing crashes and exploits.
  • We apologize, once again, for the problems caused by previous update and will work towards fixing those problems as well as doing our best to prevent such things from happening in the future.
  • This update is optional, however it is strongly recommended for server owners to install it.
  • Clients will automatically update when you restart your game.
  • NEW:
  • Added whereis console command to menu state, helps with checking if addons are overriding a specific file
  • FIX:
  • Fixed SetParent making crazy-physics system mad. Vehicle wheels should stop disappearing
  • Fixed some crashes related to shadows
  • Fixed some crashes when NPCs take damage with a null inflictor
  • Fixed WorkshopDL addons not updating properly
  • Fixed issues where game.MountGMA would not always reload models properly
  • Fixed Lua panic when returning from lua_run, lua_run_cl, RunString, BroadcastLua, Player:SendLua
  • Fixed multiple DoS attack vectors
  • UPD:
  • Forced player simulation (when players are not sending usercommands) now increments command number & changes random seed

New in Garry's Mod (GMOD) 03.29.16 (Mar 29, 2016)

  • Crash and exploit fixes.

New in Garry's Mod (GMOD) 02.23.16 (Feb 23, 2016)

  • FIX: Parented entities (such as vehicle wheels) should no longer disappear after a while in certain cases
  • FIX: Game no longer crashes when attempting to mount a VPK archive twice
  • FIX: Legacy addons are mounted with lower priority if they contain files that might break sounds, materials, or the HUD
  • REV: Mounted GMAs are once again not refreshed on disconnect – it was really slow

New in Garry's Mod (GMOD) 02.22.16 (Feb 22, 2016)

  • Game Changes:
  • NEW - Added game.MountGMA( path )
  • NEW - Added File:ReadLine()
  • NEW - Anti-Cheat ConVars: sv_maxusrcmdprocessticks, sv_maxusrcmdprocessticks_holdaim, sv_maxusrcmdprocessticks_warning
  • NEW - Crazy physics ConVars: sv_crazyphysics_defuse, sv_crazyphysics_remove, sv_crazyphysics_warning
  • NEW - Hibernation ConVars: sv_hibernate_think & sv_hibernate_drop_bots
  • FIX - NextBots no longer simulate faster than normal players
  • FIX - Turrets’ sounds are now cleaned up properly on removal
  • FIX - AvatarImage panels no longer leak memory when removed
  • FIX - Toggling vehicle third-person is no longer wrongly predicted
  • FIX - CTriggerCamera entities no longer crash the game in multiplayer
  • FIX - Entity:SetSubMaterial() now works on bonemerged entities
  • FIX - Fixed sub-material overrides affecting the first rendered entity in certain hooks such as PostPlayerDraw
  • FIX - Entity:SetBoneMatrix() and Entity:GetBoneMatrix() no longer crash when given bad input
  • FIX - ConVars created with CreateConVar() and CreateClientConVar() now have their default value set and do not leak memory
  • FIX - Panel:SetPaintedManually() and Panel:PaintManual() now function correctly
  • FIX - VMatrix divisions no longer crash when given non-userdata input
  • UPD - Maps now prioritise content from their own game, this means that TF2 and Half-Life 2 maps load the correct content (postponed to future upate)
  • UPD - Left 4 Dead 2’s DLC content is now mounted
  • UPD - Anti-Speedhack improvements
  • UPD - Windows SRCDS console now outputs text with UTF-8 encoding
  • UPD - Crazy physics catching system has been improved, making it difficult to crash servers with physics quirks
  • UPD - Parallel snapshot sending is now disabled by default, this was a common cause of server crashes when lots of data was being transferred
  • UPD - Players are now simulated even when they are not sending any data to the server
  • UPD - Flagged some potentially abusable console commands as cheats
  • UPD - include() now passes returned values from the loaded file
  • DEL - Removed ConVars: sv_voicecodec, sv_max_usercmd_future_ticks, sv_removecrazyphysics

New in Garry's Mod (GMOD) 02.03.16 (Feb 3, 2016)

  • Changes:
  • FIX: Vector no longer returns an uninitialised vector object when called with zero arguments
  • FIX: Joining a server with the wrong password now gives the correctly translated “Bad Password.” response
  • FIX: Fixed inconsistent angle networking on Linux servers
  • FIX: Fixed exploitable behaviour in surface.CreateFont

New in Garry's Mod (GMOD) 02.02.16 (Feb 2, 2016)

  • Game Changes:
  • NEW: Added CNavArea.SetParent( CNavArea, type )
  • NEW: Added CNavArea.GetParent() – returns CNavArea
  • NEW: Added CNavArea.GetParentHow() – returns NavTraverseType
  • NEW: Added CNavArea.ClearSearchLists()
  • NEW: Added CNavArea.SetTotalCost( float )
  • NEW: Added CNavArea.AddToOpenList()
  • NEW: Added CNavArea.GetTotalCost() – returns float
  • NEW: Added CNavArea.IsOpenListEmpty()
  • NEW: Added CNavArea.PopOpenList() – returns CNavArea
  • NEW: Added CNavArea.IsBlocked()
  • NEW: Added CNavArea.IsOpen()
  • NEW: Added CNavArea.IsClosed()
  • NEW: Added CNavArea.RemoveFromClosedList()
  • NEW: Added CNavArea.UpdateOnOpenList()
  • NEW: Added CNavArea.AddToClosedList()
  • NEW: Added CNavLadder.ConnectTo( CNavArea )
  • NEW: Added net.WriteMatrix()
  • NEW: Added net.ReadMatrix()
  • NEW: Added support for ortho views in CalcView and cam.Start
  • NEW: Added (safe) ConVar methods: SetString, SetFloat, SetInt, SetBool
  • NEW: Added CNavLadder.SetBottomArea( CNavArea )
  • NEW: Added CNavLadder.GetBottomArea()
  • NEW: Added CNavLadder.SetTopBehindArea( CNavArea )
  • NEW: Added CNavLadder.GetTopBehindArea()
  • NEW: Added CNavLadder.SetTopForwardArea( CNavArea )
  • NEW: Added CNavLadder.GetTopForwardArea()
  • NEW: Added CNavLadder.SetTopLeftArea( CNavArea )
  • NEW: Added CNavLadder.GetTopLeftArea()
  • NEW: Added CNavLadder.SetTopRightArea( CNavArea )
  • NEW: Added CNavLadder.GetTopRightArea()
  • NEW: Added game.GetIPAddress()
  • NEW: Added game.KickID()
  • NEW: Added Player.AnimSetGestureSequence( slot, seq )
  • NEW: Added “body” and “type” for HTTP()
  • NEW: Added PathFollower:GetAllSegments()
  • NEW: Added CNavArea.GetExtentInfo()
  • NEW: Added “AllSolid” to trace result
  • NEW: Added optional parameter to poster command to save each frame as a separate image
  • FIX: Fixed VMatrix:SetScale() scaling the 2nd/3rd rows incorrectly
  • FIX: Fixed “destination group” problem in multiplayer with npc_template_maker
  • FIX: Fixed cyclic reference detection in util.TableToJSON
  • FIX: Fixed cyclic reference detection in PrintTable
  • FIX: Fixed buffer over-read in input library
  • FIX: Fixed collision bounds having no influence on nextbot navigation
  • FIX: Fixed net.ReadType for TYPE_NIL
  • FIX: Fixed debugoverlay spamming dedicated server console to oblivion
  • FIX: Fixed a multiplayer crash issue with combine auto cannon on ep2_outland_09
  • FIX: Possible fix for post processing shaders not working properly on Linux/OSX
  • FIX: Fixed model indices above 2048 not networking to clients properly
  • FIX: Fixed DFrame:Center when parented inside a panel not at [0, 0]
  • UPD: net.WriteType support for VMatrix
  • UPD: Catch crash condition in CBaseAnimating::TestHitboxes
  • UPD: Error/ErrorNoHalt now call menu state’s OnLuaError hook
  • UPD: Improved error handling for NextBot coroutines
  • UPD: Don’t try to load binary modules that have the same name as a base Lua module
  • UPD: Merged functionality of RunString/RunStringEx
  • UPD: Lua kick reasons can no longer be language strings
  • UPD: Home/End keys now work in Windows SRCDS consoles
  • UPD: Opening the chatbox while it is invisible/disabled no longer changes player view angles
  • UPD: Chatbox entry max char count is now correct (126)
  • UPD: TextEntry:OnTextChanged is now called after undo operation
  • UPD: -noworkshop now also prevents SteamAPI from being initialized too soon on dedicated servers
  • UPD: utf8.offset now conforms to Lua 5.3 spec
  • UPD: More friendly Steam API failure error messages ( for retrieving subscribed addons )
  • UPD: Updated the DirectX out of date popup to allow the user to try to launch the game anyway
  • UPD: Don’t let players enter vehicles that they are a parent of (stack overflows!)
  • UPD: Limited engine.LightStyle to values that do not crash the game ( 0-63 )
  • UPD: Stop g_blurx/g_blury shaders from increasing output brightness
  • UPD: ENT:SelectWeightedSequence & Weapon:SendWeaponAnim no longer crash when given invalid acts
  • UPD: Calling gui.HideGameUI at the wrong time no longer stops the HUD from rendering
  • UPD: Context menus no longer remain when their parent is focused
  • UPD: Changed scheme of ClientDLL context menus to match DMenu
  • UPD: Weapon selection via key bindings should now always work on SWEPs
  • UPD: Vector() can now take a Vector as its first argument and return a copy of that vector
  • GitHub changes:
  • FIX: Fixed DModelPanel:PreDrawModel scissor rect
  • FIX: Fixed HL1 sounds taking over HL2/CSS sounds
  • UPD: Check for vehicle function existence
  • UPD: Panel:IsChildHovered ‘immediate’ parameter
  • Community Contributions:
  • UPD: Optimized Panel:IsChildHovered()

New in Garry's Mod (GMOD) 01.19.16 (Jan 19, 2016)

  • Game Changes:
  • NEW: Added mat_viewportupscale to blocked convar list
  • NEW: Added PANEL:SetDrawLanguageID(bool), can be used to hide the language selection box in text entries when typing non-US/UK/whatever
  • NEW: Added loading bar text when waiting for Steam auth
  • NEW: Added command line option to cause BAssert to dump (Windows only)
  • NEW: Added bounds checking to render.GetScreenEffectTexture
  • NEW: Added Awesomium panel hooks: OnDocumentReady, OnChildViewCreated, OnChangeTitle, OnChangeTargetURL
  • NEW: Added Awesomium panel methods: Refresh, Stop, GoBack, GoForward, GoToHistoryOffset
  • NEW: Added Awesomium panel hooks: OnBeginLoadingFrame, OnFinishLoadingFrame
  • NEW: Added interface for concurrent async server content downloads. Currenty used for Workshop content.
  • NEW: Added extra debug output for BASS.DLL Initialization
  • NEW: Added test BASS.DLL config to hopefully help with weird “mp3s dont load with error 41″ cases
  • FIX: Fixed the “steam id 0 fake players inflate server player count” exploit
  • FIX: Fixed clientside SteamID spoofing
  • FIX: Fixed not being able to join a LAN server
  • FIX: Fixed npc_manhack not triggering npc_maker/npc_template_maker’s OnAllSpawnedDead output
  • FIX: Fixed a server crash caused by combine_mine changes in last update
  • FIX: Fixed a crash issue with “quit” commands on srcds when having workshop addons installed
  • FIX: Fixed a crash when entities with invalid physobjs were in the way of a rotating door
  • FIX: Fixed ai.GetScheduleID and ai.GetTaskID
  • FIX: Fixed a possible crash issue caused by global NW2Vars
  • FIX: Fixed buildcubemaps not working properly
  • FIX: Fixed Awesomium view leak
  • FIX: Fixed leaked thread in main-menu GMA downloader
  • FIX: Fixed addon extraction assert/leaked thread handles
  • FIX: Fixed incorrect line numbers being reported for errors when using C-styled multiline comments
  • FIX: Fixed Entity.IsRagdoll not working properly on client
  • UPD: Vehicle.IsValid is renamed to Vehicle.IsValidVehicle
  • UPD: All Vehicle methods will error “tried to use NULL vehicle” when used on invalid vehicle
  • UPD: Reduced worhless & confusing srcds console output for workshop
  • UPD: Switched some spammy serverside console output to DevWarnings
  • UPD: Replicated Lua ConVars now properly network to clients when they join the server (FCVAR_REPLICATED flag)
  • UPD: The console will no longer hide behind the main menu if you open it too early
  • UPD: Improved performance of file.Exists and file.IsDir
  • UPD: JavaScript errors in the console now show the file path and line number of the bad code
  • UPD: gui.SetMousePos and input.SetCursorPos no longer works while the game is not focused
  • UPD: system.HasFocus now also works on Linux and OSX on client
  • UPD: File library can now write png/jpg files
  • UPD: util.TableToJSON handles arrays properly
  • UPD: Proper alpha blending for Awesomium panels
  • UPD: Entity:GetNW2VarTable now returns the type associated with each value as well
  • UPD: Scripted NPCs and Nextbots now support the following clientside hooks: Initialize, Think, Draw and DrawTranslucent
  • UPD: Increased model precache limit to its TF2 4000 limit
  • UPD: WorkshopDL GetPublishedFileDetails no longer hangs main thread
  • UPD: Tweaks to server-content workshop downloading
  • UPD: Improved Addons main menu.. menu – Per tag browsing for friends items, hide dupes/saves from all listings
  • UPD: Updated language files
  • UPD: Addon extration is now properly displayed on the workshop downloader
  • DEL: Removed angle/vector pool debug message
  • Community Contributions:
  • NEW: Added PANEL.PreDrawModel( ent ) and PANEL.PostDrawModel( ent ) for DModelPanel
  • FIX: Fixed an issue with notification.AddProgress()
  • FIX: Fixed excessive balloon force crash
  • UPD: Cleaned up manifest file and added DoD voices
  • UPD: Disabled IK for DModelPanel
  • UPD: Replaced loads of ifs with ternary
  • UPD: Updated SWEP:ShootEffects comment
  • DEL: Removеd unused function and unwanted spaces
  • DEL: Removed unnecessary local
  • TTT:
  • FIX: Fix typo preventing ttt_weaponswitcher_displayfast from being saved.
  • NEW: Added ‘wep’ field to all was_pushed tables.

New in Garry's Mod (GMOD) 12.16.15 (Dec 16, 2015)

  • Game Changes:
  • DEL: Removed Panel.OnMousePressed method
  • DEL: Removed RawConsoleCommand
  • DEL: Removed the 8192 .lua file limit for singleplayer. (The limit still exists for multiplayer)
  • DEL: Removed the 20 character addon name limit for engine.GetAddons()
  • DEL: Removed soundscapes from fallbacks, they are all shipped in garrysmod.vpk now
  • DEL: Got rid of unnecessary Steam.dll dependency
  • FIX: Fixed Vehicle.IsBoosting crashing the game when used on a seat
  • FIX: Fixed physenv.AddSurfaceData only working once per map
  • FIX: Fixed TF2 .nav files crashing the game on map load
  • FIX: Fixed GetSaveTable() not properly handling some entity fields
  • FIX: Fixed RPG sound spam #2
  • FIX: Fixed triggerable soundscapes being removed when cleaning up the map
  • FIX: Fixed combine mines not detecting players in Single Player ( And player in the last player slot in multiplayer )
  • FIX: Fixed util.TraceLine and Entity:FireBullets not hitting player hitboxes outside of their hull if there is a prop behind said hitbox
  • FIX: Fixed gravity gun not calling OnFailedPhysGunPickup on any entity
  • FIX: Fixed not being able to grab a Magnusson Device from Jalopy’s back
  • FIX: Fixed Jalopy’s radar and added multiplayer support
  • FIX: Fixes d3_breen01 map getting stuck
  • FIX: Fixed Combine Mine leaving looping sound behind if removed while the sound is playing
  • FIX: Fixed a bug with Bugbait and Grenade weapons where you can have both stuck in unusable state
  • FIX: Fixed SF_TRIG_TOUCH_DEBRIS not working in any trigger entity
  • FIX: Fixed Weapon.GetActivity() not returning any values
  • FIX: Fixed unhandled usermessage 21
  • FIX: Fixed scripted entity names being restricted to 32 characters. ( Now restricted to 64 )
  • FIX: Fixed Player:GetEyeTrace not working correctly with lag compensation
  • FIX: Fixed prediction errors when walking or attempting to sprint while crouched
  • FIX: Fixed particle systems not obeying some attach types correctly
  • FIX: Fixed scenes not playing in some cases
  • FIX: Fixed some issues with player movement prediction
  • FIX: Fixed a client crash issue with some ragdoll models ( unreasonable position )
  • FIX: Fixed some things printing twice on Linux srcds
  • FIX: Fixed yet another DDoS exploit
  • FIX: Fixed some DoS exploits having to do with server log output
  • FIX: Fixed a security exploit
  • FIX: Fixed splitpacket server crash exploit
  • FIX: Fixed net library server crash exploit
  • FIX: Fixed yet another server crash exploit
  • FIX: Fixed CreateMaterial exploit
  • FIX: Fixed Player.Say exploit
  • FIX: Fixed an exploit/a bug that allowed people to get the “Play X days/months” achievements faster ( or slower )
  • UPD: Made the “DirectX Out of Date” message open the Support webpage and changed its text
  • UPD: Updated Awesomium to 1.7.5.1
  • UPD: PathFollower.Compute( pos, nextbot, function ) now has a third paramter – function( area, areafrom, ladder, elevator, length )
  • UPD: input.LookupBinding() now has a second parameter – exact
  • UPD: net.ReadData no longer tries to read 0-length or negative length data
  • UPD: sv_logsdir can no longer be used to write any file with any extension anywhere on your PC
  • UPD: file.Remove no longer can delete any file on your PC in menu state
  • UPD: Updated net_graph, sv_log(sdir), Orange Box .pcf particle system & bunch more things to their latest TF2 version
  • UPD: Updated All NPC/AI weapons except for Crossbow
  • UPD: Increased precision of integers for util.KeyValuesToTable
  • UPD: Enabled a some EP2 Alyx stuff – Entering Jalopy, etc.
  • UPD: Entity.RestartGesture() is now serverside only ( It never did anything on client )
  • UPD: Entity.SetWeaponModel()’s Weapon argument is now optional
  • UPD: Improved AI player detection in multiplayer ( It used to detect the last player on server, now properly detects the closest one )
  • UPD: Updated propdata.txt to contain Episodic stuff
  • UPD: Updated Steamworks API to latest version
  • UPD: Updated localization files
  • UPD: Moved some files from garrysmod.vpk to fallbacks.vpk ( HLS gibs, Alyx Gun epsodic sounds )
  • UPD: Some of gravity gun convars are no longer cheat only
  • UPD: Moved GetConVarNumber and GetConVarString to Lua for better performance
  • UPD: Ground speed for NPCs now takes model scale into account
  • UPD: Slightly improved player movement on moving props so they are less likely to be ejected
  • UPD: Moved some steamworks.* Lua functions to ISteamUGC
  • UPD: Entity.CreateParticleEffect() now returns the particle object it creates
  • NEW: Added gameui_show_dialog, buildcubemaps, voice_ and some snd_ commands to blocked cvar list
  • NEW: Added support for L4D1 & Retail Black Mesa Source maps
  • NEW: Added maps/*_particles.txt for HL2:EP2 maps
  • NEW: Added new TF2 map icons and a few L4D1 map icons
  • NEW: Added menu_cleanupgmas that cleans up unused .gma files
  • NEW: Added ACT_HL2MP_SWIM_IDLE & ACT_HL2MP_SWIM to Lua
  • NEW: Added new soundscript stuff from TF2 update
  • NEW: Added 2 new parameters for Entity.RestartGesture – autokill=true, addIfMissing=true
  • NEW: Added 6 missing silkicons
  • NEW: Added cfg/mapcycle.txt to stop invalid map version spam
  • NEW: Added -noworkshop command line parameter
  • NEW: Added possible ragdoll related physics crash prevention/fix
  • NEW: Added support for Steam game server accounts
  • NEW: Added font name to the “There was an error creating the font!”
  • NEW: Added Vehicle.IsValid – returns whether the actual VEHICLE is valid or not
  • NEW: Added Vehicle.SetPos( vector ) – Actually working SetPos for vehicles
  • NEW: Added system.IsWindowed()
  • NEW: Added input.LookupKeyBinding()
  • NEW: Added ENT:FireAnimationEvent() for “anim” type entities
  • NEW: Added ENT:HandleAnimEvent() for “anim” type entities
  • NEW: Added CNavArea.SetAttributes()
  • NEW: Added CNavArea.GetCostSoFar()
  • NEW: Added CNavArea.ComputeAdjacentConnectionHeightChange()
  • NEW: Added CNavLadder.GetLength()
  • NEW: Added navmesh.IsLoaded()
  • NEW: Added navmesh.SetMarkedArea()
  • NEW: Added navmesh.GetMarkedArea()
  • NEW: Added navmesh.SetMarkedLadder()
  • NEW: Added navmesh.GetMarkedLadder()
  • NEW: Added navmesh.GetEditCursorPosition()
  • NEW: Added navmesh.Reset()
  • NEW: Added navmesh.Load()
  • NEW: Added navmesh.Save()
  • NEW: Added CLuaLocomotion.IsAreaTraversable()
  • NEW: Added CLuaLocomotion.GetMaxJumpHeight()
  • NEW: Added PathFollower.ResetAge()
  • NEW: Added PathFollower.MoveCursorToClosestPosition()
  • NEW: Added PathFollower.GetHindrance()
  • NEW: Added PathFollower.GetCursorData()
  • NEW: Added PathFollower.GetCurrentGoal()
  • NEW: Added PathFollower.FirstSegment()
  • NEW: Added PathFollower.LastSegment()
  • NEW: Added ismatrix()
  • NEW: Added halo.RenderedEntity()
  • NEW: Added Entity.IsPlayingGesture()
  • NEW: Added Entity.AddGesture()
  • NEW: Added Entity.AddGestureSequence()
  • NEW: Added Entity.AddLayeredSequence()
  • NEW: Added Entity.IsValidLayer()
  • NEW: Added Entity.GetLayerDuration()
  • NEW: Added Entity.SetLayerDuration()
  • NEW: Added Entity.SetLayerPriority()
  • NEW: Added Entity.RemoveGesture()
  • NEW: Added Entity.RemoveAllGestures()
  • NEW: Added Entity.SetLayerCycle()
  • NEW: Added Entity.GetLayerCycle()
  • NEW: Added Entity.SetLayerPlaybackRate()
  • NEW: Added Entity.SetLayerWeight()
  • NEW: Added Entity.GetLayerWeight()
  • NEW: Added Entity.SetLayerBlendIn()
  • NEW: Added Entity.SetLayerBlendOut()
  • NEW: Added Entity.SetLayerLooping()
  • NEW: Added Entity.StopAndDestroyParticles()
  • NEW: Added Entity.StopParticlesNamed()
  • NEW: Added Entity.StopParticlesWithNameAndAttachment()
  • NEW: Added Weapon.GetWeaponViewModel()
  • NEW: Added Weapon.GetWeaponWorldModel()
  • NEW: Added Weapon.GetWeight()
  • NEW: Added Weapon.HasAmmo()
  • NEW: Added Weapon.AllowsAutoSwitchTo()
  • NEW: Added Weapon.AllowsAutoSwitchFrom()
  • NEW: Added CreateParticleSystem()
  • NEW: Added CNewParticleEffect.IsValid()
  • NEW: Added CNewParticleEffect.SetControlPoint()
  • NEW: Added CNewParticleEffect.SetControlPointOrientation()
  • NEW: Added CNewParticleEffect.SetSortOrigin()
  • NEW: Added CNewParticleEffect.GetEffectName()
  • NEW: Added CNewParticleEffect.StartEmission()
  • NEW: Added CNewParticleEffect.StopEmission()
  • NEW: Added CNewParticleEffect.GetOwner()
  • NEW: Added CNewParticleEffect.AddControlPoint()
  • NEW: Added CNewParticleEffect.StopEmissionAndDestroyImmediately()
  • NEW: Added CNewParticleEffect.__tostring()
  • NEW: Added CNewParticleEffect.IsFinished()
  • NEW: Added CNewParticleEffect.IsViewModelEffect()
  • NEW: Added CNewParticleEffect.SetIsViewModelEffect()
  • NEW: Added CNewParticleEffect.SetControlPointEntity()
  • NEW: Added CNewParticleEffect.SetControlPointForwardVector()
  • NEW: Added CNewParticleEffect.SetControlPointRightVector()
  • NEW: Added CNewParticleEffect.SetControlPointUpVector()
  • NEW: Added CNewParticleEffect.SetControlPointParent()
  • NEW: Added CNewParticleEffect.GetHighestControlPoint()
  • NEW: Added CNewParticleEffect.GetAutoUpdateBBox()
  • NEW: Added CNewParticleEffect.Restart()
  • GitHub changes:
  • NEW: Added new TF2 map prefixes
  • FIX: Fixed Singleplayer crash with Light Tool
  • FIX: Fixed Saves/Dupes tab exploit
  • UPD: Updated Bouncy Ball & NetworkVar dupe support
  • TTT:
  • FIX: Fixed instant defusal exploit
  • UPD: Updated language files to be gender neutral
  • Community Contributions:
  • NEW: Added localization for leafblower
  • FIX: Fix utf8.len() for empty inputs
  • FIX: Fixed utf8.codes to abide to Lua 5.3’s implementation
  • FIX: Fixed utf8.force dying on empty input
  • FIX: Fixed GM:AddDeathNotice’s incorrect internal parameter naming
  • UPD: Optimized menu map retrieval
  • UPD: Clamped physgun color to above 0
  • DEL: Removed old test file

New in Garry's Mod (GMOD) 09.11.15 (Sep 11, 2015)

  • Game Changes:
  • Fixed “point” scripted entities not returning correct class on client if transmitted
  • Fixed some sounds PAKcked into the .bsp crashing when loading
  • Fixed some compressed sounds PAKcked into the .bsp failing to load
  • Fixed player_changename game event not working
  • Fixed gamemenucommand “engine” exploit
  • Fixed FireBullets and Trace functions not erroring when not passed a table
  • Fixed shadow related crash
  • Fixed another potential crash
  • Fixed dangerous .vtf exploit(s)
  • Added cl_mouseenable to blocked command list
  • Blocked one more malicious command ( Thanks Ley )
  • Panel.OpenURL() no longer opens bad/blocked file extensions
  • Updated default SWEP crosshair to match the HL2 weapons one ( Thanks Jvs )
  • Added CSEnt.__tostring()
  • Added Vehicle.GetAmmo() ( Clientside, return 3 ints – type, clip, count )
  • Added Vehicle.GetWheelContactPoint( int wheel ) – returns Vector contactpos, int SufraceProps, Bool isOnGround?
  • Added Vehicle.GetVehicleViewPosition( int role ) – returns Vector pos, Angle ang, float FOV
  • Added Vehicle.GetOperatingParams() – Returns a table of 6 elements
  • Added Vehicle.GetVehicleParams() – returns a huge table
  • Added Vehicle.SetVehicleParams( table )
  • Added Vehicle.GetPassengerSeatPoint( int role ) – returns Vector pos, Angle ang
  • Added Vehicle.CheckExitPoint( float yaw, int distance, Vector endpoint ) – returns boolean
  • Added Vehicle.GetRPM() – returns float, appears to be buggy
  • Added Vehicle.IsVehicleBodyInWater() – Returns bool
  • Added Vehicle.GetHLSpeed() – returns float
  • Added Vehicle.GetMaxSpeed() – returns int
  • Added Vehicle.GetSpeed() – returns int
  • Added Vehicle.SetSteering( float steering, float steeringRate )
  • Added Vehicle.GetSteering() – returns float
  • Added Vehicle.SetSteeringDegrees( float )
  • Added Vehicle.GetSteeringDegrees() – returns float
  • Added Vehicle.GetWheelCount() – returns int
  • Added Vehicle.GetWheel( int wheel ) – returns physobj
  • Added Vehicle.SetSpringLength( int wheel, float length )
  • Added Vehicle.SetWheelFriction( int wheel, float friction ) – might be broken
  • Added Vehicle.GetWheelBaseHeight( int wheel ) – returns float
  • Added Vehicle.GetWheelTotalHeight( int wheel ) – returns float
  • Added Vehicle.EnableEngine( bool enable )
  • Added Vehicle.IsEngineEnabled() – returns bool
  • Added Vehicle.StartEngine( bool start )
  • Added Vehicle.IsEngineStarted() – returns bool
  • Added Vehicle.BoostTimeLeft() – returns int
  • Added Vehicle.HasBoost() – returns bool
  • Added Vehicle.IsBoosting() – returns bool
  • Added Vehicle.SetBoost( float boost )
  • Added Vehicle.SetThrottle( float throttle )
  • Added Vehicle.GetThrottle() – returns float
  • Added Vehicle.SetMaxThrottle( float maxThrottle )
  • Added Vehicle.SetMaxReverseThrottle( float maxRevThrottle ) – Must be negative
  • Added Vehicle.SetHandbrake( bool handbrake ) – Not sure if this one works
  • Added Vehicle.ReleaseHandbrake() – Not sure if this one works
  • Added Vehicle.SetHasBrakePedal( bool hasBrakePedal )
  • Added Vehicle.HasBrakePedal() – returns bool
  • Added Weapon.GetMaxClip1()
  • Added Weapon.GetMaxClip2()
  • Added Weapon.GetSlot()
  • Added Weapon.GetSlotPos()
  • GitHub changes:
  • Updated soundscape files
  • table.Copy in SortedPairsByMemberValue
  • Disallowed being able to use effects as tool models
  • Fixed Taunt Camera affecting Camera tool
  • Fixed tools not sorting alphabetically properly
  • TTT:
  • Added 2 hooks for custom body search icons
  • Added ConVar for fast switch inventory
  • Add option for fast weapons switch
  • Recheck collision rules after group reset
  • Fixed console speak not reaching player
  • Fixed language string typo
  • Removed karma heal for spectators
  • Community Contributions:
  • Added UTF-8 lib and support for UTF-8 data in markup lib
  • Fixed OnChatTab duplicating characters in base gamemode
  • Improved “weird model path” filtering
  • Made camera correctly track different player sizes

New in Garry's Mod (GMOD) 08.11.15 (Aug 11, 2015)

  • Game Changes:
  • NEW: Added Entity.PassesFilter( caller, ent )
  • NEW: Added Entity.PassesDamageFilter( dmginfo )
  • NEW: Added Entity.GetFlags()
  • NEW: Added “filter” scripted entity type
  • NEW: Added game.GetAmmoName( int id )
  • NEW: Added game.GetAmmoID( string name )
  • NEW: Added game.GetAmmoMax( int id ) – Returns real maximum value for given ammo type
  • NEW: Added CTakeDamageInfo:GetDamageBonus()
  • NEW: Added CTakeDamageInfo:SetDamageBonus( float bonus )
  • NEW: Added CTakeDamageInfo:SetReportedPosition( Vector pos )
  • NEW: Added CTakeDamageInfo:GetDamageCustom()
  • NEW: Added CTakeDamageInfo:SetDamageCustom( float custom )
  • NEW: Added CRecipientFilter:RemovePAS()
  • NEW: Added CRecipientFilter:GetPlayers()
  • NEW: Added “maxcarry” and “flags” to game.AddAmmoType
  • NEW: Added missing TF2 map icons
  • FIX: Fixed some TF2 maps crashing the game on load ( Not all of them though )
  • FIX: Fixed util.Decal not working in multiplayer
  • FIX: Fixed render.Capture not working in render targets that are bigger than the screen resolution
  • FIX: Fixed an exploit with .wav files
  • FIX: Fixed an exploit that allowed servers to run console commands they are not supposed to run on players
  • FIX: Fixed an exploit that allowed people to download server files they are not supposed to download
  • FIX: Fixed unmounting addons not working
  • FIX: Fixed uninstalling addons not unmounting them
  • FIX: Fixed disabled addons still opening the .gma files
  • FIX: Fixed disabled addons still being mounted in offline mode
  • FIX: Fixed player poserparameters being desync on server after a model change
  • FIX: Fixed Linux autorefresh
  • FIX: Fixed util.KeyValuesToTable incorrectly interpreting keys starting with numbers
  • FIX: Fixed buildcubemaps not writing built cubemaps to the .bsp
  • FIX: Fixed bullets and traces hitting non solid players
  • FIX: Fixed autorefresh folder locking
  • UPD: Moved to latest Steam API
  • TTT:
  • NEW: Added hook for picking up ammo
  • DEL: Removed all traces of teamchat/globalchat hints
  • UPD: Display inventory with fast weapon switching
  • UPD: Made LANG.ProcessMsg send the same way RecvMsg Receives
  • Community Contributions:
  • UPD: Prevent weird model paths
  • UPD: Copying spawnicon model to only have forward slashes
  • UPD: Cleaned up motion sensor file
  • UPD: Improved Combine NPCs keyvalues & Other NPCs
  • UPD: Improved duplicator and properties support for prop_effect
  • UPD: Improved DFileBrowser
  • FIX: Fixed bug in string.JavascriptSafe
  • FIX: Fix DPropertySheet padding on bottom edge

New in Garry's Mod (GMOD) 15.07.02 (Jul 3, 2015)

  • Game Changes:
  • NEW Added Player.SetLaggedMovementValue( float )
  • NEW Added Player.GetLaggedMovementValue()
  • NEW Added Entity.AddToMotionController( PhysObj )
  • NEW Added Entity.RemoveFromMotionController( PhysObj )
  • NEW Added 3 new backgrounds from the last 3 update posts
  • FIX Fixed an issue with timer.Create and timer.Adjust
  • FIX Fixed a crash issue with npc_turret_floor
  • FIX Fixed bullet hit detection issue introduced by previous update
  • FIX Fixed a potential physics crash issue
  • FIX Fixed a crash problem with all PhysObj functions when called on invalid PhysObj
  • FIX Fixed PHX glass panels igniting when shot
  • FIX Fixed a PHX material (zc_tube.vmt) having bad symbols
  • FIX Fixed models/noesis/donut.mdl erroring to console when spawned
  • FIX Fixed a crash problem with NPC player companions
  • FIX Fixed func_tank custom ammo types ( Fixes Episode 2 Auto Turret )
  • FIX Fixed npc_strider not dealing damage with his fast minigun attack
  • FIX Fixed server workshop downloads persisting after disconnecting from a server while downloading server workshop addons and connecting to another
  • FIX Fixed Custom Bullet Tracers not applying in some cases
  • FIX Fixed collision box for all weapons not being rotated properly
  • FIX Fixed Weapons with SF_WEAPON_START_CONSTRAINED spawnflag not being constrained
  • FIX Fixed debugoverlay.BoxAngles 6th parameter (color)
  • FIX Fixed SWEPs not being fired by some NPCs
  • FIX Fixed the “Setting Holdtype to empty string” problem
  • FIX Fixed SetPos and SetAngles crashing with math.huge and tonumber(“nan”)
  • UPD Added Warning()s to net.Send & net.SendOmit
  • UPD Entity.SetBonePosition’s first argument is now not optional
  • UPD Last 5 arguments of EmitSentence & EmitSound globals are now optional
  • UPD Reverted changes to Entity.SequenceDuration
  • UPD Updated language files
  • UPD util.TraceLine now hits player hitboxes outside of collision bounds
  • UPD NPCs now use the ai_weapon_* counterparts when given HL2 weapons with NPC:Give()
  • DEL Removed CNavArea.GetAdjacentAreaAtSide
  • GMPublish:
  • UPD Clean up quota before updating/creating an addon
  • UPD Don’t delete files from quota as soon as finishing updating
  • GitHub changes:
  • DEL Removed useless local variable in sv_nextbot
  • UPD Nextbot example of how you’d fire OnNPCKilled
  • UPD “Unfix” DAdjustableModelPanel
  • UPD NPC Weapons: Moved “None” to the top
  • UPD Made the default Laser Tracer better
  • FIX Fixed a duplicator lag exploit
  • FIX Fixed GWEN.CreateTextureBorder drawing small boxes
  • FIX Added 3rd argument to ENT:TriggerOutput
  • TTT:
  • FIX Fixed server crash issue with public chat while dead
  • FIX Fixed a Lua error when player dies
  • FIX Fixed weapon_zm_rifle’s IconLetter
  • FIX Fixed Rifle scope, zoom spread, unscope delay
  • UPD Player and spectator chat channels
  • UPD Disabled weapon picking up with Magneto Stick by default
  • UPD Reverted default detective values
  • UPD Changed unknown weapon name from “MASSIVE PHASER ARRAY” to “Unknown Weapon Name”
  • UPD Send in GivePenalty third arguments
  • Community Contributions:
  • NEW Added Flood and Jailbreak to the default map categories
  • FIX Fixed error when spawning non-standard vehicles
  • UPD PrintTable no longer creates 2 global variables
  • UPD Improve map filtering display

New in Garry's Mod (GMOD) 15.06.01 (Jun 2, 2015)

  • GAME CHANGES:
  • NEW:
  • Added measures against fake servers.
  • Added an experimental cache system for vectors/angles returned by Lua functions to minimize memory allocation/freeing
  • Added HL:S gib models (for custom maps that use them)
  • Added more validation for packets (prevents one of the ddos methods)
  • Added GM:AcceptInput(ent, input, activator, caller, value), equivalent behavior of ENTITY:AcceptInput
  • Added Alyx Gun sounds
  • Added Entity.CollisionRulesChanged()
  • Added PhysObj.RecheckCollisionFilter()
  • Added CLuaEmitter.Is3D()
  • Added CLuaEmitter.GetPos()
  • Added CLuaLocomotion.GetMaxYawRate()
  • Added CLuaLocomotion.SetMaxYawRate( float )
  • Added CLuaLocomotion.IsAscendingOrDescendingLadder()
  • Added CLuaLocomotion.IsUsingLadder()
  • Added navmesh.GetNearestNavArea( pos, anyZ = false, distance = 10000, checkLOS = false, checkGround = true, team = -2 )
  • Added navmesh.GetAllNavAreas()
  • Added CNavArea.GetRandomPoint()
  • Added CNavArea.GetCenter()
  • Added CNavArea.GetAttributes()
  • Added CNavArea.HasAttributes( int )
  • Added CNavArea.IsOverlappingArea( CNavArea )
  • Added CNavArea.ComputeGroundHeightChange( CNavArea )
  • Added CNavArea.ComputeDirection( Vector )
  • Added CNavArea.GetIncomingConnectionsAtSide( NavDir )
  • Added CNavArea.GetIncomingConnections()
  • Added CNavArea.IsValid()
  • Added CNavArea.GetAdjacentCountAtSide( NavDirType )
  • Added CNavArea.GetAdjacentCount()
  • Added CNavArea.GetAdjacentAreaAtSide( NavDirType, int )
  • Added CNavArea.GetRandomAdjacentAreaAtSide( NavDirType )
  • Added CNavArea.GetAdjacentAreasAtSide( NavDirType )
  • Added CNavArea.GetAdjacentAreas()
  • Added CNavArea.IsConnectedAtSide( CNavArea, NavDirType )
  • Added CNavArea.IsConnected( CNavArea )
  • Added CNavArea.GetLadders()
  • Added CNavArea.GetLaddersAtSide( NavLadderDir )
  • Added navmesh.GetNavLadderByID( id )
  • Added CNavLadder.GetPosAtHeight( float height )
  • Added CNavLadder.GetNormal()
  • Added CNavLadder.IsValid()
  • Added CNavLadder.GetID()
  • Added CNavLadder.IsConnectedAtSide( CNavArea, NavLadderDir )
  • Added ‘victim’ and ‘damageinfo’ arguments to NEXTBOT:OnOtherKilled
  • Added ‘ent’ argument to NEXTBOT:OnLeaveGround & NEXTBOT:OnLandOnGround
  • Added NEXTBOT:OnContact( ent )
  • Added NEXTBOT:OnIgnite()
  • Added NEXTBOT:OnNavAreaChanged( old, new )
  • Added Nextbot:GetSolidMask()
  • Added Nextbot:SetSolidMask( mask )
  • Added Entity.AddSolidFlags(flags)
  • Added Entity.RemoveSolidFlags(flags)
  • Added Entity.GetSolidFlags()
  • Added Entity.SetSolidFlags(flags)
  • Added FSOLID_ enums
  • Added NAV_MESH_ enums
  • Added custom icon for srcds.exe
  • Added VProf support to a bunch of functions
  • Added navigation mesh for gm_flatgrass
  • Added GM:NotifyShouldTransmit(ent, shouldtransmit) to catch clientside PVS states on entities
  • Added third optional argument to CreateSound() – channel
  • Added Panel:GetZPos()
  • Added CRecipientFilter:GetCount()
  • Added CRecipientFilter:AddPAS( vec )
  • Added models/weapons/c_arms.mdl
  • UPD:
  • New NWVars are back and should be stable now (hopefully)
  • Added multvar and incrementvar to blocked convar list
  • Added w_bugbait.mdl with proper bones
  • timer.Adjust has its 4th argument optional now
  • Merged LuaJIT bug fixes from master branch and fixed GMod’s special table.insert to support JIT
  • Commented warnings about “Cannot update control point %d for effect ‘%s'”, occours with ghost_effect
  • Increased MaxDistance of env_projectedtexture from 1500 to 56756 in multiplayer
  • Updated Bootil to latest version (fixes symbolic link autorefresh)
  • Prevented servers from being able to force screen resolution on players
  • Improved cursor handling in TextEntry for Ctrl+Left/Right
  • Improved the logic for AI squads in multiplayer (still needs some work)
  • Player view smoothing now works properly when walking up stairs with a custom step size
  • Updated navigation mesh for gm_construct
  • Updated BASS.DLL to 2.4.11
  • “stopsound” now also stops all BASS.DLL sounds
  • Unsubscribing from addons now properly deletes the associated .gma files
  • net.WriteBit now also accepts numbers
  • FIX:
  • Fixed “DataTable warning: player: Out-of-range value (x) in SendPropFloat”
  • Fixed CAI_LeadBehavior, Alyx no longer stands around being stupid in multiplayer
  • Fixed player model without physics crashing the game when a ragdoll was created
  • Fixed timer.Pause & timer.UnPause not checking whether the timer was already paused or not
  • Fixed game.CleanUpMap() duplicating all decals created by infodecal entities
  • Fixed an issue with Entity.Weapon_SetActivity
  • Fixed ambient_generic not working in some cases
  • Fixed Player:SetHullDuck() not working properly
  • Fixed Stalkers not bleeding and leaving their beams behind after they are removed
  • Fixed Combine Helicopter, Dropship, Gunship & Floor Turret bleeding in multiplayer
  • Fixed auto refresh not working with symbolic links
  • Fixed GMad not working properly on Linux and OSX
  • Fixed Lua files not being loaded on clients in multiplayer in some cases
  • Fixed Lua fonts being deleted on resolution change
  • Fixed bad NextBot collisions with players by default
  • Fixed NextBots not being able to walk through PLAYERCLIP brushes by default
  • Fixed Hammer making Steam show you as playing Garry’s Mod
  • Fixed Lua errors when printing invalid Panels and Physics objects
  • Fixed static lighting breaking in some cases
  • Fixed a huge exploit with “cvarlist” console command
  • Fixed net.WriteUInt writing data as signed integer
  • Fixed game_ui entity not releasing player input on player death
  • Fixed an exploit with OpenFolder
  • DEL:
  • Removed “Lua JIT is DISABLED!” message
  • Remove FCVAR_ARCHIVE flag from cl_thirdperson, sv_backspeed & hud_showemptyweaponslots
  • GMPUBLISH:
  • Removed the need for steam_appid.txt
  • Fixed not updating addon tags
  • GITHUB CHANGES:
  • Added EP1 & EP2 details to detail.vbsp
  • Restored background for default HL2 HUD
  • Several server browser changes
  • Remember/RestoreCursorPosition are now clientside only
  • PropSelect now sorts models alphabetically
  • Improved default Fists SWEP hit detection
  • Made 2nd parameter of DProperty_Combo.Setup() optional
  • Got rid of unnecessary Network Strings
  • Fixed stalkers not attacking players
  • “Fixed” DAdjustableModelPanel’s model not being visible if the camera positions are not set up
  • Fixed a problem with SortedPairsByValue
  • Fixed the player count selector missing its arrow
  • Fixed big saves becoming corrupted
  • Fixed DColumnSheet selected button
  • Fixed right clicking on entities sending Mouse 2 signtal to the server
  • DEL
  • Removed hacky workarounds in weapon_fists
  • TTT:
  • Added Spanish, Russian, Chinese, and Swedish translations
  • Allowed for custom TTT Scoreboard ScoreGroups
  • Added German translation
  • Added main menu settings (English only)
  • Added hat_retrieve to Swedish
  • Added hat_retrieve to German, Portuguese, and Spanish
  • Fixed spectators having footstep sounds
  • Fixed Decoy’s radar color
  • Fixed Magneto Stick setting nil Owner on active SWEP
  • Updated Portuguese translations
  • Use PlayerModel colouring for TTT players
  • Improved Defuser compatibility
  • Sped up weapon scrolling
  • Crosshairs have even gap/length for each line
  • Allowed detectives to reequip their dropped hat
  • Improved grenade throwing
  • Bumped version
  • Allowed spectators to talk in all chat – redirects to team
  • COMMUNITY CONTRIBUTIONS:
  • Added more friends/enemies to achievement count
  • Added Panel:DeleteCookie()
  • Added player.GetBySteamID() and player.GetBySteamID64()
  • Added GM:PreDrawPlayerHands() and GM:PostDrawPlayerHands()
  • Added drag’n’drop support to DHorizontalScroller
  • Added ColorRand()
  • Renamed DHorizontalDivider.GetRigth to DHorizontalDivider.GetRight
  • Optimized Panel:IsOurChild( Panel )
  • Updated default Fonts on Linux and OS X
  • DGrid: Use table.remove instead of setting to nil
  • Removed cam.IgnoreZ() from DModelPanel
  • Moved net.lua from modules to extensions
  • Made UTIL_IsUselessModel more efficient
  • Updated all SWEP files to a unified format
  • net.ReadType no longer requires an argument
  • Updated CalcView to allow CalcVehicleView to be hooked
  • Properties can only be used on weapons when unheld
  • Bots will respawn without needing to attack
  • Optimized scripted_ents.Get a bit
  • Made prop_generic panel not error without a setup table
  • Allowed more GM functions to be hooked
  • Improved error message when indexing string badly (with key not within the string library)
  • Improved map counter when filtering maps
  • Renamed flechette_gun to weapon_flechettegun
  • Renamed UTIL_IsUselessModel to IsUselessModel
  • Fixed prediction on jump boost
  • Fixed Vector:ToColor
  • Fixed main menu text shadow transparency on OS X
  • Fixed DColumnSheet button colors
  • DEL:
  • Removed useless require calls

New in Garry's Mod (GMOD) 15.03.09 (Mar 9, 2015)

  • Improved text rendering on OS X:
  • The OS X version of the font system has been heavily reworked for more consistency and better readability. No more tiny text in the console!
  • Improved networked variables:
  • The previously obsolete NWVars have been remade from scratch and now provide the same features and speed benefits as NetworkVars (formerly known as DTVars). Unlike NetworkVars, NWVars require no prior initialization and are identified by a name rather than a numerical index, making them suitable for every type of entity while minimizing conflicts with other add-ons.
  • As a result, the maximum number of NetworkVars per entity has been reduced from 64 to 32 to reduce server load.
  • Individual texture replacements:
  • Every texture in a model can now be replaced separately using the newly added function Entity:SetSubMaterial, allowing for a near infinite number of wacky combinations.
  • Workshop publishing tools for Linux and Mac:
  • The tools used to distribute add-ons for Workshop distribution (gmad and gmpublish) are now available in the Linux and Mac versions of the game. You can learn more about these tools in the wiki.
  • Game Changes:
  • FIX Fixed physgun constantly trying to drop and grab a prop its owner is currently standing on
  • FIX Fixed ammo box not working on the HL2 jeep
  • FIX Fixed HL1 prop_breakable gibs not spawning
  • FIX Fixed incorrect model for HL1 barnacles
  • FIX Fixed HL1 grunts not dropping the right items when killed
  • FIX Fixed HL1 sentences not being loaded
  • FIX Fixed MsgC ignoring first argument if it’s not a color
  • FIX Fixed bone merging causing the local player to be rendered twice
  • FIX Fixed crash with CNavArea:GetClosestPointOnArea
  • FIX Fixed an exploit related to running console commands through the chat
  • FIX Fixed crash issues with Player:Kick and Player:Ban
  • FIX Fixed slight rendering artefacts when drawing rounded boxes at low alpha
  • FIX Fixed scripted weapons not working correctly with the baseclass system
  • FIX Fixed scenes not always being properly loaded from VCD files
  • FIX Fixed secondary ammo indicator not showing up on the default HUD
  • FIX Fixed HUD pickup notifications occasionally causing errors before the local player becomes valid
  • FIX Fixed func_tank not turning and not firing tracers in multiplayer
  • FIX Fixed clients attempting to fire their active weapon while holding a prop or controlling a turret
  • FIX Fixed CLuaParticle:SetNextThink not working as intended
  • FIX Fixed DTVars transmitting way more data than needed when updated
  • FIX Fixed dynamic AI node links causing some HL2 maps to crash after a cleanup
  • FIX Fixed gmad and gmpublish not being shipped for OS X and Linux
  • FIX Fixed AvatarImage panels rendering 184×184 avatars incorrectly
  • FIX Fixed file.Find returning non Lua files in the directories table when used with the LUA path
  • FIX Fixed Entity:SetCustomCollisionCheck and Entity:SetShouldServerRagdoll not being able to reset their values
  • FIX Fixed NPC kill achievements not working
  • FIX Fixed broken eye flexes and NPC blinking
  • FIX Fixed sounds not playing at all when close captioning is enabled
  • FIX Fixed lag compensation causing players to drift away from the vehicle they are driving
  • FIX Fixed Player:KillSilent not forcing players to exit vehicles, making them stuck dead
  • FIX Fixed util.IsValidModel false-positives, large smokestacks from HL2 can now be spawned
  • FIX Fixed materials/gm_construct/grass-sand.vmt $surfaceprop2
  • FIX Fixed some addons not being able to be extracted.
  • FIX Fixed a save file issue with CSoundPatch
  • FIX Fixed another exploit related to downloading restricted files from the server
  • FIX Fixed plugin_load not loading plugins if no file extension is given
  • FIX Fixed not being able to change the render cull mode on entities bonemerged to viewmodels
  • FIX Fixed a problem with SWEP.ViewModelFlip and player model hands
  • FIX Fixed net.ReadUInt not using unsigned integers
  • FIX Fixed Hammer crashing on start up
  • FIX Fixed gamemodes not loading properly from legacy addons
  • FIX Fixed SetupWorldFog & SetupSkyboxFog not being called if the fog was not enabled beforehand by console commands or the map
  • FIX Fixed IsOnFire flag not resetting
  • FIX Fixed FOV being stuck on some HL2 maps
  • FIX Fixed Combine Autogun on ep2_outland_09 not dealing damage
  • FIX Fixed physgun beam not being removed on drop
  • FIX Fixed server workshop addons redownloading even if user is already subscribed to that addon
  • FIX Fixed GM:StartChat return value leaving chat visible on super widescreen resolutions
  • FIX Fixed a crash issue with Entity:SetBodygroup and Player:ExitVehicle
  • FIX Fixed Entity:AddCallback( “PhysicsCollide”, … ) for vehicles not being triggered without a driver
  • FIX Fixed a Lua state corruption issue which caused some functions to randomly disappear
  • FIX Fixed Entity:GetHitBoxCount crashing the game when called with an invalid value
  • UPD Improved text rendering on OSX
  • UPD Moved CSS muzzle flashes to Lua
  • UPD gui.OpenURL now accepts HTTPS addresses
  • UPD Restored preset saving
  • UPD Renamed Zeno Clash to Zeno Clash (Model Pack) in the mountable game list
  • UPD Renamed Insurgency to “Insurgency ( Source Mod )” in mountable games list
  • UPD PhysicsCollide entity callback is now shared
  • UPD EntityEmitSound hook now has a slightly more consistent behaviour
  • UPD CNavArea:IsOverlapping‘s tolerancy argument is now optional, defaults to 0
  • UPD CNavArea:IsVisible now returns a second value which contains the first point in the area that passed the visibility test
  • UPD CSoundPatch:ChangePitch‘s and ChangeVolume‘s delay argument are now optional (default to 0)
  • UPD Player:Ban‘s second argument is now a boolean, set it to true to automatically kick the player
  • UPD HTTP() now supports “head”, “put” and “delete” as methods
  • UPD CLuaEmitter:Add now also accepts an IMaterial as its first argument
  • UPD Updated CS:S world and C_ view models
  • UPD Disabled autoplay sequences on ragdoll entities
  • UPD Improved exploit prevention on incrementvar and multvar
  • UPD Updated default Derma skin ( Changed DComboBox hover arrow )
  • UPD Updated most valve game icons in spawnmenu to reflect the actual icons
  • UPD Returning false in the callback passed to serverlist.Query will now cancel the query
  • UPD Mesh() now accepts a material as its first argument, should be the material the mesh is intended to be rendered with
  • UPD Adjusted addon file extension whitelist
  • UPD file.Delete can now delete empty directories
  • UPD Updated launcher(hl2.exe) icon
  • UPD Reduced maximum DTVar count to 32
  • UPD NWVars have been greatly improved and are now a viable alternative to DTVars
  • UPD Updated most default spawnicons
  • UPD Moved garrysmod.fgd to GarrysMod/bin
  • UPD hlfaceposer.exe now runs properly
  • UPD Restored Closed Captions
  • UPD Users now automatically unsubscribe from Demos, Saves & Dupes
  • UPD Improved serverside performance of Player.UniqueID
  • UPD Player.UniqueID now returns 1 in singleplayer on client too
  • UPD Improved performance of server workshop addons when extracting the addon
  • UPD Prevented people from putting fake servers to server list
  • UPD Blocked more console commands/variables to prevent servers from running potentially harmful commands on clients
  • UPD Changed VERSIONSTR global to YYYY.MM.DD to avoid confusion
  • NEW Added PhysObject member to PhysicsCollide collision info table
  • NEW Added EFFECT:PhysicsCollide hook to scripted effects
  • NEW Added SND_* sound flag enums
  • NEW Added Entity:IsSolid()
  • NEW Added smoothed rendering to AvatarImage
  • NEW Added Entity:UseTriggerBounds(enable, bloat=0)
  • NEW Added missing CS:GO icon
  • NEW Added a bunch of requested headers to HTTP request results
  • NEW Added some missing MAT_ enums ( MAT_GRASS, MAT_SNOW, MAT_DEFAULT )
  • NEW Added chat.GetChatBoxSize
  • NEW Added Entity:SetSubMaterial(index, name)
  • NEW Added Entity:GetSubMaterial(index)
  • NEW Added render.MaterialOverrideByIndex(index, material)
  • NEW Added a HudDefault font for HL2 HUD elements
  • NEW Added GM:EntityNetworkedVarChanged(ent, name, oldValue, newValue)
  • NEW Added render.SetLocalModelLights(lights)
  • NEW Added Entity:SetNWVarProxy(name, func) and Entity:GetNWVarProxy(name)
  • NEW Added MATERIAL_LIGHT_ enums
  • NEW Added map & model compiling tools
  • NEW Added Blade Symphony to the mountable game list
  • NEW Added English closed captions for HL2, EP1, EP2 and Portal
  • DEL Removed CLuaParticle:VelocityDecay
  • DEL Removed FCVAR_CHEAT flag from cl_drawhud
  • DEL Removed addons.txt and gamemodes.txt as they were not used
  • DEL Removed lua\includes\util\entity_creation_helpers.lua
  • DEL Removed lua\functiondump.lua
  • DEL Removed InjectConsoleCommand & InjectCommandAutocomplete
  • DEL Removed Entity.GetNetworkedVar & Entity.SetNetworkedVar
  • DEL Removed GetGlobalVar & SetGlobalVar
  • GMad:
  • NEW Added simple drag’n’drop support
  • NEW Added proper help message
  • UPD The “out” path is now automatically calculated for both “extract” and “create” actions, if not overridden manually
  • UPD Updated whitelist
  • DEL Removed triple output of addon files so now it only does so once
  • GMPublish:
  • NEW Added ability to update icon of an addon
  • NEW Added additional “remove file” calls to make sure (hopefully) nothing ends up stuck in the Cloud on fail
  • UPD Updated help message
  • Lua changes:
  • FIX Fixed gmod_tool(mode) to bring up the context menu
  • FIX Fixed non-English tool name sorting
  • FIX Fixed an error when picking up prop_effects with gravity gun
  • FIX Fixed bodygroup property not being translated
  • FIX Fixed dragndrop.GetDroppable and Panel:IsDragging
  • FIX Fixed rope material exploit and a few typos in the constraint library
  • FIX Fixed spawning on maps with only one spawnpoint
  • FIX Fixed a few spawnmenu errors
  • FIX Fixed dragndrop right clicking: when you open the menu and click away – stop dragging.
  • FIX Fixed some maps not appearing in the maps list
  • FIX Fixed an error when you delete the spawnlists tab
  • FIX Fixed map being reset on page change in saves tab
  • FIX Fixed background zoom on some screen resolutions
  • FIX Fixed servers jumping around in server browser
  • FIX Fixed DFrom.ComboBox not updating given convar
  • FIX Fixed vehicles created by map not being duplicated properly
  • FIX Fixed default scoreboard sorting
  • FIX Fixed main menu buttons on very small resolutions
  • FIX Fixed Balloon Tool default model
  • FIX Fixed camera tool keybind bug in multiplayer
  • FIX Fixed yet another Lua error with constraint library
  • NEW Added rd_ maps to Team Fortress 2 category
  • NEW Added active weapon to the properties hover halo
  • NEW Added Panel.PaintingDragging ( member, not a function )
  • NEW Added HL:S surfacepropmats
  • NEW Added support for Portal 1 Chell, DOG and Vortigaunt to finger poser
  • NEW Added support for Portal 2 Bots to finger poser
  • NEW Added waitforenter key for DProperty_Generic
  • NEW Added DFrame:SetIcon
  • NEW Added more visible message for Dev branch
  • NEW Added “Stop refreshing” button to the server browser.
  • NEW Added DModelPanel.GetModel
  • NEW Added TOOL.Information
  • UPD CS:GO, Portal 2 & L4D2 maps are now properly indicated as incompatible with Garry’s Mod
  • UPD Rearranged settings in Multiplayer options tab
  • UPD Overlay Post Processing effect will no longer render missing textures
  • UPD Sandbox Vehicle spawn improvements
  • UPD Vehicle 3rd person does not go through everything anymore
  • UPD Allow .png backgrounds
  • UPD Disable properties for non-sandbox derived GMs
  • UPD Fallback to weapon_base if no SWEP.Base is given
  • UPD Fists are now removed when dropped
  • UPD Clear gamemode list on refresh
  • UPD Restrict properties to context menu only
  • UPD Made gmod_camera work properly with bot and spectating
  • UPD Changed base scoreboard player line colors to match mute button color
  • UPD Updated surfaceproperties.txt
  • UPD Moved SWEP.CSMuzzleFlashes to Lua
  • UPD Multiple HTML Menu changes
  • UPD Translate Finger Poser selected hand
  • UPD Translate the “Save Changes” button.
  • UPD Translate the rest of the main menu
  • UPD Updated language files
  • UPD DComboBox now sorts dropdown menu alphabetically
  • UPD Centred the hide tool menu arrow button
  • UPD Clicking on the version number on Dev branch opens the changelist
  • UPD Shadows in main menu are now softer
  • UPD Replaced every occurrence of ValidPanel with IsValid
  • UPD Updated DButton
  • UPD Updated DLabel: Better performance
  • UPD Removed lua_cookiespew, restricted lua_cookieclear to client realm only.
  • DEL Removed notification.Die
  • TTT:
  • FIX Fixed names not always updating if it is changed during speaking.
  • FIX Fixed error sometimes breaking the gamemode
  • FIX Fixed crowbar emitting wrong sounds/effects on hit
  • FIX Fixed ttt_detective_karma_min not working
  • UPD Updated traitor shop to be bigger by default
  • UPD Make disabling parts of the HUD easier
  • UPD Radar improvements
  • UPD Efficiency in DmgToText and DmgToMat
  • NEW Added portuguese (Brazilian) language
  • NEW Added TTTEquipmentTabs hook
  • NEW Added SWEP.IconLetter to TTT SWEPs
  • DEL Removed useless global function “Warning”
  • Community Contributions:
  • NEW Added net.ReadBool and net.WriteBool
  • NEW Added Combo control for DProperties
  • NEW Added math.Truncate( num, idp )
  • FIX Fixed GWEN TextureBorder typo
  • FIX Fixed two minor errors
  • FIX Fixed possible errors with SafeRemoveEntity/SafeRemoveEntityDelayed
  • FIX Fixed multiple line breaks in a row not appearing properly in draw.DrawText
  • FIX Fixed players getting killed if spawnpoint is too close to world origin
  • FIX Fixed Lua injection
  • FIX Fixed STNDRD
  • FIX Fixed bug with TriggerOutput for SENTs
  • FIX Fixed Sandbox prop driving prediction
  • UPD PrintTable now sorts its keys
  • UPD Got rid of unnecessary global PANEL vars.
  • UPD Improved Halo rendering
  • UPD Optimized string.Trim, TrimLeft, TrimRight
  • UPD Proper JavaScript escaping
  • UPD Allowed closing of notifications by clicking on them
  • UPD Escaped map names
  • UPD Numerous updates to DListView
  • UPD Numerous updates to DComboBox
  • UPD Improved pattern (and JavaScript) escaping
  • UPD Updated string.lua
  • UPD Made cookie module shared
  • UPD Made IsEnemy/FriendlyEntityName more efficient
  • UPD Change how RoundedBoxEx renders corners to fix 3D2D appearance
  • UPD Minor toolgun screen text changes
  • DEL Removed effects.halo.Add for good
  • DEL Removed unnecessary argument from net.ReadType handler
  • DEL Removed AccessorNWFunc

New in Garry's Mod (GMOD) 14.07.11 (Jul 12, 2014)

  • A minor update containing a few hotfixes for last update just came out. Restarting your servers is strongly recommended.
  • GLIBC_2.15 dependency on Linux dedicated servers:
  • Some Linux dedicated server owners may have noticed that the game now requires glibc 2.15. This is a necessary change since the version we were using before was really outdated. If your server is running on a relatively old distro which does not include that library, you can find instructions on how to install it here: Linux Dedicated Server Hosting.
  • Fixed non-ASCII characters being removed from player names:
  • This was accidentally introduced in an attempt to fix an exploit which would let servers tamper with a client’s configuration file, sorry for that! Everything should be back to normal now.
  • Fixed model scaling not working correctly on some models:
  • Entity:SetModelScale and Entity:EnableMatrix had an issue with some models which would cause transformations to be applied twice.This will break scripts that rely on the old broken behavior, so I also added Entity:SetLegacyTransform for those who want their current scripts fixed with minimal effort. This function basically brings the old scaling behavior back for the entity it is called on, so it should be used exclusively as a temporary fix.
  • Full Changelog:
  • FIX Fixed plugin_load not doing anything
  • FIX Fixed players being removed when sitting in a vehicle parented to another entity
  • FIX Fixed non-ASCII characters being removed from player names
  • FIX Fixed tabs in RichText selection
  • FIX Fixed properties not correctly working on vanilla
  • FIX Fixed Color.__tostring not outputting alpha
  • FIX Fixed render.CapturePixels crashing when used on render targets
  • FIX Fixed Weapon:CallOnClient crashing when called on a weapon owned by a NPC
  • FIX Fixed weapon holdtypes not always updating on the client
  • FIX Fixed player names not updating in scoreboard and voice panels
  • FIX Definitely fixed Entity:SetModelScale and Entity:EnableMatrix applying transformations twice on some models
  • NEW Added Entity:SetLegacyTransform(bool)
  • DEL Removed properties.HaloThink
  • DEL Removed _restart from blocked concommand list

New in Garry's Mod (GMOD) 14.07.08 (Jul 9, 2014)

  • Game Changes:
  • FIX Fixed item pickups not being collectable in some cases
  • FIX Fixed env_microphone not always transmitting NPC voices in multiplayer
  • FIX Fixed some textures on gm_construct having an incorrect normal map when running under DX8
  • FIX Fixed console crash on some machines
  • FIX Fixed another possible exploit with CNetChan::SendFile
  • FIX Fixed an exploit allowing access to any file on a client machine
  • FIX Fixed vehicle noclip exploit
  • FIX Fixed SMG viewmodel animation glitch when firing exactly 3 shots in a single burst
  • FIX Fixed inaccurate text selection in RichText controls
  • UPD Files with an incorrect extension can no longer be loaded as modules
  • UPD Loose .vcd files can now be loaded without having to be compiled into scenes.image
  • TTT:
  • FIX Admin commands no longer appear in “last words”
  • FIX Fixed a minor issue with teleporter effects
  • NEW Added lag compensation to the crowbar’s secondary attack
  • NEW Added TTTPlayerUsedHealthstation hook
  • Community Contributions:
  • FIX Fixed vehicle third person affecting cameras
  • FIX Fixed shipped weapons creating errors when given to NPCs
  • FIX Fixed SimpleDoF to properly work with cameras
  • FIX Fixed return values of draw.SimpleText
  • FIX Fixed big numbers not sending properly with net.WriteTable
  • FIX Fixed gmod_admin_cleanup/gmod_cleanup errors when run in a dedicated server console
  • FIX Fixed vehicles not duplicating their skin, bodygroups, etc
  • FIX Fixed derma.SkinTexture
  • FIX Fixed longstanding thruster crash exploit
  • FIX Fixed pasted ragdolls with duplicator being in T pose until you touch them (still happens for saves though, sorry)
  • FIX Fixed snow footsteps
  • FIX Fixed some base weapons (Alyx gun, HL1 grenade) being .357 clones
  • UPD Post Process effects are no longer saved across restarts
  • UPD Hidden some useless HL2 maps
  • UPD Updated jQuery/AngularJS
  • UPD draw.SimpleTextOutlined now returns same thing as draw.SimpleText
  • UPD Lua errors notification only stays for 10 seconds instead of 30
  • UPD Clicking “Resize” in spawnicon right click menu no longer automatically rerenders the icon.
  • UPD Fancified Bouncy Ball
  • UPD Updated server browser looks
  • UPD Bots are no longer counted towards player count in server browser
  • UPD Sort addons and games alphabetically in Browse
  • UPD Made player_manager.TranslateToPlayerModelName case insensitive
  • UPD Tweaked some tools
  • UPD Improved context menu properties in various ways
  • NEW Added team.SetColor(index, color)
  • NEW Added Angle:SnapTo(component, degrees)
  • NEW Added IsColor(), net.WriteColor(), net.ReadColor()
  • Lua Scripting:
  • FIX Fixed Entity:PhysicsFromMesh building a deformed collision mesh
  • FIX Fixed PhysicsCollide entity callback missing information about the entity which was collided with
  • FIX Fixed IMaterial:GetMatrix crashing the game
  • FIX Fixed sound.Add not working on dedicated servers
  • FIX Fixed ents.FindByClass not interpreting wildcards correctly
  • FIX Fixed util.CRC not working correctly on strings with embedded zeroes
  • FIX Fixed util.JSONToTable losing precision for large integer values
  • FIX Fixed Entity:GetBoneController returning a truncated value
  • FIX Fixed Entity:SetHitboxSet not working properly with an integer parameter
  • FIX Fixed NPC:FoundEnemySound, LostEnemySound, FearSound, IdleSound and AlertSound not calling their appropriate equivalent in the engine
  • FIX Fixed InnerAngle and OuterAngle parameters not doing anything in lights created by DynamicLight()
  • FIX Fixed util.TableToJSON crashing when passed a table containing keys that aren’t strings or numbers
  • FIX Fixed GM:OnReloaded being called more than once on most gamemodes
  • UPD Updated LuaJIT to version 2.0.3
  • UPD Reverted Entity:IsValid to its old behaviour
  • UPD Changed Entity:PhysicsInitBox behaviour to be more consistent with Entity:PhysicsInitConvex (no longer creates a broken physics object in some cases)
  • UPD game.GetWorld is now shared
  • UPD Player:HasWeapon and Player:GetWeapon are now shared
  • UPD Entity(0) now returns the world on both server and client
  • UPD Entities can now have up to 64 DT vars of each type (except strings)
  • UPD Player:Kick and Player:Ban kick/ban reasons are now optional and may contain newlines
  • UPD SWEP holdtypes are now properly networked
  • UPD Vector and angle access using a numerical index rather than x/y/z is now slightly faster
  • UPD gui.OpenURL now clamps URLs to 511 characters max
  • UPD Added safeguards to mesh library functions
  • UPD Entity:GetMaxHealth is now shared again and properly networked
  • UPD Entity:DrawViewModel now takes an optional second argument which controls which viewmodel to show/hide (defaults to 0)
  • UPD Moved Entity:Disposition, GetActivity, IsNPCMoving, IsUnreachable to NPC:Disposition, GetActivity, IsMoving, IsUnreachable
  • UPD Trace tables now accept an “output” parameter which may contain the table the trace results should be written into
  • UPD sound.PlayFile and sound.PlayURL callbacks now receive an error ID and error name as their second and third parameters if an error occurs
  • UPD Weapon:CallOnClient second argument is now optional (defaults to “”)
  • UPD Moved Player:PlayScene, NPC:PlayScene and NextBot:PlayScene to Entity metatable
  • UPD Entity:PlayScene second argument (delay) is now optional (defaults to 0)
  • UPD MsgC can now print text with several colors in a single call
  • UPD Moved Player:Freeze, Player:GodEnable, Player:GodDisable, Player:IsFrozen, Player:HasGodMode to Lua
  • UPD Clamped pitch between -90 and 90 instead of -180 and 180 for AngleRand
  • UPD util.KeyValuesToTable and util.KeyValuesToTablePreserveOrder now accept a third parameter which prevents keys from becoming lowercased when set to true
  • UPD vgui.LoadControlsFromFile/LoadControlsFromString now properly creates scripted panels
  • UPD Improved vgui.LoadControlsFromString (no longer writes to a temporary file)
  • NEW Added Entity:PhysicsDestroy()
  • NEW Added Weapon:GetHoldType()
  • NEW Added util.SharedRandom(uniqueName, min, max, additionalSeed=0)
  • NEW Added util.BlastDamageInfo(dmginfo, origin, radius)
  • NEW Added Entity:SetLOD(lod=-1)
  • NEW Added Entity:SetLagCompensated(bool)
  • NEW Added Entity:IsLagCompensated()
  • NEW Added Player:SetAllowWeaponsInVehicle(bool)
  • NEW Added Player:GetAllowWeaponsInVehicle()
  • NEW Added CSoundPatch:SetDSP(dsp)
  • NEW Added CSoundPatch:GetDSP()
  • NEW Added IGModAudioChannel:EnableLooping(bool)
  • NEW Added IGModAudioChannel:PlayFile(path, flags, callback)
  • NEW Added optional second argument to Entity:SetPhysicsAttacker() which controls expiry time (defaults to 5 seconds)
  • NEW Added game.SetSkillLevel(int), game.GetSkillLevel()
  • NEW Added the following hooks to scripted effects: EFFECT:StartTouch(), EFFECT:Touch(), EFFECT:EndTouch()
  • NEW Added CUserCmd:SelectWeapon(weapon_ent)
  • NEW Added __tostring to CNavArea, CSoundPatch, IGModAudioChannel, PhysObj, dlight_t metatables
  • NEW Added PhysObj:GetName()
  • NEW Added CNavArea:Draw(), IsUnderwater(), GetSizeX(), GetSizeY(), IsRoughlySquare(), IsFlat()
  • NEW Added CNavArea:GetZ(pos)
  • NEW Added CNavArea:IsOverlapping(pos, tolerance)
  • NEW Added CNavArea:Contains(pos)
  • NEW Added CNavArea:IsCoplanar(navArea)
  • NEW Added CNavArea:GetClosestPointOnArea(pos)
  • NEW Added CNavArea:IsVisible(pos)
  • NEW Added CNavArea:GetCorner(cornerId)
  • NEW Added navmesh.GetNavAreaCount()
  • NEW Added navmesh.GetNavArea(pos, beneathLimit)
  • NEW Added navmesh.GetNavAreaByID(id)
  • NEW Added navmesh.BeginGeneration()
  • NEW Added navmesh.IsGenerating()
  • NEW Added navmesh.GetPlayerSpawnName()
  • NEW Added navmesh.SetPlayerSpawnName()
  • NEW Added navmesh.AddWalkableSeed(pos, normal)
  • NEW Added navmesh.ClearWalkableSeeds()
  • NEW Added Entity:IsDormant()
  • NEW Added ENTITY:Blocked(other), only applies to SENTs using the MOVETYPE_PUSH movetype
  • NEW Added Color:__tostring, Color:__eq and Color:ToHSV()
  • NEW Added gui.InternalKeyTyped(code)
  • DEL Removed “loop” flag from sound.PlayURL
  • DEL Removed support for vm_origin and vm_angles from GM:CalcView

New in Garry's Mod (GMOD) 14.04.04 (May 9, 2014)

  • FIX TTT: Fixed ironsights being broken due to changes from last update
  • FIX Fixed .mp3 and .ogg playback becoming very expensive due to changes from last update
  • FIX Fixed Father Grigori not being the king of animals
  • FIX Entity:FireBullets no longer inflicts ammo-specific damage if the damage is 0 unless an ammo type is explicitly specified
  • UPD IGModAudioChannel:SetTime now prints a warning if it is called on a non block streamed channel
  • NEW Added IGModAudioChannel:IsBlockStreamed