# Patch Notes - v1.7

{% hint style="success" %}
**June 2025 - v1.7.0 (CURRENT)**

* Added brand new persistence bool to all managers so you can specify if you want to keep managers / singletons between scenes
* Added null checks for Examine, Flashlight, Keypad, Phone, Fuse box, Safe System, Valve System
* Added isPlaying & FadeOut to audio manager for easier usage for system
* Added scriptableobject creation in Menu: APK > Create > ScriptableObject
* New folder structure for all systems assets in the Project tab
* Added new Door Objects to the demo scene

**\*NEW v1.7\* Keycard System**

* Added brand new system that allows players to pickup keycards to open specific door scanners&#x20;
* Two scanner examples: Generic and Sci-Fi
* Custom sound effects added to the system
* Custom events can be used to do interactions for each keycard instance
* Added UI elements to inventory system &#x20;

**\*NEW v1.7\* Code Driven & Animation Door System**&#x20;

* Added new door controller for code driven rotation logic whilst keeping animation options&#x20;
* Added a unified door controller
* Added new interactive door option for the object itself
* Added new red button model with PBR textures

**\*NEW v1.7\* Inventory Re-design and layout**

* Added new layout for the inventory system with new upper and lower boxes
* Added new spacing for collectables and multi use collectables

**\*NEW v1.7\* AKPromptManager**

* Added a way to pre-warm prompt pool by changing PrewarmPromptPool(); and initialPromptPoolSize
* Created a brand new prompt manager to control prompts that will appear during each system usage
* You can now set specific lower section prompts for each system

**\*NEW v1.7\* FPS Controller & New Functionality**

* Added new camera zoom script to aid looking at smaller objects called **AKCameraZoom**
  * Camera zoom is disabled in disable manager and within it's own script based on GameState script
* Added newer FPS Controller called AKFPSController
  * Added basic movement, camera rotation and old input system
  * Character controller now has normalized movement to stop a speed boost when pressing two buttons at once
  * Added canMove & canRotate as a way to disable camera and/or player movement
    * Added **SetPlayerDisableMode** method so this could be used in other scripts for better understanding
  * Added jumping functionality for more realism
    * Added jumping sound logic and only jumps when in the air
  * Added sprinting functionality
  * Added **SetMovementSpeed** method so we can change movement speeds more easily and disable crouching if movement speed is too slow
  * Added footstep functionality when both sprinting and walking
    * Fixed an issue where footsteps were still playing when walking and then entering inventory
  * Added crouching functionality
    * Limited player movement speed when crouching
    * Added Ctrl key to make crouch happen

**Main System Re-write:**

* Basic item collectable interactions use an Interface so an event driven approach for all inputs, making systems work more fluidly, when not looking
* AKInteractor now handles all basic input logic for looking, button pressing, holding and item name highlighting
* AKItem is now re-written to use an Interface so it can all be event driven
* Added brand new GameState global script to manage when you're inside invenntory, examining or otherwise. So you can easily negate certain systems and stop unwanted interactions
* Created new AKMasterTrigger to be used across all systems rather than seperate scripts which share similar logic

**AudioManager**

* Created brand new custom inspector so all sound Scriptables can be categorised
* Added a refresh button for the new layout to make sure tracks will always show if added recently and needs a manual refresh
* Created brand new category in Sound ScriptableObject so all systems could be organised
* Added new options in the inspector for adding a sound to the array or creating some with a button press for easier creation
* Added a button to the top of the inspector to show default inspector incase the user needs to access the original array fields

**Disable Manager**

* Removed all references to third person controller
* Added functionality for disabling mouse cursor
* Added new tips with custom inspector, added nullref checks to help with setup issues on start and optimised the main script with less redundancy

**AKUIManager**

* Changed AKUIManagerEditor to have dropdowns rather than tickboxes
* Created custom editing variables for examine and pickup prompt buttons
* Added customisation for button prompts on highlighting
  * Made sure name highlight scales with text for proper background resizing
* Renamed Adventure Kit Canvas to InventoryContainer to match with new inventory container naming

**AKItem:**&#x20;

* Added Interact Prompt to system so the user can choose that instead of pickup or use a combination, this allows for customisation in the UI manager
* Added warning message in custom editor for telling the user when ticking "Show Examine Prompt" that an ExaminableItem script should be on the object
* You can now choose whether to have prompts for examining, picking up or just showing the object name
* Added emission highlight to this script from the examine system
* Emission highlighting now automatically works for child gameobjects with mesh renderers
* Added custom editor note for empty parent and child types

