Update Preview Changelog
This page contains upcoming changes to the game in the next update. The update date is available on the Steam News section for Garry's Mod.
The update is already accessible on the dev
beta branch, and possibly on the prerelease
beta branch.
Game Changes
Additions
- Added game icons to the mountable game list in main menu (Community Contribution)
- Added
sbox_maxconstraints
andsbox_maxropeconstraints
- Both default at
1000
,sbox_maxconstraints
is for non rope constraints only, not ALL of them - No-collide is considered a non rope constraint now for the sake of limits
- Both default at
- Added a search bar in spawnicon editor, as well as the ability copy sequence names to clipboard (Community Contribution)
- Tooltips for vehicles in spawnmenu, similar to those for SWEPs, SENTs
- Added Resistance Turrets to spawnmenu if Half-Life: Episode 2 is mounted
- Added "Last played date" for each server in the server browser
- Added a search bar to addon preset list
- Added new TF2 map icons and category for new map type
- Added Fortress Forever and NeoTokyo spawnpoints and their Map Categories (Community Contribution)
Fixes
- Fixed a bug where duplicated constraints would not be able to be cleaned up via Utilities > Admin or User Cleanup
- Fixed duplicated no-collides not being cleaned up via No-Collides cleanup option
- Fixed undoing no-collide constraint not restoring collisions
- Fixed a typo in Motor Tool settings (Community Contribution)
- Fixed Rollermine visuals when it is hacked by Alyx in Episode 1
- Included Half-Life 2 Episodes-compatible models, so their animations work without any extra addons in all 3 Half-Life 2 games
- Added Eli, Dog, Antlion, Combine Dropship, Mossman, Zombie, Poison Zombie and Fast Zombie models with episodic animations
- Fixed Kleiner's idle animation to be the unique Kleiner one
- Prioritize Episode 2 animations over Episode 1 or default animations for Alyx (such gun holster animations)
- Update Vortigaunt model to have EP2 animation preference - fixes Episode 2 intro scene with alyx and antlions
- Added merged ghostanim.mdl and blackout.mdl models (Camera animations)
- Fixed Episode 2 ending not displaying correctly in Garry's Mod
- Episodic
combine_intmonitor
props with extra skin - Episodic headcrab models, lamarr, gman
- Jalopy model with corrected suspension travel
- Fixed grabbing certain transparent props with Physics Gun making the screen black
- Fixed Half-Life Source barnacle interactions with the player
- Fixed Half-Life Source Alien Controller not doing damage
- Restored some more HL2-specific behaviors, controlled by the following convars -
sk_plr_health_drop_time
,sk_plr_grenade_drop_time
andsv_robust_explosions
- Improve how the Sandbox gamemode handles invalid spawnlists, so the menu doesn't completely break
- RPG rocket no longer slows down every time it enters water
- Fixed impaled NPCs (with harpoon prop) not appearing in the kill feed
- Fixed animations from newer model versions not playing in GMod (Portal 2, Left 4 Dead models)
Changes
- Map Category in main menu for G String game (Community Contribution)
- Display the command that is not bound in Sandbox hints, when no key is bound for it
- Localized many spawnmenu entities and other text (Community Contribution)
- Made "force open main menu" warning popup an informational one visually (Community Contribution)
Deletions
- Remove missing skins from certain built-in props
TTT Changes
- Fixed Swedish chef language borking setting (Community Contribution)
- "SAM" support for TTT bans (Community Contribution)
- Traitor button fixes (Community Contribution)
- Minor updates to Turkish translations (Community Contribution)
- Improved Spanish localization (Community Contribution)
- Added missing localization string for German language in TTT
- Fix ragdoll not being created if
ttt_dyingshot
is on
Technical Changes
Additions
- Output an identifying string on map/model compile tool startup so you know the studiomdl/vbsp/vvis/vrad is from Garry's Mod
- Particle system changes
- Implemented
particlefield_rotation
selector for Particle Editor - Ported a whole bunch of particle operators and initializers from CS:GO, including changes to existing ones
- Implemented
- Added
SetTarget1
-SetTarget4
inputs tologic_choreographed_scene
/scene_entity
- Added
hide_server
convar, which will hide the server from the server browser - Implemented experimental auto-refresh support for weapons in spawnmenu
- Changing weapon info (including adding a new weapon) will update/add the weapon in spawnmenu automatically
- Added
disable_on_remove
key-value tologic_collision_pair
- Added color input/key-value for
func_water_analog
in Hammer - Added
env_projectedtexture
Toggle
input - Added "Start Disabled" spawnflag for
env_projectedtexture
(also rearranged options in Hammer in order of usefulness)
Fixes
- Fixed VBSP disabling
-v
flag midway through compilation if-verboseentities
is not set - VVIS/VBSP automatically tries to find
gameinfo.txt
if path not given - Fixed potential crashes to do with textures
- Fixed a crash to do with decals and
r_maxmodeldecal 0
- Fixed crashes with
sniper_proto
(HL2 Sniper) - Fixed potential bug with
CBaseAnimating::IsOnFire
- Fixed G-String game icon
- Fixed the game mounting folders that it's only supposed to on local builds
- Fixed
TEXTUREFLAGS_POINTSAMPLE
not respectingTEXTUREFLAGS_NOMIP
- Fixed erroring material in Episode 1, causing console spam (Stalker teeth)
- Fixed Close Caption HUD being disabled by
SetHUDVisibility
MapIO input - Fixed Lua errors when loading a (Source Engine) save that had addon Sandbox tools that were removed since the save was made
- Prevent crashes with wireframe model rendering and high vertex models (Mostly applies to Hammer, simply does not render such models)
- player.CreateNextBot sets the bot name by the time
player_activate
event is called - Bump max Source Engine save game size to 12M (from 3) - so the game is not stuck in a (near) infinite loop when trying to load malformed saves during level transitions
- Entities that block radius (explosion) damage (such as doors), don't block it on themselves
- Fixed a Linux Dedicated Server crash with
sv_showlagcompensation
- Fixed a crash to do with teleporting constrained entities
- Fixed missing wooden ladder sounds (Half-Life 2: Episode 2)
- Bump
cvarlist
buffers from 128 to 1024, so convar descriptions fit - Fixed a few ways malicious clients could lag servers
- Adjust Hammer entity definitions so GMod specific sandbox settings don't appear on point entities such as
point_spotlight
- Adjust how we disable self-unblocking for Lua-blocked nav areas to avoid negatively affecting other nav blocking entities
- Linux: Do not ExecuteToPriority if there are no jobs - This addresses significant slowdowns on Linux (srcds?) to do with the filesystem
- StudioMDL: Fixed models with more than 65k vertices breaking up
- Prevent crashes to do with removal of world entity (another method)
Changes
- Code cleanups & optimizations
- Replace debug.getregistry usage with RegisterMetaTable where appropriate (Community Contribution)
- Use math.tau in some places instead of
2 * math.pi
(Community Contribution) - Merge some math library optimizations (Community Contribution)
- Use
m_yaw
/m_pitch
convars instead of hardcoded values in the built-in taunt cam (Community Contribution) - Consistent returns from Sandbox tool
Make*
global functions - Micro optimization for GWEN.CreateTextureBorder and related functions (Community Contribution)
- Use 4-number overload of surface.SetDrawColor in base game for performance (Community Contribution)
- Reduced net.WritePlayer bitcount based on server's maxplayers (Community Contribution)
- Removing
point_spotlight
will now also remove entities it created - More safeguards against loading malformed
.gma
files - Fixed serverside tracers spread on Y axis not being taken into account at all
- Try to squeeze some nanoseconds out of spawnicon rendering
- Squeeze a few nanoseconds from static prop rendering
- Updated Half-Life Source Deathmatch icon to match its Steam icon
PhysModelCreateBox
doesn't reset solid parameters- Load particle editor first in
-tools
mode for convenience - Improve scrollbar styling in
-tools
mode, so its more obvious what the position of the slider is - Replace missing
.png
/.jpg
image data with solid white color- This would happen when a Material()'d
.png
file goes missing (is deleted). It used to be undefined behavior.
- This would happen when a Material()'d
func_smokevolume
removes its particles when dormant (when not seen by the player), so they can be used by other entities since there's a global limit- Always enable loading screen for the
map
console command, such as when ran from command line - Mount floating
.GMA
files before fetching info about subscriptions - so they load in time if launching the game with+map
- Do not hide servers with out of bounds data such as impossible player counts, clamp the data instead
- Mention valid sample rates in
"Invalid sample rate X for sound Y"
warning - Unblock
mp_flashlight
console variable in menu state - Replace usage of
devshots_screenshot
withscreenshot
(for mappers) - Always mount folder addons before Workshop system (so that the workshop system can find floating .gmas in addons/ folders consistently)
- VRAD:
-dumppropmaps
also dumps the lightmaps as.pfm
- Also dump files to/sp_lightmaps/
instead of base dir- Adjust VRAD's
-dumppropmaps
TGA output to be correct - Adjust the tga texture to be representative of what is written to PPL files, fixing out of color range texture bugs - VRAD displays which lighting mode is being compiled in the log (HDR vs SDR)
- VRAD static prop lighting HDR related changes
- Only output .tga files for LDR compiles (if dumping lightmaps)
- Only output .pfm files for HDR compiles (if dumping lightmaps)
- Compile HDR .ppl files into the BSP, without overwriting the LDR ones
- Swap-in HDR static prop lightmaps when HDR lighting is in use in-game
- Adjust VRAD's
mat_texture_list
- Don't display alpha channel for formats without alpha channel (RGB888, etc)$eyeposition
and$illumposition
are now affected by$scale
(studiomdl.exe
)- Navmesh auto-blocking checks now run on map start/cleanup
- Rework how spawnpoint entities are added in base gamemode - one file now, not 25 duplicated files
- Move default console position to the left a bit so it does not obstruct certain main menu UI elements by default
Deletions
- Deleted
constraints.lua
- unused file - Removed
-nulldevice
- Remove
respawn_entities
concommand - we havegmod_admin_cleanup
Developer tool changes
- Added
"Browse"
button toenv_spritetrail
in Hammer - Fixed VBSP being unable to find sub instances in subfolders
- Ported updated layout of the Particle Particle Editor from newer Source Engine games
- gmad.exe allows
model.vtx
files again to be uploaded to workshop
Lua API Changes
Additions
- Added MatSelect:OnSelect and MatSelect:OnRightClick
- util.Timer additions (Community Contribution)
- TIMER:Start() default first argument to 0 (Community Contribution)
- Added TIMER:GetElaspedTime() (Community Contribution)
- Added properties.Remove (Community Contribution)
- Implemented ENTITY:GetPreferredCarryAngles for
ai
type SENTs - Added NPC:SetIdealSequence
- Added 5th argument to constraint.Nocollide - disableOnRemove
- Added surface.GetPanelPaintState
- Added
massCenterOveride
for certain physics initialize functions - Added ProjectedTexture:SetNoCull and ProjectedTexture:GetNoCull
- Added
NAV_MESH_BLOCKED_LUA
Fixes
- Fixed IMaterial:SetVector4D not using float inputs
- Fixed DropEntityIfHeld affecting all players holding anything
- Implements
CHL2_Player::ForceDropOfCarriedPhysObjects
's argument to actually work - It is now an alias of Entity:ForcePlayerDrop, and is deprecated in favor of it
- Implements
- Fixed MatSelect erroring on select if not given a convar
- Fixed Entity:ManipulateBoneJiggle type 2 non functioning
- Corrected UTF8<->UTF16 conversion for the close caption function & hook
- Call GM:PlayerAuthed outside of player prediction so CurTime has a valid value
- Fixed Player:UniqueID returning nothing before GM:PlayerInitialSpawn
Changes
- DNumSlider: Setting min or max value updates slider pos
- Disallow Panel:SetHTML on panels with non empty hostname (i.e. SetHTML can only be called on empty HTML panels, or on panels that previously had its content set via SetHTML)
- Disallow Panel:RunJavascript on panels with local IP addresses
- Improvements to PropSelect to match MatSelect
- Implement Panel:Clear
- Added PropSelect:OnSelect hook
- Added PropSelect:OnRightClick hook
- Fixed errors when not given a convar
- Added PropSelect:FindModelByValue
- Added PropSelect:SelectModel
- Optimized SortedPairs further (Community Contribution)
- Player:StripWeapons drops weapons before removing them - This mimics behavior of Player:StripWeapon
- Fallback to
garrysmod.ver
for when Steam is not available to setBRANCH
(SRCDS) - Made gui.HideGameUI work more like GM:OnPauseMenuShow
Deletions
- Added
killserver
,cancelselect
to concommand blacklist - Block gui.SetMousePos/input.SetCursorPos while main menu is open