In this update1
Full notes
Full ChilloutVR update
Read the full published notes in a cleaner layout. The original post stays linked below.
What changed
- Gameplay
- UI and audio
- Compatibility
- Server
- Fixes
- Performance
ChilloutVR changes
Changelog
Added Cache Management category to Main Menu Settings
Content, Image, and Video caching is now located here
Added Damage Number function to Object health components and in the runtime gizmos for damage Raycasters
Added Default Max Resolution and Default Audio Only Mode options for video players
Only affects newly loaded players (world join/prop spawn)
Added download progress on scrubbing bar (uses the buffer indicator)
Added expected pause logic to resolve livestreams pausing after playback starts
This bug appears to be an upstream issue with AvPro/Windows Media Foundation
Added game server compatibility check system
The client will now prevent and tell you why you cannot join an instance with breaking network differences from the client you are running
this may or may not be related to a certain update to a certain game server
Added long video length confirmation for hour plus videos and a hard max of 10 hours
The larger a video the longer the download and higher the storage usage
Added Low Latency Mode Streaming toggle for video player in Implementation
Enabled AvPro Resampler and disable Low Latency mode when livestream is detected
Added RTMP protocol to pass through in SetUrl (doesn't try to use YTDLP)
These two changes above, plus the removal of auto recovery, drastically increase the functionality of livestreams. Not perfect, but alot better!
Added thumbnail display while downloading video
Added video and metadata caching for Youtube videos
Subsequent plays of a cached video will be faster as they won't require download
Cache is cleared on game start or when they reach the configurable max
Automatically downloads/updates the required FFMpeg executable for YTDLP
Improved Badge Management:
Added a Hide/Unhide button to badges, allowing you to prevent/allow others to see the badge
Added an Unfeature button to badges, allowing you to remove your featured badge if you prefer to leave it empty
Combined the CVRAvatarPickupMarker and SpawnablePickupMarker components into a new CVRContentPlacard component:
The UI has been redesigned to better display the content image and publication status. It is also now responsive to whether the content is available to you (for spawning/wearing) or if the content does not exist or is unavailable.
The new component is also capable of displaying Worlds, Groups, and Profiles on the card, with exposed events to recycle a card at runtime.
The old components still work as they have, but you can switch to the new combined component to take advantage of the new functionality.
Reworked YTDLP for Youtube links
Videos are now downloaded before playback as they must be combined before they can play
This should be more reliable in the long run as we're relying more on the YTDLP defaults
Default all playback in AvPro to not low latency and have resampler enabled for buffering
Fix codec filters used by YTDLP
This fixes quality settings for various sites like Twitch, also allows audio only on Twitch and others
Fixed 100MB option for Avatar Max Size / Prop Max Size visually becoming undefined on game restart
Fixed API requests which timeout after 30 seconds throwing internally
This addresses an issue where authentication request timeout soft locked you for example
Fixed calling refresh categories and content endpoints when not needed
Fixed color banding in self portrait output
Fixed CVRMainQM tab change not informing C# side and losing track of pages
Fixed CycleButton not creating buttons properly, oops
Fixed issue where a legacy hack would interfere with Group Moderator unblocking
Fixed minor menu issues:
The refresh button in the discover tab is now disabled until selecting a category
Fixed an issue where switching discover categories quickly could break details buttons
Fixed nameplates rendering position being incorrect in legacy worlds and mirrors
They were billboarding differently in each eye 😠
Fixed page open/close handling not being consistent across tab/navigation/menu state changes
Fixed sitting in a chair not immediately signaling state change for immobilize
This was causing the player capsule to collide with the chair you sat in for one frame
Fixed TTS selection getting cleared if the currently selection is temporarily missing
Fixed videoplayers not showing the watching button on initial load of the videoplayer
Fix error when opening video player settings panel
Fix offline/local testing instance video playback
Improvements to ChatBox:
User ChatBox messages sent within falloff range will now display on the HUD
You can configure the preferred place for user messages to appear in ChatBox settings (Bubble & HUD, Bubble Only, HUD Only)
Mod and OSC messages will always display in a ChatBox bubble
Lowered ChatBox ping sound to 75% of its original volume
Internal cleanup of the CVRGlobalMaterialPropertyUpdater to make it more efficient
There should be no behaviour changes, but if you encounter any issue let us know!
Internal refactoring to asset filtering:
Animated material swaps no longer bypass shader filtering
This applies to the custom shader content filter and nonspi shader filtering
Render texture instancing now applies to animated material swaps
Blocked/hidden props no longer needlessly run filtering logic before aborting content load
Fixed allocation hotspot when filtering animation events
Made the internals of CVRMaterialDriver more performant and fixed another allocation hotspot
Moved all YTDLP resolution to newer setup
Moved video player hardware decode to Implementation Video Player category
Moved Video Player settings to Implementation settings category
oh my god I touched too much video player nonsense please help me
Only download video if there is multiple formats in the target video
Pass livestreams through newer YTDLP setup, you now get thumbnails while it starts up!
Removed AvPro auto recovery as it was causing streams to restart when unneeded
This in general I don't think is needed, it just forces the player to completely restart when it's struggling to keep up which probably just makes that worse
Removed "this cannot continue" placeholder
It could not continue...
Fixes for several Prop-related systems:
Fixed null subsync transforms preventing props from registering with the prop distance hiding system.
Fixed the prop list accumulating duplicate subscriptions to prop state change events, which could eventually cause a long hitch when opening the Quick Menu. The severity depended on how many events accumulated in the cohtml trigger queue, with the queue growing faster the more times the subscriptions were duplicated.
Fixed an issue where the object loader could drop a prop bundle if its loading task was canceled after the bundle finished loading but before the loaded object was registered.
The impact depended on the Unity version used to build the bundle:
For Unity 2019 bundles, this could prevent all Unity 2019 prop bundles from loading for the remainder of the session because they share the same bundle name.
For modern bundles, this only affected loading of the specific prop for the rest of the session.
Fixed minor issues with UI SFX:
Fixed Camera indicator shutter audio source falloff being global
Fixed ChatBox audio source having doppler enabled
Updated libVLC engine (17/06/2026)
Updated Prop List to use new loading placeholder
Updated to AvPro v3.4.1
Updated to VLC-Unity 2026.3
Support ChilloutVR
Like every development team, we need financial support to be able to push updates and improve our project. We are grateful for every bit of support we get. If you want to support us, you can do so from our Patreon.
We are more than thankful for your support!
August 1st Monthly Patreon Meetup Group Photo
Source
Changelog.gg summarizes and formats this update. How we read updates.
