Shader Performance Viewer
- A tool for analyzing Shader performance in VR and Desktop modes.
Bios and Pronouns
- More words and such to put in your profile! Let people know who you are!
Skeletal Finger Tracking
- Full rework of our skeletal finger tracking system, now properly supports SteamVR Skeletal Input and more!
Prop Management
- You can now view and manage props in an instance from your Quick Menu! Blocking, hiding, select and more!
Video Player Safety
- Better video player safety including an untrusted URL popup and the ability to toggle video players on an off!
Video Player Upgrades
- AvPro v3 and more updates to LibVLC (LibVLC is still a bit funky lol)
Third Person
- Yet ANOTHER way to look at yourself!
Comfort Alignment (VR Only)
- Accessibility option to adjust your playspace orientation to align your view with the world horizon
Full Changelog
- Added bio to the client
- You can modify your bio on your own profile
- You can read other people's bio on their profile
Added CheeseAdded Comfort Alignment feature to Quick Menu Toolbox (VR Only)This feature adjusts your playspace orientation to align your view with the world horizon(ex: aligns your in-game view upright when you are lying down IRL)Note: It may cause motion sickness, dizziness, disorientation, or vertigo, particularly for users sensitive to motion or those new to VRAdded crossed eyes support in the OSC eye tracking moduleAdded ImageOnly style to Button/CycleButtonAdded logic to tell GS we are no longer watching a video playerAdded missing create account followup screen when sign-up with steam failsAdded numerous new bits of info to the Player Select page with the details elementAdded player cycling buttons at the top of the Player Select pageAdded pronouns to the clientYou can modify your pronouns on your own profileYou can read other people's pronouns on their profileAdded sound effects for user prop interactions such as spawning or deleting a prop via raycast or menuAdded Third Person for Desktop ModeYou can now use CTRL+T to toggle third person modeWhile in third person you can use independent head look to look around your avatarChanged the Enter Delete Mode button in the Main Menu Prop page to Toggle Delete Mode, making it possible to exit delete mode by the same button that entered delete modeThis should help alleviate the confusion for new users who manage to enter delete mode and have no idea how to exit 😠Changing Prop removables now reloads all props in the instance when the menu closesRemovables state is not tracked so this is the best available behavior for nowChanging Prop tag based blocking now applies to all affected props in the instance when the menu closesThis will both destroy and spawn props affected by the updated tag filtersThis also applies when blocking props or self moderating user propsExposed calibration setting to disable assigning remaining trackers after first binding pass as support trackersExposed Quick Menu Anchor to Hand setting to Quick Menu settings pageDisabling this will anchor the Quick Menu to your playspace like the Main MenuFixed an issue where a pointers value which was animated while the pointer was disabled would not applyFixed an issue where prop loading of an already loaded bundle could fail if a second download was requested without a defined filepathFixed an issue where video player desync correction broke when seeking or playing a video while the system clock was between 55 and 60 seconds of a minute (5 year old silly bug)Fixed auto-generated head & mouth pointers on avatars being misplaced if the avatar root scale was not uniform (1,1,1)Fixed clicking the paste button on keyboard on single line inputs reversing the order of linesFixed Desktop not being routed to Quick Menu player select page when UILib QM Player Select Redirect setting was enabledFixed elbow bend goal offset not applying after calibrationFixed error spam when changing avatars while in FBT calibrationFixed error when calling UpdateSliderSettings on a slider without a value objectFixed eye and face tracking still applying when an avatar was distance-hiddenFixed first pass of tracker calibration applying play space scale correction to the max tracker distance twiceFixed green/red online indication around the profile icon on the profile page displaying whether connected to an instance rather than if onlineThis now matches the behaviour of the green/red status indicators on the friends pageFixed (hopefully) image flickering in various UILib pagesFixed IK swimming pitch not functioning properly in VRThis was sampling the desktop view pitch, so didn't respond and used last desktop view pitch if VR switched >:(Fixed OSC launch args not targeting the proper values to parseFixed out of sync notification element on video player UI being unreadable (did you know this existed?)Fixed pagetitle/subtitle not being set to rootpage values when returning to root pageFixed player prop visibility not deleting props when set to blockedFixed Quick Menu adjustment mode being entirely broken due to pickup refactorFixed scroll bar not being on the edge of the pageFixed some main menu SVGs being the wrong white instead of #dbdbdbFixed the Gamemode field being undefined on instance details pageFixed world name in the instance details page pushing the world author out of its boxImplemented actual SteamVR Skeletal Input for Finger TrackingFinger tracking now respects the skeletal tracking level SteamVR reports for each device, instead of checking against controller type.Enabled by default at Partial and above, so it works out of the box for hand tracking, gloves, and Knuckles, and stays off where the data's estimated (Vive Wands, Touch Controllers).You can lower the minimum to Estimated in VR Finger Tracking settings to force it on for Vive Wands / Touch controllers.Tracking levels:Full: real finger tracking from hand tracking or gloves (Virtual Desktop, Steam Link, glove hardware)Partial: measured finger curls (Index / Knuckles)Estimated: hand pose guessed from buttons/triggers (Vive Wands, Touch Controllers)You can find related settings under Controls -> VR Finger TrackingImplemented Shader Performance Viewer - a tool which overlays GPU Shader cost information directly in the viewport. It has various metrics it can display such as:Instruction Visualizer: Indicates how many Shader instructions were executed for a given pixelTexture Fetches: Indicates how many times Shaders accessed texturesOverdraw Visualizer: Indicates how many times a given pixel was written toSurface Instruction: Same as the Instruction Visualizer but only shows for the last drawcall that has written to a pixel. This is useful for seeing the cost of a specific Shader, instead of the sum of all Shaders that resulted in the pixel in the endImproved Non-SPI warning for worlds and added Non-SPI warning for avatars and propsIncreased gaze point distance to 10 units in SRanipal eye moduleInternal XR device handling tweaks:Adjusted several systems which checked for the OpenXR launch argument to instead check the current running XR runtime for OpenXRThere is no user-facing change, but now these systems can handle runtime switching between XR runtimes with little extra complexityFixed TrackedPoseDriver being enabled on controllers when using OpenVR due to OpenXR hands module erroneously registeringLaunching the game to loading home world is now up to 33% fasterMade pages in Quick Menu take the entire widthMade Self Portrait track the avatars face rather than being a fixed offset from the players cameraYour avatar will now stay in focus when head bobbing is disabled or walking with holoport locomotionMade world images and user images hexagons in more cases to have better consistency with the restMade world transitions fade background audio in/out alongside the transitionMigrated Discord Rich Presence to use Social SDK instead of Game SDKAdded world hub URL click to large image when world is visibleAdded user hub URL to details if display username is activeRemoved Auto Accept Join Request option as we currently cannot get the discord display name of the requesting user, joins always autoaccept nowNon-friend user profiles now open with the Bio tab selected by defaultThe Activity tab is disabled on non-friend profiles since this information is only visible to friendsOpened friends profile page activity now updates liveFor example, when viewing a friends profile, their activity will update as they change instancesPotentially fixed animating a pointer value not applying to the underlying collision systemProp Management Improvements:Implemented a Prop list page in the Quick MenuThis page lets you view all props in the instance, those which you have spawned, and a limited session historyYou can toggle a props visibility, select it for spawning, hide/block it, and find the spawner from the prop selection pageYou are also able to now undo and redo prop spawns within this pageClicking a prop with the Quick Menu open, or holding control in Desktop, will open this quick prop selection pageThe Prop Management menu can be accessed via the "Props" button in the quick menuProps and Avatars can now be blocked directly from their detail pagesAvatars already used this behavior, but note that forcing content visible for a specific user overrides forcing that content hiddenProps can now be spawned in offline instancesProps spawned while offline are destroyed once you connect to an instance and props spawned while online are destroyed once you disconnect from an instanceQuick Menu adjustment mode is now triggered via the QM settings page instead of holding down the QM buttonRemoved abinteractive.net from built-in video player whitelistRenamed CVRInteractable.CustomTrigger(int) overload to CustomTriggerAtIndex to make it discoverable by Animation EventsReset members list pagination when entering group details pageReworked how our World loading is handled to solve an issue where assets from previous worlds would linger around in memory. As a result of the rework we have removed the World transition none option as the force unload of the previous World is visually quite unpleasantReworked the World/Avatar/Prop details pages to be more readableSeveral AVPro improvements!Fix for disabled audio sourcesChanged AudioOutput to new _audioMode propertyUpgraded to AVPro 3Several HUD improvements!The microphone icon will now shake when attempting to speak while muted instead of notifying you as a text notificationMade the HUD scale based on screen size, making it more consistent across different displaysMade several togglable states now appear as temporary status icons rather than via text notifications:This applies to flight/noclip toggle, gesture lock, Skeletal Input, and movement lockSeveral VLC improvements!Updated VLC to vlc-unity-pro-2026-2Enabled fast seek to maybe make seeking a little betterSmall world details page improvements!Reworked world details to be a bit more readableRemoved the (ugly) color on the Favorite button of WorldsThe Mature Content DLC can now be unlocked through Steam without restarting the gameToggling the Enable Props setting no longer requires rejoining to resync previously spawned props in the instanceTweaked behaviour of clicking players and props while a menu is open or holding control in Desktop:It will now route to the Main Menu details pages if open, otherwise to Quick Menu selection pages, unless the UILib QM Player Select setting is explicitly set to prefer Main MenuUpdated Playerlist and Player Select page with new ContentDetails elementVideo Player Safety ImprovementsVideo Players must now be opted in before any networked playbackWorld Video Players are opted in automatically, so existing content (club worlds, background music players, etc.) keeps working as expectedProp Video Players start opted out. Click Watch in the player UI to opt inYou can configure the default opt-in behaviour for both World and Prop players under General settingsAttempting to load a non-whitelisted URL on an opted-in player now prompts you before playback, both in the Video Player UI and as a Menu notificationThe prompt shows who loaded the URL along with the full URL, with options to Watch or DenyFrom the Quick Menu notification you can remotely allow or deny a URL load for any player you've opted into, without visiting the player itselfYou can configure this behaviour with the new Auto Play setting under General settings:Only Trusted URLs: autoplays trusted URLs only. Anything untrusted has to be accepted manually through the player UI or Quick MenuAlways Ask: always prompts (player UI or Quick Menu) before playing on an opted-in playerAlways Allow: plays the video without any prompt or notification (same as the old whitelist-off behaviour)Visualizers for SteamVR Skeletal InputNew setting toggle Show Visualizers in VR Finger Tracking category.Visualization is visible when Use Skeletal Input is enabled and current controllers type corresponds to Skeletal Input Mode, otherwise hidden.You can now choose between the Classic and Wormhole portal types in the My Profile pageChanging the portal type you drop will sync to users on the Stable branchUILib Changes (for mod developers)
- Added AddAdditionalButton to ContentDetails
- Added ApiUserRank to UIPlayerObject
- Added ChildIndex to QMUIElement, this allows you to move any element around in it's parent (if supported)
- Added header button support to pages and categories
- This allows you to put both buttons and cyclebuttons on these headers, note that Root Pages do not have a page header
Added horizontal toggle styleAdded ImageOnly style to Button/CycleButtonAdded QMUIElement.Grayscale property to make any element grayed outThis does not disable input on these elements, if you want that use the Disabled property as wellFixed ImageOnly buttons not scaling properly for column countFixed slider not being resizable properlyImplemented ContentDetails and ContentButton elementsThese elements support many new things within them including subicons on their imagesSeveral QuickMenuAPI additions and tweaks:Exposed the local players UIPlayerObject via QuickMenuAPI.LocalPlayerObjectQuickMenuAPI.OpenPlayerListByUserID now can open the local user page by user idThis method now returns true/false whether the page could be opened. It will return false when the target player does not exist on the client.Added QuickMenuAPI.OpenPropList(), QuickMenuAPI.OpenPropSelect(PropSoul) & QuickMenuAPI.PropSelectPageFinal Notes
As always, thank you for your continued interest and support of ChilloutVR's development!
r182 was originally announced to be released alongside the Game Server 2 update, which will bring many much-needed improvements to our backend and various parts of the game. However, as it is not quite ready yet and many other features and fixes have been worked on in the meantime, we decided to push GS2 back to r183 and get these changes out the door that did not require related game server changes. With that said, r182 will be the final update built on GS1 and internal development is now preparing the game client for migration to GS2 going forward. This will be reflected in future Nightly builds leading up to the next stable release.
A big thanks to our External Contributors:
- Exterrata
- Malthbern
- Puff Machine
- Slime
Social Media
Find us on social media with the links below:
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.

May 30th Monthly Patreon Meetup Group Photo
We are more than thankful for your support!
Not in our Discord server yet?
Use the link above to join our Discord server and get in touch with our wonderful community, find help with creation-related topics, and meet new people to play with!