Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 75 additions & 0 deletions docs/misc/p2ce-changelogs/2026-04-17.md
Original file line number Diff line number Diff line change
@@ -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.