**Padlock System**

* Removed and deleted PadlockTrigger scripts and can now use generic AKMasterTrigger scripts
* PadlockController now references the AKMasterTrigger rather than PadlockTrigger script
* Renamed all elements in the demo scene are consistent conventions and added new text to doorways
* Removed Interactable and AKItem script from interactle padlock when using trigger

**Note System**

* Added TMP integration to note controllers
* Updated custom editors for text settings to HeaderFoldoutGroups
* Converted all UI elements to TMP and updated all UI managers
* Removed NoteTrigger scripts and replaced with AKMasterTrigger

**Chess System**

* Updated all scripts from CP to Chess - So all scripts having better naming conventions

**Lever System**

* Created a custom editor for LeverItem to remove the sound option for fuse box item

**Generator System**&#x20;

* Adjusted all popup UI's to use TMP rather than the legacy UI system
* Added new audio effects to the system
  * Added brand new looped generator filling audio
  * Added brand new jerrycan pickup audio
* Changed UI design for generator inventory to be more professional and en keeping with other assets
* GeneratorItem script Improvements:
  * Fuel barrel can now be set to unlimited usage
  * Made sure collected Jerrycan updates inventory fuel as it didn't work as intended
  * Added brand new functionality for being able to turn the generator on and off on the keypress
  * Added a new audio for looping and sound pouring
  * Added functionality to fill the generator over-time using a long keypress
    * Added new fillrate field for customisation

**Gas Mask System:**&#x20;

* Updated GMHealthManager to match v1.4 of the single asset which includes new optimisations, new ways to control health and split into helpeful methods for more consistency
* Added checks for when the inventory is open to stop filter from falling and health from fading
* Renamed Visor UI to "UI - Gas Mask Visor Overlay" for more consistency
* Added null checks for all Gas Mask UI and other UI manager related elements
* Added functionality to reference new FPSController rather than old one
* Renamed all Gas Mask related inventory elements
* Convert all text UI elements to TMP
  * Edited the AKUIManager to reference this change for TMP

**Themed Key System:**&#x20;

* Added null checks for all UI elements

**Valve / Pipe System:**

* Added null checks for all UI elements, including arrays
* Renaming ValveSliderContainerUI to best match other elements of the system
* Removed the CanvasGroup from the progress container and optimised the code to disable the object rather than using the group

**Safe System**

* Removed SafeTrigger script and the system now uses AKMasterTrigger
* Fixed an issue where safe UI numbers didn't update on the next tumbler press (Visual bug rather than anything that stopped the system working effectively)
* Created brand new single colliders around the skeleton of the safe, so interactions for items can be used within the safe (When opened) - Large colliders won't get in the way
* Created new input name to **SafeCloseKey** and added to input manager script
* Rename **Safe Model** reference in Safe Controller / Trigger to Safe Interaction
* Remove collider from **Safe - Model** and added to **Safe - Door**
* Renamed all UI elements to be consistent with other systems
  * Updated all UI elements  to TMP
* Created a new parent for Safe UI for easier disabling

**Fuse Box System**

* Created a custom editor for fuseItem to remove the sound option for fuse box item
* Added null checks to UIManager script to avoid missing reference issues
* Converted UI elements to TMP

**Keypad System**&#x20;

* Updated Keyboard Sci-Fi UI elements to TMP
* Updated Keypad Sci-Fi elements to TMP
* Updated Keypad modern UI elements to TMP
  * Renamed all UI elements and organised for better debugging
* Updated UI manager to reflect TMP additions
  * Added null checks for all fields related to keypad system
* Removed KeypadTrigger script to be replaced with AKMasterTrigger

**Phone System**

* Updated Mobile phone UI elements to TMP
* Updated Payphone UI elements to TMP
* Updated Office phone UI elements to TMP&#x20;
  * Renamed all UI elements and organised those for better usage
* Updated UI manager to reflect TMP additions&#x20;
  * Added null checks for all fields related to phone system for easier debugging

**Flashlight System**

* Removed the **FlashlightBaseClass** script as it wasn't relevant&#x20;
  * Refined all logic into the **FlashlightItem** script
