Garry's Mod Wiki

Revision Difference

Update_Preview_Changelog#563034

<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)⤶ * Added Portal 2 Coop player spawn points⤶ * Added all missing Portal 2 map icons⤶ * Added visual placeholder entities for Portal 2 excursion funnel, Wheatley boss and npc_personality_core ⤶ * Added Hacked and Harmless Rollermine variants to spawnmenu⤶ ## 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)⤶ * Fixed some props in Portal 2 appearing rainbow-y⤶ * Fix `"missing sound common/null.wav"` when throwing grenades⤶ ## 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)⤶ * Bumped default value of `sbox_maxconstraints` to `2000` to account for larger dupes/saves⤶ * Make Sniper kills in "Alyx as sniper" sections in Half-Life 2 episodes appear as Alyx in the kill feed⤶ * Fixed mass-adjusted punt forces being applied to Mega Gravity Gun⤶ * Fixed Gravity Gun forces being Launch-forces at all times for `prop_physics` due to a previous fix for `spin_none` physics interaction⤶ ## Deletions * Remove missing skins from certain built-in props⤶ * Do not apply spawnmenu names to map-spawned NPCs in kill feed - it was too error prone⤶ ## 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)⤶ * Added some generic logic entities from Portal 2 - `logic_register_activator`, `logic_coop_manager`, `point_viewcontrol_multiplayer`, `point_viewproxy`, generic enough to be useful outside of Portal 2⤶ * Added new inputs/keyvalues to `prop_vehicle_choreo_generic` from Portal 2⤶ * Inputs: `SetCanShoot`, `UseAttachmentEyes`, `SetMaxPitch`, `SetMinPitch`, `SetMaxYaw`, `SetMinYaw`⤶ * Key-values: `playercanshoot`, `useattachmenteyes`⤶ * Enable DMX versions 3, 4 and 5 loading for particles from newer games⤶ * Ported most particle related features from CS:GO⤶ * Added 2 new spawnflags to `env_player_surface_trigger` - Trigger on player(s) leaving ground & Set output activator to the player⤶ * New inputs to `game_text` - `SetText`, `SetPosX`, `SetPosY`, `SetTextColor`, `SetTextColor2`⤶ * New inputs for `game_player_equip` - `TriggerForAllPlayers` and `TriggerForActivatedPlayer`, as well as `"Strip All Weapons First"` spawnflag⤶ * Added `skybox_swapper` entity⤶ * Added particle-based `func_precipitation` types from CS:GO⤶ * Added ability to override `func_precipitation` particles⤶ * Implement `func_precipitation_blocker`⤶ * Implementd `origin` for `playlooping`/`playrandom` and `ambientOriginOverride` for "playSoundscape" in soundscapes⤶ ## 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)⤶ * Fixed some minor memory leaks - These are mostly in developer features to do with KeyValues, not normal gameplay⤶ * Initialize `m_rgflCoordinateFrame` on creation clientside - This fixes certain matrices being nulled out when they are not supposed to, such as when calculating `prop_vehicle_choreo_generic` look angles⤶ * Allow loading PCF version 2 in `-tools`⤶ * Fixed many, many potential crashes with the particle system⤶ * Added missing materials for legacy Ash precipitation type⤶ ## 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⤶ * 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⤶ * Do not estimate velocity clientside since we network it for every entity anyway⤶ * Moved `"SOLID_VPHYSICS static prop with no vphysics"` warning to developer 1⤶ * Made particle preview background slightly lighter (32,32,32) * Use networked velocity for entities that set it serverside⤶ * Physics entities such as props, vehicles, SENTS do not set their velocity, since its all handled by the physics engine, so it ends up not actually being networked⤶ * Set the default particle orientation in Particle Editor on creation⤶ * Added particle material name to `"unimplemented sprite renderer"` warning (.pcf particles) * Force Sandbox tool classnames to lowercase at all times to fix a bug in multiplayer where the client and server classname could have mismatching capitalization⤶ * Applied potential filesystem optimization suggested by the community⤶ * Micro optimization for Entity.__index (Community Contribution)⤶ * Micro optimizations for team library (Community Contribution)⤶ * Fixed `"Bad SetLocalOrigin on gmod_hands"` warning (Community Contribution)⤶ * Potential micro optimizations in localization loading/parsing⤶ * Fixed a small memory leak in gamemode .txt file parsing⤶ * Fixed a small memory leak with saving presets (preset library)⤶ * Fixed small potential memory leak with creating Lua bone followers⤶ * Store disabled workshop addon IDs as Uint64 instead of IDs turned to strings - should save some memory⤶ ## Deletions * Deleted `constraints.lua` - unused file⤶ * Removed `-nulldevice`⤶ * Remove `respawn_entities` concommand - we have `gmod_admin_cleanup`⤶ * Removed scratchpad from game builds⤶ * Removed `bloodspray` console command⤶ ## 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⤶ * Added `light_directional` support for vrad.exe⤶ * Some other VRAD changes - There are also changes to do with displacement lightmaps from CS:GO, supposedly should be better between brushes/displacements⤶ * # 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`⤶ * Added <page>PhysObj:GetIndex</page>⤶ ## 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>⤶ * Fixed not being able to `StopSound` generated sounds⤶ ## 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>⤶ * Display a non halting error when teamID in <page>Player:SetTeam</page> would not network correctly⤶ * <page>GM:ClientSignOnStateChanged</page> is no longer called for HLTV clients⤶ * <page>util.IsValidModel</page> uses meshcount to determine useless models, instead of hardcoded path substrings, which is error prone⤶ * Do not `IsValid` the ident in `hook.Add` & `hook.Remove` - The check was added solely to print an error for invalid types, but NULL entity is still an entity⤶ ## Deletions * Added `killserver`, `cancelselect` to concommand blacklist⤶ * Block gui.SetMousePos/input.SetCursorPos while main menu is open⤶ ⤶ *