diff --git a/docs/misc/p2ce-changelogs/2026-04-17.md b/docs/misc/p2ce-changelogs/2026-04-17.md new file mode 100644 index 00000000..6a7b8bc7 --- /dev/null +++ b/docs/misc/p2ce-changelogs/2026-04-17.md @@ -0,0 +1,75 @@ +# Portal 2: Community Edition - April 17th, 2026 Update + +Initial Open Beta release build. + +## Additions (13) +- Implemented the [campaign system](https://wiki.stratasource.org/modding/p2ce-campaigns/getting-started/00-getting-started), allowing modders to create their own fully-fledged standalone campaigns or spin them off into their own individual sourcemods using a simple KV3-based pipeline. +- Clustered lights now support volumetric lighting effects +- Added additional options for customising `npc_security_camera` decals, sounds, sprites and speed +- Added `ForceLookAt` input and `OnDetach` output to `npc_security_camera` +- Humanoid NPCs can now press Portal floor buttons like players +- Adhesion Gel-coated props can now stick to floor buttons. +- Added new flag to `point_push` to make it respect BlockLOS brushes during line-of-sight checks +- Static props and overlays can now be dynamically tinted by the colour of a specific paint type. Useful for matching gel pipes and signage to configured gel colours. +- Added read support for the following packaging formats: + - *Quake*/*HROT* `PAK` pack files + - *Fairy Tale Busters* `APK` pack files + - These should **not** be considered a viable substitute for VPK files, and are only intended for mounting other games' content. They cannot be used for Workshop addons. +- Added `slopescale` property to lights, which allows mappers to tweak the shadow bias slopescale value per light, which can help to reduce shadow acne. +- Added a `sound` KV to `env_spark` to change the spark sound + +### Panorama Closed Captions +- Added a new KeyValues3-based subtitles system that is based upon the more robust Panorama UI framework, featuring support for Pano XML syntax and common HTML-style tags + - A dedicated script for migrating old KV1 captions has been added to the `sdk_tools` directory to help facilitate the transition to the new KV3 format +- Merged SubRip (SRT) subtitles/"cheaptitles" parser into Panorama CC system +- Connected the NPC actor gender system to KV3 captions. When applicable to NPCs who speak, gender postfixes will be searched first, then non-binary variant if it cannot be found. (Parity with VGUI CC system.) +- Added ConVar `cc_panorama_log`, which will control logging messages from new CC system (for messages that did not have an existing check already.) + - Missing caption logging is still connected to only `cc_showmissing`. +- Captions will now respect and prioritize the `cc_lang` ConVar over global game language (`-language`/`cl_language`) when specified. + - English CC localization tokens are used as fallback option, should a token not exist in the preferred language. + +## Improvements (14) +- In the workshop uploader finish popup, the link to the addon is now clickable +- Workshop Uploader: User-defined ignore paths/files in an addon are now relative to that addon's directory +- Cameras now have their cables in Portal 1 maps, and optionally in new custom maps +- Improve behavior when holding and releasing Adhesion Gel-coated props +- Fall back to older DPI modes on Windows if `PerMonitorV2` API is unsupported +- Added argument names to VScript functions in `script_help`, as well as the Wiki +- Startup videos should now render at a lower framerate +- Add 'Stop' button to sound fields in Hammer +- Apply `ent_text` autocomplete to all other `ent_*` debug info toggle commands +- Avoid overriding `$color` and `$alpha` when overlays are tinted +- The limits for overlay count, face count and render order have been mostly removed. Render order is now limited to 65536, while both others can have up to 2 billion +- Panorama `Label` elements now support loading inline movies. + +## Fixes (20) +- Reading of `color` keyvalues should work properly now +- Fix a spurious warning for `prop_weighted_cube`s with custom models defined +- Fixed workshop uploader possibly failing on Linux if file to copy exists in scratch folder +- `logic_playerproxy` now respects the `player_throwenable` ConVar + - This effectively prevents the player pressing MOUSE1 to bypass the anti-softlock mechanism that would disallow throwing Wheatley into a bottomless pit during the game's intro and plot twist +- Fixed crash when unloading map with `env_portal_credits` +- Fixed `game_text` not rendering under certain channels +- Fixed `npc_security_camera` not being grabbable with the Gravity Gun after being knocked off the wall +- Fixed packed AngelScript files not running on Windows clients +- Increased the limit of entities that `point_push` can potentially affect from 256 to 1024 +- Fix Adhesion gel not overriding reflection/conversion gel in physics object interactions +- Allow Schrödinger cubes to hit themselves via portals +- Fixed PNG screenshots not looking right on map with HDR and postprocess effects +- Fixed invalid integer type in blob network bypass code +- VBSP can now transform `origin` and `angles` keyvalues for entities not present in FGD data +- Fix `parallax_obb` entities when inside instances. +- Fixed `color_correction_volume` not working at all +- Fixed crash with the netconsole +- Fixed missing 'slope scale' on `env_projectedtexture` entities. +- Fixed `ent_fire !name`s failing due to case-sensitivity. +- Fixed `game_text` not rendering under certain channels; a dedicated font has been introduced for this + +## Removals (1) + +*The below change was reverted during development of the next update. KV1 subtitles will remain in-game only as a last-resort fallback for KV3 captions:* + +- Legacy KV1 captions (built via `captioncompiler`) will no longer function in-game as they have been fully deprecated. The server will now load KV3 caption files and use that to determine networking dispatch. + - The `captioncompiler` tool has also been effectively deprecated as of this release. Please migrate your old-format captions to the new system using the dedicated script in the `sdk_tools` directory now. + - This resolves an issue where *truly* custom captions would not play, because they had no equivalent hash ID substitute that permitted the internal system to dispatch CC messages. + - Temporary note: MP servers will currently not be able to dispatch networked CC tokens over the server, meaning players will not be able to see CC/subtitles in a MP game until support for doing so is implemented in a future build.