Garry's Mod Logo
add_circle

Features

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

Improvements

  • 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 (<0, or above 64k)
  • halo library no longer tries to render entities that are set to not to draw
  • Added "volume_sfx" and "snd_musicvolume" to convar blacklist
  • Replaced the wiki link in the "Calling net.Start with unpooled message name!" error with "(Did you forget to call util.AddNetworkString serverside?)"
  • Better argument type checking for Compile/RunString(Ex)
  • Display a nicer message when Compile/RunString(Ex) are trying to run bytecode
  • AddCSLuaFile now displays an error message instead of silently failing when it refuses to add a file with bad symbols to the Lua datapack
handyman

Fixed

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

Removed

  • Removed util.RelativePathToFull as it has no legitimate uses
  • Removed string.__index error [and fix false values in the string metatable not returning] (Community Contribution)