# Existent v0.1.0 Release Notes

### Change Log: <a href="#change-log" id="change-log"></a>

### New Features

* **New Wizard for Setup**
  * Introduced a setup wizard that can help users to set up a new project by going through a number of  steps to define Tracking system, Game Mode & Map, player skeletal mesh, Body Mappings, Animation Blueprint,etc.
* **License Validation &  Management**
  * Users will now need to enter a valid Existent license key & validate it before being able to use Existent Plugin. Features are restricted based on license type (Starter or Indie). See <https://existent.com/signup/> for more information and to get a license key.
    * *Starter*: Allows you to use Existent features to develop applications, with the following limitations:
      * You may only create levels with a maximum of 2 Existent Players, 2 Spaces, 1 Vehicle, and 1 tracked object.
      * Experiences you build can only be played through the Unreal editor (packaging executable files is not allowed).
    * *Indie*: Allows unrestricted use of all Existent features, as well as the ability to package builds.
    * *No License*: You won't be able to Play in Editor or Package builds.
* **Mixamo Skeleton Support**
  * Full body Mixamo skeleton support.
  * Added 3-point and 5-point animation blueprints for Mixamo skeleton.
  * Default animation poses for Mixamo skeleton.
* **New UI and User Experience Enhancements**
  * New UI style for Existent Control Panel for a more intuitive and visually appealing interface.
* **Session Recorder Tool Improvements**
  * Display number of seconds passed in currently playing recording (in inspection panel).
* **Tracking System Improvements**
  * Added new Manual Drift Compensation tool through Existent Control Panel.
  * A Vive tracker can now be used to set custom origin.
* **Vehicle and Debugging Enhancements**
  * Pausing Vehicles mid-drive is now possible.
* `ExistentTrackedObject`
  * A new base convenience class for setting up tracked objects that automatically includes a static mesh and tracker component.

### Bug fixes & Improvements

* **Tracking System Enhancements**
  * Fixed grips breaking after switching body tracking mode.
  * Moved vehicle state update code to UpdateVehicleState() function to decrease the size of the Vehicle's Tick function.
  * Updated tracking system properties editing before asset creation.
* **Documentation and Developer Tools**
  * Added comments for better BP Nodes documentation.
  * Added several delegates for better control to third-party developers:
    * `ExistentVehicle::OnReverseDirection`
    * `ExistentTrackerComponent::OnCurrentSpaceChanged`
    * `ExistentGripComponent::OnPlayerObjectPickup`
    * `ExistentGripComponent::OnPlayerObjectDrop`
    * Added events for tracking lost/resumed in ExistentTrackerComponent.
* **Skeletal Mesh and Solver Improvements**
  * Fixed skeletal mesh orientation issues, improved visual representation, and corrected bone mappings.
  * Fixed crouching and tilting pelvis issues.
  * Removed auto-fill body bone mappings log.
  * Fixed various solver issues (leg, arm, hand) including automatic bone mapping assignments and exposure to blueprints.
  * Fixed crash issues related to incompatible skeleton mappings and improved error message readability.
  * Fixed some issues with arms appearing stretched when space is scaled down and potential issues with leg scaling.
* **Error Handling and Validation**
  * Added error handling for pose generation issues, notifying users when wrist bones cannot be found due to incorrect hand bone mappings.
  * Enhanced error messages in the tracking step to notify users when no tracking class is selected.
  * Improved license validation error messages and deactivation options for maxed-out machines.

### Known Issues

* **Crouching and Tilting Pelvis**: Crouching and tilting the pelvis may not work properly unless the pelvis bone's forward axis points in the direction of the spine.
* **Hand Solver Poses and Debug Categories**: Hand solver poses and debug categories might not be ordered correctly.
* **Hand Solver Reference Poses**: The hand solver may not throw errors when reference poses are missing, potentially causing runtime crashes.
* **Tracker Mappings Error Messages**: Tracker mappings can stack error messages in the viewport, making them unreadable.
* **Typos and Error Messages**: Some typos and error messages when pose generation cannot find wrist bones due to wrongly set up hand bone mappings.
