Skip to content

Start typing to see game suggestions. This only suggests apps that have a store page.

Only apps with a store page are suggested. Enter Submit to view all results. Ctrl+Enter View and filter in instant search.
Close ×

Neos VR update for 4 May 2021

2021.5.4.471 - UI Aligned Camera for desktop, expanded cloud variables abilities

Share · View all patches · Build 6644189 · Last edited by Wendy

Patchnotes via Steam Community
This build has not been seen in a public branch.

Hello everyone, sorry this build took a bit longer to make, but here's a bunch of new goodies! The new desktop mode now has UI Camera mode! Simply hold Ctrl and Left click on some UI to align the view with it! Doing Ctrl+Left Click in empty space will reset. While active you can also use Ctrl+Right Mouse to pan or Ctrl+Scroll to adjust zoom. This should make interacting with UI's and LogiX much easier in desktop! There's still some glitches and things to be implemented though, so you'll probably run into a few issues.

The cloud variable system has also been expanded with new permissions for more flexibility (notably adding a lot more to User defined variables) and a bunch of bugfixes and tweaks too! You can now also use them for access & role control on headless!

There's some other goodies, like ability to bake non-driven blendshapes to optimize your meshes, new +/i LogiX node and some more. Model importing robustness has been improved too to fix cases where import gets stuck on some models or fixing cases where users who haven't played in a while would run into Neos crashing on startup. The Contacts+ issue should also be fixed for good now, sorry it took so long!

