Garry's Mod Logo
schedule 25 January 2023
devblog

January 2023 Update

Improved Eye Poser, new Lua features, and many bug fixes.

add_circle

Features

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

Improvements

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

Fixed

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

Improvements

  • •
    TTT: Updated localization
handyman

Fixed

  • •
    TTT: Fixed zoom keybind handling (Community Contribution)
add_circle

Features

  • •
    Added ClearAllOutputs input to all entities
arrow_circle_up

Improvements

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

Fixed

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

Features

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

Improvements

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

Fixed

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

Fixed

  • •
    Fixed procedural textures of size 32768 trying to allocate way too much memory
  • •
    Disallow loading of procedural textures above 64k on any side (with a warning)
  • •
    Added more info to "CFontTextureRegen: Failed to allocate X bytes" warning (and should also be less crash prone when it happens)
  • •
    Simplified gmod_tool concommand code
  • •
    Call TOOL:ReleaseGhostEntity on holster even when TOOL:Holster doesn't
  • •
    TGA loading: do not try to read data if overflowed - Simply displays better warning, it wasn't actually reading any data
  • •
    Made string.ToTable work with numbers again
  • •
    Fixed timer spam from medkit weapon (Community Contribution)
  • •
    Unspecified security patch
arrow_circle_up

Improvements

  • •
    Update Steamworks API to v1.57
  • •
    Added sv_cheats requirement to some console commands and variables that are either unuseful, or should only be used for development
handyman

Fixed

  • •
    Fixed a Lua error about "derma_icon_browser.lua"
  • •
    Fixed a regression with language getting reset to Steam's language if your chosen in-game language is English
  • •
    Fixed an issue with handling of asset:// URLs
  • •
    Fixed various crashes
add_circle

Features

  • •
    Added Panel:Set/GetTooltipDelay (Community Contribution)
  • •
    Added vgui.Exists (Community Contribution)
  • •
    Added the Derma Icon Browser (derma_icon_browser console command) (Community Contribution)
arrow_circle_up

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
handyman

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)