Revision Difference
Update_Preview_Changelog#562851
<cat>Play</cat>
<title>Update Preview Changelog</title>
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](Dev_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` and `sbox_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
* 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 ![](https://files.facepunch.com/rubat/2024/October10-647-CheeryLunamoth.gif)
* 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` and `sv_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
* Added `SetTarget1`-`SetTarget4` inputs to `logic_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 to `logic_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 respecting `TEXTUREFLAGS_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)
* <page>player.CreateNextBot</page> 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 <page>debug.getregistry</page> usage with <page>Global.RegisterMetaTable</page> where appropriate (Community Contribution)
* Use <page>math.tau</page> in some places instead of `2 * math.pi` (Community Contribution)
* Merge some <page>math</page> 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 <page>GWEN.CreateTextureBorder</page> 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
* Groundwork for networking serverside tracers spread on Y axis (TODO: Remove me and implement the networking)⤶
* 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.
* `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` with `screenshot` (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
* `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 have `gmod_admin_cleanup`
## Developer tool changes
* Added `"Browse"` button to `env_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 <page>MatSelect:OnSelect</page> and <page>MatSelect:OnRightClick</page>
* <page>util.Timer</page> additions (Community Contribution)
* TIMER:Start() default first argument to 0 (Community Contribution)
* Added TIMER:GetElaspedTime() (Community Contribution)
* Added <page>properties.Remove</page> (Community Contribution)
* Implemented <page>ENTITY:GetPreferredCarryAngles</page> for `ai` type SENTs
* Added <page>NPC:SetIdealSequence</page>
* Added 5th argument to <page>constraint.Nocollide</page> - disableOnRemove
* Added <page>surface.GetPanelPaintState</page>
* Added `massCenterOveride` for certain physics initialize functions
* <page>Entity:PhysicsInit</page>
* <page>Entity:PhysicsInitMultiConvex</page>
* <page>Entity:PhysicsInitConvex</page>
* <page>Entity:PhysicsFromMesh</page>
* <page>Entity:PhysicsInitBox</page>
* Added <page>ProjectedTexture:SetNoCull</page> and <page>ProjectedTexture:GetNoCull</page>
* Added `NAV_MESH_BLOCKED_LUA`
## Fixes
* Fixed <page>IMaterial:SetVector4D</page> not using float inputs
* Fixed <page>Global.DropEntityIfHeld</page> affecting all players holding anything
* Implements `CHL2_Player::ForceDropOfCarriedPhysObjects`'s argument to actually work
* It is now an alias of <page>Entity:ForcePlayerDrop</page>, and is deprecated in favor of it
* Fixed <page>MatSelect</page> erroring on select if not given a convar
* Fixed <page>Entity:ManipulateBoneJiggle</page> type 2 non functioning
* Corrected UTF8<->UTF16 conversion for the close caption function & hook
* Call <page>GM:PlayerAuthed</page> outside of player prediction so <page>Global.CurTime</page> has a valid value
* Fixed <page>Player:UniqueID</page> returning nothing before <page>GM:PlayerInitialSpawn</page>
## Changes
* <page>DNumSlider</page>: Setting min or max value updates slider pos
* Disallow <page>Panel:SetHTML</page> 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 <page>Panel:RunJavascript</page> on panels with local IP addresses
* Improvements to <page>PropSelect</page> to match <page>MatSelect</page>
* Implement <page>Panel:Clear</page>
* Added <page>PropSelect:OnSelect</page> hook
* Added <page>PropSelect:OnRightClick</page> hook
* Fixed errors when not given a convar
* Added <page>PropSelect:FindModelByValue</page>
* Added <page>PropSelect:SelectModel</page>
* Optimized <page>Global.SortedPairs</page> further (Community Contribution)
* <page>Player:StripWeapons</page> drops weapons before removing them - This mimics behavior of <page>Player:StripWeapon</page>
* Fallback to `garrysmod.ver` for when Steam is not available to set `BRANCH` (SRCDS)
* Made <page>gui.HideGameUI</page> work more like <page>GM:OnPauseMenuShow</page>
## Deletions
* Added `killserver`, `cancelselect` to concommand blacklist
* Block gui.SetMousePos/input.SetCursorPos while main menu is open