Portal 2: Community Edition - November 14th, 2024 Update
Additions (21)
- Added animation event 'AE_SV_SET_SKIN' to control server side model skin
- Added animation events 'AE_SV_ENABLE_BODYGROUP', 'AE_SV_DISABLE_BODYGROUP', and 'AE_SV_BODYGROUP_SET_VALUE' to control server side model bodygroups
- Added automatic mount reordering based on the assets the current map references. Use 'host_map_mount_order_detection' to enable/disable
- Added 'boots' bodygroup name support for custom player models
- Added 'cl_player_render_in_shadows_view' command to cast player shadows from projected textures and CSM in first-person
- Added 'cl_portal_crosshair_scale' for scaling the crosshair
- Added ImGui themes 'strata' and 'vgui_green'
- Added ImGui theming support
- Added ImGui windows 'cl_anim_debug' and 'sv_anim_debug'
- Added mountinfo executable to print search paths used by the game
- Added 'OnActivated' and 'OnDeactivated' outputs to 'prop_weighted_cube'
- Added '$ParallaxDither' parameter to PBR shader to enable/disable dithering
- Added '$ParallaxScale' parameter to scale the number of parallax steps. This can be expensive if you're not careful!
- Added 'snd_thread_mode 2' for updating audio separately from the main thread
- Added support for '$basetexturetransform' to VRAD '-textureshadows'
- Added support for new lines and tabs to 'point_worldtext'
- Added support to VRAD for L4D1/ASW static prop models (those using '.vtx' instead of '.dx90.vtx')
- Added VBSP flag '-upgradeversion' which upgrades an existing BSP to Strata Source BSP version 25
- Expose 'npc_rocket_turret' lock-on time and cooldown time as keyvalues
- Print sound's active channel when 'snd_report_start_sound' is enabled
- When player is noclipping and 'player_held_object_use_view_model' is the default value, use viewmodel grab to carry objects through walls
Fixes (52)
- Audio pitch will no longer be modified when 'host_timescale' is not equal to 1 and cheats are disabled
- Changed 'npc_rocket_turret' default lock-on time and audio to match Portal 1
- Compressed VTFs will now load correctly if they have less than the maximum amount of mip levels
- Fixed a crash related to Steam avatars when offline
- Fixed a crash when giving NPCs portal guns
- Fixed a crash when precaching sounds after running 'sv_soundemitter_flush'
- Fixed a few Particle Editor crashes
- Fixed a few renderer crashes
- Fixed a rare crash related to sound loading
- Fixed an uncommon crash when loading into maps with a compressed entity lump
- Fixed backslashes not working in older BSPs, and increased the entity lump version to 1
- Fixed being unable to switch back to default DevUI theme in the menu bar
- Fixed certain commands related to controlling demos being recorded by demos
- Fixed crash in the particle editor when attempting to add new item to the root particle node
- Fixed crash on exit in bspzip
- Fixed crash on exit when the mod is missing 'challenge_maplist.txt'
- Fixed crash on save restore after death
- Fixed crash on some older maps with displacements
- Fixed crash related to loading a map that uses templates from a save file
- Fixed crash related to NPCs dying with an invalid ragdoll model
- Fixed crash when a vehicle fails to initialize its physics body
- Fixed crash when disconnecting from splitscreen game
- Fixed crash when loading malformed or missing VCDs
- Fixed crash when 'npc_combine' attempts to attack without a held weapon
- Fixed crash when running a script in the DevUI script console without having loaded into a map prior
- Fixed crosshair scaling with 'cl_portal_crosshair_scale'
- Fixed cursor being recentered even when the game isn't focused on Linux
- Fixed duplicate extensions being appended to tool modules in the tool load dialog
- Fixed exclusive fullscreen mode not entering fullscreen in some cases
- Fixed Faceposer locking up on startup
- Fixed fall damage not working from load/save when unequip boots
- Fixed 'func_movelinear' sounds getting stuck looping forever if interrupted or removed
- Fixed 'func_tracktrain' getting stuck when not using 'Instantaneously'
- Fixed game crashing when changing display mode without opening Panorama video settings
- Fixed issue in the particle editor on Linux related to adding new operators
- Fixed paint stretching
- Fixed props not rendering at '(0, 0, 0)'
- Fixed rare crash when standing on displacements
- Fixed 'setang' not working when paused with 'sv_alternateticks'
- Fixed some displacements in older maps having no collision when 'traceray_force_vphysics' is enabled
- Fixed some quirks with command line arguments
- Fixed the 'startdemos' command not working
- Fixed 'trigger_look' firing whenever touched
- Fixed vbspinfo not extracting lumps
- Fixed WebM recordings encoding incorrectly
- Increased value of 'sv_max_allowed_developer' to 99
- Increased value of 'sv_max_allowed_net_graph' to 99
- Malformed VTF compression info resources (AXC) will no longer potentially crash the game on load
- PBR and PaintBlob shader now respect configured texture in 'env_projectedtexture'
- Properly fire 'OnDamaged' output for buttons without requiring damage activation spawnflag
- Re-enable 'mat_buffered_primitives' by default on Linux. This may result in a small performance boost
- '+slowtime' must now be explicitly enabled by mappers to be used
Improvements (21)
- Admin only commands now respond with an error if ran by a non-admin
- Allowed vbspinfo to extract from multiple BSP files at once
- Bumped MAXSTUDIOFLEXCTRL to 128
- Enabled HW morph by default
- 'env_spritetrail' no longer draws a segment where it teleported
- Improved performance of VGUI text overlays
- Improved reliability of networked messages referring to entities
- Main window on Windows 11 now uses square corners
- 'mat_picmip' now allows its full -10 to 4 range
- Moved 'func_movelinear' sound handling to client side
- Raised MAXSTUDIOFLEXVERTS to 65536
- Reduced VRAD memory utilization when using '-textureshadows' with multiple materials that refer to the same texture
- Replaced 'dumpentityfactories' with 'cl_dump_entity_factories' and 'sv_dump_entity_factories'
- Replaced 'dumpentitynamespaces' with 'cl_dump_entity_namespaces' and 'sv_dump_entity_namespaces'
- Replaced 'dump_entity_sizes' with 'cl_dump_entity_sizes' and 'sv_dump_entity_sizes'
- Replaced 'host_threaded_sound 1' with 'snd_thread_mode 1'
- Slightly decreased memory usage
- Title bar on main window now follows system dark mode
- Unified the 'autosave' and 'quicksave' game events into 'game_saved'
- Updated DXVK to 'v2.4.1'
- Viewmodel lag now works properly with world mirroring
Hammer (33)
- Added a Find All button and Results list to Hammer's Find and Replace dialog
- Added FLAC and Ogg to Hammer's Sound Browser for raw files
- Added Hammer commands 'hammer_history_list', 'hammer_history_undo', and 'hammer_history_redo'
- Added modelbrowser-like search mode to the Texture Browser
- Added MP3, FLAC, and Ogg preview support to Hammer
- Added new icons for 'phys_constraint' and 'phys_slideconstraint' (Thanks TwoKrazy!)
- Added support for Hammer Qt themes via the '-theme' launch argument. (See 'hammer/resource/themes/dark.kv' for an example)
- Allowed negative noise in the displacement noise dialog
- Allowed the commands 'echo', 'path', 'path_file', 'fs_printopenfiles', 'fs_warning_level', 'cache_print', 'cache_print_lru', 'cache_print_summary', 'sv_soundemitter_filecheck', 'sv_findsoundname', and 'sv_soundemitter_spew' to be run from Hammer's Console
- Double clicking an item in the Sound Browser will close the dialog with that selection being returned
- Fixed a bug where a VMF could be opened before Hammer was done loading
- Fixed a Hammer crash related to renaming visgroups
- Fixed crash-on-exit in Hammer when running it in Wine
- Fixed Hammer Entity Report dialog selecting multiple entities
- Fixed Hammer Go To dialog ignoring angle arguments and not allowing angle only movements
- Fixed Hammer maps loaded as autosaves or via '-map' showing black viewports until reloaded
- Fixed Hammer window title being H
- Fixed issue with dynamic mounts in Hammer when running in Wine or Proton
- Fixed matrials with missing texture not reloading properly in Hammer
- Fixed occasional Hammer crashes when changing targetnames or undoing, related to entity IO
- Hammer game configuration dialog will now repopulate entity dropdowns when FGD list changes
- Hammer now uses the same audio system as the game. This allows rndwave, sound operators, and more to function correctly
- Image preview in Hammer now applies '$color' value in linear space
- Image preview in Hammer now shows all '$baseTextures' that a material has
- Improved models for 'prop_indicator_panel' and 'prop_testchamber_sign' (Thanks TwoKrazy!)
- Ported Hammer's Paste Special dialog to Qt
- Ported Hammer's Run Map Configurations dialog to Qt and added "Move Up" and "Move Down" buttons
- Ported Hammer's Run Map Expert dialog to Qt
- Ported Hammer's Search Replace dialog to Qt
- Ported Hammer's Sound Browser to Qt
- Ported Hammer's Texture Browser and Texture Replace dialog to Qt
- Replaced Hammer's Message Window with a new Qt Console window that can run commands and set ConVars
- Updated HammerAddons Postcompiler
Panorama (9)
- Added Panorama achievements API
- Added save-restore API for Panorama
- Added support for JavaScript module loading in Panorama
- Exposed '$.SystemInDarkMode()' function to Panorama to query system dark theme status
- Fixed '-console' showing the VGUI console in Panorama mode, and not working with the Panorama console
- Made width/height key on the root SVG element optional. Dimensions can now be parsed from the 'viewbox' attribute
- Panorama can consume TypeScript files directly
- Panorama will now load 'resource/game_language.txt' instead of exclusively 'resource/p2ce_language.txt'
- Updated V8 to '12.9'
VScript (13)
- Added 'ApplyForce' and 'ApplyForceOffset' to 'CBaseEntity'
- Added 'GetButtons()' VScript method to 'CBasePlayer' class
- Added 'IN_' flags to VScript
- Added 'IsBSPModel' VScript function
- Added 'MoveType' and 'MoveCollide' enums to VScript
- Added a bunch of methods to 'CBaseAnimating'. Please just look at the wiki
- Added VScript methods for setting move type and move collide: 'CBaseEntity::SetMoveType' 'CBaseEntity::GetMoveType' 'CBaseEntity::SetMoveCollide' 'CBaseEntity::GetMoveCollide'
- Added VScript methods for setting/getting the collision group: 'CBaseEntity::GetCollisionGroup' 'CBaseEntity::SetCollisionGroup'
- Added VScript parenting methods: 'CBaseEntity::SetParent', 'CBaseEntity::SetParentWithAttachment'
- Fixed crash on map exit in maps that use VScript
- Fixed crash when using 'SendToPanorama' in VGUI mode
- Fixed memory leak with 'CGameTrace' objects
- The Portal 2 transition VScript is no longer forcibly instantiated loading v25 maps
Changed files in this update