1. ChilloutVR
  2. News

ChilloutVR News

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:

[h2]Player Interaction without Input[/h2]
Allow or restrict other players/props from initiating certain interactions without your input, such as attaching objects or teleporting. Worlds always bypass this setting.

[h2]Desktop Throwing[/h2]
Props & Objects can now be thrown in Desktop by holding the ‘G’ key while held

[h2]Mature Content Visibility[/h2]
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.

[h2]Unity Upgrade[/h2]
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.

[h3]Social Media[/h3]

Find us on social media with the links below:


Discord

Twitter (Company)

Twitter (Status)

YouTube

Reddit

Support Alpha Blend Interactive

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.
[h3]Social Media[/h3]
Find us on social media with the links below:

Discord

Twitter (Company)

Twitter (Status)

YouTube

Reddit
[h3]Support Alpha Blend Interactive[/h3]
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!
[h3]Not in our Discord server yet?[/h3]
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!