* Removed the custom editor and now allows a certain amount of batteries to be collected on flashlight pickup
* Added a new check within the update method to check the GameState to see if the player would be busy, interacting, examining or in the inventory and stop the flashlight battery from decreasing
* Added "Should persist" option to the flashlight controller, so user can choose whether this should be destroyed between scenes
* Converted Flashlight battery parent UI text to TMP
* Removed some raycast targets on the UI to avoid interaction issues
* You may pick up multiple batteries initially if the **flashlight controller** has more than 0 **Battery Count** at the start. Fix this by adding 0 to this field
* Fixed an issue where the flashlight wouldn't appear in the inventory even if the HasFlashlight bool was checked
* Added null checks for UI manager

**Examine System**&#x20;

* Added global static for isExamining so we can turn off raycast and stop unwanted interactions
* Added new HasChildObjects boolean to specify if the parent object has children that need to be rendered when examining. As empty parents don't need layers changing.
* Removed all highlighting logic and emission logic from this script and moved to the AKItem & AKUIManager
* Added E to collect to AKPromptManager based on examinableItem script
* Fixed an issue where inspect points could be interacted with from behind the object
* Edited Basic & Right Sided Examine UI&#x20;
  * Expanded parent UI element for better usage
  * Recreated all text elements to TMP&#x20;
  * Renamed all elements
  * Added TMP to Empty Close Button UI elements
  * Renamed and TMP added to Examine Help Panel UI elements
* Changed the UI Manager now references the TMP type text
  * Fixed all font style issues when converting to TMP
  * Changed Interaction naming to Highlight name for name highlight system
  * Added UI debugs to UI manager for examine system

**APK Support Hub Fixes**

* Rewritten APK hub description
* Added Write Review button and re-arranged button layout
* Updated header image for V1.7
* Added a new **Dont Open Automatically** check box so user can choose to stop this opening automatically but still open via **Window > Adventure Kit Support Hub**
{% endhint %}

{% hint style="info" %}
**May 2023 - V1.6.1 - (CURRENT)**

* Added new Arial font to package to fix missing font error
* Added separate consumables for:
  * Batteries
  * Gas mask filter
* Moved UI Help for examine system to the left side and decreased size
* Removed AKToolTips from UI parents
  * Can be re-added if wanted, check online doc for more information
* Changed Raycast Distance on Main Camera to 2.5
  * Check "Item Pickup Range" for details
* Made the background image of the inventory canvas much darker
* Moved updating of fuel amounts to Start() from Awake() to fix initilsation issues
{% endhint %}

{% hint style="info" %}
**May 2023 - V1.6**

* Renamed all UI Icons for easy searching capabilities&#x20;
* Updated Raycast script to V2022
  * Renamed "AdventureKitRaycast" to "AKInteractor"&#x20;
* Edited "Sound" script to convert this to a ScriptableObject class
* Created new SO's for all sound effects
* Edited the AudioManager to take into account new SO's
* Refactored **Disable Manager**
  * Removed crosshair UI reference from **Disable Manager** to **UI Manager**
  * Removed **Show Cursor** method from here to the **UI Manager**
* Re-organised demo scene hierarchy for more focused usability
  * Renamed gameobjects for easier navigation
* Renamed "AKItemController" to "AKItem"
* Refactored "AKUIManager" for easier use&#x20;
* Created a generic "**DoorController**" script for all puzzle assets
* Interact Prompt design is inverted for higher contrast
* Right click now closes inventory&#x20;
* FPS Controller - footsteps and jumped volume increased
* All Triggers now use "Show Interact Prompt" inside AKUIManager&#x20;
* Renamed all UI elements to "UI\_Name"&#x20;
* AKItem:&#x20;
  * Created custom inspector for "AKItem" script
  * Added "SingleHighlight" to this script for ease of use
  * You can disable Examine Text Prompt with a checkbox
  * Disable the text prompt in disable manager?
  * Remove commented lines?
* Updated default material on any door frame units
* Clean up door animations and controllers:
  * "Apply Root Motion" on animators for all doors to keep animations in different positions.&#x20;
* AKStartupWindow
  * Mentioned about what layers are needed to add
  * Added all links to: Support, YouTube, Discord, Contacts, Asset Store
  * Added a new Note about post processing
{% endhint %}

{% hint style="success" %}
**AK UI System Updated to V1.0.2 (APK V1.6.0)**

