Garry's Mod Wiki

Revision Difference

Update_Preview_Changelog#552216

<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 `prerelease` and `dev` [beta branches](Dev_Branch). # Game Changes ## Additions * Added portal scene files⤶ * Ported some Portal 1 entities - the 2 turrets, personality core, fizzler trigger and security camera⤶ * The 2 Portal 1 turrets are available to be spawned through the Spawn menu in Sandbox⤶ * New default crosshair + customization⤶ * Ported some Portal 1 entities - the rocket and normal turrets, personality core, fizzler trigger and security camera⤶ * The 2 Portal 1 turrets are available to be spawned through the spawn menu in Sandbox⤶ * New default crosshair and crosshair customization⤶ * Addon preset importing and exporting * Confirmation when deleting addon presets ## Fixes * Precache particles for portal maps * Fixed crashes when accessing out of bounds flex controllers⤶ * Path constrain vprof_playback_start concommand, so it cannot access files outside of the game's folder⤶ * Several map category adjustments for Fistful of Frags and Team Fortress 2 maps (Community Contribution) (`fofhr_`, `zi_`)⤶ * Added portal scene files and made particles work on portal maps * Some minor security improvements⤶ * Several map category adjustments for new Fistful of Frags and Team Fortress 2 maps (Community Contribution) (`fofhr_`, `zi_`)⤶ * Disallowed making addon presets with empty names * Fixed addon presets with number only names being unable to be deleted * Fixed spawnmenu saved cursor position resetting to middle of the screen when clicking outside of the spawnmenu⤶ * Fixed saved cursor position resetting to middle of the screen when clicking outside of the spawnmenu while it is open⤶ ## Changes * More killicon aliases for physics kills * Adjust "Failed to find any models for this addon" error in spawnmenu to include a reason why it might be happening, as well as fit the text within its container * Half-Life Source turrets can now be spawned on the ground as well⤶ * More kill icons for physics-related kills * Adjust `"Failed to find any models for this addon"` error in spawnmenu to include a reason why it might be happening, as well as fit the text within its container * Half-Life Source ceiling turrets can now be spawned on the ground as well (Community Contribution)⤶ * Reduced default max_fps to 150 * Renamed CS:GO mountable game to mention the legacy branch - this option might be removed in a future version ## TTT Changes * Nothing so far. # Technical Changes ## Additions * New `VertexLitGeneric` parameters - `$AllowDiffuseModulation` and `$NoTint` - both allow disabling color tint per material (both existed in other source engine games, so that's why both are added)⤶ * New `VertexLitGeneric` shader parameters - `$AllowDiffuseModulation` and `$NoTint` - both allow disabling color tint per material⤶ * Additions to .gma whitelist * Added data_static/ alternative to data/ folder with all the acceptable extensions for file.Write * Added materials/colorcorrection/*.raw * Add some of the existing navigation related entities to the base FGD * Add some of the existing [navmesh](navmesh) related entities to the base FGD ## Fixes * RPG Missile stops its looping sound when removed prematurely * RPG rocket stops its looping sound when removed prematurely * SourceTV fixes * Fixed crashes when using tv_record console command * Player.IsBot now returns true for SourceTV master client * Prevent tv_enable going beyond absolute max player count and crashing * SourceTV players are considered bots for player library * Fixed duplicate definitions for Player.GetTool (Community Contribution) * Improved support for non-English messages in DTextEntry history (Community Contribution) * World clicker aim uses correct FOV values, so it works when FOV is modified by CalcView hooks, etc * Add a hack for displacements with `$alphatest 1` materials not having collisions * Lazily fix props with VortWarp shader crashing when entering water * Give sk_ally_regen_time a minimum value of 0.01 to avoid division by 0, and subsequent freezes due to infinite loops⤶ * Fixed crashes when using `tv_record` console command * <page>Player:IsBot</page> now returns true for `SourceTV` master client * Prevented `tv_enable` going beyond absolute max player count and crashing * `SourceTV` players are considered bots for <page>player</page> library * Fixed duplicate definitions for <page>Player:GetTool</page> (Community Contribution) * Improved support for non-English messages in <page>DTextEntry</page> history (Community Contribution) * World clicker aim uses correct FOV values, so it works when FOV is modified by <page>GM:CalcView</page> hooks, etc * Fixed displacements with `$alphatest 1` materials not having collisions * Fixed props with `VortWarp` shader crashing the game when entering water * Fixed crashes when accessing out of bounds flex controllers⤶ * Gave `sk_ally_regen_time` a minimum value of `0.01` to avoid division by `0`, and subsequent freezes due to infinite loops⤶ * Resolved incompatibility with `$BlendModulateTexture` and `$detail` - fixes gm_construct sand/grass transitions * Fixed blendable textures on a brush being inverted in Hammer i.e. not appearing like they do in-game * Fixed fonts from gamemode's content/ folder not being extracted - For workshop addons, so they can actually be loaded.⤶ * Fixed fonts from gamemode's `content/` folder inside a `.gma` not being extracted - so that they can actually be loaded⤶ ## Changes * Added file path to `"ERROR: couldn't open."` warnings * Change usages of deprecated gui.MousePos to input.GetCursorPos (Community Contribution) * Safeguards against malformed .gma files * Change usages of deprecated <page>gui.MousePos</page> to <page>input.GetCursorPos</page> (Community Contribution) * Safeguards against malformed `.gma` files * Empty stored entity outputs when pasting duplications to prevent abuse * Reduced Player.__index calls in player 3rd person animations (Community Contribution) * func_physbox/pushable is ignored by navmesh gen as walkable surfaces * More "reportable" keyvalues in default FGDs - Shows useful info in the Entity Report window * Disabled default automatic navmesh unblocking to accommodate CNavArea:MarkAsBlocked⤶ * Hide "No bound shader" warning behind developer 1 - And also add which materials the error is for * Reduced `Player.__index` calls in player 3rd person animations for performance improvement (Community Contribution) * `func_physbox`/`func_pushable` is ignored by navmesh generation as walkable surfaces * More "reportable" keyvalues in default FGDs - shows useful info in the `Entity Report` window * Disabled default automatic navmesh unblocking to accommodate <page>CNavArea:MarkAsBlocked</page>⤶ * Hide `"No bound shader"` warning behind `developer 1` - and also add which materials the error is for ## Deletions * Nothing so far. ## gmad.exe changes * Auto ignore .git stuff⤶ * Auto ignore `.git` folder and `.git*` files⤶ * Print out list of files that did not match the whitelist at the end of the console output, so they are more visible * Print out ignored files, and their total at the end of the output * Added `-quiet` to suppress spammy messages * Reduced buffer reallocations, which results in much faster .gma file creation, most noticeable with many small files (Community Contribution) * Reduced buffer reallocations, which results in much faster `.gma` file creation, most noticeable with many small files (Community Contribution) # Lua API Changes ## Additions * Added net.Write/ReadUInt64 and File:Write/ReadUInt64 * Added Angle.IsEqualTol⤶ * Added render.ComputePixelDiameterOfSphere⤶ * Added COND.* enums, used in NPC creation * Added SENT_AI:OnTaskFailed⤶ * Added NPC:GetIdealYaw, NPC:GetArrivalDirection, NPC:SetUnforgettable⤶ * Added CNavArea:MarkAsDamaging, CNavArea.IsDamaging⤶ * Added 2 optional arguments to util.JSONToTable - bypass depth/breadth limits & disable string to number conversion for keys * Added 6th optional argument to util.ScreenShake - AirShake * Added `DComboBox.RemoveChoice( index )` (Community Contribution) * Added <page>Angle:IsEqualTol</page>⤶ * Added <page>render.ComputePixelDiameterOfSphere</page>⤶ * Added [COND.*](Enums/COND) enums, used in NPC creation * Added <page>SENT_AI:OnTaskFailed</page>⤶ * Added <page>NPC:GetIdealYaw</page>, <page>NPC:GetArrivalDirection</page>, <page>NPC:SetUnforgettable</page>⤶ * Added <page>CNavArea:MarkAsDamaging</page>, <page>CNavArea.IsDamaging</page>⤶ * Added 2 optional arguments to <page>util.JSONToTable</page> - bypass depth/breadth limits & disable string to number conversion for keys * Added 6th optional argument to <page>util.ScreenShake</page> - AirShake * Added <page>DComboBox:RemoveChoice</page> (Community Contribution) * Improvements to MatSelect * Added `MatSelect:Clear`(Community Contribution) * Added `MatSelect:SelectedItemPaintOver( x, y )`(Community Contribution) * `MatSelect:AddMaterial*` methods now return the created `DImageButton`(Community Contribution) * Added `local pnl = MatSelect:FindMaterialByValue( value )`(Community Contribution) * Added `MatSelect:SelectMaterial( pnl )`(Community Contribution) * Vector:Mul() now supports VMatrix * Added navmesh.CreateNavLadder⤶ * Added OnCloseCaptionEmit hook * Added gui.AddCaption( text, duration, fromPlayer ) * Added GM:OnPlayerJump hook * Added new optional argument to render.ClearDepth: bool stencil - also clear stencil buffer, defaults to true for backwards compatibility⤶ * Added a new argument to GM:EntityRemoved - for full update removes * Added <page>navmesh.CreateNavLadder</page>⤶ * Added <page>GM:OnCloseCaptionEmit</page> hook * Added <page>gui.AddCaption</page>( text, duration, fromPlayer ) * Added <page>GM:OnPlayerJump</page> hook * Added new optional argument to <page>render.ClearDepth</page> - stencil⤶ * Added a new argument to <page>GM:EntityRemoved</page> - for full update removes * Added NPC:Set/GetViewOffset * Added Panel.GetScrollStartIndexes⤶ * Added missing enum for NAV_MESH_BLOCKED_PROPDOOR⤶ * Added navmesh.GetBlockedAreas()⤶ * Added CNavArea:MarkAsBlocked( teamID ), CNavArea:MarkAsUnblocked( teamID ) * Added CNavArea:RemoveAttributes( flags ), CNavArea:AddAttributes( flags ) * Added NPC:GetCurGoalType, NPC.IsCurWaypointGoal, NPC.GetGoalTarget, NPC.GetGoalPos⤶ * Added <page>Panel:GetScrollStartIndexes</page>⤶ * Added missing enum for <page>NAV_MESH_BLOCKED_PROPDOOR</page>⤶ * Added <page>navmesh.GetBlockedAreas</page>⤶ * Added <page>CNavArea:MarkAsBlocked</page>( teamID ), <page>CNavArea:MarkAsUnblocked</page>( teamID ) * Added <page>CNavArea:RemoveAttributes</page>( flags ), <page>CNavArea:AddAttributes</page>( flags ) * Added <page>NPC:GetCurGoalType</page>, <page>NPC.IsCurWaypointGoal</page>, <page>NPC.GetGoalTarget</page>, <page>NPC.GetGoalPos</page>⤶ * Added SWEP/SENT.ClassNameOverride (Community Contribution) * NPCData.OnCeiling, OnFloor, OnDuplicated can now also be functions * Added net.Read/WritePlayer (Community Contribution) * Added 2nd return value to NPC:Disposition - priority * Added ents.Iterator and player.Iterator (Community Contribution) * Added string.CardinalToOrdinal (Community Contribution) * Added <page>ents.Iterator</page> and <page>player.Iterator</page> (Community Contribution) * Added <page>string.CardinalToOrdinal</page> (Community Contribution) ## Fixes * Fixed DNumberWang passing both strings and numbers to OnValueChanged (Community Contribution) * Fixed Player:SprintEnable not working * EntityEmitSound blocks CSceneEntity close captions * Made 2nd argument of Global.EmitSound actually set the sound position * Global.EmitSound precaches the sound when ran in multiplayer serverside * Sentences system calls GM:EntityEmitSound⤶ * Fixed <page>DNumberWang</page> passing both strings and numbers to OnValueChanged (Community Contribution) * Fixed <page>Player:SprintEnable</page> not working * <page>GM:EntityEmitSound</page> blocks CSceneEntity close captions * Made 2nd argument of <page>Global.EmitSound</page> actually set the sound position * <page>Global.EmitSound</page> precaches the sound when ran in multiplayer serverside * Sentences system calls <page>GM:EntityEmitSound</page>⤶ ## Changes * Panel:GetNumLines now works with TextEntry * Added .dem and .vcd to file.Write whitelist * Added render.Push/PopRenderTarget overflow/underflow safeguards⤶ * Weapon:GetTracerOrigin is now called for 3rd person view as well * LuaMesh.BuildFromTriangles now allows modifying the exiting mesh without crashing (vertex count must be the same) * Also made certain render.Push* function overflowing not crash the game outright * Better optional argument handling for sound.Play⤶ * Bumped gui.OpenURL url limit to 2000 characters * Allowed GM:OnPhysgunFreeze to be ran on non vphysics entities - the 2nd argument ( physobj ) will be NULL for those cases * Panel.DrawTextEntryText doesn't silently fail with invalid input, will correctly error instead * <page>Panel:GetNumLines</page> now works with TextEntry * Added `.dem` and `.vcd` to <page>file.Write</page> whitelist * Added overflow/underflow safeguards to <page>render.PushRenderTarget</page>/<page>render.PopRenderTarget</page>⤶ * <page>Weapon:GetTracerOrigin</page> is now called for 3rd person view as well * <page>IMesh:BuildFromTriangles</page> now allows modifying the exiting mesh without crashing (vertex count must be the same) * Also made certain `render.Push*` function overflowing not crash the game outright * Better optional argument handling for <page>sound.Play</page>⤶ * Bumped <page>gui.OpenURL</page> url limit to 2000 characters * Allowed <page>GM:OnPhysgunFreeze</page> to be ran on non vphysics entities - the 2nd argument (PhysObj) will be `NULL` for those cases * <page>Panel:DrawTextEntryText</page> doesn't silently fail with invalid input, will correctly error instead ## Deletions * Nothing so far.