# Components # CVR Asset Info Required component that is automatically added alongside [CVR Avatar](https://chillout.wiki/books/content-creation-kit/page/cvr-avatar) / CVR World / CVR Spawnable.
"**Request failed. The provided content ID does not belong to your account."** You may run into this error if you've manually added the CVR Asset Info component to your asset! Remove both the CVR Asset Info script and your CVR Avatar / CVR World / CVR Spawnable component. Then readd only the CVR Avatar / CVR World / CVR Spawnable component and try again.
##### Unique Identifier This field is used to identify your content when uploading. You can attach an existing Guid belonging to your account for updating existing content, or leave it empty to automatically generate a new Guid on upload. # CVR Avatar The main component for a ChilloutVR avatar. **This is required for an avatar upload.** Some options listed below may be missing for generic (non-humanoid) avatars.This component will automatically add the required [CVR Asset Info](https://chillout.wiki/books/content-creation-kit/page/cvr-asset-info "CVR Asset Info") component for you. You may run into issues uploading if you've manually added the CVR Asset Info script before the CVR Avatar component!
#### **Generic Avatar Settings****Property** | **Description** |
View Position 🟢 | Controls your avatars viewpoint in-game. This should be between both eyes. |
Voice Position 🔴 | Controls your avatars voice position in-game. This should be on your avatars mouth. |
Voice Parent | The humanoid bone which your Voice Position is attached to. It will follow the bone's position while you move your avatar around in world space. Head, Left Hand, Right Hand, Hips. |
This requires eye bones to be mapped in your avatars Humanoid configuration!
This property is animatable during runtime.
##### Use Blink Blendshapes Enables automatic blinking using the specified blendshapes. You are able to specify up to four blendshapes to use at once. Any unneeded blendshapes can be left as `-none-`.This property is animatable during runtime.
##### Use Lip Sync Enables lip sync to be used on your avatar. You can choose between using Visemes, Single Blendshape, and Jaw Bone.This property is animatable during runtime. It must be enabled by default when using the Visemes Lip Sync Mode.
##### Lip Sync Mode - Visemes - Uses multiple blendshapes to map human speech to mouth movement. You can find examples and references from the [Oculus Developer Viseme Reference Documentation](https://developer.oculus.com/documentation/unity/audio-ovrlipsync-viseme-reference/). - Single Blendshape - Uses a single blendshape to drive mouth movement. - Jaw bone - Uses the mapped jaw bone in your avatars Humanoid configuration to drive mouth movement. ##### Viseme Smoothing A value between 1-100 to determine the smoothing of the Visemes Lip Sync Mode. Lower values will snap to the currently recognized Viseme, and higher values will slowly smooth to it. #### **Advanced Tagging** With the advanced tagging feature, you can set content filter tags for specific gameobjects on your avatar. Press the `+` button to add an entry to your **Tagged Gameobjects** list. ##### Tags List of content tags you want for this particular gameobject. You can tag Loud Audio, Long Range Audio, Screen Fx, Flashing Colors, Flashing Lights, Violence, Gore, and Horror. ##### GameObject The specific gameobject you would like to add the above tags to. ##### Fallback GO (GameObject) A fallback gameobject to use instead if the above gameobject is hidden by the content filter.If you are using the Advanced Tagging System, you still need to Tag your Avatar appropriately on the upload screen!
#### **Advanced Settings** # CVR World The main component for a ChilloutVR world. **This is required for a world upload.** # CVR Spawnable The main component for a ChilloutVR prop. **This is required for a prop upload.** # CVR Distance Constraint This component acts like a tether, keeping an object within a certain distance of a reference object. #### **Target** This is the transform of the reference object. It serves as an anchor point for the tether. #### **Min Distance** This is the minimum distance, in meters, to keep from the reference object. Defaults to zero (0). #### **Max Distance** This is the maximum distance, in meters, to keep from the reference object. Defaults to zero (0). #### **Current Distance** This is the current distance from the reference object. # CVR Pickup Object This script allows an object to be picked up by a user. #### Grip Type This controls how a user will hold the object ##### Free This mode specifies that the object can be grabbed anywhere, and will be held wherever the user grabs it. ##### Origin This mode specifies that the object should be held in a specific orientation relative to the user's hand. #### Grip Origin This is the transform that is used to indicate where the object should be held. A gizmo will show a left-handed grip, around the transform.The grip transform is arranged Z+ (blue arrow) forward and Y+ (green arrow) up.
If you require a separate origin for Desktop players, create a child GameObject on your Grip Origin, and name it `[Desktop]`. This transform uses Y+ (green arrow) forward, and Z+ (blue arrow) down.
#### Disallow Theft Checking this box disallows other users from taking this item while it is currently being held. #### Maximum Grab Distance This is the maximum distance the user can be from the object and still interact with it. The setting defaults to 0, but 2-3 is usually a good starting point. #### Snapping References *(This section requires more research.)* #### Auto Hold This allows the object to stay in the hand indefinitely without requiring the user to actively hold onto it.Desktop users can press G in order to release the held object.
VR users can hold Grip and down on the joystick to release the held object.
#### IK Reference *(This section requires more research.)* # CVR Pointer A component used to physically interact with the many different variations of triggers. As the name suggests, this component marks a **point** that will activate triggers once they've come into contact. ##### Type The string used to identify the pointer. Allows a trigger to specify what types of pointers should interact.CVR Pointer will check for any existing colliders before adding its own Sphere Collider during runtime. This allows you to change the pointer size or shape by adding your own Collider(s) with IsTrigger checked.
#### **Trigger Types**This component should be considered depricated. You can use [CVR Pointer](https://chillout.wiki/books/content-creation-kit/page/cvr-pointer "CVR Pointer") instead. CVR Advanced Avatar Settings Pointer inherits from CVR Pointer internally, and as such will act the same.
# CVR Toggle State PointerThis component should be considered depricated. You can use [CVR Pointer](https://chillout.wiki/books/content-creation-kit/page/cvr-pointer "CVR Pointer") instead. CVR Toggle State Pointer inherits from CVR Pointer internally, and as such will act the same.
# CVR Parameter Stream This component allows you to use a multitude of local variables as inputs for Animators, Variable Buffers, Avatar Parameters, and Spawnable parameters. As of writing, this component is only officially supported on Avatars to set Avatar Parameters, but does function as intended on Spawnables and in Worlds.This script is underdeveloped in its current state and likely will need a full rework in the future. It is incredibly powerful and functions, but note that some aspects of this script are easily abusable or not fully thought out.
##### Note on Update Rate The script will update entries every 0.05s for performance reasons, so depending on your usecase you may notice values are choppy and need smoothing via Animator shinanigans. ##### Parameter NameSome Type entries are not fully developed, non-functional, or poorly implemented.
Avatar Animator is currently the only supported & selectable TargetType as defined in CCK3.4, but internally CVRParameterStream supports these other TargetTypes and are currently functional in-game.
- Animator - Uses **Target** GameObject property to get Animator component. - Output will always be a Float. - Variable Buffer - Uses **Target** GameObject property to get Variable Buffer component. - Output will always be a Float. - Avatar Animator - Sets parameters onto the **Local Player Avatar**. - Output will be cast from Float to the correct Parameter Type. **Anything above 0.5f will return true if casting to Bool or Trigger.** - Custom Float - Sets parameters onto the found **Spawnable** component. - Output will always be a Float.CVRParameterStream runs locally for every player, so keep in mind Network Sync when utilizing on Spawnables via the Custom Float TargetType. It may be best to use the Animator TargetType instead to avoid the Spawnable's ownership constantly changing as every client attempts to sync parameters to the parent Spawnable.
Nothing prevents you from using Avatar Animator TargetType on Spawnables or Worlds, but the game will now refuse to set parameters if the target CVRAvatar is not your local CVRAvatar component. (this was abusable for a period of time)
##### Static Value