* Roadmap images for WIP previews
* Created new Inventory layout for improved coherence
* Added new backing images for each button
* Each button - On Click - AKUIManager - Method to open UI
* Create new main container holder for UI
* Added the flashlight system UI to the new invenotry&#x20;
* Added fuse system UI to the new inventory
* Added the Gas Mask System UI to the new inventory
* Merged seperate UI managers into this script
{% endhint %}

{% hint style="success" %}
**Chess Puzzle System to V1.2.0 (APK 1.6.0)**

* Created brand new ScriptableObjects for all fuses
  * Create prefabs for all chess fuses
* Renamed all chess piece icon sprites
* Reimport the fuse boxes and reset everything up
* Change "Chess puzzle system" so you can right click to exit inventory
* Rotation of fuses based on Fabios email suggestion hint
* Renamed "ChessPowerManager" to "CPPowerManager"
  * Refactored this script to remove hard coded sections
* Created a new "CPUIManager"&#x20;
* Add Chess Puzzle to new Inventory Canvas
  * Make sure chess puzzle left icon is linked and opens multiple
  * Created new remove button and linked to UI manager
  * When enabling inventory without opening fuse box, make sure can't interact with fuse icon
  * Highlight on UI icons buttons?
  * Remove fuse error when using it without placing first
* Added new namespace: AdventurePuzzleKit.ChessSystem
* Only be able to close UI with right click if it's already open
{% endhint %}

{% hint style="success" %}
**Valve System to V1.1 (APK 1.6.0)**

* Added new ScriptableObjects for each Valve&#x20;
* Added UI icons for Valves
* Added Valves, textures and models
  * Created a new wheel and slot with collectables
* Remove Sprite circle & Rectangle?
* Created a "Valve Collectable" script
* Created "Valve Inventory" script
  * Removed opening inventory
* Created "Valve UI Manager"&#x20;
* Created "Valve Slot" script
  * Check input for checking the slot?
* Created "Valve Wheel Interactable"
  * Check inputs for turning the wheel
* Edited "AKItem" script to incorporate the new valve system
  * Added this script to each interactable item
* Created a new set of Valve pickups for: Red, Green, Black & Blue
* Edited the AKUIManager for taking the valve into account
* Added new namespace AdventurePuzzleKit.ValveSystem
{% endhint %}

{% hint style="success" %}
**Themed Key System to V1.3.0 (APK 1.6.0)**

* Created Scriptable Objects for Keys
* Renamed Sprite Key Icons
* Renamed "ThemedKeyController" to "TKKeyCollectable"
  * Refactored this script, added a script to KeyPickup
* Renamed "ThemedKeyItemController" to "TKItem"
  * Refactored this script and refined the item
* Renamed "ThemedKeyDoorController" to "TKDoorInteractable"
  * Refactored this script
* Renamed "ThemedKeyInventoryManager" to "TKInventory"
  * Refactored this script
* Check all the scripts and remove commented lines
* Created key silhouette white icon
* Added new container and button command for the inventory to show the container
* Added generic door controller for this ssytem instead of it's own
* Changed namespace to: AdventurePuzzleKit.ThemedKey
* Merged TKUIManager into AKUIManager for ease of use
{% endhint %}

{% hint style="success" %}
**Examine System to V1.5.0 (APK 1.6.0)**

* Renamed "ExamineItemController" to "ExaminableItem"
  * Added new rotation speed & invert rotation selections
  * Refactored the script and added new tooltips
  * Added a drop sound option to the sound
  * Changed disabled for inspect points in the "DropObject" method
  * Removed line: "raycasterManager.doOnce = false"
  * Decoupled UI elements from this script
* Renamed the "ExamineUIController" to "ExamineUIManager"
  * Merged all UI functionality to this script
  * Added new methods for setting and replacing UI names
* Created new custom editor script for "ExaminableItem"
  * Added new header foldout groups for Text settings to make customisation easier
  * Added a text box for item descriptions for easier usage
* Generator Item: Make sure floating UI disappear when examining
* Finalise Examine System Demo Objects
  * Added brand new animated box example
* Rename examine UI Manager and all the elements?
* Changed inputs:
  * Left Click: Interact
  * Right Click: Rotate
  * Middle Mouse: Drop the item
* Added new namespace to all scripts: AdventurePuzzleKit.ExamineSystem
* Added cooldown for next enabled inspect point
* Add a smooth lerp to picking up and dropping objects
  * Reset current zoom levels when dropping objects
