Garry's Mod Wiki

Revision Difference

Update_Preview_Changelog#561020

<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 * 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 * Added custom icons for tree nodes in spawnmenu categories (Community Contribution) * Added `g_ragdoll_maxcount` to server settings in spawnmenu * Added missing TF2 map icons * You can now favorite addons through main menu * Added Server settings to Sandbox menu bar - Making them more visible to players * Allow right clicking in Bodygroup & Skin context menus - This allows you quickly change bodygroups and skins without closing the menu ## Fixes * 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 saved cursor position resetting to middle of the screen when clicking outside of the spawnmenu while it is open * Disabled Half-Life 2's sneak attack code for non-hostile NPCs, when ignore players is set, or AI is disabled - Fixes NPCs getting one shot in the head by players most the time * Favorite and Vote Up/Down status for addons are now better synched with real values * Fixed citizens healing players with `ai_ignoreplayers` set to `1`, and when the player is standing above the NPC * Fixed "addon file conflict" problem duplicating file paths on addon remount * Fixed `env_skypaint` shader flickering when not given a valid sun normal * Fixed bugbait animations when using alt fire right after throwing a bait * Fixed AR2 using 2 extra bullets when trying to fire right after using the alt attack * Fixed shotgun locking up when holding reload and attack buttons during the reload animation * Fixed 3rd person animation events playing in 1st person when the animations are reset * Fixes shotgun playing extra pump sound when holding reload key while firing * Fixed certain sandbox tool entities not saving certain settings in duplications - such as being frozen by the physics gun and the "Make Persistent" setting * Consistent death handling for Half-Life: Source NPCs with `ai_serverragdolls` enabled and disabled (certain NPCs would either not die, or make extra ragdolls) * Fixed spawnmenu `"Save Changes"` / `"Revert"` buttons not having icons * Don't explode props on touch if caught by physgun (explosive barrel after being launched using Gravity Gun) * Fixed `game_text` text (on screen text from maps) being cut off on screen if it is very long * Fixed bugs when entering a vehicle while dismounting a ladder * Prevented Half-Life 2 avoidance system making NPCs invisible when standing inside of them * Fixed old saves, dupes and demos not extracting when loaded in the main menu * Fixed combine dropship container gun aiming * Fixed taunt camera making view angle roll permanent * Fixed deleting a bunch of text in a <page>TextEntry</page> (And console input) and then typing not updating the horizontal scrolling to show the typed text * Fixed duplicated NPCs being unintentionally dropped to floor sometimes⤶ * Fixed shotgun firing on its own after being unholstered in a certain scenario⤶ * Fixed being able to open ammo crates from any distance using delayed damage and switching to Crowbar⤶ ## Changes * 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 * Updated gm_construct navigation mesh - added walkable drop down only areas to elevated areas, such as roofs of certain buildings * Make `fps_max` console variable save across sessions, and add an option for it in video settings * Save NPC health and maximum health in duplications * Moved `Multiplayer` options tab to front, and renamed it to `Game`, moved FOV and Fast Weapon Switch options to it, removed those from their previous places, removed `"Advanced"` keyboard options which are now obsolete * This is aimed to help players find these settings easier * Set max health for NPCs spawned from spawnmenu that have health override, for things like healing NPCs * Make it easier to select addons in the Addons list (Community Contribution) * Improved projected texture shadow quality * Replaced util.TraceLine by util.TraceHull for tool traces. Fixes trace bypassing parented props (Community Contribution) * Don't play ammo pickup sounds for NPCs * Updated language files * Placeholder portal 2 entities to visually fill gaps on Portal 2 maps * Prevent empty gun sounds when trying to secondary fire certain weapons underwater that do not have a secondary fire attack * Do not allow Half-Life 2 helicopter to be dissolved by AR2 altfire * Faceposer: When model has too many flexes, display a message and visually disable non functioning sliders * Added L4D1 entity placeholders - makes safehouse doors at least appear on those maps, etc. * `mat_depthbias_shadowmap` was changed from 0.00001 to 0.001 by default (affects shadow rendering) * Disabled ability to grab jeeps with super Gravity Gun - causes severe physics lag * gm_construct navmesh - Added one way out of the secret room - this is mainly to hide the warnings on map load * Added fallbacks for CS:S muzzleflash textures that do not conflict with base game textures * Added window titles to disconnect messages based on the message source * Ported RPG behavior from Half-Life 2 - prevent NPCs from killing themselves with it * Don't record certain pointless convars and commands in demos (like gm_demo itself) * Query server addons 500 at a time (was 50) - Should speed it up * Display a nicer message when the HTML main menu fails to load * Added timestamp to code signed game binaries * Display a problem in the Problems panel when certain files are not writable, such are user configurations being set to read-only ## TTT Changes * Prevent TTT weapon base creating Lua errors with NPCs (Community Contribution) * Added Turkish translations (Community Contribution) * Transition to SteamID64 (Community Contribution) * Changed captization of certain weapon ammo types to match engine (Community Contribution) # Technical Changes ## Additions * 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 [navmesh](navmesh) related entities to the base FGD * Restored content unloading, behind a convar - gmod_unload_test * Added `SolidEnergy` shader from CS:GO - enables certain things to draw correctly from Portal 2 and Black Mesa * Added `lua_refresh_file` <path> * Added `quit keep_players` option to not force disconnect players, a requested feature by server owners * `-allowquit` makes `engine.CloseServer()` function and run `"quit keep_players"` * Added `Impact_GMOD` effect that supports usage of `IMPACT_` flags * Added `"teamonly"` param to `"player_say"` game event ## Fixes * RPG rocket stops its looping sound when removed prematurely * SourceTV fixes * 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 * Do not wait for SteamID validation for HLTV clients that will never come, so players can actually join such servers * Fixed tags for HLTV servers, added extra `hltv:1` tag * 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 * Gaven `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 inside a `.gma` not being extracted - so that they can actually be loaded * Clean up DOF_Ents table on DOF_Kill (Community Contribution) * Fixed airboat attachment name * Fixed seemingly incorrect calculation of vehicle wheel total height * Prevent audio system being able to read files outside of game folder * Make duplicator actually spawn the correct NPC * It was spawning them by entity class, luckily all of the base ones are present in the "NPC" list by their classname, now it spawns them by their actual original name in the "NPC" list. * Fixed SteamID placeholder calculation for clients with no SteamID (multirun environments) * Fixed crashes due to <page>CSoundPatch</page> * Fixed <page>Panel:SetDrawLanguageIDAtLeft</page> causing cursor selection to be offset * Fixed server browser showing lowercase gamemode names for empty categories (Community Contribution) * Fixes for `func_door` looping sounds * Improve autorefresh handling for `lua_openscript(_cl)` scripts * Fixed secondary map instances overriding base map revision * Fixed navmesh place names being cutoff by 1 character * Fixed "from end/current position" seeking for files stored in VPKs * Fixed viewpunch prediction errors when landing * Fixed useless spam in output of VBSP (when compiling maps) * Fixed useless spam in console when starting Linux Dedicated Server * Fixed `nav_generate` and `nav_edit` trying to run unknown or removed concommands and convars * Fixed 2 community.properties translations that had typos * Do not force Nextbot/SNPC render group to opaque by default - let the engine decide based on the entity's model * Fixed an issue where text too long in `mat_texture_list` would not draw at all * Clear water reflection view every frame - fixes not rendering skybox causing water reflections to be "stuck" to screen, etc. * Fixed crash when `prop_door`s have no model on spawn * Fixed drag'n'drop preview being offset when local panel position is above 2048 pixels on any axis * Fixed a crash with `npc_vortigaunt` in a specific Half-Life 2 Coast map scripted sequence when you make it shoot an explosive barrel * Fixed an infinite loop in `EnumerateElementsAlongRay` when ray has infinite end position * Fixed minor saverestore warning with prop_physics * Force DXT1 /w 1BitAlpha to DXT1 format in VTF loading to make them actually appear correctly * Reject textures whose size is calculated to be 0 bytes * Prevented crashes with ragdolls (especially when created too early) * Fixed crashes when Half-Life: Source vortigaunt or scientist is killed by unowned combine ball * Fixed potential minor memory leaks with Source Engine * Fixed crashes related to shadow rendering * Do not cleanup `env_soundscape_proxy` entities - This used to break soundscapes, and other soundscape entities are already not cleaned up * Fixed `func_tank` becoming unusable after temporarily setting its firerate to 0 * Fixed `trigger_hurt` `damagetype` keyvalue parsing for unsigned int values * Fixed `func_instance_io_proxy` not updating inputs correctly * Set `-game` to `garrysmod` for Hammer if not already set, fixing "missing shader" warning spam on start up * Initialize mod shaders for VBSP (during map compile), so painted skybox materials can load correctly for cubemaps (since they use custom shaders, and missing shaders make materials not load) * Fixed crashes when failing to create physics bone followers at entity limit * Prevent crash on game exit to do with the loading screen * Fixed `datapack_stats` not correctly decompressing data, causing crashes sometimes * Fixed crashes when maps have entities parented in an infinite loop * Fixed a graphical glitch-exploit with `pp/copy` material and the halo library * Added sound/*.ogg to BSP whitelist * Gravity Gun stores and restores PhysObj drag state, instead of always resetting it * Fixed many crashes when certain models try to access invalid data * Fixed potential crash with game_ui entity * A number of crash fixes to do with infinities ## Changes * Added file path to `"ERROR: couldn't open."` warnings * 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 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 * A bit faster optional argument handling for Lua API * Added classnames to `"C_BaseEntity::UnlinkFromHierarchy"` warning * Safe guard against invalid vector input to <page>PhysObj</page> functions to prevent crashes * Read `settings/users.txt` from `MOD` search path for safety * Limit `lua_error_url` to http(s) and send the client's SteamID with the Lua errors * Try bumping `MAX_MAP_ENTITIES` to `65k` (tools only) and engine hunk limit to `256MB` * Unhide `r_portalscloseall` cheat convar * Fallback shaders only if they don't exist * Favorite workshop categories are no longer cached - so that they update properly when favorites change * Mention what `nav_quicksave 2` does in the description of `nav_quicksave` * Enable episodic behaviors for `npc_citizen` when `hl2_episodic` is set to `1` * Do not handle spawnicons during <page>render.RenderView</page> to prevent possible issues * Turn Lua effect creation warnings into non halting Lua errors so they have a stack trace * Initialize vectors when GetSequenceLinearMotion fails to prevent potential crash issues * Increased MAX_LIGHTSTYLES to 128 (from 64) * Switched func_rotating to use CSoundPatch for its looping sounds to fix missing sounds when joining a multiplayer server after a round has started * Display HLTV client connect messages differently from normal clients * Hide HLTV servers from the server list - They can't be displayed properly side by side right now (Game servers running HLTV are still visible) * <page>WEAPON:CustomAmmoDisplay</page> uses pooled string (potential micro optimization) * Micro optimization for missing physics objects * Validate model header values to not crash the game later - warnings are printed in console for such models, and they are not loaded * Patched base game `cs_fix.mdl` to not crash the game in certain scenarios * Do not even try to read weight of first bone for models without any * When deleting ragdoll physics objects, also delete constraints * Reset movehelper host after bot command processing, like players already do * Disabled SteamID authentification checking for LAN only servers - Fixes `-multirun` clients being stuck waiting for confirmation whether the SteamID is valid or not when joining a LAN server * Hide IP address in status command for P2P servers * Prevented creating render target with names of non RT textures * Prevented movement when the player is dead for WALK/NOCLIP/FLY movetypes * Do not mark addons with id of 0 for download from server - Just avoids the unnecessary wait time when its the only addon * Switched server downloads extension filter to a whitelist * Increased the Hammer Map Compile Window size to 1280x720, from 600x400 * Added a warning when orange box particle count is weird, hopefully shed some light on a crash issue * Made 'Couldn't find target' warning more verbose * Clean up render targets created by Lua API, improving memory usage on map disconnect.⤶ * Clean up render targets created by Lua API, improving memory usage on map disconnect⤶ * Set inflictor of Crowbar/Stunstick damage to the weapon itself, not the player⤶ ## Deletions * Removed a number of useless files from Dedicated Server Distributions, such as binaries and other files only used by the game client. * Removed unused `bodyque` entity system * Disabled and partially removed unused Source Engine commentary system * Removed mem_eat command ## gmad.exe changes * 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) # Lua API Changes ## Additions * Added <page>net.WriteUInt64</page>, <page>net.ReadUInt64</page>, <page>File:WriteUInt64</page> and <page>File:ReadUInt64</page> * Added <page>Angle:IsEqualTol</page> * Added <page>render.ComputePixelDiameterOfSphere</page> * Added [COND.*](Enums/COND) enums, used in NPC creation * Added <page>ENTITY:OnTaskFailed</page> for `ai` type entities * Added <page>NPC:GetIdealYaw</page>, <page>NPC:GetArrivalDirection</page>, <page>NPC:SetUnforgettable</page> * Added <page>NPC:GetCurGoalType</page>, <page>NPC:IsCurWaypointGoal</page>, <page>NPC:GetGoalTarget</page>, <page>NPC:GetGoalPos</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 <page>MatSelect</page> * Added <page>MatSelect:Clear</page> (Community Contribution) * Added <page>MatSelect:SelectedItemPaintOver</page> (Community Contribution) * `MatSelect:AddMaterial*` methods now return the created <page>DImageButton</page> (Community Contribution) * Added local pnl = <page>MatSelect:FindMaterialByValue</page> (Community Contribution) * Added <page>MatSelect:SelectMaterial</page> (Community Contribution) * <page>Vector:Mul</page> now supports VMatrix * Added <page>navmesh.CreateNavLadder</page> * Added <page>GM:OnCloseCaptionEmit</page> hook * Added <page>gui.AddCaption</page> * Added <page>Player:IsWalking</page> * 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 <page>NPC:SetViewOffset</page> and <page>NPC:GetViewOffset</page> * Added <page>Panel:GetScrollStartIndexes</page> * Added missing enum for <page text="NAV_MESH_BLOCKED_PROPDOOR">Enums/NAV_MESH#NAV_MESH_BLOCKED_PROPDOOR</page> * Added <page>navmesh.GetBlockedAreas</page> * Added <page>CNavArea:MarkAsBlocked</page>, <page>CNavArea:MarkAsUnblocked</page> * Added <page>CNavArea:RemoveAttributes</page>, <page>CNavArea:AddAttributes</page> * Added <page text="ENT.ClassNameOverride">Structures/ENT#ClassNameOverride</page> and <page text="SWEP.ClassNameOverride">Structures/SWEP#ClassNameOverride</page> (Community Contribution) * NPCData.OnCeiling, OnFloor, OnDuplicated can now also be functions * Added <page>net.ReadPlayer</page> and <page>net.WritePlayer</page> (Community Contribution) * Added 2nd return value to <page>NPC:Disposition</page> - priority * Added <page>ents.Iterator</page> and <page>player.Iterator</page> (Community Contribution) * Added <page>string.CardinalToOrdinal</page> (Community Contribution) * Added a new argument for <page>killicon.GetSize</page> * Added <page>killicon.Render</page> * Added <page>killicon.AddTexCoord</page> - subrect killicons on a single texture (Community Contribution) * Added `sequential` parameter to <page>net.ReadTable</page>/<page>net.WriteTable</page> (Community Contribution) * Added <page>CNavArea:GetIncomingConnectionDistances</page> * Added <page>CNavArea:GetAdjacentAreaDistances</page> * <page>GM:OnEntityCreated</page> is now also called for clientside only entities * Support <page>Vector</page> / <page>Vector</page> - divide each component individually * <page>GM:OnScreenSizeChanged</page> and <page>PANEL:OnScreenSizeChanged</page> get 2 new parameters - new width & height * Added optional filter option to <page>Global.EmitSound</page> and <page>Entity:EmitSound</page> * Added <page>Panel:GetLineHeight</page> * Added <page>Panel:SetLineHeight</page> * Added <page>Panel:AppendTextWithURLs</page> * Added <page>navmesh.FindInBox</page> * Added <page>CRecipientFilter:AddPlayers</page> * Added <page>CRecipientFilter:RemovePlayers</page> * Added <page>CRecipientFilter:RemoveMismatchedPlayers</page> * Added `"Bone"` field for <page>Entity:GetAttachment</page> * Added optional argument to <page>CLuaLocomotion:Jump</page> - activity * Added <page>Vector:Distance2D</page> and <page>Vector:Distance2DSqr</page> * Added <page>GM:HandlePlayerArmorReduction</page> * Added <page>SANDBOX:PreRegisterTOOL</page> hook (Community Contribution) * Added <page>GM:CanCreateUndo</page> hook (Community Contribution) * Added <page>math.Factorial</page> (Community Contribution) * Added <page>ENTITY:TranslateActivity</page> for `ai` type entities * Added <page>GM:PostEntityFireBullets</page> * Added <page>NPC:SetIdealYaw</page> * Added <page>NPC:UpdateYaw</page> * Added <page>NPC:IsFacingIdealYaw</page> * Added <page>NPC:SetIgnoreConditions</page> * Added <page>NPC:RemoveIgnoreConditions</page> * Added <page>IGModAudioChannel:GetBufferedTime</page> * Added <page>math.tau</page> (Community Contribution) * Added option to force override child tables in <page>table.Merge</page> (Community Contribution) * Added <page>table.move</page> for non `x86-64` beta versions of the game (Community Contribution) * Added <page>ENT:OverrideMove</page> and <page>ENT:OverrideMoveFacing</page> for `ai` ents * Added <page>ENT:TranslateSchedule</page> and <page>ENT:OnStateChange</page> for `ai` sents * Added <page>NPC:AdvancePath</page> * Added <page>net.Abort</page> * Added ENT.WantsTranslucency and use it for sandbox entities - better handles render group stuff for Sandbox entities * Added `IsValid` methods to <page>CMoveData</page>/<page>CUserCmd</page>/<page>CEffectData</page>/<page>CTakeDamageInfo</page> * Allow omitting first argument to <page>NPC:SetSquad</page> to remove the NPC from its squad * Added <page>util.GetAnimEventNameByID</page> for integration with custom animation events in models * Added a callback to <page>game.CleanUpMap</page> to defer it until end of tick and avoid overflowing entity limit * Added <page>util.IsRayIntersectingRay</page> * Added <page>NPC:GetIdealSequence</page> * Added 7th optional argument to <page>util.ScreenShake</page> - filter (serverside only) * Added <page>DMenuOption:SetRadio</page>/<page>DMenuOption:GetRadio</page> * Added DSP as 6th optional argument to <page>sound.Play</page> ## Fixes * 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> * Use brackets for keys in <page>Global.PrintTable</page> to avoid confusion with trailing/leading whitespace (Community Contribution) * Fixed <page>Panel:GetNumLines</page> not being up to date within <page>TextEntry:OnTextChanged</page>. * Fixed an infinite loop with <page>string.Comma</page> when giving invalid input (Community Contribution) * Fixed <page>NPC:SetSquad</page> not working when the NPC has no squad * Fixed <page>DListBox</page> selection not working * Fixed <page>IGModAudioChannel:SetPan</page> not using float inputs * Round down <page>DGrid</page> column/row sizes to get rid of 1 pixel gaps (Community Contribution) * Fixed Entity:SetNW/GetNW methods being usable on NULLs without errors * Fixed crashes when trying to call <page>navmesh.Load</page> too early * Fixed calling <page>Entity:Spawn</page> twice on ragdolls crashing the game * Fixed <page>Entity:SetModel</page> on `prop_ragdoll` causing the model to look glitchy * <page>SurfaceInfo:GetVertices</page> now works on surfaces with non poly primitives * Performance improvements for <page>file.Exists</page>/<page>file.IsDir</page> in Lua paths * Mitigate a random crash with <page>NPC:SetSquad</page> * Made clientside ragdolls be considered ragdolls * Fixed freeze with <page>table.Add</page> when given same table in both arguments (Community Contribution) * Fixed a crash when <page>Global.AddOriginToPVS</page> is ran too early * Fixed <page>DMenuOption:SetChecked</page> not calling <page>DMenuOption:OnChecked</page> * Enabled usage of clientside entities for <page>CEffectData:SetEntity</page> * Fixed <page>util.IsBinaryModuleInstalled</page> giving false positives when the module is in `addons/` (Community Contribution) * Fixed an infinite loop with <page>Panel:SetDragParent</page> (Community Contribution)⤶ * Added `u1` and `v1` field support to <page>IMesh:BuildFromTriangles</page>⤶ ## Changes * <page>Panel:GetNumLines</page> now works with TextEntry * Added `.dem`, `.gma` and `.vcd` to <page>file.Write</page> whitelist * Added model file types to <page>file.Write</page> whitelist * <page>Weapon:GetTracerOrigin</page> is now called for 3rd person view as well * 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 * <page>killicon.Add</page> can now use `.png`s * Made <page>NPC:SetUnforgettable</page> 2nd argument default to true * <page>Global.ProtectedCall</page> supports varargs just like <page>Global.pcall</page> * <page>Entity:SetIK</page> is now shared (was clientside only) * Increased output limits of <page>ents.FindInCone</page>/Box, <page>ents.FindAlongRay</page> to match max entity count * Altered how missing members of <page>GM:EntityFireBullets</page> return table work, defaulting to pre existing values, not to static values * <page>Entity:SetPreventTransmit</page> can now accept a table of players or a filter * Return true for <page>GM:EntityFireBullets</page> in base gamemode - This allows multiple hooks to modify the bullet structure (Community Contribution) * Allowed omitting slot parameter to <page>Entity:NetworkVar</page> (Community Contribution) * <page>Panel:GetText</page>/<page>Panel:GetValue</page> now returns text of RichText panels * Improved default ammo HUD interactions with <page>WEAPON:CustomAmmoDisplay</page> * <page>Player:SetPData</page> and <page>util.SetPData</page> transition to use SteamID64 * Significantly improve the performance of <page>Global.SortedPairs</page> (Community Contribution) * Refactored list library - micro optimisations and added a 2nd argument to <page>list.GetForEdit</page> - do not create the list if it is missing (Community Contribution) * Limited <page>DAdjustableModelPanel</page> FOV to 0-179 * Base gamemode respects DMG_REMOVENORAGDOLL for players * <page>surface.SetFont</page> throws non halting error when font is invalid - This matches behavior of other font related functions * Type error when giving invalid input to <page>Entity:PhysicsInitMultiConvex</page> and <page>Entity:PhysicsFromMesh</page> * <page>Global.ClientsideRagdoll</page> and <page>Global.ClientsideModel</page> uses dynamic model indices clientside * This allows ragdolls to have their physics clientside without being first precached on the server * Blocked `cl_defaultweapon` convar from being modified by Lua - Creates confusion for players who don't know of its existence * Move where <page>GM:HUDShouldDraw</page> for `NetGraph` is called * Blocked `developer` & `contimes` convars * Blocked <page>render.Capture</page> and <page>render.CapturePixels</page> while the main menu is open * Prevent clientside entities spawning when they would be inaccessible with Lua due to the entity limit * Allow <page>constraint.Keepupright</page> to be called on more entities ## Deletions * Removed `DHScrollBar:Value` and `DVScrollBar:Value()` (long deprecated, returned nil)