New Features:

  • Added UI Camera mode to the new desktop mode, which aligns the view with the plane of the UI and frees the cursor for easy interaction
    -- To activate, hold the Ctrl key and click with the Left Mouse Button on the UI you want to focus. You can repeat this to align to another UI element
    -- To deactivate, hold the Ctrl key and click with Left Mouse Button into empty space (alternatively press F5 to toggle camera mode)
    -- While active, you can hold the Ctrl+Right Mouse button to pan the view around
    -- While active, you can hold the Ctrl and use the Scroll wheel to zoom in and out
    -- While this mode is active, grabbed items and spawned LogiX nodes will be moved on the plane of the currently focused UI

  • Added roleCloudVariable configuration option for auto-startup/headless worlds, which allows auto-assigning a role based on a cloud variable (based on requests by @Geenz | Graphics Programmer, @Avinash | WeMakeVR and others for organizing events)
    -- This lets you define a cloud variable and assign value to users to determine their role in given world
    -- The variable needs to be of type string. The value you assign equals the name of the role you want to grant to given user
    -- It is STRONGLY recommended to make sure you're using cloud variable that you can write into on behalf of other users (definition_owner), otherwise users might be able to assign themselves a high permission role
    -- If no value is set for given user, the usual method to determine default role is used

  • Added allowUserCloudVariable configuration option for auto-startup/headless worlds which allows using cloud variable to always allow user into a session (based on the same request above)
    -- The cloud variable needs to be of type bool and set to true for given user
    -- This is equivalent of the user being sent an invite - they can join regardless of MaxUsers limit and even if the session is set to Private (they need to obtain)
    -- Same recommendations as above apply, please make sure you use the right cloud variables that you have proper control over

  • Added new cloud variable permissions to provide more flexibility (this resolves some issues brought up by @Epsilion, @DrFrank, @Robyn (QueenHidi), @Toxic_Cookie and others)
    -- definition_owner_only and definition_owner_only_unsafe
    --- These mean that the variable value can only exist (and be written to) by the owner of the definition (meaning other users cannot have a value at all), making it useful for "central" annoucement variables
    --- These permissions work with User defined variables as well
    -- definition_owner_only_contacts and definition_owner_only_contacts_unsafe
    --- The variable value can be written to only by the definition owner for any user who is an accepted contact of the definition owner
    --- This permission is valid only for User defined variables and allows for the tagging use-case of cloud variables without needing a group
    -- variable_owner_only_contacts and variable_owner_only_contacts_unsafe
    --- This allows anyone who is a contact of given value owner to read/write given value (meaning your contacts can read/write your value)
    --- This is valid permission for both User and Group variables

  • Added "Bake Non-driven BlendShapes" to SkinnedMeshRenderer
    -- This will bake any of the blendshapes that are not driven into the base geometry. For models with lots of configuration blendshapes that are only altered once, this can provide significant optimization, reducing memory usage and load times of given mesh
    -- Note that this is destructive operation. If you want to alter those blendshapes later, it's recommended to keep an un-baked copy and bake for public use
    -- You can also chain this with the blendshape split optimization - if the baking bakes all the body blendshapes, leaving only face animation, the split will be much more efficient

  • Added +/- LogiX node (under operators) (requested by @Ukilop and @KierDran)
    -- This takes a value and offset as input and outputs the value with offset added and another with offset subtracted


  • Switching between different camera modes (first person, third person and UI currently) now has a brief transition

  • Fast CDN server for asset downloads is now enabled for everyone (it's not 100% final, we're testing the impact on the infrastructure cost for this change and might change back)

  • /listGroupVars <group> command now uses the same argument parsing as rest of commands (based on feedback by @AlienInArea51 (MR-Alex))
    -- This makes /listGroupVars "Group Name" work, rather than requiring /listGroupVars Group Name

  • Bone/blendshape chirality detection heuristics will now suppress isolated letters when they're part of a common known name
    -- This fixes cases where some bones/blendshapes are detected as left or right despite having no chirality (based on report by @3x1t_5tyl3)

  • Gizmo scale is now based on the distance to the actual viewpoint, rather than avatar head

  • Removed obsolete temporary code for the Metamovie event from a few months ago

  • Merged English locale addition by @Turk

  • Merged Korean locale update by @MirPASEC

  • Merged Russian locale addition by @Shadow Panther [RU/EN, UTC+3]

  • Merged Esperanto locale additions and fixes by @Yellow

  • Merged French locale additions (including new MTC strings) by @brodokk

  • Merged Polish locale additions (including new MTC strings) by @art0007i


  • Added path validation to all cloud variable commands, to report when the path contains invalid characters
  • Fixed floatQ and doubleQ cloud variables fetching the parser incorrectly, causing exceptions when trying to use these datatypes (reported by @jeana)
  • Fixed bone/blendshape name heuristics incorrectly determining chirality as right when it should be left in some cases
  • Fixed UI elements Z-fighting when viewed directly from the front
    -- Existing custom UI's will be attempted to be auto-upgraded as well (setting OffsetUnits to 5) to fix any custom UI's, but depending on your setup you might need to update them manually to fix this issue
    -- This should also fix the context menu options flikering in some cases when in desktop mode
  • Fixed variable_owner write permission being writable in a world due to new ActiveUser variants (reported by @Shadow Panther [RU/EN, UTC+3])
  • Fixed rigged mesh import breaking when there is a hand rig, but it's not weightpainted to any actual geometry (based on report and sample model by @GearBell)
  • Fixed Neos using the default string variable validator on read, rather than the actual type, resulting in strings over 256 characters being read as null (reported by @Epsilion)
  • Fixed not being able to join Contacts+ sessions when not friends with the host (re-reported by @Raith (CytraX), @Shifty | Quality Control Lead, @Shadow Panther [RU/EN, UTC+3] and others)
  • Fixed broken audio setting upgrade process due to the new async/await local database API (repoted and logs provided by @H3BO3 and @Flip)
    -- This fixes Neos not being able to start up for users who haven't played in a while
  • Fixed input gates not disabling after the last key is released
    -- This also fixes the Ctrl+Right Mouse Button touble tap not working to reset the camera in 3rd person mode
    Known Issues:
  • In UI Camera mode the near clipping doesn't adjust yet, resulting in the avatar and other items sometimes intersecting
  • Grabbing items further away in UI Camera mode will snap them to the plane, rather than preserving their current distance
  • Deleting LogiX wires in UI Camera Mode doesn't work well yet

Changed depots in headless-client branch

View more data in app history for build 6644189
Neos VR Windows Depot 740251
Neos VR Linux Depot 740252
SteamDB has been running ad-free since 2012.
Donate or contribute.
Open link