* Namespace changed to: AdventurePuzzleKit.ExamineSystem
{% endhint %}

{% hint style="success" %}
**Note System to V1.6.0 (APK 1.6.0)**

* Renamed "**NoteController**" to "**NoteTypeSelector**"
* Basic Note Updates:
  * Refactored "BasicNoteUIManager" script to keep all UI calls together
  * Refactored entire "BasicNoteController"&#x20;
  * Refactored entire "BasicReverseNoteController"
  * Refactored entire "CustomNoteController"
  * Refactored and renamed "CustomReverseNoteController"
    * Decoupled all UI calls into the UI Manager script
  * Created a custom editor script for BasicNote
  * Created a custom editor for the BasicReverseNote
  * Created a custom editor for the CustomNote
  * Created a custom editor for the CustomReverseNote
  * ExamineUIController.InteractionNameMainUI.SetActive(false); - All Scripts
  * Make sure trigger note scripts have everything connected
  * Put methods onto new lines of UI Managers
{% endhint %}

{% hint style="success" %}
**Generator System to V1.3.0 (APK 1.6.0)**

* Added the audio to the audio manager
* Changed "ActivateGeneratorScript" to "ActivateGenerator"
  * Added new custom light, emission and activations
* Created a new GeneratorUIManager
* Renamed "GeneratorItemController" to "GeneratorItem"
* Edited AKItem to add "ShowObjectStats with true / false"
* Creating a custom editor script for the "GeneratorItem"&#x20;
  * Created custom editor titles and sorted the script
* Edited the world space popout UI's for easier viewing
* Updated AKInventory for collecting Jerrycan
* Removed public variables from Generator Inventory / Item / UI Manager
* Add script line to top of custom editor script
* Edited AKUIManager script to throw up error if UI canvas isn't added
* Updated collecting jerry can functionality to increase inventory fuel
* New namespace to all generator scripts: AdventurePuzzleKit.GeneratorSystem
* Refactored Generator Inventory script for easier usage
{% endhint %}

{% hint style="success" %}
**Gas Mask System to V1.3.0 (APK 1.6.0)**

* Added a brand new high quality PBR Gas mask to the system - Scaled and ready
* Renamed "GasMaskItemController" to "GasMaskItem"
* Renamed "GasMaskHealthController" to "GasMaskHealthManager"
  * Refactored health manager for ease of use
* Created a brand new "GasMaskUIManager" to separate logic from other controllers
* Moved generic Gas Mask UI to the new Inventory Canvas for V1.6
* Fixerd an issue where breathing after a one breath when equipped
* Picking up second gas mask resets health?
* Refactored GasDamage script to remove references to the controller without any need for it
* Refactored the GasMaskController script and split into seperate methods for easier usage
* Add UI Manager for GasMask to AKUIManager
{% endhint %}

{% hint style="success" %}
**Flashlight System to V1.6.0**&#x20;

* Refactored entire **Flashlight Controller** script
  * Added new reference to having the option to have a flashlight on start
  * Added an option to show and hide the flashlight inventory if you wish
  * Decoupled references to UI when "Show Flashlight" disabled
  * Refined controller into methods to simplify "PlayerInput" section
* Created a brand new **FlashlightUIManager** to keep all UI section separate&#x20;
  * Updated UI naming and optimisations
* Renamed **FlashlightItemController** to **FlashlightItem**
* AK Radial UI - Remove public reference
* Check Public fields inside UI Manager for disabling inventory view
* Check entire system, see if it's working?
* Better placement of flashlight UI? Where should this go?
* Stop flashlight ticking down during inventory viewing?
* Moved all flashlight objects and components to a central location
* Change name of flashlight UI manager, canvas variable
* Added new namespace to system: AdventurePuzzleKit.FlashlightSystem
* Created base class for FlashlightItem and FlashlightTrigger so fields can be shared
  * Also created custom editor for ease of use for disabling battery field when selecting a flashlight item
* FlashlightMovement: Now reduces .transform calls
* Removed the need for the FlashlightUIManager and merged into AKUIManager for ease of use
* Flashlight radial UI now has a duplicate circular background for the UI
{% endhint %}

{% hint style="success" %}
**Safe System to V1.2.0 (APK 1.6.0)**

