Garry's Mod Logo
Changes Header

Changes

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

add_circle

Features

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

Improvements

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

Fixed

  • 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
  • Fixed an exploit with presets.Add (Thanks to Deyvan)
add_circle

Features

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

Improvements

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

Fixed

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

Improvements

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

Features

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

Improvements

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

Fixed

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

Features

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

Improvements

  • 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 (<1)
  • Adjusted visuals for notification.AddProgress and made them truly infinite
  • Entity.GetSequenceMovement() cycle arguments are now optional and default to start=0, and end=1
  • game.AddAmmoType() no longer fails silently if given bad ammo type name, and the ammo type name is no longer case sensitive (Community Contribution)
  • steamworks.FileInfo's fileid is 0 instead of internal InvalidID value for SteamUGC items
handyman

Fixed

  • 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