We have just released a new Status Report for May 2025 detailing changes to our team, branding, the current state of various projects, related promises, and plans for the future.
We have just released a Stable update to ChilloutVR that includes various fixes and improvements, including but not limited to:
Main Menu Improvements
Color palette adjustment (not UI2)
Updated Support page
Easily copy GUIDs
Bunch of other small fixes
Content Discovery Page
Find & explore random Avatars, Props, & Worlds
Hud & Reticle Improvements
Smooth Hud
Gesture Indicator
HexReticle & SmartReticle native
Reticle only displays when needed
Desktop throw indicator
Steam Screenshot Integration
Easily add & share screenshots taken within ChilloutVR via Steam (if enabled)
Legacy Content Mitigation
Prevented potential mass-delisting of content broken during the engine upgrade
MultiPass in Non-SPI Worlds
Many small fixes & mitigations after mass review of majority of Legacy content
New Ways to Interact
Can now select Props while the Menu is open in VR
Can now hold Control to unlock the mouse in Desktop
Allows you to select Players, Props, interact with UI, and manipulate held objects
Several New CCK Components
CVRWheelHubController & CVRWheelController for building vehicles
The beginnings of the CVRLeg & CVRMovementDriver
Advanced CVRSkyboxManipulator
Exposed Object Health to Props
Reduced Game Installation Size
Removal of bunch of assets & shaders we shipped
In part due to the new MultiPass rendering in Non-SPI worlds
Improved our build times & development workflow greatly
Full Changelog:
Added a basic Gesture Lock SteamVR binding
You will need to bind this to make use of it
Added back the preload complete notification cause someone ate it again
Added Discover page to the Main Menu shortcuts
Added event filtering for Health System Components
Added gentle align upright to PhysicsInfluencer to use force to align an object to gravity
Added gravityFactor to PhysicsInfluencer to scale gravity and simulate thigs like lift etc
Added Health DealDamageManually function
Added input and output transforms to CVRLeg Component
Added Manual DownBehavior to ObjectHealth
Added more components to the prop whitelist
NavMeshObstacle
OffMeshLink
ObjectHealth
Damage
Added NavMeshAgent related parameter streams
Added new 'CVRSkyboxManipulator' component
This allows you to manipulate how the skybox renders for a target camera (rotation, material, mesh, origin, ect)
Added new damage system parameter streams
Added new Component 'CVRLineRendererHelper' to help using a line renderer to connect transforms
Component is in its early stages will be expanded on in the future
Added new ParameterStreams
LegIsOnGround
RigidBodyAcceleration
RigidBodyAccelerationX
RigidBodyAccelerationY
RigidBodyAccelerationZ
RigidBodyLocalAccelerationX
RigidBodyLocalAccelerationY
RigidBodyLocalAccelerationZ
WheelHubControllerGrounded
WheelControllerGrounded
WheelControllerRPM
Added object health functions to Callback whitelist
Added optional persistent zoom level
Added ParameterStream update method onlyUpdateWhenOwner (usable for props and later on worlds)
Added Pitch Randomization for ParticleSound Component
Added portal dropped on top of you HUD notification
Added sanitization to character controller velocity
Added steerMultiplier to CVRWheelController to reduce steering input and allow for back wheel steering
Added toggle zoom setting and made it the default
Added torqueCurve to WheelHubController
Added UDIM discarding support to the Highlight shader
Added 'UnityEngine.SkyBox' component to Avatar/Spawnable whitelist
Adjusted controller line renderer to always display when the menu is open
Also now visualizes the active UI ray (inactive ray is dimmer)
Adjusted default pointer placement to not be skipped if missing third finger bone
Adjusted Desktop LookAt distance to scale with playspace scale
Adjusted Desktop Menu input to be done via Controller Ray instead of being fed in from mouse screen position directly
Adjusted DesktopRayController to not run when window is not in focus
Adjusted DropProp to allow spawning props in the air
Adjusted 'CVRWorld.ConfigurePostProcessing' check to ignore volumes found outside of the world scene
Adjusted how Magica Cloth 2 gravity direction is applied on avatars within gravity zones to address a major performance regression
Adjusted outbound core parameter syncing to always send MovementX/Z
Should fix case where Emote parameter can get stuck looping on the remote side if running anims are disabled in FBT
Adjusted player controller trigger touch input to also be true if trigger value is more than 0
Adjusted project skinning quality to enforce 4 weights per vertex
This has been enforced on the local avatar for a year or so now
Adjusted Mature Content Visibility handling to hide irrelevant UI elements when disabled
The Search & Filter options will no longer appear when mature content is unlocked & disabled
Can now hold Control to unlock mouse in Desktop mode
While unlocked, you can select Players & Props to open their Details Pages
You can also move held pickups around & interact with the world
This can be disabled in the Controls setting category
Changed the default index bindings for the left 'A' button to be the gesture toggle instead of the skeleton input toggle
Changed the Main Menu theme to match company color palette
This is not UI 2! Colors were just tweaked to match the ABI landing page
Changed WheelController to now stop updating transforms if the vehicles rigidboy is set to kinematic
Clicking a prop while the menu is open will now open the details page for it
Clicking on the icons in the Support page now prompts to open them in browser
Disable Magica Cloth culling for the local player avatar
Don't needlessly 'tex.GetRawTextureData()' on downloaded portal images
Dynamic Bone & Mesh Cloth are now separate filter options
Exposed 'CVRSharedPhysicsController'
This component is automatically added onto the same object as 'CVRPickupObject', 'CVRAttachment', 'CVRObjectSync', 'CVRSpawnable', & 'PhysicsInfluencer' and is used to manage the default RigidBody state to restore once the mentioned CCK components are done overriding it
These APIs are purely for experimentation to see if such functionality is desired.
Fixed 0G controls being incorrectly activated during the gravity zone alignment warmup
The 0G controls now only activate when in real 0G
Fixed an issue where taking a Steam Dashboard Screenshot while multiple other clients connected to Steam were open would take the screenshot on all of them
Fixed Avatar Overrender UI feature not respecting UDIM discard properties that were not animated
Fixed avatars not loading default profile from AAS on initial load
Fixed case where local user could not make changes to a CVRSpawnable when network lerp timer got stuck
Fixed center of mass shifting not working for physics influencers
Fixed clicking any tab not closing details pages
Fixed controller line renderer not displaying in worlds with nameplates disabled
Fixed 'CVRSnappingPointManager' nullref when reference point is null
Fixed CVRSpawnable interpolating from the last network state when the local user has made changes
This should fix subsyncs snapping back when alternating sync when using a prop like a chessboard
Fixed Desktop & Halfbody IK root angle not being maintained on movement parents
Fixed force applicator runtime gizmo
Fixed game icon being incorrectly colored
'e41010' to 'e43600'... absolutely game-changing
Fixed LoginRoom scene load unintentionally skipping some game initializations
Fixed Main Menu detail pages being broken after logout
Fixed Main Menu drag scroll not disabling while holding dropdown & toggle inputs like the Quick Menu
Fixed Main Menu haptics
Fixed main menu not playing hover & click sounds
Fixed menu auto-refresh causing applied prop/avatar/friend list filters to not reapply
Fixed never releasing Grab sync type on subsynced kinematic pickups
Fixed not being able to raycast to the Quick Menu if launched into VR with only Left Hand and not yet raycasted to another collider on UI internal
Fixed objecthealth down logic
Fixed performance issue when replacing default clips on avatar load
Fixed potential race condition where menu wouldn't mark itself ready because authentication occurred too fast
Fixed prop spawn placement not correctly facing player when spawned in Gravity Zones
Example: spawning a prop on a gravity wall would not correctly face towards your direction
Fixed rotatechestbyhands being reenabled in the spine solver when toggling FBT >:(
Fixed RuntimeGizmos to correctly display more characters
Fixed Vive tracker interaction profile for OpenXR
Fixed window focus detection failing when there was multiple ChilloutVR windows open
Fixed User Details button not functioning on Request Invite element in Main Menu
Highlight Profile Updated:
Is now constant width
Changed the quality of it so that it is significantly faster
Made it overrender everything, this may or may not be good, need feedback
Changed the color to be the ABI orange
Implemented a basic gesture indicator after chopping the old filtered avatar's hands off
Implemented a system to manually render both eyes in Legacy (NonSpi) worlds
This system has replaced the automatic shader replacement when entering NonSpi worlds in VR
Issues with terrain foliage are mitigated, and will kick in when loading Unity 2019 bundles
This is far from perfect, but it is much better than opaque grass & flowers!
NonSpi Avatars & Props loaded while this system is active will also not be shader replaced
Loading into a Spi world after a NonSpi world will run shader replacement for any loaded Avatar or Prop
This is to ensure the currently worn avatar is properly shader replaced when the mitigation is inactive
Implemented Desktop FOV & UI Scale sliders
Implemented fix for remote avatars causing a native crash when animating a camera off on the first frame
Implemented HexReticle (Thank you SketchFoxsky!)
The reticle is now a hexagon that reacts when hovering anything interactable
It also displays an indication of the Desktop throwing multiplier when holding 'G'
Implemented known mitigation for AMD GPU wireless vr stutter
Implemented new local avatar clone
Addresses a huge hitch when loading a local avatar with many renderers on it
Shadow casting mode is now properly respected & can be changed at runtime
Projectors targeting the local player layers no longer hit the head hidden mesh in first person
Generic avatars can now use the 'FPRExclusion' component
Implemented scroll to change zoom level
Implemented Smart & Disabled modes for the HUD reticle
In Smart mode, the reticle will only display when hovering something interactable or using a mouse input
While in Disabled mode, the reticle is... disabled
Implemented VR HUD smoothing option
Improved CohtmlHud to not needlessly allocating every frame
Improved CVRPathCamController to also not allocating every frame
Improved the VR Intro display of errors when the initialization fails
Increased contrast of the reticle
Made applying NetIK less stupid
Made clicking author name in Avatar & Prop detail pages bring you to the authors details page
Made double-clicking Avatar/Prop/World/User detail page image to copy guid to clipboard
Made HUD unaffected by zooming
Moved Cosmos Controller evaluation before Vive Touch Controllers
Moved cursor lock to shortcuts 2
Added push notification to tell you the lock state
Moved Use Telepathic Grab option to Controls setting category
This addresses somewhat the Logout button not being visible once mature content is unlocked
Portable Camera captures now save to Steam Screenshots when available
Removed Aura 2 due to several critical issues, like not supporting SPS-I
You can now confirm FBT calibration when only one hand is connected
Communications Changelog:
Added Push-to-Mute option to Mute Bind Modes
Added Noise Suppression and Mute Bind Mode to VR Aware settings
Adjusted Pipeline Objects to fix several issues with Positioning and Playback
Adjusted Positional Tracking and Handling
Adjusted TTS to fix an issue with artifacting in the transmitted Audio Data
Fixed an issue with Audio Normalization not being active by default
Thanks DDAkebono for identifying and helping to fix this issue
Fixed an issue with Microphone Toggle keybind still being active during Desktop Login
Fixed an issue with Mic Toggle being active while Text Inputs are focused
Fixed an issue with not being automatically muted when switching Input Device to "No Device" while unmuted
Fixed an issue with the Audio Capture thread sometimes not restarting when changing Input Device
Fixed an issue with the Audio Capture thread sometimes not restarting when Connection Recovery occurs
Fixed an issue with TTS not broadcasting when "No Device" is selected as the Input Device
Fixed an issue with Voice Data sometimes not being sent to the Server
Reworked Push to Talk into Mute Bind Mode
ChilloutVR 2025r178 Hotfix 1
We have just released a Hotfix update to ChilloutVR that addresses the following issues:
Fixed mirror mask shader to fallback to skip a certain optimization on Hardware that doesn't support it
This should address the mirror being black on certain GPUs
Fixed CVRMirror mask material & command buffer not being disposed of during mirror cleanup
ChilloutVR 2025r178
We have just released a Stable update to ChilloutVR that includes various fixes and improvements, including how you interact with objects, players, and mature content.
Main Changes:
Player Interaction without Input
Allow or restrict other players/props from initiating certain interactions without your input, such as attaching objects or teleporting. Worlds always bypass this setting.
Desktop Throwing
Props & Objects can now be thrown in Desktop by holding the ‘G’ key while held
Mature Content Visibility
Players with access to Mature Content within ChilloutVR via the DLC now have a global toggle available in both the game Settings menu (General), and Account Settings on the HUB.
Unity Upgrade
While not a major change, ChilloutVR is now using Unity 2021.3.45f1. This editor version may be used to upload content going forward.
Note: CCK related changes, and uploading via Unity 2021.3.45f1, will be available along with the release of CCK 3.13 following soon.
Changes:
Added 'normalizeBoneAttachment' option to CVRAttachment to allow for attachments to work across differing avatar rigs
This means that bone attachment with fixed offsets won't be affected by bone roll & local scale
Added 'OnPickupUseUp' and 'OnPickupUseDown' to CVRInteractable
This differs from 'OnInteractDown' and 'OnInteractUp' by only firing for the held hand holding the pickup
Added 'RectTransform.SetParent' and 'Transform.SetParent' to the unity event whitelist, limited to worlds. These are available via 'CVRInteractable' method call.
Added a mipmap streaming toggle on the experimental settings
Added a MoveMode dropdown to CVRPickupObject
This just exposes Velocity / Instant tracked pickups, with the potential for more to be added in the future
Added an additional Exception Handling for Bundle Verifier
Added a throwing multiplier & min speed threshold to CVRPickupObject
Added CollisionWithPlayer configuration to CVRPickupObject & CVRAttachment
DisableWhileHeld: The pickup will not collide with the player while held Collision is immediately returned on release
DisableWhileHeldAndColliding: Same as above, but the pickup will not instantly collide on release, but instead push the player out after half a second
DontDisable: The pickup will continue to collide while held
Added destroy children option to 'CVRInteractable.DeleteGameObject' action
Added error handling and display for incompatible worlds in the player activity menu.
Added filtering of "illegal layers" on world load
PlayerClone & UI Internal are now filtered
Added logs for when unity events get filtered out, while also stating the reason they were filtered
Added starting Steam (if not running) when using DeepLink to start the game
This fixes the issues of losing SteamVR custom bindings and mature DLC when starting the game from DeepLink URLs while steam is closed
Adjusted 'CVRAttachment' to call the Detached event when the attachment is broken
This can occur on an avatar switch, prop deletion, or any general case where the tracked transform is no longer able to be tracked
This also fixed CVRInteractables attached state being incorrect if another attachment was done prior to calling DeAttach
Adjusted Drop key in Desktop '(G)' to accumulate a throw timer while held
You can now hold G for up to 3 seconds to charge a throw
Adjusted first CVRInteractable.OnEnable call to occur after world load
Adjusted GravityZone rotation alignment handling to not force ZeroG controls during the transition between two override zones which have the same alignment mode
This fixes Zero G controls being active while transitioning through aligned override gravity zones
Adjusted how velocity is applied on release of a pickup
This should make throwing things feel just a bit nicer
This also fixes rotational velocity not applying to a pickup on release
Adjusted order that 'CVRAttachment' checks for attachable transforms:
Now is Snapping Points -> Trackers -> Avatar Bones (was in reverse order)
Ex: an attachment set to look for a "holster" type and hip bone will prioritize the preconfigured snapping point if found over the hip bone
Adjusted the new non-whitelisted url notification
Changed 0m MaximumGrabDistance behaviour
When set to 0m only Proximity Grab will work
As desktop cannot physically do proximity grab they have an extra reach distance given to compensate
Existing pickups using 0m for infinite still work as expected
Changed CVRInteractable.OnTimer to use coroutine instead of scheduler system
Changed how 'StateMachineCallbackSender' works
You now must define a specific receiver to forward callbacks to
This was changed for performance & implementation reasons
CVRPickupObject will no longer change Kinematic mode on held rigidbody
If disabled, pickup object will respect collision
If enabled, pickup object does not respect collision
Disabled rich text on Portals, Avatar Markers, and Spawnable Markers
Enabled mipmap streaming and set mipmap memory budget appropriately (currently set to 80% of max VRAM)
This should resolve where textures were always the lowest mip selected on a previous build that had mipmaps enabled.
Note: Some older avatars that have mipmap streaming enabled might use the lowest resolution at all times, which must be re-uploaded to resolve.
Exposed 'enabled', 'SetAutoHold', 'ForceRelease', & 'IsPickupable' on 'CVRPickupObject' for use with Unity Events
Fixed Advanced Safety not actually clamping transform positions
Fixed an issue where multiple delayed CVRInteractable actions being removed at once would stop other delayed actions
Fixed an issue where switching to VR after starting in Desktop would mess with VR push pull distance & speed
This caused pulling an object to you to stop before actually reaching you depending on your playspace scale prior to switch
Fixed an issue with Avatar Reloading not working properly when the upload is updated
Fixed an issue with Disconnect Messages being played twice
Fixed an issue with Max Prop Download Size not being enforced (it was using the avatars max limit setting instead)
Fixed an issue with Player Join and Leave toggles not working properly
Fixed an issue with Player Voice Pipelines not applying values properly
Fixed an issue with SteamVR not abiding by user-specified render resolution
Fixed CVRAdvancedAvatarSettingsTriggerTaskStay Add/Subtract per second being tied to target refresh rate
Fixed CVRBlitter Breaking when deleting content
Fixed CVRInteractable actions being needlessly iterated over during callbacks where actions weren't defined
Fixed CVRInteractableManagers enableInteractions state not being fully respected, causing desync while interactions were disabled
ex: CVRInteractable.OnGrab would not fire while in FBT calibration
Fixed CVRInteractables Teleport Player World Up option misbehaving
Fixed CVRInteractable Teleport Player with gravity alignment option not working
Fixed not orientating properly in certain scenarios
Fixed CVRPickupObject.RootTransform returning stored grip transform instead of active one
Fixed CVRPickupObject handling rotation of non-physics updated pickups properly
They used to move in FixedUpdate but rotate in Update, causing some visual issues
This also fixed GripOrigin pickups not being throwable
Fixed game initial Intro video not continuing the loading after finishing without user input to skip
Fixed Interactable not being able to handle multiple controllers properly
This fixes 'CVRInteractable.OnInteractUp' being wrongly invoked when hovering a controller over an object already being interacted with by the other controller
Fixed interactable-spawned objects in worlds set to Auto Pickup not working
It attempts to auto-pickup the spawned object if there is an available hand. If there is no available hand, it will drop the current held object and then grab the newer one
In VR it checks first the right and then the left hand for a free hand, if none available it force drops the right hand and then use it.
In Desktop just uses the single existent grab point (head)
Added options for interactions without user input option on Avatars and Props
Example: Attach props to users, or Teleport/Seat remote without clicking on something
Worlds do bypass these settings
For now 'UnityUI' calling 'CustomTrigger' does not count as user Input, so it will be restricted if players have this disabled
Currently the Me/Friends options look for the avatar wearer or prop spawner to decide whether the limits are applied or not. In the future this might be refactored to better interactions (like checking filtering depending on who's grabbing for example)
The default settings are:
Attachment without user input: Always
Teleport Player: Props spawns/Avatars worn by Friends (or self)
Note: This didn't improve the access to the mentioned functionalities, instead it restricts some funny ways to do it
Fixed issue with CVRBlitter breaking when multiple instances of the same prop were spawned
Fixed Mirror Facing Check, Mirrors should now be fully functional again
Fixed mirrors breaking with a skewed transformation matrix
Fixed notification for blocked prop due to max file size not showing
Fixed pressing prone key while in Desktop changing Seated Play state
Fixed reusing clips with shared Animation Events blows up AnimationEventHelper on content load
Fixed some youtube videos play using the wrong language
Fixed soundcloud.com links not working in the video player
Fixed typo on Player Interactions without Input description
Fixed VRModeSwitch Shader Replacement only occurring for only Legacy bundle format Worlds despite Compatibility Version being NotSpi
Fixed VR Switch Shader Replacement prompt using the wrong conditions to display
Would incorrectly display in any world using Legacy bundle format instead of NotSpi Compatibility Version
Fixed Worlds with Terrain set to Draw Instanced causing visual artifacts during Digitize transition
Implemented a system to handle shared physics & collision state across CCK components
This ensures CVRAttachment, CVRPickupObject, CVRPhysicsInfluencer, CVRObjectSync, & CVRSpawnable shouldn't end up reapplying values they shouldn't
This will also later allow creators to change the desired kinematic & gravity values when one of the above components is not overriding them
Implemented content blocking based on global mature content setting
You won't be able to see the details or use avatars/props/worlds/instances tagged with nudity or gore if you have the setting off
You won't be able to join instances of worlds that are tagged with nudity or gore if you have the setting off
Implemented global mature content setting associated with the users account
The toggle is available within the in-game General settings & on the Hub
You must run the game with the Mature Content DLC at least once to unlock this toggle
The toggle is automatically defaulted to true this first time you run with the DLC
Improved CVRBlitter functionality
Added RandomWriteTarget support to the CVRBlitter component
Added CVRBlitterController to ensure CVRBlitter execution order
Improved menu clarity and reduce aliasing significantly
Made Mirror Optimization always apply
Removed the setting from experimental
Pickups ineligible for grabbing will no longer highlight
Prevent some avatar materials that are not instantiated from getting destroyed
Renamed 'Input & Key-Bindings' to 'Controls'
Replaced 'Fade When Idle' setting with 'Display Behaviour' in Settings -> Graphics. Now it offers 3 modes:
'Always' - The HUD is always shown (previously Fade When Idle unchecked)
'Voice & Updates' - The HUD fades out if there are no updates nor voice activity both muted and unmuted (previously Fade When Idle checked)
'Only Updates' - The HUD fades out and only returns when there are updates, or there is voice activity while unmuted (new)
Upgraded Unity version to 2021.3.45f1.
Whitelisted 'CanvasGroup' for props
Whitelisted FinalIK's 'AimIK' and 'IKExecutionOrder' components for avatars and props
Whitelisted setting some properties of 'CanvasGroup' via UnityEvents (limited to props and worlds)
ChilloutVR 2024r177 Hotfix 2
We have just released a Hotfix update to ChilloutVR that addresses the following issues:
Fixed video player resolver not working properly
Status Report November 2024
Hello there, and thank you so much for checking in!
We have a fairly short one for you this month while the cooks (devs) are hard at work creating all sorts of crazy concoctions (bugs) in the kitchen (basement). Jokes aside, there's still quite a bit in the pipeline that we're excited to show off, but isn’t quite ready. For now though, we have a couple of topics on the board today including a new safety feature coming soon, and a relatively new benefit for Patreon members.
Player Interactions without Input
A new safety feature we will be introducing alongside our ever growing list of options to customize your experience in ChilloutVR is the ability to determine if a player can take certain actions without your input. This can be anything from attaching an object to your avatar, to teleportation, typically done with props.
The typical adjustments found in similar settings are available here too, such as only allowing friends to perform these interactions, but worlds will always bypass these restrictions so that they will continue to function as intended.
We hope this severely reduces the number of mugging incidents that have taken place as of late in the community! (image below)
Patreon Meetups
Recently, we’ve been hosting monthly Patreon meetups for our members to meet the team, ask questions, and discuss topics regarding the development of ChilloutVR as a way to give back to those who continue to support the platform and keep things running.
If interested in attending, and learning about early insights on development, consider joining our Patreon here. Meetups take place in-game, and times are announced in our community Discord.
For those who do not, or are unable to, support via Patreon, no need to worry. Any important news and major previews will always be available to the public when ready. We appreciate any and all support possible, even simply just enjoying our game.
Final Notes
As always, thank you for your continued interest and support of ChilloutVR's development.
Like every company, we need financial support to be able to push updates and improve our product. 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!
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!
ChilloutVR 2024r177 Hotfix 1
We have just released a Hotfix update to ChilloutVR that addresses some security related issues.
We encourage everyone to update as soon as possible.
Fixed an issue related to TexturePropertyParser being able to reference non scene objects
Status Report September 2024
Hello there, and thank you so much for checking in!
Further Scripting Progress - Persistence & More!
A new addition to our Lua Scripting system that has just been released to one of our Nightly branches is Persistence, which allows creators to store data on the user’s local machine and be preserved for later use.
This means that anything from simple toggles, to game save data, can be maintained across instances, worlds, and even play sessions. While the convenience of not having to flip the same settings in your favorite cozy world for every visit is exciting in it’s own right, we also hope it’ll allow creators to build games and similar content with longer-term play in mind. Saving scores and personal bests are a couple of great uses that come to mind, but there are limitless applications that can be realized and expanded upon.
While such use-cases may be obvious enough when it comes to Worlds, keep in mind that Scripting is also available for Props and Avatars as well, all of which may take advantage of the benefits that persistence offers.
So, how does it all work? As noted before, this data is stored on your local machine, but in two different forms: public and private. Public storage is a user-readable/editable JSON file, and can be used for simple preferences and configuration. Private storage is intended for something like game save states, and is an encrypted binary file designed to be secure and inaccessible to the user.
Additionally, we also plan to provide a server-side storage solution for persistent data down the line that will allow for even further security by not being stored on any user’s local machine.
Finally, in a recent Patreon meetup with the community, we were asked about our plans for scripting and what’s to come, so we’d like to share that here as well.
In an early Status Report discussing scripting and its features, we mentioned that additional languages would be added over time. One such language that is under heavily consideration is WASM, or WebAssembly. While plans for this are not necessarily set in stone, we are hoping to begin development on WASM when our current Lua implementation is in a more mature state.
Another new feature that we plan to make available to creators is the Scripting Network. This will allow creators to have more freedom and control over how scripts sync over the network, instead of being bound to spawnable/object sync, tailoring it to their specific needs.
More information to come on these features and more in the future.
If you would like to try out Persistence for yourself, and by extension the in-development Lua Scripting system, more information is available in our Community Discord server.
Deep Links
Recently, we introduced a new feature in the latest Stable release called Deep Links, which allow for interactions via url links such as joining an instance or viewing user/content details page with a link from outside of the game.
This can currently be seen and used by logging into our Hub, and joining a friend in an accessible instance via the 'JOIN - VR MODE' and 'JOIN - DESKTOP MODE' buttons. It is also possible to access the in-game details for users and content via a button on their respective Hub pages.
To enable Deep Links, upon launching the game, you will be prompted to install the necessary requirements. However, if wished, you may opt-out.
Community Documentation
One important bit of feedback that we often receive here at ABI about our relatively insufficient documentation. Admittedly, it is a problem of our own creation as it can be easy to lose track of these things throughout the development process. Though we have been striving to correct that and fill in the gaps, there is quite a lot of information to cover which takes time for a small team to juggle on top of working on additions to the game itself.
So, we’ve decided to open up our documentation for members of the community to contribute their knowledge and know-how of ChilloutVR! If you have any relevant information about playing the game or creating content that you believe would be useful to new, and even existing, users then we would be grateful for your support.
Instructions for contributing to the documentation can be found on our GitHub repository here: https://github.com/Alpha-Blend-Interactive/docs
We look forward to your submissions!
Groups Progress
Quick little update on Groups!
To briefly recap; Groups is a new feature coming soon to ChilloutVR that will make it much easier to organize and keep up with different groups of players for anything from small gatherings to larger events. Members of a group are able to join Group instances, including instance types that are exclusive and non-exclusive to the Group, and even display a preferred group in their profile for all to see.
We’re happy to say that we’ve made significant progress on this new addition, and expect an initial release to be available very soon. Most of the basic functions that will allow group leaders to create, manage, and customize their group, including new instance types, images, banners, and pre-defined roles, will be available on launch both from the hub and game itself. However, there is still more to come post-launch, such as announcements and post, and longer-term plans that are still in development including events, user defined roles, and the ability to display your preferred groups on your nameplate.
While we have mentioned in the past that this would likely be introduced sometime after the release of the UI 2.0 update, we’ve instead decided to include Groups in the game’s current UI while we continue to work with your feedback on the preview shown in August.
We know this has been a very highly anticipated addition for our community, one we can’t wait to get in your hands.
Final Notes
As always, thank you for your continued interest and support of ChilloutVR's development.
Like every company, we need financial support to be able to push updates and improve our product. 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!
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!
ChilloutVR 2024r177
We have just released a Stable update to ChilloutVR that includes various fixes and improvements, in addition to the new Deep Links feature.
Added a Notification when loading an unknown URL and the whitelist is disabled. (Can be disabled in settings; On by default)
Added a VideoPlayer Unknown URL notification.
Added instance type parameter stream
Added pickup disable push/pull option
Added some measures to prevent the avatar loading from stop working
Added Deep Links, which can trigger game actions by clicking on links.
You can enable this feature by accepting the prompt the first time you open the big screen
You can use `--skip-deep-link` as launch argument to disable deep link install prompt and and behaviour while the game is running (it won't prevent the game from starting)
After Installing you should be able to click links to:
Join an instance (will start the game if the game is closed)
Open the details pages on the main menu (only works if the game is already running)
Attempt to fix crash issue with the Portable Camera's Image Saving system
Finished implementing Auto-Switch on SteamVR Quit as an Experimental Setting
Fixed `CVRInteractable` Teleport Player with gravity alignment option not working
It works both with world and gravity zones gravity (depending which one has higher priority)
Respects the same rules for aligning as the normal gravity alignment
You won't be aligned if the winning gravity result has alignment disabled
You won't be aligned if the resulting gravity is `0`
Fixed Alignment Issue with Nameplates and Loading/Distance Avatars
Fixed an issue that prevents hearing other Users
Fixed an issue with AssetFilter causing crashes.
Fixed an issue with Avatar Reload Spam when other players get Reconnected
Now when players disconnect their avatar won't be deleted right away, there is a short period which the game waits for them to reconnect
Fixed an issue with Avatars not Reloading properly
Fixed an issue with Background Threads not awaiting for Main Thread Jobs in MTJobManager.
Fixed an issue with CPU Flooding on AMD CPUs from unmanaged Thread.Sleep calls.
Fixed an issue with CVRFaceTracking not staying within BlendShape array bounds
Fixed an issue with FixedDeltaTimeAdjuster getting overridden by outside sources
Fixed an issue with Loading Avatar showing 0% when actually loading assets
Fixed an issue with Nameplate Height Offset being incorrect for Loading Avatars at Distance
Fixed an issue with not Validating Players when receiving Prop Spawn requests from the Game Server.
Fixed an issue with Player Join/Leave Notification Spam when other players get Reconnected
Fixed an issue with Players being invisible until their Avatar Download starts
Fixed an issue with Prop Spawning that deleted Props upon Update
Fixed an issue with Prop Spawns breaking Loading Avatars
Fixed an issue with PuppetMaster spamming errors when an Avatar's Animator isn't initialized
Fixed an issue with RCC_Exhaust spamming errors
Fixed an issue with some Avatars breaking the instantiation queue
Fixed an issue with TTS sometimes using the wrong Pitch and Rate values on some systems
Fixed an issue with World Loading causing Instance Desync.
Fixed a threading and crash issue with Comms_AudioTap.OnAudioConfigurationChanged
Fixed Custom Physics Collision matrix from worlds not affecting the Local Player
Fixed interactable not spawning objects
Fixed Re-joining a world that has been updated does not load the new version the first time
Fixed Render Issue with Loading/Distance Avatars
Fixed Scaling Issue with Loading/Distance Avatars
Fixed some cases where the asset filter would error with null references from already destroyed objects.
Fixed the Jump & Gesture Toggle Buttons not being able to be bound to the opposite hand.
Fixes late sync for prop video players.
Implemented and Exposed `SetGuid` method call for `CVRAvatarPickupMarker` and `SpawnablePickupMarker`. This must be called from `CVRInteractable` Method Call
Hello there, and thank you so much for checking in!
Progress on UI 2.0
“Wait, the UI 2.0 update is real???”
Yes, yes, we haven’t just been teasing it for nothing. As many in our community will no-doubt remember, we have been discussing a redesign of our UI for quite some time now. Over the last few months, we’ve managed to make significant progress on the design and implementation of it, and have finally approached a point where we can provide a little sneak peak of what can be expected.
Here is a short preview of it in action:
Keep in mind that this design is still far from complete, and still contains more than a few placeholders, but we wanted to give everyone a general idea of our progress so far.
The UI backend has been completely reworked with further expansion in mind, so future additions, and even mods, will be able to implement new UI elements and features much easier going forward.
Also, as you’ll notice, we’ve introduced a new Tabs system at the top so that multiple pages may be stored and revisited with ease. Now you will be able to view someone’s profile, check out a world, spawn a prop, change your settings, and much more without having to repeatedly navigate to those pages.
While we do not yet have a timeframe for when this will be available, we hope to spread some of the excitement for this that we’ve been feeling here at ABI. Improving the general user experience is very important to us, and this is just another step in that direction. Please look forward to more news regarding further UI updates in the future, and let us know what you think!
Changes to Public Testing Builds
Earlier this month, we discontinued our public Experimental branch in favor of a new testing format. It was meant to allow our community to test and preview new features ahead of time, before being pushed to a stable release of the game. However, due to the large amount of changes that were usually present in Experimental updates, it would take some time to address community feedback and conduct internal QA testing before another update could be provided.
So, we figured we’d cut down on a lot of that time and switch to a Nightly format that consists of much more frequent, and at times less stable, releases. This allows those who provided feedback on certain issues to test related changes as soon as possible, which can be a major positive for the occasional unique issue that takes time to make it to a stable release.
Additionally, our Lua scripting system that had been introduced in the last few Experimental updates has been moved to its own Scripting Nightly branch. This was done so that it has time to mature, and allow the development team to work on other features and fixes without having such a major feature halting future stable releases before it’s ready. Not to worry though, creators can still easily access this branch by simply joining our community Discord server and snagging the beta code.
Improving User Input
We are aware of various issues that have been affecting user input with certain UI components in the game, specifically when it comes to interacting with them using the VR laser pointer. Props seemed to exhibit this behavior a bit more, but such issues weren’t unique to that content. So, we have began working to resolve them by making changes to how we work with Unity UI.
For the technically inclined: This was due to Unity UI being manually driven instead of driving it through Unity’s Event System, which works far better in virtually every case.
We are currently looking for feedback to ensure a smooth transition for when these changes make it to a stable release, aka nothing is horribly broken as a result. An Interaction Nightly branch is now available for public testing, and as usual all relevant information is available in our community Discord server.
Addressing Avatar Reloading when Recovering Connection
Occasionally, players will be disconnected and reconnected from our game server, which is most noticeable by the fact that all avatars worn by other players are reloaded as a result. This can happen for a number of reasons, which we are working to mitigate over time. However, in an attempt to make it as seamless as possible, regardless of the reason, players are immediately reconnected to the same instance, in the same position, without any loading screens or world transitions.
As mentioned, an unfortunate side-effect of being disconnected from the instance in the first place is that player avatars are unloaded, requiring them to be loaded yet again. Sometimes, especially in severe cases, this can break the loading queue and prevent any avatars from loading further.
We know that this has been a point of frustration for players, and so we have begun rolling out some fixes to address these issues to one of our public testing branches available alongside the regular Nightly releases. While the solution on the surface is to simply not unload avatars in such situations, it’s a bit more involved than that, but that is more or less the end result. Expect these fixes to be included in a stable release in the near future.
Final Notes
As always, thank you for your continued interest and support of ChilloutVR's development.
Like every company, we need financial support to be able to push updates and improve our product. 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!
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!