* Added all SO sound effects to the Audio Manager
* Removed additional handle spin ScriptableObject
* Updated Trigger Script
* Renamed "SafeItemController" to "SafeItem" for consistency&#x20;
* Created brand new "SafeUIManager" script to control UI's in one place rather than on each object
* Refactored the "SafeController" script for ease of use and split audio effects into seperate class
* Removed redundant reuse of 3 UI variables that shared logic
* Added new customisation and layout for demo scene objects
* Added an "isInteracting" boolean to make sure right click interaction didn't happen outside of the system usage
* Added new namespace: AdventurePuzzleKit.SafeSystem
* Made big improvements to performance of SafeUIManager and SafeController. Simplfying both scripts, removing redundant code and making it cleaner to read.
{% endhint %}

{% hint style="success" %}
**Fuse Box System to V1.2.0 (APK 1.6.0)**

* Renamed "FuseItemController" script to "FuseItem"
  * Refactored this script
  * Added introduction of ScriptableObjects to the "FuseItem" script
* Renamed "FuseboxInventoryManager" to "FuseInventory"
  * Added public property for optimisation of public fields&#x20;
* Create new Fuse Icon / Sprite
* Add sound effect SO for door
* Migrated fuse UI to the AKInventory
  * Restructed the UI elements and removed redundant parts
* Refactored "FuseboxController" script
* Make fuse icon slightly smaller?
* Make fuse icon highlight on UI when collected?
* Make sure Door Controller is added to this
* Added new namespace: AdventurePuzzleKit.FuseSystem
* Added Fuse UI elements to AKUIManager isntead of FuseInventory
{% endhint %}

{% hint style="success" %}
**Padlock System to V1.4.0 (APK V1.6.0)**

* Added sound effect SO to the AKAudioManager
* Refactored "**PadlockDoorAnimation**" example script with new comments
* Refactored "**PadlockController**" to add new refinements and easier viewing
* Renamed "**PadlockItemController**" to "**PadlockItem**"
* Renamed "**SpinnerScript**" to "**PadlockNumberSelector**"
  * Refactored this script to remove redundant lines of code
* Highlighted numbers on the brass padlock, as it's easily identified in all lighting conditions
* Added the Door Controller to this system
* Added new namespace: AdventurePuzzleKit.PadlockSystem
* Final Optimisations: PadlockTrigger, PadlockItem, PadlockController, PadlockNumberSelector
* Created brand new functionality to instantiate padlocks when needed, removing the need to have physical models parented to the camera. Making management much easier.
* Added brand new method to detect combination spinners, instead of using "OnMouseDown", it uses IPointerClickEnter and requires an eventsystem, physics raycaster on the main camera and a layer on the spinners called "PadlockSpinner"
{% endhint %}

{% hint style="success" %}
**Lever System to V1.1.0 (APK V1.6.0)**

* Removed the "**LeverController**" script and merged with "**LeverItem**" script
* Renamed "**LeverItemController**" to "**LeverItem**"
* Refactored "**LeverSystemController**"&#x20;
* Renamed all models, textures and materials
* Added a new "**ActivateLights**" script and PBR standing lamps as an example&#x20;
* Added new namespace: AdventurePuzzleKit.LeverSystem
* Final Optimisations: LeverItem, LeverSystemController
{% endhint %}

{% hint style="success" %}
**Keypad System to V1.3.0 (APK V1.6.0)**

* Renamed "**KeypadItemController**" to "**KeypadItem**"
* Refactored and combined "**KeypadController**" and "**KeypadKeyController**"
* Created a new "**KeypadUIManager**" to unify all three keypad canvases
* Change public variables inside "KeypadController"
* Added events to each valid code that can be used
* Changed all layout and designs for demo scene
* Final Optimisations: KeypadTrigger, KeypadItem, KeypadController
* Added new namespace: AdventurePuzzleKit.KeypadSystem
* Add new keypad dropkey to inputs
{% endhint %}

{% hint style="success" %}
**Phone System to V1.2.0 (APK V1.6.0)**

* Renamed "PhoneItemController" to "PhoneItem"
* Refactored and combined "PhoneController" and "PhoneKeyController"
* Created a new "PhoneUIManager" to unify all these phone keypads
* Created brand new demo scene interactions&#x20;
* Change public variables inside "PhoneController"
* Fully Optimised & Refactored: Phone Trigger, PhoneItem, PhoneController, PhoneUIManager, PhoneController
* Added new namespace: AdventurePuzzleKit.PhoneSystem
* Created new drop keycode for phone system
{% endhint %}
