Garry's Mod Wiki

Revision Difference

Update_Preview_Changelog#565482

<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 NPC support for MP5 from Half-Life: Source * Added `sv_pause_sp` - allows singleplayer game to not be paused automatically when pressing ESC/opening console * Added option to hide outdated servers to the server browser (Community Contribution) * Added ability to toggle spawn menu & context menu, option for it can be found in Spawnmenu => Utilities menu, disabled by default * Added ability to select what weapon Creator Tool spawns NPCs with from the NPC icon right click menu (Spawn with toolgun option) ## Fixes * Make default Sandbox fonts extended for better rendering of non Latin characters (Community Contribution) * Improve NPC animation support for pistols and rifles * Combine NPCs no longer T-pose with pistols, instead use rifle animations * Improved crouch support for NPCs using pistols and rifles - NPCs wont crouch to shoot for 0.3 seconds and then stand back up * RPG/Crossbow animation support improvements for citizens * Support for Combine Soldiers firing the RPG Launcher * Improve metropolice weapon support for Shotguns, AR2, RPGs * Fixed Eli, Magnusson, Kleiner, Mossman and Breen shooting from their feet * Fixed NPCs being able to shoot some guns forever, without reloading, such as the AR2 * Main menu: Make check box labels clickable (Community Contribution) * Fixed regression with `FindUseEntity` behavior making players unable to use some entities * Fixed addon dependencies not showing on install due to regressive Pull Request the previous update * Fixed kill credit for strider kills with the Magnusson device * Fixed Gunship and Sniper not appearing in the kill feed when killed by the player * Fixed certain gibs (from Manhacks, Scanners, Attack Helicopter) never fading out * Fixed gibs that should be ragdolls not being ragdolls in multiplayer (cardboard boxes) * Fixed Strider still shooting the player with ignore players or disable AI enabled * Fixed AR2 impact effects appearing when shooting the skybox * Fixed `"P2P: Friends only"` setting resetting after starting a game (Community Contribution) * Fixed some missing Server Browser localization strings (Community Contribution) * Fixed a visual inconsistency with text indentation in spawnicon resize menu * Update Source Engine IME candidate menu size to fit updated text when typing * Fixed respawning while "entity driving" a prop putting you back to the death position instead of at the respawn point * Fixed the 2 PHX bomb models not igniting from explosive damage like they used to ## Changes * Enable Jalopy idle animation (Engine "jiggle" animation) without `hl2_episodic` console variable having to be set to 1 (This applies to all vehicles, even modded ones, if they have an animation bound to ACT_IDLE_STIMULATED) * Unhide Jalopy seat and Flechette Gun when not mounting HL2, since we now ship content needed for those by default * Unhide CS:S thruster models by default (Community Contribution) * Kleiner, Mossman, Eli, Breen and Magnusson can now spawn with guns, Vortigaunts and Half-Life: Source G-Man can no longer spawn with guns * Enable "Spawn with Weapon" UI for Eli, Mossman, Breen, Magnusson, Kleiner (when right clicking their NPC spawn icons) * Try to make NPCs shoot slower with the .357 * Added icons to NPC weapon selection in spawnmenu NPC tab and on NPC spawn icon right click * Also group weapons in NPC spawnicon right click by category like it is in other places * Digitally sign `.exe` files (in addition to `.dll` files which was done a while ago) * Improved invalid model detection - fixes crashes when loading models from a specific addon * Updated Day of Defeat: Source player model texture fallbacks to be full resolution * Added missing map icons for new Team Fortress 2 maps * Added `lua_strict` checkbox to Lua problems menu * Minor visual adjustments to alignment of certain elements in the start new game options menu (Community Contribution) * Adjust blue colors in the server browser to be consistent with each other, and be slightly darker for better contrast with white text * Automatically close spawn and context menus when the main menu is open, as well as prevent F1 from opening the spawn menu when main menu is open * Use better max values for "`Utilities => Sandbox`" limit sliders, derived from default convar values * Respawning while "entity driving" will no longer snap view angles to the spawnpoint * gm_construct water now reflects 3D skybox ## Deletions * Delete unused DLL files - DataModel.dll, DMSerializers.DLL, VTex.DLL * Removed fallback textures for CSS player models, since we now ship those textures in full resolution ## TTT Changes * Updated Turkish localization (Community Contribution) * Set Attacker and Inflictor to usages of SWEP:FireBullets (Community Contribution) * Raise passive equipment item limit from 16 to 32 (Community Contribution) * Remove "Missing CS:S" chat warning (Community Contribution) * Custom radio button support and extra default sounds (Community Contribution) * Russian and Turskish language updates (Community Contributions) * Prevent the round start info box from stacking when restarting rounds rapidly * Fixed "Tried to create font 'X' from a game font 'Y'" warnings * Added optional translation parameters when adding radio sound names (Community Contribution) # Technical Changes ## Additions * `status` console command now also prints server & map uptime * Implemented `Lightmapped_4WayBlend` shader with full tools support * Implemented new `Water` shader features - lightmapped water fog, flow maps and ability to reflect 3D skybox (`$reflect3dskybox`), envmaps for expensive water, support for `$reflect2dskybox` * Use `gmod_flashlight` attachment for flashlight if it exists - this works for player models, world models and view models * Added `sv_nomap_timeout` convar - Closes a dedicated server if it is running without a map for given amount of seconds. * Added "Restore" input to func_breakable_surf entity ## Fixes * Fixed "TraceAttackToTriggers" system for bullets causing the shot entity to have a separate damage event for each pellet of a shotgun shot * Fixed `func_lookdoor` in multiplayer only reacting to the first player on the server (now reacts to the closest player) * Multiple improvements to error handling of particle sheet loading * `weapon_fists` sets Weapon in DamageInfo (Community Contribution) * Prevent crashes due to `net_graph` trying to draw too much at a time * Fix `Error()` in C not exiting the game with a nice message when multicore rendering is enabled * Fixed `sv_lagcompensationforcerestore` not really doing what it says in its description * Fixed soundscapes not working with duplicate sounds * Fixed `Entity:FireBullets` causing `"CLuaObject:GetType with invalid lua state"` warnings after a changelevel when using FireBullet callbacks * Restore rope texture scaling to Half-Life 2 values when they are spawned by the map * Prevent potential Lua errors with `weapon_base` when owner dies during firing bullets * Fixed some IMaterial functions complaining in console about "$basetexture not being a texture". (Non multicore rendering only) * Fixed server crash when mounting ladders at edict limit * Prevent crash to do with CSpatialPartition invalid handles * Fixed edict exhaustion prevention affecting nextbot players, and crashing the server * Fixed a crash when using `gm_load` on dedicated server * Fixed a crash with clientside ropes on props * Fixed server crashes to do with Gonarch NPC * Fixed many server crashes when trying to spawn gibs at edict limit * Make prop water level changes actually work, and apply on clientside too * `MsgC` no longer outputs empty strings when first argument is a color, preventing console message deduplication * Fixed fall damage constants being inconsistent between client/server * Prevent `"bone write access"` warnings with <page>Global.ClientsideRagdoll</page> * Fixed `CLC_Move::ToString` numbers being flipped * Fixed `CBaseFileSystem::ReadLine` not working for workshop files at all * Fixed VPK file.Find issues with folder searching * Fixed BSP file.Find not really working well * Fixed Lua errors with <page>DProperty_VectorColor</page> when deleting the associated editable entity * Prevent misleading `"X used to create wrong class type"` warning that happened at edict limit when spawning gibs * Try to prevent Half-Life: Source gibs from falling out of the world * Fixed an issue with GM:HUDShouldDraw that allowed blocking access to main menu * Fixed some weird v7.4 VTF cubemap textures not loading due to missing sphere map * Fixed clientside prediction breaking hull traces against local player in multiplayer * Do not complain about missing `"$refracttexture"` when polling water material for its requirements * Fixed `kickid` via SteamID64 not working on dedicated servers * Prevent crashes in engine tracing code to do with BSP models * Fixed maps compiled without VVIS not rendering any water surfaces (and when noclipping outside of the map) * Fixed `'status'` console command showing IP address for `-p2p` dedicated servers * Fixed sun glow overlay not rendering in water reflections * Fixed a nullptr crash on game exit to do with models * Prevent crashes with vertexSize of 0 on materials - will now use error material instead, and throw a warning about what material is wrong * Fixed spam about "Trying to use Map as if it were a variable" on GUI dedicated server * Try to improve static props fading out randomly for CS:GO maps * Fixed <page>render.RenderView</page> affecting FOV for worldclicker, including the context menu * Fixed (near?) infinite loops/game freezes in when listing entities in a box with negative bounds ## Changes * Prevent silly values in `fog_controller` (malicious map "protection"), as well as prevent map reload loop via `player_loadsaved` entity * Improvements to multiplayer player getters * `FindEntityProcedural` `!pvsplayer` multiplayer support improvement * `UTIL_GetLocalPlayer` micro optimizations * `UTIL_FindClientInPVS` now tries to get the closest client * Changed "exe version" to "network version" in output of "`version`" console command to avoid confusion * Removed newline from `"Disconnect by server."` kick message, so server console log is less messy. No other kick reason adds a new line at the end. * Micro optimization for `GM:HUDDrawTargetID` (Community Contribution) * Enable Episode 2 behavior for `npc_combine_s` (Some sort of "march" mode) * Allow .PCF as valid network transfer extension (FastDL) * SRCDS workshop addon cache also caches titles - Also display a warning when that cache will be used * Make "No account token specified" message in SRCDS console a warning * Unhide `sv_soundscape_printdebuginfo` * Reset render library's internal "last material" vartiable on map shutdown * Fallback "VertexBeckman" shader to "VertexLitGeneric" (PVK2 game) * Improve free edict detection during entity creation, so allocated edict count cannot pass the internal buffer amount and prevent creation of entities until map restart * Clean-up doubleclicking code in the main menu (Community Contribution) * Internal rework of main menu's bottom bar (Community Contribution) * Make zombies/metrocops propagate their "use lag compensation" state to spawned child NPCs (headcrabs and manhacks) * Dynamically calculate max autocomplete items for the console based on available space * Added SteamID64 to `"Dropped %s player from server"` console message * Enabled CEF credits button in the Options * Limit static prop counts to safe values to prevent crashes * Minor VPK support changes from CS:GO - potential memory usage improvement * Add description to `g_ragdoll_maxcount` convar * Give `prop_active_gib*` convars descriptions and more sane values - 100 active gibs should be plenty (was 999999) * Add a better crash message when getting vertex size 0 to help catch source of the crash * Alias `dz_door` (CS:GO danger zone map doors) to `prop_door_rotating` * Prevent `item_item_crate` from spawning certain entities that could cause game crashes * Throw an engine error when trying to request invalid shader parameter, instead of cryptic crashing * Changed `whereis` to print path of missing files (useful for `mat_texture_list 1`) * Improved several console warnings and crash popups with extra information to help diagnose the underlying issues * Improved `.nav` file error handling to prevent game crashes and freezes, as well as error reporting * Do not save or load `mat_specular`/`mat_bumpmap` convars across game sessions - These are debugging convars, they do not need to save and cause persistent visual downgrade with no video options enabling them back. * Increase max lightmap dimensions to 128 for brushes (from 32) * Renamed `npc_tf2_ghost` to `nb_example`, and moved it from base gamemode to Sandbox * Alias `sdk_lightmappedgeneric_dx9` shader to `lightmappedgeneric` for content from some Source Engine games/mods * Potentially improved console variable related performance * Remove main menu's reliance on `RUNLUA:` hack through `console.log` * Use consistent search paths for textures and some model code - makes textures load from consistent location of disk, just like models and materials * Make `gm_spawn` only work for .mdl files * Fixed crashes to do with a certain demo files that play on the wrong map (compared to the one it was recorded on) * Clear "material is missing" flag on all materials when a map is started loading * Initialize 3rd person camera on map load, to fix behavior change after first disconnect ## Deletions * Removed pointless `"PREP OK"` console message during map loading * Removed "`HudBloodSplat`" effect. (It did nothing at all) * Removed `mat_remoteshadercompile` console variable # Developer tool changes ## Hammer * Update FGD - Add descriptions to light entity keyvalue properties * Mount CSS/Episodic VPKs in tools (Hammer & compilers) * Implemented color preview for models * Added color keyvalue to `prop_door_rotating` * Added ability to paint 4-way blend materials. (Supported materials only!) * Fixed some entities such as `info_ladder_dismount` not using colors defined in the FGD files * Disallowed creating "Auto" visgroup manually * Implemented particle picker for Hammer * Fixed visual and undo bugs with `CMapSweptPlayerHull` (`func_useableladder`) ## Map Compile Tools * Added file metadata to map and model compiler exes (version, description, product name, etc.), and given them an icon * VRAD: Added `-SunSamplesAreaLight` option (Community Contribution) * Enable VRAD compile stats without `-verbose` flag * Make `tools/toolsinvisibleladder` not create visleaves during map compilation * VBSP: Reenable`-maxlightmapdim` and `-defaultluxelsize`, and them add to help text * Water materials with `$lightmapwaterfog` will now receive lightmaps on map compile * Adjusted VRAD's post-compile stats to show data size limits in correct places, as well as bump max data size for entity lump * VRAD: Enable static prop lighting (vertex & lightmap) with `-fast` * Since it is already controlled by `-StaticPropLighting` no reason to disable it with `-fast`. `-fast` makes static prop lightmaps generate much faster. * Mention -StaticPropLighting requirement for vertex lighting on static props in the FGD (`Disable Vertex Lighting` field) ## Other * Added new .QC commands to studiomdl.exe - `$maxverts, $phyname, $internalname, $qcassert, $lcaseallsequences, $defaultfadein, $defaultfadeout, $appendsource, $redefineattachment, $skinnedLODs` * Update StudioMDL usage info when given no parameters - added previously unmentioned command line options, dump supported .qc command list. * `HLMV.exe` improvements * Fixed crashes when doing stuff without a model selected * When a material is missing, include the missing material name in "VMTs loaded" section * Fixed extremely slow "Take screenshot" performance * Images are now saved as .bmp instead of `.tga` * Change Shader display to a read only text entry, so it can be copied * Display selected material in a text box, so it can be copied # Lua API Changes ## Additions * <page>Entity:FindGestureLayer</page> * <page>Entity:FindGestureSequenceLayer</page> * <page>Entity:RemoveLayer</page> * <page>Entity:SetLayerAutokill</page> * Added <page>Entity:FindGestureLayer</page> * Added <page>Entity:FindGestureSequenceLayer</page> * Added <page>Entity:RemoveLayer</page> * Added <page>Entity:SetLayerAutokill</page> * Added <page>GM:OnNPCDropItem</page> * Added <page>NPC:IsCrouching</page> * Added <page>NPC:SetForceCrouch</page> * Added 2 new optional args to <page>mesh.TexCoord</page> * Added <page>NPC:CapabilitiesHas</page> * Added <page>NPC:ConditionID</page> * Added <page>NPC:IsUnforgettable</page> * Added <page>NPC:MoveGroundStep</page> * Added <page>effects.TracerSound</page> * Added sequence events to <page>util.GetModelInfo</page> * Added <page>util.IsBoxIntersectingBox</page> * Added `MATERIAL_CULLMODE_NONE` for <page>render.CullMode</page> * Added new arguments to <page>Entity:DropToFloor</page> * Added new argument to <page>HTML:ConsoleMessage</page> * Added <page>Panel:SetTextHidden</page> * Added `MAX_PLAYER_BITS` global * Added <page>Global.MainEyePos</page> and <page>Global.MainEyeAngles</page> * Added IGModAudioChannel:GetTagsWMA/GetTagsMP4⤶ * Added <page>IGModAudioChannel:GetTagsWMA</page> & <page>IGModAudioChannel:GetTagsMP4</page>⤶ ## Fixes * Fixed clientside sounds not firing <page>WEAPON:FireAnimationEvent</page> * Fixed <page>render.SetShadowsDisabled</page> setting the shadow distance instead of disabling shadows * Fixed duplicate <page>HTTP</page> headers being discarded instead of being joined with a comma like previously * Fixed <page>Player:Flashlight</page> playing sounds when disabling a disabled flashlight, etc. ## Changes * Blocked `editdemo` console command from Lua just in case * Made <page>Global.ClientsideModel</page> able to be hit by clientside only traces after initializing physics on it post creation * When using physics. Collision bounds must be set manually if model changes. * Try to end <page>mesh.Begin</page> when a mesh wasn't ended. (i.e. after a Lua error) It will still error afterwards like it did before. Prevents game hang, hopefully without side effects * Change <page>ents.CreateClientRope</page> `slack` parameter to work better * Make <page>ents.CreateClientRope</page> ropes despawn if any of its entities are removed * Allow giving <page>ents.CreateClientRope</page> local vectors instead of attachment IDs * Made <page>Entity:PhysicsInitBox</page>/Sphere set solidity before setting the physics object * This improves behavior for those functions with ClientsideModel and is consistent with PhysicsInit() * Validate input range for <page>File:Read</page> and <page>File:Write</page>, so the game does not crash with negative bytes to read * Improved handling of BSP model names for Lua clientside entities (sets the model index so tracing code can work better) * Improved handling of infinite loops with <page>Entity:WaterLevel</page> when called from the water level change hook * Switch <page>debugoverlay</page> functions to better optional argument checking with type checking * <page>util.IsValidModel</page> returns false if extension is not .mdl ## Deletions * Nothing so far