Garry's Mod Logo
Changes Header

Changes

What’s changed in Garry's Mod in each patch.

add_circle

Features

  • 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
arrow_circle_up

Improvements

  • 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
handyman

Fixed

  • 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
remove_circle

Removed

  • Removed unused variable from gmod_cameraprop.lua (Community Contribution)
add_circle

Features

  • 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
arrow_circle_up

Improvements

  • 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
handyman

Fixed

  • 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
add_circle

Features

  • 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)
arrow_circle_up

Improvements

  • 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
handyman

Fixed

  • 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
remove_circle

Removed

  • Disabled SHIFT+F2 opening "demoui" in multiplayer
add_circle

Features

  • 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)
arrow_circle_up

Improvements

  • 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<type>( 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
handyman

Fixed

  • 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
add_circle

Features

  • 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
arrow_circle_up

Improvements

  • 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
handyman

Fixed

  • 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)