> you normally do not need to do anything, as the defaults are already pre-set to match those on the Bevy side for the location of the ```registry.json``` file, unless you want to store it somewhere other than ```assets/registry.json```
> if the instance and blueprint have the same component, the component value of the **instance** takes precedence & overwrites that of the blueprint ! In the case above, the component will have the value ```Metal``` for that instance.
## adding components
- to add a component, select any object, collection, mesh or material and then select the component from the components list: (the full type information will be displayed as tooltip)
- click on the dropdown to get the full list of available components
> see [here](#renamingupgradingfixing-components) for ways to convert invalid / unregistered components to other types.
- if you are encountering this type of view: don't panic your component data is not gone ! It just means you need to reload the registry data by clicking on the relevant button
![rename and fix](./docs/components_rename_fix.png)
### Single item actions
this panel shows you the list of components that either
* are not in the registry anymore
* are invalid (there is some error in the component that makes it unavailable in Blenvy)
* need upgrading (ie they where stored as a custom property instead of Blenvy metadata for example)
> The last case is also for components that where created before Blenvy , using the legacy **bevy_components** Blender add-on
> The objects & components in this panel are not related to your current selection
- select the target component for a given source item/component:
![rename and fix](./docs/components_rename_fix2.png)
- click on the apply button
![rename and fix](./docs/components_rename_fix3.png)
- you will get a notification depending on how the process went, and if all went well, the entry will be deleted from the list of items that need fixing/upgrades
![rename and fix](./docs/components_rename_fix4.png)
### Bulk actions:
- you can rename/convert/upgrade or delete a given type of component to another for ALL of your objects, collections, meshes and materials in one go
by choosing an original and a target component & clicking on apply or delete
## Known issues & limitations:
* **Range** data (ie ```Range<f32>``` etc) are not handled at this time
* **Entity** structs are always set to 0 (setting entity values on the Blender side at this time does not make much sense anyway)
## Technical details
- Blenvy's component system uses the data from the exported **type registry** in the registry.json file to add **metadata** to objects/collection/meshes/etc containing information about what components it uses + some extra information
- uses Blender's **PropertyGroups** to generate custom UIs & connects those groups with the custom properties so that no matter the complexity
of your Bevy components you get a nicely packed custom_property
- in order to avoid name clashes, it uses the full paths of components & stores the data in the ```bevy_components``` custom property
- changing the values of a component in the UI will automatically update the value of the underlying entry in the ```bevy_components``` custom property
- different item types in Blender result in different types of GltfExtra components in Bevy (this all happens under the hood):
- objects : GltfExtras
- collections/ blueprints: SceneGltfExtras (as the Blueprints get exported as seperate scenes)