From b519caa2fae71ff899e1bcca80043940d412333d Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sat, 22 Jun 2024 20:21:26 +1000
Subject: [PATCH 01/35] Render console above loading screen

---
 Assets/_Prefabs/Global/PersistentCanvas.prefab | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Assets/_Prefabs/Global/PersistentCanvas.prefab b/Assets/_Prefabs/Global/PersistentCanvas.prefab
index cd5a466ac..15a57ed46 100644
--- a/Assets/_Prefabs/Global/PersistentCanvas.prefab
+++ b/Assets/_Prefabs/Global/PersistentCanvas.prefab
@@ -1986,7 +1986,7 @@ Canvas:
   m_SortingBucketNormalizedSize: 0
   m_AdditionalShaderChannelsFlag: 25
   m_SortingLayerID: 0
-  m_SortingOrder: 19
+  m_SortingOrder: 101
   m_TargetDisplay: 0
 --- !u!114 &3197744001672327505
 MonoBehaviour:

From 81e083df7d7cdf14f80f2185b9e36c6cbe574620 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sat, 22 Jun 2024 20:21:54 +1000
Subject: [PATCH 02/35] Fix incorrect setting bind for ShowNonImportantErrors

---
 Assets/__Scenes/04_Options.unity | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/Assets/__Scenes/04_Options.unity b/Assets/__Scenes/04_Options.unity
index 8e3d9f81a..dc0fec335 100644
--- a/Assets/__Scenes/04_Options.unity
+++ b/Assets/__Scenes/04_Options.unity
@@ -11864,7 +11864,12 @@ PrefabInstance:
     - target: {fileID: 1718806963576593950, guid: b9c90f90d2774a745b8640678e8f78df,
         type: 3}
       propertyPath: BindedSetting
-      value: Waifu
+      value: ShowNonImportantErrors
+      objectReference: {fileID: 0}
+    - target: {fileID: 1718806963576593950, guid: b9c90f90d2774a745b8640678e8f78df,
+        type: 3}
+      propertyPath: BindedSettingSearchType
+      value: 4
       objectReference: {fileID: 0}
     - target: {fileID: 2031430479489877711, guid: b9c90f90d2774a745b8640678e8f78df,
         type: 3}

From d9dbcfb4196903d9cb5e0a991bab5a488a84ec49 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sun, 23 Jun 2024 15:12:04 +1000
Subject: [PATCH 03/35] Actually reduce spectrogram quality if > half VRAM

---
 Assets/__Scripts/MapEditor/Audio/AudioManager.cs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Assets/__Scripts/MapEditor/Audio/AudioManager.cs b/Assets/__Scripts/MapEditor/Audio/AudioManager.cs
index b00c0fda3..21b0dccd5 100644
--- a/Assets/__Scripts/MapEditor/Audio/AudioManager.cs
+++ b/Assets/__Scripts/MapEditor/Audio/AudioManager.cs
@@ -1,4 +1,4 @@
-using System;
+using System;
 using Unity.Collections;
 using UnityEngine;
 
@@ -61,7 +61,7 @@ public void GenerateFFT(AudioClip clip, int sampleSize, int quality)
         // Reduce spectrogram quality if it would exceed half of total VRAM capacity
         //   (Video memory should still be available for ChroMapper and other programs)
         var videoMemoryBytes = SystemInfo.graphicsMemorySize * 1024L * 1024L;
-        while ((long)sampleCount * quality * sizeof(float) > videoMemoryBytes)
+        while ((long)sampleCount * quality * sizeof(float) > videoMemoryBytes / 2L)
         {
             quality /= 2;
             Debug.Log($"Video Memory exceeded. Reduced spectrogram quality to: {quality}");

From aa9b0968de6567d01825cbef4b00e5023d5cfa4d Mon Sep 17 00:00:00 2001
From: kobting <kobting0@gmail.com>
Date: Mon, 24 Jun 2024 20:27:18 -0400
Subject: [PATCH 04/35] Add more keybinds for changing UIMode

---
 Assets/Input/Master.cs                        | 314 +++++++++++++++++-
 Assets/Input/Master.inputactions              | 254 +++++++++++++-
 .../Grid/Collections/ChainGridContainer.cs    |  18 +-
 .../Collections/CustomEventGridContainer.cs   |  74 ++---
 .../Grid/Collections/NoteGridContainer.cs     |  21 +-
 .../Grid/Collections/ObstacleGridContainer.cs |  10 +-
 Assets/__Scripts/MapEditor/UI/UIMode.cs       | 112 +++++--
 7 files changed, 706 insertions(+), 97 deletions(-)

diff --git a/Assets/Input/Master.cs b/Assets/Input/Master.cs
index c72e45830..29a93c020 100644
--- a/Assets/Input/Master.cs
+++ b/Assets/Input/Master.cs
@@ -3599,6 +3599,60 @@ public @CMInput()
                     ""processors"": """",
                     ""interactions"": ""Press"",
                     ""initialStateCheck"": false
+                },
+                {
+                    ""name"": ""Toggle UI Mode (Reverse)"",
+                    ""type"": ""Button"",
+                    ""id"": ""20bb8021-4bb8-4be2-94c1-9600fd1a8208"",
+                    ""expectedControlType"": ""Button"",
+                    ""processors"": """",
+                    ""interactions"": ""Press"",
+                    ""initialStateCheck"": false
+                },
+                {
+                    ""name"": ""Toggle UI Mode (Normal)"",
+                    ""type"": ""Button"",
+                    ""id"": ""841b053b-6c5e-43d5-8fbd-844a62f7efa5"",
+                    ""expectedControlType"": ""Button"",
+                    ""processors"": """",
+                    ""interactions"": ""Press"",
+                    ""initialStateCheck"": false
+                },
+                {
+                    ""name"": ""Toggle UI Mode (Hide UI)"",
+                    ""type"": ""Button"",
+                    ""id"": ""e528aa35-53e4-40b4-b036-215fe4563f87"",
+                    ""expectedControlType"": ""Button"",
+                    ""processors"": """",
+                    ""interactions"": ""Press"",
+                    ""initialStateCheck"": false
+                },
+                {
+                    ""name"": ""Toggle UI Mode (Hide Grids)"",
+                    ""type"": ""Button"",
+                    ""id"": ""215e2238-53f3-47d8-8e76-41526ab518cd"",
+                    ""expectedControlType"": ""Button"",
+                    ""processors"": """",
+                    ""interactions"": ""Press"",
+                    ""initialStateCheck"": false
+                },
+                {
+                    ""name"": ""Toggle UI Mode (Preview)"",
+                    ""type"": ""Button"",
+                    ""id"": ""26ce21ba-1236-4447-ac87-1c720bb83468"",
+                    ""expectedControlType"": ""Button"",
+                    ""processors"": """",
+                    ""interactions"": ""Press"",
+                    ""initialStateCheck"": false
+                },
+                {
+                    ""name"": ""Toggle UI Mode (Playing)"",
+                    ""type"": ""Button"",
+                    ""id"": ""7f2f742b-9cdb-43fc-9283-5750cbbb117b"",
+                    ""expectedControlType"": ""Button"",
+                    ""processors"": """",
+                    ""interactions"": ""Press"",
+                    ""initialStateCheck"": false
                 }
             ],
             ""bindings"": [
@@ -3627,13 +3681,211 @@ public @CMInput()
                 {
                     ""name"": ""button"",
                     ""id"": ""aa694fd9-9a8b-47b8-a9ac-682e08347b75"",
-                    ""path"": ""<Keyboard>/h"",
+                    ""path"": ""<Keyboard>/e"",
                     ""interactions"": """",
                     ""processors"": """",
                     ""groups"": ""ChroMapper Default"",
                     ""action"": ""Toggle UI Mode"",
                     ""isComposite"": false,
                     ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""Keyboard"",
+                    ""id"": ""c3c30551-3541-4ac6-8ea3-08d7d68eb4d3"",
+                    ""path"": ""ButtonWithOneModifier"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": """",
+                    ""action"": ""Toggle UI Mode (Reverse)"",
+                    ""isComposite"": true,
+                    ""isPartOfComposite"": false
+                },
+                {
+                    ""name"": ""modifier"",
+                    ""id"": ""26fcd8d4-b726-4baf-9a17-e7e252f55b78"",
+                    ""path"": ""<Keyboard>/ctrl"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Reverse)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""button"",
+                    ""id"": ""ecf14d89-2c4a-4cd9-b155-8a320aa874d2"",
+                    ""path"": ""<Keyboard>/q"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Reverse)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""Keyboard"",
+                    ""id"": ""fd46ba2c-b4fc-4d0a-85a2-f52e94f1056a"",
+                    ""path"": ""ButtonWithOneModifier"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": """",
+                    ""action"": ""Toggle UI Mode (Normal)"",
+                    ""isComposite"": true,
+                    ""isPartOfComposite"": false
+                },
+                {
+                    ""name"": ""modifier"",
+                    ""id"": ""6eafc3d8-5fd7-4d10-9af1-c866d9e8720f"",
+                    ""path"": ""<Keyboard>/ctrl"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Normal)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""button"",
+                    ""id"": ""0e4da0ef-b8ff-4490-b12d-744fc9acf8bd"",
+                    ""path"": ""<Keyboard>/1"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Normal)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""Keyboard"",
+                    ""id"": ""52e63839-c79f-44a5-8d43-bb17531baa6d"",
+                    ""path"": ""ButtonWithOneModifier"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": """",
+                    ""action"": ""Toggle UI Mode (Hide UI)"",
+                    ""isComposite"": true,
+                    ""isPartOfComposite"": false
+                },
+                {
+                    ""name"": ""modifier"",
+                    ""id"": ""62ef11c8-b1fc-4dcf-aa1d-86dc76d1a99a"",
+                    ""path"": ""<Keyboard>/ctrl"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Hide UI)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""button"",
+                    ""id"": ""f6fcc22e-aa0e-4dd2-ac19-e0b2355f4440"",
+                    ""path"": ""<Keyboard>/2"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Hide UI)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""Keyboard"",
+                    ""id"": ""4db8ca57-cf15-4f6a-9dca-549213894727"",
+                    ""path"": ""ButtonWithOneModifier"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": """",
+                    ""action"": ""Toggle UI Mode (Hide Grids)"",
+                    ""isComposite"": true,
+                    ""isPartOfComposite"": false
+                },
+                {
+                    ""name"": ""modifier"",
+                    ""id"": ""ac76acc1-8c16-4c50-9076-91fc00a23a60"",
+                    ""path"": ""<Keyboard>/ctrl"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Hide Grids)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""button"",
+                    ""id"": ""9e0ee0f1-9f8a-409c-863b-b9e3b963a85f"",
+                    ""path"": ""<Keyboard>/3"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Hide Grids)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""Keyboard"",
+                    ""id"": ""f9536119-57b0-4edd-97ca-7a35cfc63f89"",
+                    ""path"": ""ButtonWithOneModifier"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": """",
+                    ""action"": ""Toggle UI Mode (Preview)"",
+                    ""isComposite"": true,
+                    ""isPartOfComposite"": false
+                },
+                {
+                    ""name"": ""modifier"",
+                    ""id"": ""09a48e38-63db-4009-a79c-4d1694c487f8"",
+                    ""path"": ""<Keyboard>/ctrl"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Preview)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""button"",
+                    ""id"": ""9c319980-2c8a-4fb5-9f85-f13ef906bde8"",
+                    ""path"": ""<Keyboard>/4"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Preview)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""Keyboard"",
+                    ""id"": ""135d8a00-5a10-4669-9110-d451639d5fcb"",
+                    ""path"": ""ButtonWithOneModifier"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": """",
+                    ""action"": ""Toggle UI Mode (Playing)"",
+                    ""isComposite"": true,
+                    ""isPartOfComposite"": false
+                },
+                {
+                    ""name"": ""modifier"",
+                    ""id"": ""6b748aa3-67ab-4f21-9465-69ac4b166280"",
+                    ""path"": ""<Keyboard>/ctrl"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Playing)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
+                },
+                {
+                    ""name"": ""button"",
+                    ""id"": ""fd4396f5-7bfb-4a18-846c-3b0813ab0e25"",
+                    ""path"": ""<Keyboard>/5"",
+                    ""interactions"": """",
+                    ""processors"": """",
+                    ""groups"": ""ChroMapper Default"",
+                    ""action"": ""Toggle UI Mode (Playing)"",
+                    ""isComposite"": false,
+                    ""isPartOfComposite"": true
                 }
             ]
         },
@@ -4987,6 +5239,12 @@ public @CMInput()
         // UI Mode
         m_UIMode = asset.FindActionMap("UI Mode", throwIfNotFound: true);
         m_UIMode_ToggleUIMode = m_UIMode.FindAction("Toggle UI Mode", throwIfNotFound: true);
+        m_UIMode_ToggleUIModeReverse = m_UIMode.FindAction("Toggle UI Mode (Reverse)", throwIfNotFound: true);
+        m_UIMode_ToggleUIModeNormal = m_UIMode.FindAction("Toggle UI Mode (Normal)", throwIfNotFound: true);
+        m_UIMode_ToggleUIModeHideUI = m_UIMode.FindAction("Toggle UI Mode (Hide UI)", throwIfNotFound: true);
+        m_UIMode_ToggleUIModeHideGrids = m_UIMode.FindAction("Toggle UI Mode (Hide Grids)", throwIfNotFound: true);
+        m_UIMode_ToggleUIModePreview = m_UIMode.FindAction("Toggle UI Mode (Preview)", throwIfNotFound: true);
+        m_UIMode_ToggleUIModePlaying = m_UIMode.FindAction("Toggle UI Mode (Playing)", throwIfNotFound: true);
         // Song Speed
         m_SongSpeed = asset.FindActionMap("Song Speed", throwIfNotFound: true);
         m_SongSpeed_DecreaseSongSpeed = m_SongSpeed.FindAction("Decrease Song Speed", throwIfNotFound: true);
@@ -7097,11 +7355,23 @@ public void SetCallbacks(IModifyingSelectionActions instance)
     private readonly InputActionMap m_UIMode;
     private List<IUIModeActions> m_UIModeActionsCallbackInterfaces = new List<IUIModeActions>();
     private readonly InputAction m_UIMode_ToggleUIMode;
+    private readonly InputAction m_UIMode_ToggleUIModeReverse;
+    private readonly InputAction m_UIMode_ToggleUIModeNormal;
+    private readonly InputAction m_UIMode_ToggleUIModeHideUI;
+    private readonly InputAction m_UIMode_ToggleUIModeHideGrids;
+    private readonly InputAction m_UIMode_ToggleUIModePreview;
+    private readonly InputAction m_UIMode_ToggleUIModePlaying;
     public struct UIModeActions
     {
         private @CMInput m_Wrapper;
         public UIModeActions(@CMInput wrapper) { m_Wrapper = wrapper; }
         public InputAction @ToggleUIMode => m_Wrapper.m_UIMode_ToggleUIMode;
+        public InputAction @ToggleUIModeReverse => m_Wrapper.m_UIMode_ToggleUIModeReverse;
+        public InputAction @ToggleUIModeNormal => m_Wrapper.m_UIMode_ToggleUIModeNormal;
+        public InputAction @ToggleUIModeHideUI => m_Wrapper.m_UIMode_ToggleUIModeHideUI;
+        public InputAction @ToggleUIModeHideGrids => m_Wrapper.m_UIMode_ToggleUIModeHideGrids;
+        public InputAction @ToggleUIModePreview => m_Wrapper.m_UIMode_ToggleUIModePreview;
+        public InputAction @ToggleUIModePlaying => m_Wrapper.m_UIMode_ToggleUIModePlaying;
         public InputActionMap Get() { return m_Wrapper.m_UIMode; }
         public void Enable() { Get().Enable(); }
         public void Disable() { Get().Disable(); }
@@ -7114,6 +7384,24 @@ public void AddCallbacks(IUIModeActions instance)
             @ToggleUIMode.started += instance.OnToggleUIMode;
             @ToggleUIMode.performed += instance.OnToggleUIMode;
             @ToggleUIMode.canceled += instance.OnToggleUIMode;
+            @ToggleUIModeReverse.started += instance.OnToggleUIModeReverse;
+            @ToggleUIModeReverse.performed += instance.OnToggleUIModeReverse;
+            @ToggleUIModeReverse.canceled += instance.OnToggleUIModeReverse;
+            @ToggleUIModeNormal.started += instance.OnToggleUIModeNormal;
+            @ToggleUIModeNormal.performed += instance.OnToggleUIModeNormal;
+            @ToggleUIModeNormal.canceled += instance.OnToggleUIModeNormal;
+            @ToggleUIModeHideUI.started += instance.OnToggleUIModeHideUI;
+            @ToggleUIModeHideUI.performed += instance.OnToggleUIModeHideUI;
+            @ToggleUIModeHideUI.canceled += instance.OnToggleUIModeHideUI;
+            @ToggleUIModeHideGrids.started += instance.OnToggleUIModeHideGrids;
+            @ToggleUIModeHideGrids.performed += instance.OnToggleUIModeHideGrids;
+            @ToggleUIModeHideGrids.canceled += instance.OnToggleUIModeHideGrids;
+            @ToggleUIModePreview.started += instance.OnToggleUIModePreview;
+            @ToggleUIModePreview.performed += instance.OnToggleUIModePreview;
+            @ToggleUIModePreview.canceled += instance.OnToggleUIModePreview;
+            @ToggleUIModePlaying.started += instance.OnToggleUIModePlaying;
+            @ToggleUIModePlaying.performed += instance.OnToggleUIModePlaying;
+            @ToggleUIModePlaying.canceled += instance.OnToggleUIModePlaying;
         }
 
         private void UnregisterCallbacks(IUIModeActions instance)
@@ -7121,6 +7409,24 @@ private void UnregisterCallbacks(IUIModeActions instance)
             @ToggleUIMode.started -= instance.OnToggleUIMode;
             @ToggleUIMode.performed -= instance.OnToggleUIMode;
             @ToggleUIMode.canceled -= instance.OnToggleUIMode;
+            @ToggleUIModeReverse.started -= instance.OnToggleUIModeReverse;
+            @ToggleUIModeReverse.performed -= instance.OnToggleUIModeReverse;
+            @ToggleUIModeReverse.canceled -= instance.OnToggleUIModeReverse;
+            @ToggleUIModeNormal.started -= instance.OnToggleUIModeNormal;
+            @ToggleUIModeNormal.performed -= instance.OnToggleUIModeNormal;
+            @ToggleUIModeNormal.canceled -= instance.OnToggleUIModeNormal;
+            @ToggleUIModeHideUI.started -= instance.OnToggleUIModeHideUI;
+            @ToggleUIModeHideUI.performed -= instance.OnToggleUIModeHideUI;
+            @ToggleUIModeHideUI.canceled -= instance.OnToggleUIModeHideUI;
+            @ToggleUIModeHideGrids.started -= instance.OnToggleUIModeHideGrids;
+            @ToggleUIModeHideGrids.performed -= instance.OnToggleUIModeHideGrids;
+            @ToggleUIModeHideGrids.canceled -= instance.OnToggleUIModeHideGrids;
+            @ToggleUIModePreview.started -= instance.OnToggleUIModePreview;
+            @ToggleUIModePreview.performed -= instance.OnToggleUIModePreview;
+            @ToggleUIModePreview.canceled -= instance.OnToggleUIModePreview;
+            @ToggleUIModePlaying.started -= instance.OnToggleUIModePlaying;
+            @ToggleUIModePlaying.performed -= instance.OnToggleUIModePlaying;
+            @ToggleUIModePlaying.canceled -= instance.OnToggleUIModePlaying;
         }
 
         public void RemoveCallbacks(IUIModeActions instance)
@@ -8306,6 +8612,12 @@ public interface IModifyingSelectionActions
     public interface IUIModeActions
     {
         void OnToggleUIMode(InputAction.CallbackContext context);
+        void OnToggleUIModeReverse(InputAction.CallbackContext context);
+        void OnToggleUIModeNormal(InputAction.CallbackContext context);
+        void OnToggleUIModeHideUI(InputAction.CallbackContext context);
+        void OnToggleUIModeHideGrids(InputAction.CallbackContext context);
+        void OnToggleUIModePreview(InputAction.CallbackContext context);
+        void OnToggleUIModePlaying(InputAction.CallbackContext context);
     }
     public interface ISongSpeedActions
     {
diff --git a/Assets/Input/Master.inputactions b/Assets/Input/Master.inputactions
index 67b080ac8..badba931f 100644
--- a/Assets/Input/Master.inputactions
+++ b/Assets/Input/Master.inputactions
@@ -3577,6 +3577,60 @@
                     "processors": "",
                     "interactions": "Press",
                     "initialStateCheck": false
+                },
+                {
+                    "name": "Toggle UI Mode (Reverse)",
+                    "type": "Button",
+                    "id": "20bb8021-4bb8-4be2-94c1-9600fd1a8208",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "Press",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Toggle UI Mode (Normal)",
+                    "type": "Button",
+                    "id": "841b053b-6c5e-43d5-8fbd-844a62f7efa5",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "Press",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Toggle UI Mode (Hide UI)",
+                    "type": "Button",
+                    "id": "e528aa35-53e4-40b4-b036-215fe4563f87",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "Press",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Toggle UI Mode (Hide Grids)",
+                    "type": "Button",
+                    "id": "215e2238-53f3-47d8-8e76-41526ab518cd",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "Press",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Toggle UI Mode (Preview)",
+                    "type": "Button",
+                    "id": "26ce21ba-1236-4447-ac87-1c720bb83468",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "Press",
+                    "initialStateCheck": false
+                },
+                {
+                    "name": "Toggle UI Mode (Playing)",
+                    "type": "Button",
+                    "id": "7f2f742b-9cdb-43fc-9283-5750cbbb117b",
+                    "expectedControlType": "Button",
+                    "processors": "",
+                    "interactions": "Press",
+                    "initialStateCheck": false
                 }
             ],
             "bindings": [
@@ -3605,13 +3659,211 @@
                 {
                     "name": "button",
                     "id": "aa694fd9-9a8b-47b8-a9ac-682e08347b75",
-                    "path": "<Keyboard>/h",
+                    "path": "<Keyboard>/e",
                     "interactions": "",
                     "processors": "",
                     "groups": "ChroMapper Default",
                     "action": "Toggle UI Mode",
                     "isComposite": false,
                     "isPartOfComposite": true
+                },
+                {
+                    "name": "Keyboard",
+                    "id": "c3c30551-3541-4ac6-8ea3-08d7d68eb4d3",
+                    "path": "ButtonWithOneModifier",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Toggle UI Mode (Reverse)",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "modifier",
+                    "id": "26fcd8d4-b726-4baf-9a17-e7e252f55b78",
+                    "path": "<Keyboard>/ctrl",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Reverse)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "button",
+                    "id": "ecf14d89-2c4a-4cd9-b155-8a320aa874d2",
+                    "path": "<Keyboard>/q",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Reverse)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "Keyboard",
+                    "id": "fd46ba2c-b4fc-4d0a-85a2-f52e94f1056a",
+                    "path": "ButtonWithOneModifier",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Toggle UI Mode (Normal)",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "modifier",
+                    "id": "6eafc3d8-5fd7-4d10-9af1-c866d9e8720f",
+                    "path": "<Keyboard>/ctrl",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Normal)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "button",
+                    "id": "0e4da0ef-b8ff-4490-b12d-744fc9acf8bd",
+                    "path": "<Keyboard>/1",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Normal)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "Keyboard",
+                    "id": "52e63839-c79f-44a5-8d43-bb17531baa6d",
+                    "path": "ButtonWithOneModifier",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Toggle UI Mode (Hide UI)",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "modifier",
+                    "id": "62ef11c8-b1fc-4dcf-aa1d-86dc76d1a99a",
+                    "path": "<Keyboard>/ctrl",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Hide UI)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "button",
+                    "id": "f6fcc22e-aa0e-4dd2-ac19-e0b2355f4440",
+                    "path": "<Keyboard>/2",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Hide UI)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "Keyboard",
+                    "id": "4db8ca57-cf15-4f6a-9dca-549213894727",
+                    "path": "ButtonWithOneModifier",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Toggle UI Mode (Hide Grids)",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "modifier",
+                    "id": "ac76acc1-8c16-4c50-9076-91fc00a23a60",
+                    "path": "<Keyboard>/ctrl",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Hide Grids)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "button",
+                    "id": "9e0ee0f1-9f8a-409c-863b-b9e3b963a85f",
+                    "path": "<Keyboard>/3",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Hide Grids)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "Keyboard",
+                    "id": "f9536119-57b0-4edd-97ca-7a35cfc63f89",
+                    "path": "ButtonWithOneModifier",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Toggle UI Mode (Preview)",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "modifier",
+                    "id": "09a48e38-63db-4009-a79c-4d1694c487f8",
+                    "path": "<Keyboard>/ctrl",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Preview)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "button",
+                    "id": "9c319980-2c8a-4fb5-9f85-f13ef906bde8",
+                    "path": "<Keyboard>/4",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Preview)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "Keyboard",
+                    "id": "135d8a00-5a10-4669-9110-d451639d5fcb",
+                    "path": "ButtonWithOneModifier",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "",
+                    "action": "Toggle UI Mode (Playing)",
+                    "isComposite": true,
+                    "isPartOfComposite": false
+                },
+                {
+                    "name": "modifier",
+                    "id": "6b748aa3-67ab-4f21-9465-69ac4b166280",
+                    "path": "<Keyboard>/ctrl",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Playing)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
+                },
+                {
+                    "name": "button",
+                    "id": "fd4396f5-7bfb-4a18-846c-3b0813ab0e25",
+                    "path": "<Keyboard>/5",
+                    "interactions": "",
+                    "processors": "",
+                    "groups": "ChroMapper Default",
+                    "action": "Toggle UI Mode (Playing)",
+                    "isComposite": false,
+                    "isPartOfComposite": true
                 }
             ]
         },
diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/ChainGridContainer.cs b/Assets/__Scripts/MapEditor/Grid/Collections/ChainGridContainer.cs
index 1ced1edda..636190fde 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/ChainGridContainer.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/ChainGridContainer.cs
@@ -1,5 +1,3 @@
-using System.Collections;
-using System.Collections.Generic;
 using Beatmap.Appearances;
 using Beatmap.Base;
 using Beatmap.Containers;
@@ -15,9 +13,9 @@ public class ChainGridContainer : BeatmapObjectContainerCollection<BaseChain>
     [SerializeField] private GameObject chainPrefab;
     [SerializeField] private TracksManager tracksManager;
     [SerializeField] private ChainAppearanceSO chainAppearanceSO;
-    
+
     [SerializeField] private CountersPlusController countersPlus;
-    
+
     public const float ViewEpsilon = 0.1f; // original view is too small ?? sometimes cause error.
     public override ObjectType ContainerType => ObjectType.Chain;
 
@@ -70,7 +68,7 @@ internal override void SubscribeToCallbacks()
         DespawnCallbackController.ChainPassedThreshold += DespawnCallback;
         AudioTimeSyncController.PlayToggle += OnPlayToggle;
         UIMode.UIModeSwitched += OnUIModeSwitch;
-        
+
         Settings.NotifyBySettingName(nameof(Settings.NoteColorMultiplier), AppearanceChanged);
         Settings.NotifyBySettingName(nameof(Settings.ArrowColorMultiplier), AppearanceChanged);
         Settings.NotifyBySettingName(nameof(Settings.ArrowColorWhiteBlend), AppearanceChanged);
@@ -86,7 +84,7 @@ internal override void UnsubscribeToCallbacks()
         DespawnCallbackController.ChainPassedThreshold -= DespawnCallback;
         AudioTimeSyncController.PlayToggle -= OnPlayToggle;
         UIMode.UIModeSwitched -= OnUIModeSwitch;
-        
+
         Settings.ClearSettingNotifications(nameof(Settings.NoteColorMultiplier));
         Settings.ClearSettingNotifications(nameof(Settings.ArrowColorMultiplier));
         Settings.ClearSettingNotifications(nameof(Settings.ArrowColorWhiteBlend));
@@ -105,15 +103,11 @@ private void OnPlayToggle(bool isPlaying)
 
     private void OnUIModeSwitch(UIModeType newMode)
     {
-        // If preview mode changed
-        if (newMode == UIModeType.Normal || newMode == UIModeType.Preview)
-        {
-            RefreshPool(true);
-        }
+        RefreshPool(true);
     }
 
     private void RecursiveCheckFinished(bool natural, int lastPassedIndex) => RefreshPool();
-    
+
     private void AppearanceChanged(object _) => RefreshPool(true);
 
     protected override void OnContainerSpawn(ObjectContainer container, BaseObject obj)
diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/CustomEventGridContainer.cs b/Assets/__Scripts/MapEditor/Grid/Collections/CustomEventGridContainer.cs
index b3011b353..4116805c3 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/CustomEventGridContainer.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/CustomEventGridContainer.cs
@@ -53,45 +53,47 @@ public void LoadAnimationTracks()
         {
             var ev = span[i];
 
-            var tracks = ev.CustomTrack switch {
+            var tracks = ev.CustomTrack switch
+            {
                 JSONArray arr => arr,
                 JSONString s => JSONObject.Parse($"[{s}]").AsArray,
                 _ => null,
             };
             switch (ev.Type)
             {
-            case "AssignTrackParent":
-                if (ev.DataParentTrack == null) continue;
-                var parent = tracksManager.CreateAnimationTrack(ev.DataParentTrack);
-                tracks = ev.DataChildrenTracks switch {
-                    JSONArray arr => arr,
-                    JSONString s => JSONObject.Parse($"[{s}]").AsArray,
-                };
-                foreach (var tr in tracks)
-                {
-                    var at = tracksManager.CreateAnimationTrack(tr.Value);
-                    at.Track.transform.SetParent(parent.Track.ObjectParentTransform, ev.DataWorldPositionStays ?? false);
-                    if (at.Animator == null)
+                case "AssignTrackParent":
+                    if (ev.DataParentTrack == null) continue;
+                    var parent = tracksManager.CreateAnimationTrack(ev.DataParentTrack);
+                    tracks = ev.DataChildrenTracks switch
                     {
-                        at.Animator = at.gameObject.AddComponent<ObjectAnimator>();
-                        at.Animator.Atsc = AudioTimeSyncController;
-                        at.Animator.SetTrack(at.Track, tr.Value);
-                    }
-
-                    if (!parent.Children.Contains(at.Animator))
+                        JSONArray arr => arr,
+                        JSONString s => JSONObject.Parse($"[{s}]").AsArray,
+                    };
+                    foreach (var tr in tracks)
                     {
-                        parent.Children.Add(at.Animator);
-                        at.Parents.Add(parent);
-                        at.OnChildrenChanged();
+                        var at = tracksManager.CreateAnimationTrack(tr.Value);
+                        at.Track.transform.SetParent(parent.Track.ObjectParentTransform, ev.DataWorldPositionStays ?? false);
+                        if (at.Animator == null)
+                        {
+                            at.Animator = at.gameObject.AddComponent<ObjectAnimator>();
+                            at.Animator.Atsc = AudioTimeSyncController;
+                            at.Animator.SetTrack(at.Track, tr.Value);
+                        }
+
+                        if (!parent.Children.Contains(at.Animator))
+                        {
+                            parent.Children.Add(at.Animator);
+                            at.Parents.Add(parent);
+                            at.OnChildrenChanged();
+                        }
                     }
-                }
-                break;
-            case "AssignPlayerToTrack":
-                if (ev.CustomTrack == null) continue;
-                playerCamera.gameObject.SetActive(true);
-                var track = tracksManager.CreateAnimationTrack(ev.CustomTrack);
-                playerCamera.AddPlayerTrack(ev.JsonTime, track);
-                break;
+                    break;
+                case "AssignPlayerToTrack":
+                    if (ev.CustomTrack == null) continue;
+                    playerCamera.gameObject.SetActive(true);
+                    var track = tracksManager.CreateAnimationTrack(ev.CustomTrack);
+                    playerCamera.AddPlayerTrack(ev.JsonTime, track);
+                    break;
             }
         }
 
@@ -99,7 +101,8 @@ public void LoadAnimationTracks()
         geometries.ForEach((gc) => GameObject.Destroy(gc.gameObject));
         geometries.Clear();
 
-        BeatSaberSongContainer.Instance.Map.EnvironmentEnhancements.ForEach((eh) => {
+        BeatSaberSongContainer.Instance.Map.EnvironmentEnhancements.ForEach((eh) =>
+        {
             if (eh.Geometry is JSONNode)
             {
                 var container = GeometryContainer.SpawnGeometry(eh, ref geometryPrefab);
@@ -142,7 +145,8 @@ public void RefreshEventsByTrack()
         {
             var customEvent = span[i];
 
-            var tracks = customEvent.CustomTrack switch {
+            var tracks = customEvent.CustomTrack switch
+            {
                 JSONString s => new List<string> { s },
                 JSONArray arr => new List<string>(arr.Children.Select(c => (string)c)),
                 _ => new List<string>()
@@ -181,11 +185,7 @@ protected override void OnObjectSpawned(BaseObject obj, bool inCollection = fals
 
     private void OnUIModeSwitch(UIModeType newMode)
     {
-        // When changing in/out of preview mode
-        if (newMode is UIModeType.Normal or UIModeType.Preview)
-        {
-            RefreshPool(true);
-        }
+        RefreshPool(true);
     }
 
     public override void RefreshPool(bool force)
diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/NoteGridContainer.cs b/Assets/__Scripts/MapEditor/Grid/Collections/NoteGridContainer.cs
index 16d02ebec..f95b9bba2 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/NoteGridContainer.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/NoteGridContainer.cs
@@ -1,11 +1,8 @@
 using System.Collections.Generic;
-using System.Linq;
-using Beatmap.Animations;
 using Beatmap.Appearances;
 using Beatmap.Base;
 using Beatmap.Containers;
 using Beatmap.Enums;
-using Beatmap.V3;
 using UnityEngine;
 using UnityEngine.Serialization;
 
@@ -13,7 +10,7 @@ public class NoteGridContainer : BeatmapObjectContainerCollection<BaseNote>
 {
     [SerializeField] private GameObject notePrefab;
     [SerializeField] private GameObject bombPrefab;
-    [FormerlySerializedAs("noteAppearanceSO")][SerializeField] private NoteAppearanceSO noteAppearanceSo;
+    [FormerlySerializedAs("noteAppearanceSO")] [SerializeField] private NoteAppearanceSO noteAppearanceSo;
     [SerializeField] private TracksManager tracksManager;
 
     [SerializeField] private CountersPlusController countersPlus;
@@ -57,13 +54,9 @@ private void OnPlayToggle(bool isPlaying)
 
     private void OnUIModeSwitch(UIModeType newMode)
     {
-        // If preview mode changed
-        if (newMode == UIModeType.Normal || newMode == UIModeType.Preview)
-        {
-            RefreshPool(true);
-        }
+        RefreshPool(true);
     }
-    
+
     private void AppearanceChanged(object _) => RefreshPool(true);
 
     //We don't need to check index as that's already done further up the chain
@@ -162,7 +155,7 @@ public void RefreshSpecialAngles(BaseObject obj, bool objectWasSpawned, bool isN
         {
             var directionA = NoteContainer.Directionalize(a);
             var directionB = NoteContainer.Directionalize(b);
-            
+
             containerA.DirectionTarget.localEulerAngles = containerA.DirectionTargetEuler = directionA;
             containerB.DirectionTarget.localEulerAngles = containerB.DirectionTargetEuler = directionB;
             return;
@@ -216,15 +209,15 @@ public void RefreshSpecialAngles(BaseObject obj, bool objectWasSpawned, bool isN
         containerA.DirectionTarget.localEulerAngles = containerA.DirectionTargetEuler;
         containerB.DirectionTarget.localEulerAngles = containerB.DirectionTargetEuler;
     }
-    
+
     public void ClearSpecialAngles(BaseObject obj)
     {
         var note = obj as BaseNote;
-        
+
         PopulateObjectsAtSameTime(note);
         ClearSpecialAnglesFromObjectsAtSameTime();
     }
-    
+
     // Grab all objects with the same type, and time (within epsilon)
     private void PopulateObjectsAtSameTime(BaseNote note)
     {
diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/ObstacleGridContainer.cs b/Assets/__Scripts/MapEditor/Grid/Collections/ObstacleGridContainer.cs
index f054ed54a..172118725 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/ObstacleGridContainer.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/ObstacleGridContainer.cs
@@ -10,7 +10,7 @@
 public class ObstacleGridContainer : BeatmapObjectContainerCollection<BaseObstacle>
 {
     [SerializeField] private GameObject obstaclePrefab;
-    [FormerlySerializedAs("obstacleAppearanceSO")][SerializeField] private ObstacleAppearanceSO obstacleAppearanceSo;
+    [FormerlySerializedAs("obstacleAppearanceSO")] [SerializeField] private ObstacleAppearanceSO obstacleAppearanceSo;
     [SerializeField] private TracksManager tracksManager;
     [SerializeField] private CountersPlusController countersPlus;
 
@@ -21,7 +21,7 @@ public class ObstacleGridContainer : BeatmapObjectContainerCollection<BaseObstac
 
     public BaseObstacle[] DespawnSortedObjects;
     private int despawnIndex;
-    
+
     private static readonly int outsideAlpha = Shader.PropertyToID("_OutsideAlpha");
     private static readonly int mainAlpha = Shader.PropertyToID("_MainAlpha");
 
@@ -69,11 +69,7 @@ public override void RefreshPool(bool force)
 
     private void OnUIModeSwitch(UIModeType newMode)
     {
-        // When changing in/out of preview mode
-        if (newMode == UIModeType.Normal || newMode == UIModeType.Preview)
-        {
-            RefreshPool(true);
-        }
+        RefreshPool(true);
     }
 
     public void UpdateColor(Color obstacle) => obstacleAppearanceSo.DefaultObstacleColor = obstacle;
diff --git a/Assets/__Scripts/MapEditor/UI/UIMode.cs b/Assets/__Scripts/MapEditor/UI/UIMode.cs
index 93a939820..82ddff931 100644
--- a/Assets/__Scripts/MapEditor/UI/UIMode.cs
+++ b/Assets/__Scripts/MapEditor/UI/UIMode.cs
@@ -38,7 +38,7 @@ public class UIMode : MonoBehaviour, CMInput.IUIModeActions
     private MapEditorUI mapEditorUi;
     private Coroutine showUI;
     private Coroutine slideSelectionCoroutine;
-    
+
     private static readonly int enableNoteSurfaceGridLine = Shader.PropertyToID("_EnableNoteSurfaceGridLine");
 
     private void Awake()
@@ -69,33 +69,94 @@ public void OnToggleUIMode(InputAction.CallbackContext context)
     {
         if (context.performed && !BPMTapperController.IsActive)
         {
-            var currentOption = selected.parent.GetSiblingIndex();
-            var nextOption = currentOption + 1;
+            ToggleUIMode(true);
+        }
+    }
 
-            if (nextOption < 0)
-            {
-                nextOption = modes.Count - 1;
-            }
+    public void OnToggleUIModeReverse(InputAction.CallbackContext context)
+    {
+        if (context.performed)
+        {
+            ToggleUIMode(false);
+        }
+    }
 
-            if (nextOption >= modes.Count) nextOption = 0;
+    void CMInput.IUIModeActions.OnToggleUIModeNormal(InputAction.CallbackContext context)
+    {
+        if (context.performed && SelectedMode != UIModeType.Normal)
+        {
+            UpdateCameraOnUIModeToggle(UIModeType.Normal);
+            SetUIMode(UIModeType.Normal, true);
+        }
+    }
+    void CMInput.IUIModeActions.OnToggleUIModeHideUI(InputAction.CallbackContext context)
+    {
+        if (context.performed && SelectedMode != UIModeType.HideUI)
+        {
+            UpdateCameraOnUIModeToggle(UIModeType.HideUI);
+            SetUIMode(UIModeType.HideUI, true);
+        }
+    }
+    void CMInput.IUIModeActions.OnToggleUIModeHideGrids(InputAction.CallbackContext context)
+    {
+        if (context.performed && SelectedMode != UIModeType.HideGrids)
+        {
+            UpdateCameraOnUIModeToggle(UIModeType.HideGrids);
+            SetUIMode(UIModeType.HideGrids, true);
+        }
+    }
+    void CMInput.IUIModeActions.OnToggleUIModePreview(InputAction.CallbackContext context)
+    {
+        if (context.performed && SelectedMode != UIModeType.Preview)
+        {
+            UpdateCameraOnUIModeToggle(UIModeType.Preview);
+            SetUIMode(UIModeType.Preview, true);
+        }
+    }
+    void CMInput.IUIModeActions.OnToggleUIModePlaying(InputAction.CallbackContext context)
+    {
+        if (context.performed && SelectedMode != UIModeType.Playing)
+        {
+            UpdateCameraOnUIModeToggle(UIModeType.Playing);
+            SetUIMode(UIModeType.Playing, true);
+        }
+    }
 
-            if (currentOption == (int)UIModeType.Playing && nextOption != currentOption)
-            {
-                // restore cam position/rotation
-                cameraManager.SelectCamera(CameraType.Editing);
-                cameraManager.SelectedCameraController.transform.SetPositionAndRotation(savedCamPosition,
-                    savedCamRotation);
-            }
-            else if (nextOption == (int)UIModeType.Playing)
-            {
-                // save cam position/rotation
-                var cameraTransform = cameraManager.SelectedCameraController.transform;
-                savedCamPosition = cameraTransform.position;
-                savedCamRotation = cameraTransform.rotation;
-                cameraManager.SelectCamera(CameraType.Playing);
-            }
+    private void ToggleUIMode(bool forward)
+    {
+        var currentOption = selected.parent.GetSiblingIndex();
+        var nextOption = currentOption + (forward ? 1 : -1);
 
-            SetUIMode(nextOption);
+        if (nextOption < 0)
+        {
+            nextOption = modes.Count - 1;
+        }
+
+        if (nextOption >= modes.Count) nextOption = 0;
+
+        UpdateCameraOnUIModeToggle((UIModeType)nextOption);
+
+        SetUIMode(nextOption);
+    }
+
+    private void UpdateCameraOnUIModeToggle(UIModeType mode)
+    {
+        var currentOption = selected.parent.GetSiblingIndex();
+
+        if (currentOption == (int)UIModeType.Playing && ((int)mode) != currentOption)
+        {
+            // restore cam position/rotation
+            cameraManager.SelectCamera(CameraType.Editing);
+            cameraManager.SelectedCameraController.transform.SetPositionAndRotation(savedCamPosition,
+                savedCamRotation);
+        }
+        else if (mode == UIModeType.Playing)
+        {
+            // save cam position/rotation
+            var cameraTransform = cameraManager.SelectedCameraController.transform;
+            savedCamPosition = cameraTransform.position;
+            savedCamRotation = cameraTransform.rotation;
+            cameraManager.SelectCamera(CameraType.Playing);
         }
     }
 
@@ -156,7 +217,7 @@ private void HideStuff(bool showUI, bool showExtras, bool showMainGrid, bool sho
         foreach (var c in canvases) c.enabled = showCanvases;
 
         // If this is not used, then there is a chance the moved items may break.
-        var fixTheCam = cameraManager.SelectedCameraController.LockedOntoNoteGrid; 
+        var fixTheCam = cameraManager.SelectedCameraController.LockedOntoNoteGrid;
         if (fixTheCam) cameraManager.SelectedCameraController.LockedOntoNoteGrid = false;
 
         if (showPlacement)
@@ -262,6 +323,7 @@ public static void NotifyOnUIModeChange(Action<object> callback)
     /// Clear all <see cref="Action"/>s associated with a UI mode change
     /// </summary>
     public static void ClearUIModeNotifications() => actions.Clear();
+
 }
 
 

From 26a5a0b0e0d7a634788d5ee2f1c937d982fc89e3 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Mon, 1 Jul 2024 16:07:42 +1000
Subject: [PATCH 05/35] Account for vram spike in quality check

---
 Assets/__Scripts/MapEditor/Audio/AudioManager.cs | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/Assets/__Scripts/MapEditor/Audio/AudioManager.cs b/Assets/__Scripts/MapEditor/Audio/AudioManager.cs
index 21b0dccd5..687617d01 100644
--- a/Assets/__Scripts/MapEditor/Audio/AudioManager.cs
+++ b/Assets/__Scripts/MapEditor/Audio/AudioManager.cs
@@ -61,7 +61,8 @@ public void GenerateFFT(AudioClip clip, int sampleSize, int quality)
         // Reduce spectrogram quality if it would exceed half of total VRAM capacity
         //   (Video memory should still be available for ChroMapper and other programs)
         var videoMemoryBytes = SystemInfo.graphicsMemorySize * 1024L * 1024L;
-        while ((long)sampleCount * quality * sizeof(float) > videoMemoryBytes / 2L)
+        const int fftCountBuffers = 3;
+        while ((long)sampleCount * quality * sizeof(float) * fftCountBuffers > videoMemoryBytes / 2L)
         {
             quality /= 2;
             Debug.Log($"Video Memory exceeded. Reduced spectrogram quality to: {quality}");

From f308a684f35b1d39ae761933dc2a2e81117670a4 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Mon, 1 Jul 2024 18:06:41 +1000
Subject: [PATCH 06/35] Update customData on placement

Used in conflicting object check
---
 .../Grid/Collections/BeatmapObjectContainerCollection.cs       | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/BeatmapObjectContainerCollection.cs b/Assets/__Scripts/MapEditor/Grid/Collections/BeatmapObjectContainerCollection.cs
index a83591f43..10c478c89 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/BeatmapObjectContainerCollection.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/BeatmapObjectContainerCollection.cs
@@ -714,6 +714,9 @@ public void SpawnObject(T obj, bool removeConflicting = true, bool refreshesPool
     public void SpawnObject(T obj, out List<T> conflicting, bool removeConflicting = true,
         bool refreshesPool = true, bool inCollectionOfSpawns = false)
     {
+        // Ensure customData is up to date before spawning
+        obj.WriteCustom(); 
+
         //Debug.Log($"Spawning object with hash code {obj.GetHashCode()}");
         if (removeConflicting)
         {

From 750a7cbdd2ced9327a605fcecc438576558a379a Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Mon, 1 Jul 2024 18:14:30 +1000
Subject: [PATCH 07/35] Consolidate edit bookmark name and colour uis into
 single edit

---
 .../UI/Bookmarks/BookmarkContainer.cs         | 77 +++++++++++--------
 1 file changed, 45 insertions(+), 32 deletions(-)

diff --git a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
index 18f70b690..c0e08a422 100644
--- a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
+++ b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
@@ -2,9 +2,10 @@
 using Beatmap.Base.Customs;
 using UnityEngine;
 using UnityEngine.EventSystems;
+using UnityEngine.Localization.Settings;
 using UnityEngine.UI;
 
-public class BookmarkContainer : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler
+public class BookmarkContainer : MonoBehaviour, IPointerClickHandler, IPointerUpHandler
 {
     private BookmarkManager manager;
     public BaseBookmark Data { get; private set; }
@@ -60,53 +61,65 @@ public void OnPointerClick(PointerEventData eventData)
     {
         switch (eventData.button)
         {
+            case PointerEventData.InputButton.Left:
+                manager.Tipc.PointerDown();
+                manager.Atsc.MoveToJsonTime(Data.JsonTime);
+                break;
             case PointerEventData.InputButton.Middle:
                 PersistentUI.Instance.ShowDialogBox("Mapper", "bookmark.delete", HandleDeleteBookmark,
                     PersistentUI.DialogBoxPresetType.YesNo);
                 break;
             case PointerEventData.InputButton.Right:
-                if (manager.ShiftContext.started)
-                {
-                    PersistentUI.Instance.ShowColorInputBox("Mapper", "bookmark.update.color", HandleNewBookmarkColor, GetComponent<Image>().color);
-                }
-                else
-                {
-                    PersistentUI.Instance.ShowInputBox("Mapper", "bookmark.update.dialog", HandleNewBookmarkName, null, Data.Name);
-                }
-
+                DisplayBookmarkEditUI();
                 break;
+            default:
+                return;
         }
     }
 
-    public void OnPointerDown(PointerEventData eventData)
+    private void DisplayBookmarkEditUI()
     {
-        if (eventData.button == PointerEventData.InputButton.Left)
-        {
-            manager.Tipc.PointerDown();
-            manager.Atsc.MoveToJsonTime(Data.JsonTime);
-        }
-    }
+        var title = LocalizationSettings.StringDatabase.GetLocalizedString("Mapper", "bookmark.update.dialog");
+        var dialogBox = PersistentUI.Instance.CreateNewDialogBox().WithTitle(title);
 
-    public void OnPointerUp(PointerEventData eventData)
-    {
-        if (eventData.button == PointerEventData.InputButton.Left) manager.Tipc.PointerUp();
-    }
+        var textBox = dialogBox.AddComponent<TextBoxComponent>()
+            .WithInitialValue(Data.Name)
+            .WithLabel("Mapper", "bookmark.dialog.name");
 
-    private void HandleNewBookmarkName(string res)
-    {
-        if (string.IsNullOrEmpty(res) || string.IsNullOrWhiteSpace(res)) return;
+        var colorPicker = dialogBox
+            .AddComponent<NestedColorPickerComponent>()
+            .WithInitialValue(GetComponent<Image>().color)
+            .WithLabel("Mapper", "bookmark.dialog.color");
 
-        Data.Name = res;
-        manager.BookmarksUpdated.Invoke();
-        UpdateUI();
+        Action handleEdit = () =>
+        {
+            if (string.IsNullOrEmpty(textBox.Value) || string.IsNullOrWhiteSpace(textBox.Value))
+            {
+                Data.Name = textBox.Value;
+            }
+            if (colorPicker.Value != null)
+            {
+                Data.Color = colorPicker.Value;
+            }
+            manager.BookmarksUpdated.Invoke();
+            UpdateUI();
+        };
+
+        var cancelButton = dialogBox
+            .AddFooterButton(() => { },
+                LocalizationSettings.StringDatabase.GetLocalizedString(nameof(PersistentUI), "cancel"));
+
+        var submitButton = dialogBox
+            .AddFooterButton(handleEdit,
+                LocalizationSettings.StringDatabase.GetLocalizedString(nameof(PersistentUI), "submit"));
+
+        dialogBox.OnQuickSubmit(handleEdit);
+        dialogBox.Open();
     }
 
-    private void HandleNewBookmarkColor(Color? res)
+    public void OnPointerUp(PointerEventData eventData)
     {
-        if (res == null) return;
-        Data.Color = (Color)res;
-        manager.BookmarksUpdated.Invoke();
-        UpdateUI();
+        if (eventData.button == PointerEventData.InputButton.Left) manager.Tipc.PointerUp();
     }
 
     internal void HandleDeleteBookmark(int res)

From eaa37ff0a65fc4701d684965547b8cb0e931ab49 Mon Sep 17 00:00:00 2001
From: Caeden Statia <caeden.s@outlook.com>
Date: Mon, 1 Jul 2024 10:17:21 -0500
Subject: [PATCH 08/35] we'd like to save the name if the text *isnt* null

---
 Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
index c0e08a422..7c6a5967e 100644
--- a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
+++ b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
@@ -93,7 +93,7 @@ private void DisplayBookmarkEditUI()
 
         Action handleEdit = () =>
         {
-            if (string.IsNullOrEmpty(textBox.Value) || string.IsNullOrWhiteSpace(textBox.Value))
+            if (!string.IsNullOrWhiteSpace(textBox.Value))
             {
                 Data.Name = textBox.Value;
             }

From 3954b6ccadc0b9731f1f60830e4011dea17ad838 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Wed, 3 Jul 2024 19:56:48 +1000
Subject: [PATCH 09/35] Add failing grouped lightID test

---
 Assets/Tests/SimpleMirrorTest.cs | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

diff --git a/Assets/Tests/SimpleMirrorTest.cs b/Assets/Tests/SimpleMirrorTest.cs
index 3d258641a..6aef119a8 100644
--- a/Assets/Tests/SimpleMirrorTest.cs
+++ b/Assets/Tests/SimpleMirrorTest.cs
@@ -1,4 +1,4 @@
-using System.Collections;
+using System.Collections;
 using System.Linq;
 using Beatmap.Base;
 using Beatmap.Enums;
@@ -92,7 +92,9 @@ public void MirrorNoteNE()
         }
 
         [Test]
-        public void MirrorProp()
+        [TestCase("[2]", "[9]", EventGridContainer.PropMode.Light)]
+        [TestCase("[1,2]","[9,10]", EventGridContainer.PropMode.Prop)]
+        public void MirrorEventLightID(string original, string mirror, EventGridContainer.PropMode propMode)
         {
             var eventsContainer = BeatmapObjectContainerCollection.GetCollectionForType<EventGridContainer>(ObjectType.Event);
             
@@ -100,30 +102,30 @@ public void MirrorProp()
             var eventPlacement = root.GetComponentInChildren<EventPlacement>();
 
             BaseEvent baseEventA = new V3BasicEvent(2, (int)EventTypeValue.BackLasers, (int)LightValue.RedFade, 1f,
-                JSON.Parse("{\"lightID\": 2}"));
+                JSON.Parse($"{{\"lightID\": {original}}}"));
 
             PlaceUtils.PlaceEvent(eventPlacement, baseEventA);
 
             SelectionController.Select(baseEventA);
 
             eventsContainer.EventTypeToPropagate = baseEventA.Type;
-            eventsContainer.PropagationEditing = EventGridContainer.PropMode.Light;
+            eventsContainer.PropagationEditing = propMode;
 
             _mirror.Mirror();
-            // I'm sorry if you're here after changing the prop mapping for default env
-            CheckUtils.CheckEvent("Perform mirror prop event", eventsContainer, 0, 2,
-                (int)EventTypeValue.BackLasers, (int)LightValue.BlueFade, 1f, JSON.Parse("{\"lightID\": [9]}"));
+            // I'm sorry if you're here after changing the lightID mapping for default env
+            CheckUtils.CheckEvent("Perform mirror lightID event", eventsContainer, 0, 2,
+                (int)EventTypeValue.BackLasers, (int)LightValue.BlueFade, 1f, JSON.Parse($"{{\"lightID\": {mirror}}}"));
 
             // Undo mirror
             _actionContainer.Undo();
-            CheckUtils.CheckEvent("Undo mirror prop event", eventsContainer, 0, 2, (int)EventTypeValue.BackLasers,
-                (int)LightValue.RedFade, 1f, JSON.Parse("{\"lightID\": [2]}"));
+            CheckUtils.CheckEvent("Undo mirror lightID event", eventsContainer, 0, 2, (int)EventTypeValue.BackLasers,
+                (int)LightValue.RedFade, 1f, JSON.Parse($"{{\"lightID\": {original}}}"));
 
             eventsContainer.PropagationEditing = EventGridContainer.PropMode.Off;
         }
 
         [Test]
-        public void MirrorGradient()
+        public void MirrorEventGradient()
         {
             var eventsContainer = BeatmapObjectContainerCollection.GetCollectionForType<EventGridContainer>(ObjectType.Event);
         

From 8ef261d906c7665176cd68ccd0e4de8a13bd9356 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Wed, 3 Jul 2024 19:49:57 +1000
Subject: [PATCH 10/35] Fix events not mirroring in grouped lightID

---
 Assets/__Scripts/Beatmap/V2/V2Event.cs      | 11 +++++++++--
 Assets/__Scripts/Beatmap/V3/V3BasicEvent.cs |  8 +++++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/Assets/__Scripts/Beatmap/V2/V2Event.cs b/Assets/__Scripts/Beatmap/V2/V2Event.cs
index b4deb95c9..2e967ff67 100644
--- a/Assets/__Scripts/Beatmap/V2/V2Event.cs
+++ b/Assets/__Scripts/Beatmap/V2/V2Event.cs
@@ -38,7 +38,8 @@ public V2Event(float time, int type, int value, float floatValue = 1f, JSONNode
             type, value, floatValue, customData) =>
             ParseCustom();
 
-        public V2Event(float jsonTime, float songBpmTime, int type, int value, float floatValue = 1f, JSONNode customData = null) :
+        public V2Event(float jsonTime, float songBpmTime, int type, int value, float floatValue = 1f,
+            JSONNode customData = null) :
             base(jsonTime, songBpmTime, type, value, floatValue, customData) =>
             ParseCustom();
 
@@ -152,7 +153,13 @@ public override JSONNode ToJson()
             return node;
         }
 
-        public override BaseItem Clone() => new V2Event(JsonTime, SongBpmTime, Type, Value, FloatValue, SaveCustom().Clone());
+        public override BaseItem Clone() =>
+            new V2Event(JsonTime, SongBpmTime, Type, Value, FloatValue, SaveCustom().Clone())
+            {
+                // This depends on environment and is calculated by grid position after creation
+                // so we need to set this here to clone correctly  
+                CustomPropID = CustomPropID
+            };
 
         public override void Apply(BaseObject originalData)
         {
diff --git a/Assets/__Scripts/Beatmap/V3/V3BasicEvent.cs b/Assets/__Scripts/Beatmap/V3/V3BasicEvent.cs
index b4d5d9dea..c5dade84e 100644
--- a/Assets/__Scripts/Beatmap/V3/V3BasicEvent.cs
+++ b/Assets/__Scripts/Beatmap/V3/V3BasicEvent.cs
@@ -120,6 +120,12 @@ public override JSONNode ToJson()
             return node;
         }
 
-        public override BaseItem Clone() => new V3BasicEvent(JsonTime, SongBpmTime, Type, Value, FloatValue, SaveCustom().Clone());
+        public override BaseItem Clone() =>
+            new V3BasicEvent(JsonTime, SongBpmTime, Type, Value, FloatValue, SaveCustom().Clone())
+            {
+                // This depends on environment and is calculated by grid position after creation
+                // so we need to set this here to clone correctly  
+                CustomPropID = CustomPropID
+            };
     }
 }

From be5e03eda0dcb0156f058079ddb3b62f4d4f13b3 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Wed, 3 Jul 2024 19:50:41 +1000
Subject: [PATCH 11/35] More event mirror lightID test cases

---
 Assets/Tests/SimpleMirrorTest.cs | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/Assets/Tests/SimpleMirrorTest.cs b/Assets/Tests/SimpleMirrorTest.cs
index 6aef119a8..744c51e05 100644
--- a/Assets/Tests/SimpleMirrorTest.cs
+++ b/Assets/Tests/SimpleMirrorTest.cs
@@ -92,7 +92,23 @@ public void MirrorNoteNE()
         }
 
         [Test]
+        [TestCase(null, null, EventGridContainer.PropMode.Off)]
+        [TestCase(null, null, EventGridContainer.PropMode.Light)]
+        [TestCase(null, null, EventGridContainer.PropMode.Prop)]
+        
+        // Should not affect lightID if off
+        [TestCase("[1]", "[1]", EventGridContainer.PropMode.Off)]
+        [TestCase("[2]", "[2]", EventGridContainer.PropMode.Off)]
+        [TestCase("[1,2]", "[1,2]", EventGridContainer.PropMode.Off)]
+        
+        // Should mirror to first relevant lightID
+        [TestCase("[1]", "[10]", EventGridContainer.PropMode.Light)]
         [TestCase("[2]", "[9]", EventGridContainer.PropMode.Light)]
+        [TestCase("[1,2]", "[10]", EventGridContainer.PropMode.Light)]
+        
+        // Should mirror to first relevant lightID group
+        [TestCase("[1]", "[9,10]", EventGridContainer.PropMode.Prop)]
+        [TestCase("[2]", "[9,10]", EventGridContainer.PropMode.Prop)]
         [TestCase("[1,2]","[9,10]", EventGridContainer.PropMode.Prop)]
         public void MirrorEventLightID(string original, string mirror, EventGridContainer.PropMode propMode)
         {

From cc61c2932a59c8652200f584afbf70c06aad40cf Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 5 Jul 2024 17:33:03 +1000
Subject: [PATCH 12/35] Fix dragged note cut direction appearance not updating

---
 .../MapEditor/Mapping/PlacementControllers/NotePlacement.cs    | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/Assets/__Scripts/MapEditor/Mapping/PlacementControllers/NotePlacement.cs b/Assets/__Scripts/MapEditor/Mapping/PlacementControllers/NotePlacement.cs
index bc996e363..cc92e4acc 100644
--- a/Assets/__Scripts/MapEditor/Mapping/PlacementControllers/NotePlacement.cs
+++ b/Assets/__Scripts/MapEditor/Mapping/PlacementControllers/NotePlacement.cs
@@ -262,7 +262,10 @@ public override void TransferQueuedToDraggedObject(ref BaseNote dragged, BaseNot
         dragged.CutDirection = queued.CutDirection;
         dragged.CustomCoordinate = queued.CustomCoordinate;
         if (DraggedObjectContainer != null)
+        {
             DraggedObjectContainer.DirectionTarget.localEulerAngles = NoteContainer.Directionalize(dragged);
+            DraggedObjectContainer.DirectionTargetEuler = NoteContainer.Directionalize(dragged);
+        }
         noteAppearanceSo.SetNoteAppearance(DraggedObjectContainer);
 
         TransferQueuedToAttachedDraggedSliders(queued);

From 886d437a720182655d7ef73e39d6ebf74cd0902a Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 5 Jul 2024 17:52:13 +1000
Subject: [PATCH 13/35] Only refresh pool on preview mode change

---
 .../MapEditor/Grid/Collections/ChainGridContainer.cs |  9 +++------
 .../Grid/Collections/CustomEventGridContainer.cs     |  9 +++------
 .../MapEditor/Grid/Collections/NoteGridContainer.cs  |  9 +++------
 .../Grid/Collections/ObstacleGridContainer.cs        |  9 +++------
 Assets/__Scripts/MapEditor/UI/UIMode.cs              | 12 +++++++++++-
 5 files changed, 23 insertions(+), 25 deletions(-)

diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/ChainGridContainer.cs b/Assets/__Scripts/MapEditor/Grid/Collections/ChainGridContainer.cs
index 636190fde..b13ca4f9a 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/ChainGridContainer.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/ChainGridContainer.cs
@@ -67,7 +67,7 @@ internal override void SubscribeToCallbacks()
         SpawnCallbackController.RecursiveChainCheckFinished += RecursiveCheckFinished;
         DespawnCallbackController.ChainPassedThreshold += DespawnCallback;
         AudioTimeSyncController.PlayToggle += OnPlayToggle;
-        UIMode.UIModeSwitched += OnUIModeSwitch;
+        UIMode.PreviewModeSwitched += OnUIPreviewModeSwitch;
 
         Settings.NotifyBySettingName(nameof(Settings.NoteColorMultiplier), AppearanceChanged);
         Settings.NotifyBySettingName(nameof(Settings.ArrowColorMultiplier), AppearanceChanged);
@@ -83,7 +83,7 @@ internal override void UnsubscribeToCallbacks()
         SpawnCallbackController.RecursiveChainCheckFinished -= RecursiveCheckFinished;
         DespawnCallbackController.ChainPassedThreshold -= DespawnCallback;
         AudioTimeSyncController.PlayToggle -= OnPlayToggle;
-        UIMode.UIModeSwitched -= OnUIModeSwitch;
+        UIMode.PreviewModeSwitched -= OnUIPreviewModeSwitch;
 
         Settings.ClearSettingNotifications(nameof(Settings.NoteColorMultiplier));
         Settings.ClearSettingNotifications(nameof(Settings.ArrowColorMultiplier));
@@ -101,10 +101,7 @@ private void OnPlayToggle(bool isPlaying)
         }
     }
 
-    private void OnUIModeSwitch(UIModeType newMode)
-    {
-        RefreshPool(true);
-    }
+    private void OnUIPreviewModeSwitch() => RefreshPool(true);
 
     private void RecursiveCheckFinished(bool natural, int lastPassedIndex) => RefreshPool();
 
diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/CustomEventGridContainer.cs b/Assets/__Scripts/MapEditor/Grid/Collections/CustomEventGridContainer.cs
index 4116805c3..cdd36ec61 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/CustomEventGridContainer.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/CustomEventGridContainer.cs
@@ -183,10 +183,7 @@ protected override void OnObjectSpawned(BaseObject obj, bool inCollection = fals
         LoadAnimationTracks();
     }
 
-    private void OnUIModeSwitch(UIModeType newMode)
-    {
-        RefreshPool(true);
-    }
+    private void OnUIPreviewModeSwitch() => RefreshPool(true);
 
     public override void RefreshPool(bool force)
     {
@@ -235,7 +232,7 @@ private void RefreshTrack()
     internal override void SubscribeToCallbacks()
     {
         LoadInitialMap.LevelLoadedEvent += SetInitialTracks;
-        UIMode.UIModeSwitched += OnUIModeSwitch;
+        UIMode.PreviewModeSwitched += OnUIPreviewModeSwitch;
     }
 
     private void SetInitialTracks()
@@ -257,7 +254,7 @@ private void SetInitialTracks()
     internal override void UnsubscribeToCallbacks()
     {
         LoadInitialMap.LevelLoadedEvent -= SetInitialTracks;
-        UIMode.UIModeSwitched -= OnUIModeSwitch;
+        UIMode.PreviewModeSwitched -= OnUIPreviewModeSwitch;
     }
 
     private void CreateNewType()
diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/NoteGridContainer.cs b/Assets/__Scripts/MapEditor/Grid/Collections/NoteGridContainer.cs
index f95b9bba2..8ad0a3a43 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/NoteGridContainer.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/NoteGridContainer.cs
@@ -27,7 +27,7 @@ internal override void SubscribeToCallbacks()
         SpawnCallbackController.RecursiveNoteCheckFinished += RecursiveCheckFinished;
         DespawnCallbackController.NotePassedThreshold += DespawnCallback;
         AudioTimeSyncController.PlayToggle += OnPlayToggle;
-        UIMode.UIModeSwitched += OnUIModeSwitch;
+        UIMode.PreviewModeSwitched += OnUIPreviewModeSwitch;
 
         Settings.NotifyBySettingName(nameof(Settings.NoteColorMultiplier), AppearanceChanged);
         Settings.NotifyBySettingName(nameof(Settings.ArrowColorMultiplier), AppearanceChanged);
@@ -40,7 +40,7 @@ internal override void UnsubscribeToCallbacks()
         SpawnCallbackController.RecursiveNoteCheckFinished -= RecursiveCheckFinished;
         DespawnCallbackController.NotePassedThreshold -= DespawnCallback;
         AudioTimeSyncController.PlayToggle -= OnPlayToggle;
-        UIMode.UIModeSwitched -= OnUIModeSwitch;
+        UIMode.PreviewModeSwitched -= OnUIPreviewModeSwitch;
 
         Settings.ClearSettingNotifications(nameof(Settings.NoteColorMultiplier));
         Settings.ClearSettingNotifications(nameof(Settings.ArrowColorMultiplier));
@@ -52,10 +52,7 @@ private void OnPlayToggle(bool isPlaying)
         if (!isPlaying) RefreshPool();
     }
 
-    private void OnUIModeSwitch(UIModeType newMode)
-    {
-        RefreshPool(true);
-    }
+    private void OnUIPreviewModeSwitch() => RefreshPool(true);
 
     private void AppearanceChanged(object _) => RefreshPool(true);
 
diff --git a/Assets/__Scripts/MapEditor/Grid/Collections/ObstacleGridContainer.cs b/Assets/__Scripts/MapEditor/Grid/Collections/ObstacleGridContainer.cs
index 172118725..5c05ffb70 100644
--- a/Assets/__Scripts/MapEditor/Grid/Collections/ObstacleGridContainer.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Collections/ObstacleGridContainer.cs
@@ -30,7 +30,7 @@ internal override void SubscribeToCallbacks()
         Shader.SetGlobalFloat(outsideAlpha, 0.25f);
         AudioTimeSyncController.PlayToggle += OnPlayToggle;
         AudioTimeSyncController.TimeChanged += OnTimeChanged;
-        UIMode.UIModeSwitched += OnUIModeSwitch;
+        UIMode.PreviewModeSwitched += OnUIPreviewModeSwitch;
 
         Settings.NotifyBySettingName(nameof(Settings.ObstacleOpacity), ObstacleOpacityChanged);
         ObstacleOpacityChanged(Settings.Instance.ObstacleOpacity);
@@ -40,7 +40,7 @@ internal override void UnsubscribeToCallbacks()
     {
         AudioTimeSyncController.PlayToggle -= OnPlayToggle;
         AudioTimeSyncController.TimeChanged -= OnTimeChanged;
-        UIMode.UIModeSwitched -= OnUIModeSwitch;
+        UIMode.PreviewModeSwitched -= OnUIPreviewModeSwitch;
 
         Settings.ClearSettingNotifications(nameof(Settings.ObstacleOpacity));
     }
@@ -67,10 +67,7 @@ public override void RefreshPool(bool force)
         }
     }
 
-    private void OnUIModeSwitch(UIModeType newMode)
-    {
-        RefreshPool(true);
-    }
+    private void OnUIPreviewModeSwitch() => RefreshPool(true);
 
     public void UpdateColor(Color obstacle) => obstacleAppearanceSo.DefaultObstacleColor = obstacle;
 
diff --git a/Assets/__Scripts/MapEditor/UI/UIMode.cs b/Assets/__Scripts/MapEditor/UI/UIMode.cs
index 82ddff931..6c909a0fd 100644
--- a/Assets/__Scripts/MapEditor/UI/UIMode.cs
+++ b/Assets/__Scripts/MapEditor/UI/UIMode.cs
@@ -16,6 +16,7 @@ public class UIMode : MonoBehaviour, CMInput.IUIModeActions
     private Quaternion savedCamRotation = Quaternion.identity;
 
     public static Action<UIModeType> UIModeSwitched;
+    public static Action PreviewModeSwitched;
 
     [SerializeField] private GameObject modesGameObject;
     [SerializeField] private RectTransform selected;
@@ -47,6 +48,7 @@ private void Awake()
         modes.AddRange(modesGameObject.transform.GetComponentsInChildren<TextMeshProUGUI>());
         canvasGroup = GetComponent<CanvasGroup>();
         UIModeSwitched = null;
+        PreviewModeSwitched = null;
         SelectedMode = UIModeType.Normal;
         savedCamPosition = Settings.Instance.SavedPositions[0]?.Position ?? savedCamPosition;
         savedCamRotation = Settings.Instance.SavedPositions[0]?.Rotation ?? savedCamRotation;
@@ -180,10 +182,18 @@ private void OnPlayToggle(bool playing)
 
     public void SetUIMode(int modeID, bool showUIChange = true)
     {
+        var previousPreviewMode = PreviewMode;
+        
         SelectedMode = (UIModeType)modeID;
-        PreviewMode = (SelectedMode == UIModeType.Playing || SelectedMode == UIModeType.Preview);
+        PreviewMode = SelectedMode is UIModeType.Playing or UIModeType.Preview;
         AnimationMode = PreviewMode && Settings.Instance.Animations;
+
+        if (previousPreviewMode != PreviewMode)
+        {
+            PreviewModeSwitched?.Invoke();
+        }
         UIModeSwitched?.Invoke(SelectedMode);
+        
         selected.SetParent(modes[modeID].transform, true);
         slideSelectionCoroutine = StartCoroutine(SlideSelection());
         if (showUIChange) showUI = StartCoroutine(ShowUI());

From 291904d4e1532720bf9de0c818b7d5e5487d8221 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 5 Jul 2024 17:58:00 +1000
Subject: [PATCH 14/35] Remove bpm tapper blocking UIMode switch

---
 Assets/__Scripts/MapEditor/UI/UIMode.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Assets/__Scripts/MapEditor/UI/UIMode.cs b/Assets/__Scripts/MapEditor/UI/UIMode.cs
index 6c909a0fd..fead3607f 100644
--- a/Assets/__Scripts/MapEditor/UI/UIMode.cs
+++ b/Assets/__Scripts/MapEditor/UI/UIMode.cs
@@ -69,7 +69,7 @@ private void Start()
 
     public void OnToggleUIMode(InputAction.CallbackContext context)
     {
-        if (context.performed && !BPMTapperController.IsActive)
+        if (context.performed)
         {
             ToggleUIMode(true);
         }

From 2ba4d34038eddb3757eb83e153b83a6c366691b7 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 5 Jul 2024 18:03:31 +1000
Subject: [PATCH 15/35] Distinguish Reverse from other UIMode actions

The brackets indicate it functions like the others so removing it
---
 Assets/Input/Master.cs           | 10 +++++-----
 Assets/Input/Master.inputactions |  8 ++++----
 2 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/Assets/Input/Master.cs b/Assets/Input/Master.cs
index 29a93c020..434bf6dcc 100644
--- a/Assets/Input/Master.cs
+++ b/Assets/Input/Master.cs
@@ -3601,7 +3601,7 @@ public @CMInput()
                     ""initialStateCheck"": false
                 },
                 {
-                    ""name"": ""Toggle UI Mode (Reverse)"",
+                    ""name"": ""Toggle UI Mode Reverse"",
                     ""type"": ""Button"",
                     ""id"": ""20bb8021-4bb8-4be2-94c1-9600fd1a8208"",
                     ""expectedControlType"": ""Button"",
@@ -3696,7 +3696,7 @@ public @CMInput()
                     ""interactions"": """",
                     ""processors"": """",
                     ""groups"": """",
-                    ""action"": ""Toggle UI Mode (Reverse)"",
+                    ""action"": ""Toggle UI Mode Reverse"",
                     ""isComposite"": true,
                     ""isPartOfComposite"": false
                 },
@@ -3707,7 +3707,7 @@ public @CMInput()
                     ""interactions"": """",
                     ""processors"": """",
                     ""groups"": ""ChroMapper Default"",
-                    ""action"": ""Toggle UI Mode (Reverse)"",
+                    ""action"": ""Toggle UI Mode Reverse"",
                     ""isComposite"": false,
                     ""isPartOfComposite"": true
                 },
@@ -3718,7 +3718,7 @@ public @CMInput()
                     ""interactions"": """",
                     ""processors"": """",
                     ""groups"": ""ChroMapper Default"",
-                    ""action"": ""Toggle UI Mode (Reverse)"",
+                    ""action"": ""Toggle UI Mode Reverse"",
                     ""isComposite"": false,
                     ""isPartOfComposite"": true
                 },
@@ -5239,7 +5239,7 @@ public @CMInput()
         // UI Mode
         m_UIMode = asset.FindActionMap("UI Mode", throwIfNotFound: true);
         m_UIMode_ToggleUIMode = m_UIMode.FindAction("Toggle UI Mode", throwIfNotFound: true);
-        m_UIMode_ToggleUIModeReverse = m_UIMode.FindAction("Toggle UI Mode (Reverse)", throwIfNotFound: true);
+        m_UIMode_ToggleUIModeReverse = m_UIMode.FindAction("Toggle UI Mode Reverse", throwIfNotFound: true);
         m_UIMode_ToggleUIModeNormal = m_UIMode.FindAction("Toggle UI Mode (Normal)", throwIfNotFound: true);
         m_UIMode_ToggleUIModeHideUI = m_UIMode.FindAction("Toggle UI Mode (Hide UI)", throwIfNotFound: true);
         m_UIMode_ToggleUIModeHideGrids = m_UIMode.FindAction("Toggle UI Mode (Hide Grids)", throwIfNotFound: true);
diff --git a/Assets/Input/Master.inputactions b/Assets/Input/Master.inputactions
index badba931f..d9af77bc6 100644
--- a/Assets/Input/Master.inputactions
+++ b/Assets/Input/Master.inputactions
@@ -3579,7 +3579,7 @@
                     "initialStateCheck": false
                 },
                 {
-                    "name": "Toggle UI Mode (Reverse)",
+                    "name": "Toggle UI Mode Reverse",
                     "type": "Button",
                     "id": "20bb8021-4bb8-4be2-94c1-9600fd1a8208",
                     "expectedControlType": "Button",
@@ -3674,7 +3674,7 @@
                     "interactions": "",
                     "processors": "",
                     "groups": "",
-                    "action": "Toggle UI Mode (Reverse)",
+                    "action": "Toggle UI Mode Reverse",
                     "isComposite": true,
                     "isPartOfComposite": false
                 },
@@ -3685,7 +3685,7 @@
                     "interactions": "",
                     "processors": "",
                     "groups": "ChroMapper Default",
-                    "action": "Toggle UI Mode (Reverse)",
+                    "action": "Toggle UI Mode Reverse",
                     "isComposite": false,
                     "isPartOfComposite": true
                 },
@@ -3696,7 +3696,7 @@
                     "interactions": "",
                     "processors": "",
                     "groups": "ChroMapper Default",
-                    "action": "Toggle UI Mode (Reverse)",
+                    "action": "Toggle UI Mode Reverse",
                     "isComposite": false,
                     "isPartOfComposite": true
                 },

From 326b3b12d91ff094051367174b2bc6d6edcb2d8f Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 5 Jul 2024 18:07:56 +1000
Subject: [PATCH 16/35] Remove now unused bookmark color keybind

---
 Assets/Input/Master.cs                  | 30 -------------------------
 Assets/Input/Master.inputactions        | 20 -----------------
 Assets/__Scripts/MapEditor/UI/UIMode.cs |  2 --
 3 files changed, 52 deletions(-)

diff --git a/Assets/Input/Master.cs b/Assets/Input/Master.cs
index 434bf6dcc..9527733cf 100644
--- a/Assets/Input/Master.cs
+++ b/Assets/Input/Master.cs
@@ -1846,15 +1846,6 @@ public @CMInput()
                     ""processors"": """",
                     ""interactions"": ""Press"",
                     ""initialStateCheck"": false
-                },
-                {
-                    ""name"": ""Color Bookmark Modifier"",
-                    ""type"": ""Button"",
-                    ""id"": ""4439bbde-d3c0-49f8-9005-d710ca8202b0"",
-                    ""expectedControlType"": ""Button"",
-                    ""processors"": """",
-                    ""interactions"": """",
-                    ""initialStateCheck"": false
                 }
             ],
             ""bindings"": [
@@ -1890,17 +1881,6 @@ public @CMInput()
                     ""action"": ""Previous Bookmark"",
                     ""isComposite"": false,
                     ""isPartOfComposite"": false
-                },
-                {
-                    ""name"": """",
-                    ""id"": ""eaa182da-bc19-4c48-b13e-af966ffe9485"",
-                    ""path"": ""<Keyboard>/shift"",
-                    ""interactions"": """",
-                    ""processors"": """",
-                    ""groups"": """",
-                    ""action"": ""Color Bookmark Modifier"",
-                    ""isComposite"": false,
-                    ""isPartOfComposite"": false
                 }
             ]
         },
@@ -5155,7 +5135,6 @@ public @CMInput()
         m_Bookmarks_CreateNewBookmark = m_Bookmarks.FindAction("Create New Bookmark", throwIfNotFound: true);
         m_Bookmarks_NextBookmark = m_Bookmarks.FindAction("Next Bookmark", throwIfNotFound: true);
         m_Bookmarks_PreviousBookmark = m_Bookmarks.FindAction("Previous Bookmark", throwIfNotFound: true);
-        m_Bookmarks_ColorBookmarkModifier = m_Bookmarks.FindAction("Color Bookmark Modifier", throwIfNotFound: true);
         // Refresh Map
         m_RefreshMap = asset.FindActionMap("Refresh Map", throwIfNotFound: true);
         m_RefreshMap_RefreshMap = m_RefreshMap.FindAction("Refresh Map", throwIfNotFound: true);
@@ -6273,7 +6252,6 @@ public void SetCallbacks(ISavingActions instance)
     private readonly InputAction m_Bookmarks_CreateNewBookmark;
     private readonly InputAction m_Bookmarks_NextBookmark;
     private readonly InputAction m_Bookmarks_PreviousBookmark;
-    private readonly InputAction m_Bookmarks_ColorBookmarkModifier;
     public struct BookmarksActions
     {
         private @CMInput m_Wrapper;
@@ -6281,7 +6259,6 @@ public struct BookmarksActions
         public InputAction @CreateNewBookmark => m_Wrapper.m_Bookmarks_CreateNewBookmark;
         public InputAction @NextBookmark => m_Wrapper.m_Bookmarks_NextBookmark;
         public InputAction @PreviousBookmark => m_Wrapper.m_Bookmarks_PreviousBookmark;
-        public InputAction @ColorBookmarkModifier => m_Wrapper.m_Bookmarks_ColorBookmarkModifier;
         public InputActionMap Get() { return m_Wrapper.m_Bookmarks; }
         public void Enable() { Get().Enable(); }
         public void Disable() { Get().Disable(); }
@@ -6300,9 +6277,6 @@ public void AddCallbacks(IBookmarksActions instance)
             @PreviousBookmark.started += instance.OnPreviousBookmark;
             @PreviousBookmark.performed += instance.OnPreviousBookmark;
             @PreviousBookmark.canceled += instance.OnPreviousBookmark;
-            @ColorBookmarkModifier.started += instance.OnColorBookmarkModifier;
-            @ColorBookmarkModifier.performed += instance.OnColorBookmarkModifier;
-            @ColorBookmarkModifier.canceled += instance.OnColorBookmarkModifier;
         }
 
         private void UnregisterCallbacks(IBookmarksActions instance)
@@ -6316,9 +6290,6 @@ private void UnregisterCallbacks(IBookmarksActions instance)
             @PreviousBookmark.started -= instance.OnPreviousBookmark;
             @PreviousBookmark.performed -= instance.OnPreviousBookmark;
             @PreviousBookmark.canceled -= instance.OnPreviousBookmark;
-            @ColorBookmarkModifier.started -= instance.OnColorBookmarkModifier;
-            @ColorBookmarkModifier.performed -= instance.OnColorBookmarkModifier;
-            @ColorBookmarkModifier.canceled -= instance.OnColorBookmarkModifier;
         }
 
         public void RemoveCallbacks(IBookmarksActions instance)
@@ -8510,7 +8481,6 @@ public interface IBookmarksActions
         void OnCreateNewBookmark(InputAction.CallbackContext context);
         void OnNextBookmark(InputAction.CallbackContext context);
         void OnPreviousBookmark(InputAction.CallbackContext context);
-        void OnColorBookmarkModifier(InputAction.CallbackContext context);
     }
     public interface IRefreshMapActions
     {
diff --git a/Assets/Input/Master.inputactions b/Assets/Input/Master.inputactions
index d9af77bc6..57028b5c6 100644
--- a/Assets/Input/Master.inputactions
+++ b/Assets/Input/Master.inputactions
@@ -1824,15 +1824,6 @@
                     "processors": "",
                     "interactions": "Press",
                     "initialStateCheck": false
-                },
-                {
-                    "name": "Color Bookmark Modifier",
-                    "type": "Button",
-                    "id": "4439bbde-d3c0-49f8-9005-d710ca8202b0",
-                    "expectedControlType": "Button",
-                    "processors": "",
-                    "interactions": "",
-                    "initialStateCheck": false
                 }
             ],
             "bindings": [
@@ -1868,17 +1859,6 @@
                     "action": "Previous Bookmark",
                     "isComposite": false,
                     "isPartOfComposite": false
-                },
-                {
-                    "name": "",
-                    "id": "eaa182da-bc19-4c48-b13e-af966ffe9485",
-                    "path": "<Keyboard>/shift",
-                    "interactions": "",
-                    "processors": "",
-                    "groups": "",
-                    "action": "Color Bookmark Modifier",
-                    "isComposite": false,
-                    "isPartOfComposite": false
                 }
             ]
         },
diff --git a/Assets/__Scripts/MapEditor/UI/UIMode.cs b/Assets/__Scripts/MapEditor/UI/UIMode.cs
index fead3607f..ccee06039 100644
--- a/Assets/__Scripts/MapEditor/UI/UIMode.cs
+++ b/Assets/__Scripts/MapEditor/UI/UIMode.cs
@@ -26,8 +26,6 @@ public class UIMode : MonoBehaviour, CMInput.IUIModeActions
     [FormerlySerializedAs("_rotationCallbackController")] [SerializeField] private RotationCallbackController rotationCallbackController;
     [SerializeField] private AudioTimeSyncController atsc;
 
-    public string Keybind = "CTRL+H";
-
     private readonly List<TextMeshProUGUI> modes = new List<TextMeshProUGUI>();
     private readonly List<Renderer> renderers = new List<Renderer>();
     private readonly List<Canvas> canvases = new List<Canvas>();

From f14fa8a6194c8fc3d2b33c5fbfb66fd08c41e5f2 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Tue, 9 Jul 2024 19:21:12 +1000
Subject: [PATCH 17/35] Fix edit bookmark initial value

---
 Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
index 7c6a5967e..f6471eb35 100644
--- a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
+++ b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
@@ -88,7 +88,7 @@ private void DisplayBookmarkEditUI()
 
         var colorPicker = dialogBox
             .AddComponent<NestedColorPickerComponent>()
-            .WithInitialValue(GetComponent<Image>().color)
+            .WithInitialValue(Data.Color)
             .WithLabel("Mapper", "bookmark.dialog.color");
 
         Action handleEdit = () =>

From c7c121405eda1f22acf616b4bf5c3f980d60737e Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Tue, 9 Jul 2024 21:25:36 +1000
Subject: [PATCH 18/35] Fix nested color picker submit not updating correctly

---
 .../Components/NestedColorPickerComponent.cs          | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/Assets/__Scripts/CMUI/CMUI Components/Components/NestedColorPickerComponent.cs b/Assets/__Scripts/CMUI/CMUI Components/Components/NestedColorPickerComponent.cs
index 8204e4126..f06ed2a24 100644
--- a/Assets/__Scripts/CMUI/CMUI Components/Components/NestedColorPickerComponent.cs	
+++ b/Assets/__Scripts/CMUI/CMUI Components/Components/NestedColorPickerComponent.cs	
@@ -7,6 +7,7 @@ public class NestedColorPickerComponent : CMUIComponentWithLabel<Color>, INaviga
     // Cached dialog box
     private static DialogBox nestedDialogBox;
     private static ColorPickerComponent nestedColorPicker;
+    private static ButtonComponent submitButton;
 
     [SerializeField] private Button editButton;
     [SerializeField] private TextMeshProUGUI hexColorText;
@@ -68,12 +69,20 @@ private void OnEditButtonClick()
 
             var cancel = nestedDialogBox.AddFooterButton(null, "PersistentUI", "cancel");
 
-            var submit = nestedDialogBox.AddFooterButton(() => Value = nestedColorPicker.Value, "PersistentUI", "ok");
+            submitButton = nestedDialogBox.AddFooterButton(() => Value = nestedColorPicker.Value, "PersistentUI", "ok");
 
             nestedDialogBox.OnQuickSubmit(() => OnValueUpdated(nestedColorPicker.Value));
         }
         else
         {
+            // We need to refresh the submit and quick submit callbacks here otherwise the cached instance will be
+            // editing the previewImage and hexColorText from the first dialog this was created from
+            submitButton.OnClick(() => {
+                Value = nestedColorPicker.Value;
+                nestedDialogBox.Close();
+            });
+            nestedDialogBox.OnQuickSubmit(() => OnValueUpdated(nestedColorPicker.Value));
+            
             nestedColorPicker.Value = Value;
         }
 

From bff26f474bc5712dd145d5e3760f02e4433df1c3 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Wed, 10 Jul 2024 00:08:18 +1000
Subject: [PATCH 19/35] Fix playback stopping on bookmark click

---
 .../UI/Bookmarks/BookmarkContainer.cs         | 20 +++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
index f6471eb35..b4f72a3b4 100644
--- a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
+++ b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
@@ -5,7 +5,7 @@
 using UnityEngine.Localization.Settings;
 using UnityEngine.UI;
 
-public class BookmarkContainer : MonoBehaviour, IPointerClickHandler, IPointerUpHandler
+public class BookmarkContainer : MonoBehaviour, IPointerClickHandler, IPointerDownHandler, IPointerUpHandler
 {
     private BookmarkManager manager;
     public BaseBookmark Data { get; private set; }
@@ -62,8 +62,6 @@ public void OnPointerClick(PointerEventData eventData)
         switch (eventData.button)
         {
             case PointerEventData.InputButton.Left:
-                manager.Tipc.PointerDown();
-                manager.Atsc.MoveToJsonTime(Data.JsonTime);
                 break;
             case PointerEventData.InputButton.Middle:
                 PersistentUI.Instance.ShowDialogBox("Mapper", "bookmark.delete", HandleDeleteBookmark,
@@ -117,10 +115,24 @@ private void DisplayBookmarkEditUI()
         dialogBox.Open();
     }
 
+    #region Timeline Playback
+    public void OnPointerDown(PointerEventData eventData)
+    {
+        if (eventData.button == PointerEventData.InputButton.Left)
+        {
+            manager.Tipc.PointerDown();
+            manager.Atsc.MoveToJsonTime(Data.JsonTime);
+        }
+    }
+
     public void OnPointerUp(PointerEventData eventData)
     {
-        if (eventData.button == PointerEventData.InputButton.Left) manager.Tipc.PointerUp();
+        if (eventData.button == PointerEventData.InputButton.Left)
+        {
+            manager.Tipc.PointerUp();
+        }
     }
+    #endregion
 
     internal void HandleDeleteBookmark(int res)
     {

From b256eb7901ac8142e0b0e8abfc164a3286ae852f Mon Sep 17 00:00:00 2001
From: Fallen Charlotte <fallencharlotte@pm.me>
Date: Wed, 10 Jul 2024 16:24:02 -0700
Subject: [PATCH 20/35] Fix the open config folder button on Linux (#534)

* Fix the open config folder button on Linux

* Helper function for OS file browser
---
 Assets/__Scripts/MapEditor/MapExporter.cs     | 24 +---------------
 Assets/__Scripts/OSTools.cs                   | 28 +++++++++++++++++++
 Assets/__Scripts/OSTools.cs.meta              | 11 ++++++++
 Assets/__Scripts/UI/DevConsole.cs             |  9 +-----
 .../__Scripts/UI/Options/OptionsController.cs | 16 +----------
 5 files changed, 42 insertions(+), 46 deletions(-)
 create mode 100644 Assets/__Scripts/OSTools.cs
 create mode 100644 Assets/__Scripts/OSTools.cs.meta

diff --git a/Assets/__Scripts/MapEditor/MapExporter.cs b/Assets/__Scripts/MapEditor/MapExporter.cs
index cfd3d4fc7..8e2062670 100644
--- a/Assets/__Scripts/MapEditor/MapExporter.cs
+++ b/Assets/__Scripts/MapEditor/MapExporter.cs
@@ -162,28 +162,6 @@ public void OpenSelectedMapInFileBrowser()
         }
 
         var path = song.Directory;
-#if UNITY_STANDALONE_WIN
-        path = path.Replace("/", "\\").Replace("\\\\", "\\");
-#else
-        path = path.Replace("\\", "/").Replace("//", "/");
-#endif
-        if (!path.StartsWith("\"")) path = "\"" + path;
-        if (!path.EndsWith("\"")) path += "\"";
-
-#if UNITY_STANDALONE_WIN
-        Debug.Log($"Opening song directory ({path}) with Windows...");
-        Process.Start("explorer.exe", path);
-#elif UNITY_STANDALONE_OSX
-        Debug.Log($"Opening song directory ({path}) with Mac...");
-        Process.Start("open", path);
-#elif UNITY_STANDALONE_LINUX
-        Debug.Log($"Opening song directory ({path}) with Linux...");
-        Process.Start("xdg-open", path);
-#else
-        Debug.Log("What is this, some UNIX bullshit?");
-        PersistentUI.Instance.ShowDialogBox(
-            "Unrecognized OS!\n\nIf you happen to know this OS and would like to contribute," +
-            " please contact me on Discord: Caeden117#0117", null, PersistentUI.DialogBoxPresetType.Ok);
-#endif
+        OSTools.OpenFileBrowser(path);
     }
 }
diff --git a/Assets/__Scripts/OSTools.cs b/Assets/__Scripts/OSTools.cs
new file mode 100644
index 000000000..47bf6ac55
--- /dev/null
+++ b/Assets/__Scripts/OSTools.cs
@@ -0,0 +1,28 @@
+
+
+public class OSTools
+{
+    public static void OpenFileBrowser(string path)
+    {
+#if UNITY_STANDALONE_WIN
+        path = path.Replace("/", "\\").Replace("\\\\", "\\");
+#else
+        path = path.Replace("\\", "/").Replace("//", "/");
+#endif
+
+        if (!path.StartsWith("\"")) path = "\"" + path;
+        if (!path.EndsWith("\"")) path += "\"";
+
+#if UNITY_STANDALONE_WIN
+        System.Diagnostics.Process.Start("explorer.exe", $"{path}");
+#elif UNITY_STANDALONE_OSX
+        System.Diagnostics.Process.Start("open", path);
+#elif UNITY_STANDALONE_LINUX
+        System.Diagnostics.Process.Start("xdg-open", path);
+#else
+        Debug.LogError(
+            "Unrecognized OS! If you happen to know this OS and would like to contribute," +
+            " please contact me on Discord: Caeden117#0117");
+#endif
+    }
+}
diff --git a/Assets/__Scripts/OSTools.cs.meta b/Assets/__Scripts/OSTools.cs.meta
new file mode 100644
index 000000000..3f99bd7b9
--- /dev/null
+++ b/Assets/__Scripts/OSTools.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e626bf4214b4c4c78b4d471b81d245ae
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Assets/__Scripts/UI/DevConsole.cs b/Assets/__Scripts/UI/DevConsole.cs
index fbb223ab4..63b5f7e24 100644
--- a/Assets/__Scripts/UI/DevConsole.cs
+++ b/Assets/__Scripts/UI/DevConsole.cs
@@ -149,14 +149,7 @@ public void OpenFolder()
         try
         {
             var path = Application.persistentDataPath;
-#if UNITY_STANDALONE_WIN
-            path = path.Replace("/", "\\").Replace("\\\\", "\\");
-            System.Diagnostics.Process.Start("explorer.exe", $"\"{path}\"");
-#elif UNITY_STANDALONE_OSX
-            System.Diagnostics.Process.Start("open", path);
-#elif UNITY_STANDALONE_LINUX
-            System.Diagnostics.Process.Start("open", path);
-#endif
+            OSTools.OpenFileBrowser(path);
         }
         catch
         {
diff --git a/Assets/__Scripts/UI/Options/OptionsController.cs b/Assets/__Scripts/UI/Options/OptionsController.cs
index 9d5120f88..ab1edfeb2 100644
--- a/Assets/__Scripts/UI/Options/OptionsController.cs
+++ b/Assets/__Scripts/UI/Options/OptionsController.cs
@@ -48,21 +48,7 @@ public void OpenPluginsFolder()
         if (!Directory.Exists(pluginsDir))
             Directory.CreateDirectory(pluginsDir);
 
-#if UNITY_STANDALONE_WIN
-        Debug.Log($"Opening plugins directory ({pluginsDir}) with Windows...");
-        Process.Start("explorer.exe", pluginsDir);
-#elif UNITY_STANDALONE_OSX
-        Debug.Log($"Opening plugins directory ({pluginsDir}) with Mac...");
-        Process.Start("open", pluginsDir);
-#elif UNITY_STANDALONE_LINUX
-        Debug.Log($"Opening plugins directory ({pluginsDir}) with Linux...");
-        Process.Start("xdg-open", pluginsDir);
-#else
-        Debug.Log("What is this, some UNIX bullshit?");
-        PersistentUI.Instance.ShowDialogBox(
-            "Unrecognized OS!\n\nIf you happen to know this OS and would like to contribute," +
-            " please contact me on Discord: Caeden117#0117", null, PersistentUI.DialogBoxPresetType.Ok);
-#endif
+        OSTools.OpenFileBrowser(pluginsDir);
     }
 
     private IEnumerator CloseOptions()

From 7047008572b356350ff30e835a262c35f7adb4fd Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 12 Jul 2024 20:12:16 +1000
Subject: [PATCH 21/35] Fix transition easing ordering

---
 Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs | 2 +-
 Assets/__Scripts/Platforms/PlatformDescriptor.cs          | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs b/Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs
index c04a78eaf..a79367b5d 100644
--- a/Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs
+++ b/Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs
@@ -235,7 +235,7 @@ public void SetEventAppearance(EventContainer e, bool final = true, bool boost =
 
             if (Settings.Instance.VisualizeChromaGradients)
             {
-                e.UpdateGradientRendering(color, nextColor, nextEvent?.CustomEasing ?? "easeLinear");
+                e.UpdateGradientRendering(color, nextColor, e.EventData?.CustomEasing ?? "easeLinear");
             }
 
             e.UpdateMaterials();
diff --git a/Assets/__Scripts/Platforms/PlatformDescriptor.cs b/Assets/__Scripts/Platforms/PlatformDescriptor.cs
index c0f7df15c..6848037ed 100644
--- a/Assets/__Scripts/Platforms/PlatformDescriptor.cs
+++ b/Assets/__Scripts/Platforms/PlatformDescriptor.cs
@@ -1,4 +1,4 @@
-using System.Collections;
+using System.Collections;
 using System.Collections.Generic;
 using System.Linq;
 using Beatmap.Base;
@@ -488,7 +488,7 @@ private void TrySetTransition(LightingEvent light, BaseEvent e)
 
             light.UpdateTargetColor(targetColor.Multiply(LightsManager.HDRIntensity), transitionTime);
             light.UpdateTargetAlpha(targetAlpha, transitionTime);
-            light.UpdateEasing(transition.CustomEasing ?? "easeLinear");
+            light.UpdateEasing(e.CustomEasing ?? "easeLinear");
         }
     }
 

From 7410d147dd0dc3b2b1a930d2a2a4ff1f16f94a3f Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 12 Jul 2024 20:12:57 +1000
Subject: [PATCH 22/35] Yeet commented out code

---
 .../Beatmap/Appearances/EventAppearanceSO.cs  | 122 ------------------
 1 file changed, 122 deletions(-)

diff --git a/Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs b/Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs
index a79367b5d..0fdc53df1 100644
--- a/Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs
+++ b/Assets/__Scripts/Beatmap/Appearances/EventAppearanceSO.cs
@@ -240,127 +240,5 @@ public void SetEventAppearance(EventContainer e, bool final = true, bool boost =
 
             e.UpdateMaterials();
         }
-
-        // private SetLightEventAppearance(EventContainer e)
-        // {
-        //     var color = Color.white;
-        //     
-        //     if (e.EventData.Value >= ColourManager.RgbintOffset)
-        //     {
-        //         color = ColourManager.ColourFromInt(e.EventData.Value);
-        //         e.UpdateAlpha(final ? 0.9f : 0.6f, false);
-        //     }
-        //     else if (e.EventData.IsOff)
-        //     {
-        //         color = offColor;
-        //     }
-        //     else if (e.EventData.IsBlue)
-        //     {
-        //         color = boost ? BlueBoostColor : BlueColor;
-        //     }
-        //     else if (e.EventData.IsRed)
-        //     {
-        //         color = boost ? RedBoostColor : RedColor;
-        //     }
-        //     else if (e.EventData.IsWhite)
-        //     {
-        //         color = boost ? WhiteBoostColor : WhiteColor;
-        //     }
-        //
-        //     if (Settings.Instance.EmulateChromaLite && e.EventData.CustomColor != null && !e.EventData.IsOff
-        //             && !e.EventData.IsWhite) // White overrides Chroma
-        //     {
-        //         color = e.EventData.CustomColor.Value;
-        //     }
-        //
-        //     // Display floatValue only where used
-        //     if (e.EventData.IsLightEvent(envName) && e.EventData.Value != 0)
-        //     {
-        //         if (Settings.Instance.DisplayFloatValueText)
-        //         {
-        //             var text = e.EventData.IsTransition
-        //                 ? $"T{Mathf.RoundToInt(e.EventData.FloatValue * 100)}"
-        //                 : $"{Mathf.RoundToInt(e.EventData.FloatValue * 100)}";
-        //             e.UpdateTextDisplay(true, text); 
-        //         }
-        //
-        //         // for clarity sake, we don't want this to be the same as off color
-        //         var clampedOffColor = Color.Lerp(offColor, color, 0.25f);
-        //         color = Color.Lerp(clampedOffColor, color, e.EventData.FloatValue);
-        //         e.UpdateTextColor(color == Color.white
-        //             ? Color.black
-        //             : Color.white); // TODO: this messes with text color in unintended part, need to fix
-        //     }
-        //
-        //     e.EventModel = Settings.Instance.EventModel;
-        //     e.ChangeColor(color, false);
-        //     e.ChangeBaseColor(Color.black, false);
-        //     switch (e.EventData.Value)
-        //     {
-        //         case (int)LightValue.Off:
-        //             e.ChangeColor(offColor, false);
-        //             e.ChangeBaseColor(offColor, false);
-        //             e.UpdateOffset(Vector3.zero, false);
-        //             break;
-        //         case (int)LightValue.BlueOn:
-        //         case (int)LightValue.RedOn:
-        //         case (int)LightValue.WhiteOn:
-        //             e.UpdateOffset(Vector3.zero, false);
-        //             e.ChangeBaseColor(color, false);
-        //             break;
-        //         case (int)LightValue.BlueFlash:
-        //         case (int)LightValue.RedFlash:
-        //         case (int)LightValue.WhiteFlash:
-        //             e.UpdateOffset(e.FlashShaderOffset, false);
-        //             break;
-        //         case (int)LightValue.BlueFade:
-        //         case (int)LightValue.RedFade:
-        //         case (int)LightValue.WhiteFade:
-        //             e.UpdateOffset(e.FadeShaderOffset, false);
-        //             break;
-        //         case (int)LightValue.BlueTransition:
-        //         case (int)LightValue.RedTransition:
-        //         case (int)LightValue.WhiteTransition:
-        //             e.ChangeBaseColor(color, false);
-        //             break;
-        //     }
-        //
-        //     e.ChangeFadeSize(e.DefaultFadeSize, false);
-        //
-        //     // At this point, next Event must be a light event.
-        //     Color? nextColor = null;
-        //     var nextEvent = e.EventData.Next;
-        //     if (!e.EventData.IsFade && !e.EventData.IsFlash && nextEvent != null && nextEvent.IsTransition)
-        //     {
-        //         if (nextEvent.IsBlue)
-        //         {
-        //             nextColor = boost ? BlueBoostColor : BlueColor;
-        //         }
-        //         else if (nextEvent.IsRed)
-        //         {
-        //             nextColor = boost ? RedBoostColor : RedColor;
-        //         }
-        //         else if (nextEvent.IsWhite)
-        //         {
-        //             nextColor = boost ? WhiteBoostColor : WhiteColor;
-        //         }
-        //
-        //         if (Settings.Instance.EmulateChromaLite && nextEvent.CustomColor != null && !nextEvent.IsWhite) // White overrides Chroma
-        //         {
-        //             nextColor = nextEvent.CustomColor.Value;
-        //         }
-        //
-        //         // for clarity sake, we don't want this to be the same as off color
-        //         var clampedOffColor = Color.Lerp(offColor, nextColor.Value, 0.25f);
-        //         nextColor = Color.Lerp(clampedOffColor, nextColor.Value, nextEvent.FloatValue);
-        //     }
-        //
-        //     if (Settings.Instance.VisualizeChromaGradients)
-        //     {
-        //         e.UpdateGradientRendering(color, nextColor, nextEvent?.CustomEasing ?? "easeLinear");
-        //     }
-        //
-        //     e.UpdateMaterials();
-        // }
     }
 }

From 0b25cd74295c498cfe15eddcd7d90c681c3824ae Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 12 Jul 2024 20:18:13 +1000
Subject: [PATCH 23/35] Adjust transition generator for new logic

---
 .../Passes/StrobeTransitionPass.cs            | 29 +++++++++----------
 1 file changed, 13 insertions(+), 16 deletions(-)

diff --git a/Assets/__Scripts/MapEditor/Mapping/Strobe Generator/Passes/StrobeTransitionPass.cs b/Assets/__Scripts/MapEditor/Mapping/Strobe Generator/Passes/StrobeTransitionPass.cs
index c5a3d3165..66396ddd5 100644
--- a/Assets/__Scripts/MapEditor/Mapping/Strobe Generator/Passes/StrobeTransitionPass.cs	
+++ b/Assets/__Scripts/MapEditor/Mapping/Strobe Generator/Passes/StrobeTransitionPass.cs	
@@ -23,30 +23,27 @@ public StrobeTransitionPass(string easing, string lerpType)
     public override IEnumerable<BaseEvent> StrobePassForLane(IEnumerable<BaseEvent> original, int type,
         EventGridContainer.PropMode propMode, int[] propID)
     {
-        var generatedObjects = new List<BaseEvent>();
+        var generatedObjects = original.Select(BeatmapFactory.Clone).ToList();
 
-        generatedObjects.Add(BeatmapFactory.Clone(original.First()));
-
-        var nonGradients = original.Where(x => x.CustomLightGradient == null);
-        for (var i = 1; i < nonGradients.Count(); i++)
+        for (var i = 1; i < generatedObjects.Count; i++)
         {
-            var generated = BeatmapFactory.Clone(nonGradients.ElementAt(i));
-            if (generated.IsBlue)
+            var previousEvent = generatedObjects[i - 1];
+            previousEvent.CustomEasing = easing;
+            previousEvent.CustomLerpType = lerpType;
+            
+            var currentEvent = generatedObjects[i];
+            if (currentEvent.IsBlue)
             {
-                generated.Value = (int)LightValue.BlueTransition;
+                currentEvent.Value = (int)LightValue.BlueTransition;
             }
-            else if (generated.IsRed)
+            else if (currentEvent.IsRed)
             {
-                generated.Value = (int)LightValue.RedTransition;
+                currentEvent.Value = (int)LightValue.RedTransition;
             }
-            else if (generated.IsWhite)
+            else if (currentEvent.IsWhite)
             {
-                generated.Value = (int)LightValue.WhiteTransition;
+                currentEvent.Value = (int)LightValue.WhiteTransition;
             }
-            generated.CustomEasing = easing;
-            generated.CustomLerpType = lerpType;
-
-            generatedObjects.Add(generated);
         }
 
         return generatedObjects;

From 31a80288a390a0fc68afdfedd9aabba323498408 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Fri, 12 Jul 2024 22:43:21 +1000
Subject: [PATCH 24/35] Add rotation event test

---
 Assets/Tests/RotationEventTest.cs      | 73 ++++++++++++++++++++++++++
 Assets/Tests/RotationEventTest.cs.meta |  3 ++
 2 files changed, 76 insertions(+)
 create mode 100644 Assets/Tests/RotationEventTest.cs
 create mode 100644 Assets/Tests/RotationEventTest.cs.meta

diff --git a/Assets/Tests/RotationEventTest.cs b/Assets/Tests/RotationEventTest.cs
new file mode 100644
index 000000000..ce5b423cf
--- /dev/null
+++ b/Assets/Tests/RotationEventTest.cs
@@ -0,0 +1,73 @@
+using System.Collections;
+using System.Linq;
+using Beatmap.Base;
+using Beatmap.Containers;
+using Beatmap.Enums;
+using Beatmap.Helper;
+using Beatmap.V3;
+using NUnit.Framework;
+using SimpleJSON;
+using Tests.Util;
+using UnityEngine;
+using UnityEngine.TestTools;
+
+namespace Tests
+{
+    public class RotationEventTest
+    {
+        [UnityOneTimeSetUp]
+        public IEnumerator LoadMap()
+        {
+            return TestUtils.LoadMap(3);
+        }
+
+        [OneTimeTearDown]
+        public void FinalTearDown()
+        {
+            TestUtils.ReturnSettings();
+        }
+
+        [TearDown]
+        public void ContainerCleanup()
+        {
+            BeatmapActionContainer.RemoveAllActionsOfType<BeatmapAction>();
+            CleanupUtils.CleanupEvents();
+        }
+
+        [Test]
+        [TestCase(new[] { 15, 30, 60 })]
+        [TestCase(new[] { 3, 2, 1 })]
+        [TestCase(new[] { 0, 15, -10 })]
+        public void RotationCallbackProperties(int[] rotations)
+        {
+            var eventsContainer = BeatmapObjectContainerCollection.GetCollectionForType<EventGridContainer>(ObjectType.Event);
+
+            var rotationEventA = new V3RotationEvent(1, (int)ExecutionTime.Late, rotations[0]);
+            var rotationEventB = new V3RotationEvent(2, (int)ExecutionTime.Late, rotations[1]);
+            var rotationEventC = new V3RotationEvent(3, (int)ExecutionTime.Late, rotations[2]);
+            eventsContainer.SpawnObject(rotationEventA);
+            eventsContainer.SpawnObject(rotationEventB);
+            eventsContainer.SpawnObject(rotationEventC);
+
+            var rotationController = Object.FindObjectOfType<RotationCallbackController>();
+            var atsc = Object.FindObjectOfType<AudioTimeSyncController>();
+
+            // Rotations should add up
+            atsc.MoveToJsonTime(0);
+            Assert.AreSame(null, rotationController.LatestRotationEvent);
+            Assert.AreEqual(0, rotationController.Rotation);
+
+            atsc.MoveToJsonTime(1.5f);
+            Assert.AreSame(rotationEventA, rotationController.LatestRotationEvent);
+            Assert.AreEqual(rotations[0], rotationController.Rotation);
+
+            atsc.MoveToJsonTime(2.5f);
+            Assert.AreSame(rotationEventB, rotationController.LatestRotationEvent);
+            Assert.AreEqual(rotations[0] + rotations[1], rotationController.Rotation);
+
+            atsc.MoveToJsonTime(3.5f);
+            Assert.AreSame(rotationEventC, rotationController.LatestRotationEvent);
+            Assert.AreEqual(rotations[0] + rotations[1] + rotations[2], rotationController.Rotation);
+        }
+    }
+}
\ No newline at end of file
diff --git a/Assets/Tests/RotationEventTest.cs.meta b/Assets/Tests/RotationEventTest.cs.meta
new file mode 100644
index 000000000..e1f1e0126
--- /dev/null
+++ b/Assets/Tests/RotationEventTest.cs.meta
@@ -0,0 +1,3 @@
+fileFormatVersion: 2
+guid: f76dede265d144cfa4439240d8299f6e
+timeCreated: 1720786840
\ No newline at end of file

From f64ccfe6b66d38b7695f7d7b9258326f8c4214fb Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sat, 13 Jul 2024 16:00:17 +1000
Subject: [PATCH 25/35] Fix 360 placement being unusable after last event

---
 .../MapEditor/Grid/Rotation/RotationCallbackController.cs   | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/Assets/__Scripts/MapEditor/Grid/Rotation/RotationCallbackController.cs b/Assets/__Scripts/MapEditor/Grid/Rotation/RotationCallbackController.cs
index 31959b0e8..f729aa279 100644
--- a/Assets/__Scripts/MapEditor/Grid/Rotation/RotationCallbackController.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Rotation/RotationCallbackController.cs
@@ -71,10 +71,8 @@ private void PlayToggle(bool isPlaying)
         // Continue marching forward until JsonTime extends beyond current time
         while (idx < span.Length && span[idx].JsonTime <= jsonTime) idx++;
 
-        idx = Mathf.Min(idx, span.Length - 1);
-
         Rotation = 0;
-        
+
         if (idx > 0)
         {
             for (var i = 0; i < idx; i++)
@@ -82,7 +80,7 @@ private void PlayToggle(bool isPlaying)
                 Rotation += span[i].GetRotationDegreeFromValue() ?? 0f;
             }
 
-            LatestRotationEvent = span[idx];
+            LatestRotationEvent = span[idx - 1];
         }
         else
         {

From 7baaf0e4df9f18e7720e39321e202d8e4b667ebc Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sat, 13 Jul 2024 16:13:50 +1000
Subject: [PATCH 26/35] Exclude rotation event callback at same time

---
 Assets/Tests/RotationEventTest.cs             | 26 +++++++++++++++++++
 .../Rotation/RotationCallbackController.cs    |  5 ++--
 2 files changed, 29 insertions(+), 2 deletions(-)

diff --git a/Assets/Tests/RotationEventTest.cs b/Assets/Tests/RotationEventTest.cs
index ce5b423cf..7481edf3d 100644
--- a/Assets/Tests/RotationEventTest.cs
+++ b/Assets/Tests/RotationEventTest.cs
@@ -69,5 +69,31 @@ public void RotationCallbackProperties(int[] rotations)
             Assert.AreSame(rotationEventC, rotationController.LatestRotationEvent);
             Assert.AreEqual(rotations[0] + rotations[1] + rotations[2], rotationController.Rotation);
         }
+
+        [Test]
+        public void RotationCallbackPropertiesOnTimeMatch()
+        {
+            var eventsContainer = BeatmapObjectContainerCollection.GetCollectionForType<EventGridContainer>(ObjectType.Event);
+
+            const int rotation = 15;
+            const float timeA = 1f;
+            const float timeB = 2f;
+            var rotationEventA = new V3RotationEvent(timeA, (int)ExecutionTime.Late, rotation);
+            var rotationEventB = new V3RotationEvent(timeB, (int)ExecutionTime.Late, rotation);
+            eventsContainer.SpawnObject(rotationEventA);
+            eventsContainer.SpawnObject(rotationEventB);
+
+            var rotationController = Object.FindObjectOfType<RotationCallbackController>();
+            var atsc = Object.FindObjectOfType<AudioTimeSyncController>();
+
+            // Should ignore events on same time
+            atsc.MoveToJsonTime(timeA);
+            Assert.AreSame(null, rotationController.LatestRotationEvent);
+            Assert.AreEqual(0, rotationController.Rotation);
+
+            atsc.MoveToJsonTime(timeB);
+            Assert.AreSame(rotationEventA, rotationController.LatestRotationEvent);
+            Assert.AreEqual(rotation, rotationController.Rotation);
+        }
     }
 }
\ No newline at end of file
diff --git a/Assets/__Scripts/MapEditor/Grid/Rotation/RotationCallbackController.cs b/Assets/__Scripts/MapEditor/Grid/Rotation/RotationCallbackController.cs
index f729aa279..37073efe2 100644
--- a/Assets/__Scripts/MapEditor/Grid/Rotation/RotationCallbackController.cs
+++ b/Assets/__Scripts/MapEditor/Grid/Rotation/RotationCallbackController.cs
@@ -68,8 +68,9 @@ private void PlayToggle(bool isPlaying)
         var result = span.BinarySearchBy(jsonTime, e => e.JsonTime);
         var idx = result >= 0 ? result : ~result;
 
-        // Continue marching forward until JsonTime extends beyond current time
-        while (idx < span.Length && span[idx].JsonTime <= jsonTime) idx++;
+        // Continue marching forward until JsonTime reaches current time or beyond
+        var epsilon = BeatmapObjectContainerCollection.Epsilon;
+        while (idx < span.Length && span[idx].JsonTime <= jsonTime - epsilon) idx++;
 
         Rotation = 0;
 

From 18fc8a6b2ede788e8e0b7bc1b2ccb1cece5077c3 Mon Sep 17 00:00:00 2001
From: Fallen Charlotte <fallencharlotte@pm.me>
Date: Mon, 15 Jul 2024 14:44:55 -0700
Subject: [PATCH 27/35] Exclude geometry lights from propid (#537)

---
 Assets/__Scripts/Beatmap/Appearances/GeometryAppearanceSO.cs | 1 +
 Assets/__Scripts/Platforms/LightsManager.cs                  | 1 +
 2 files changed, 2 insertions(+)

diff --git a/Assets/__Scripts/Beatmap/Appearances/GeometryAppearanceSO.cs b/Assets/__Scripts/Beatmap/Appearances/GeometryAppearanceSO.cs
index ba9bbfa03..f680490dd 100644
--- a/Assets/__Scripts/Beatmap/Appearances/GeometryAppearanceSO.cs
+++ b/Assets/__Scripts/Beatmap/Appearances/GeometryAppearanceSO.cs
@@ -90,6 +90,7 @@ public void SetGeometryAppearance(GeometryContainer container)
                 light.OverrideLightGroup = true;
                 light.OverrideLightGroupID = eh.LightType ?? 0;
                 light.LightID = eh.LightID ?? 0;
+                light.PropGroup = -1;
             }
         }
 
diff --git a/Assets/__Scripts/Platforms/LightsManager.cs b/Assets/__Scripts/Platforms/LightsManager.cs
index d7fb87cfa..10eaebdab 100644
--- a/Assets/__Scripts/Platforms/LightsManager.cs
+++ b/Assets/__Scripts/Platforms/LightsManager.cs
@@ -59,6 +59,7 @@ public void LoadOldLightOrder()
 
     public LightGroup[] GroupLightsBasedOnZ() => ControllingLights
         .Where(x => x.gameObject.activeInHierarchy)
+        .Where(x => x.PropGroup >= 0)
         .GroupBy(x => Mathf.RoundToInt(x.PropGroup))
         .OrderBy(x => x.Key)
         .Select(x => new LightGroup { Lights = x.ToList() })

From 2e5405e00509a1a2be0f4cf6175827d542e7363d Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sat, 13 Jul 2024 17:28:25 +1000
Subject: [PATCH 28/35] Add bookmark brightness option

---
 Assets/Locales/Options Shared Data.asset      |   8 +
 Assets/Locales/Options_en.asset               |   8 +
 Assets/__Scenes/04_Options.unity              | 756 ++++++++++++++----
 .../UI/Bookmarks/BookmarkContainer.cs         |  31 +-
 .../MapEditor/UI/Bookmarks/BookmarkManager.cs |  13 +-
 Assets/__Scripts/Settings/Settings.cs         |   1 +
 6 files changed, 644 insertions(+), 173 deletions(-)

diff --git a/Assets/Locales/Options Shared Data.asset b/Assets/Locales/Options Shared Data.asset
index 01bd5d51f..e2437264d 100644
--- a/Assets/Locales/Options Shared Data.asset	
+++ b/Assets/Locales/Options Shared Data.asset	
@@ -1311,6 +1311,14 @@ MonoBehaviour:
     m_Key: misc.nonimportant.tooltip
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Key: graphics.bookmarkuibrightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Key: graphics.bookmarkuibrightness.tooltip
+    m_Metadata:
+      m_Items: []
   m_Metadata:
     m_Items: []
   m_KeyGenerator:
diff --git a/Assets/Locales/Options_en.asset b/Assets/Locales/Options_en.asset
index 29da40d57..d3aadcdb5 100644
--- a/Assets/Locales/Options_en.asset
+++ b/Assets/Locales/Options_en.asset
@@ -1432,6 +1432,14 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
diff --git a/Assets/__Scenes/04_Options.unity b/Assets/__Scenes/04_Options.unity
index dc0fec335..48e51c779 100644
--- a/Assets/__Scenes/04_Options.unity
+++ b/Assets/__Scenes/04_Options.unity
@@ -13022,6 +13022,86 @@ MonoBehaviour:
   m_EditorClassIdentifier: 
   chooChooMapper: {fileID: 21300000, guid: d1cf36f86a16bb646bd95596390c1caa, type: 3}
   source: {fileID: 362333320}
+--- !u!21 &364350304
+Material:
+  serializedVersion: 8
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Inherited From Round Corners
+  m_Shader: {fileID: 4800000, guid: 0bd2ec5d73751e34a814274a454bec41, type: 3}
+  m_ValidKeywords: []
+  m_InvalidKeywords: []
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AlphaClip: 0
+    - _Blend: 0
+    - _BumpScale: 1
+    - _ColorMask: 15
+    - _Cull: 2
+    - _Cutoff: 0.5
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _OcclusionStrength: 1
+    - _ReceiveShadows: 1
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _Stencil: 0
+    - _StencilComp: 8
+    - _StencilOp: 0
+    - _StencilReadMask: 255
+    - _StencilWriteMask: 255
+    - _Surface: 0
+    - _UseUIAlphaClip: 0
+    - _WorkflowMode: 1
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+    - _WidthHeightRadius: {r: 450, g: 315, b: 10, a: 0}
+    - _halfSize: {r: 150, g: 45, b: 0, a: 0}
+    - _r: {r: 2, g: 2, b: 2, a: 2}
+    - _rect2props: {r: 0.000015258789, g: -0.000015258789, b: 136.47162, a: 136.47162}
+  m_BuildTextureStacks: []
 --- !u!1 &366457986
 GameObject:
   m_ObjectHideFlags: 0
@@ -26420,6 +26500,86 @@ RectTransform:
     type: 3}
   m_PrefabInstance: {fileID: 820955159}
   m_PrefabAsset: {fileID: 0}
+--- !u!21 &830850569
+Material:
+  serializedVersion: 8
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: Inherited From Round Corners
+  m_Shader: {fileID: 4800000, guid: 0bd2ec5d73751e34a814274a454bec41, type: 3}
+  m_ValidKeywords: []
+  m_InvalidKeywords: []
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap: {}
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _OcclusionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _SpecGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Ints: []
+    m_Floats:
+    - _AlphaClip: 0
+    - _Blend: 0
+    - _BumpScale: 1
+    - _ColorMask: 15
+    - _Cull: 2
+    - _Cutoff: 0.5
+    - _DstBlend: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _GlossyReflections: 1
+    - _Metallic: 0
+    - _OcclusionStrength: 1
+    - _ReceiveShadows: 1
+    - _SmoothnessTextureChannel: 0
+    - _SpecularHighlights: 1
+    - _SrcBlend: 1
+    - _Stencil: 0
+    - _StencilComp: 8
+    - _StencilOp: 0
+    - _StencilReadMask: 255
+    - _StencilWriteMask: 255
+    - _Surface: 0
+    - _UseUIAlphaClip: 0
+    - _WorkflowMode: 1
+    - _ZWrite: 1
+    m_Colors:
+    - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
+    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
+    - _WidthHeightRadius: {r: 80.52, g: 20, b: 8, a: 0}
+    - _halfSize: {r: 150, g: 45, b: 0, a: 0}
+    - _r: {r: 2, g: 2, b: 2, a: 2}
+    - _rect2props: {r: 0.000015258789, g: -0.000015258789, b: 136.47162, a: 136.47162}
+  m_BuildTextureStacks: []
 --- !u!1001 &835319594
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -39539,6 +39699,7 @@ MonoBehaviour:
   - {fileID: 1851603371}
   - {fileID: 1671844174}
   - {fileID: 1264704488}
+  - {fileID: 1742629877}
 --- !u!224 &1326083785 stripped
 RectTransform:
   m_CorrespondingSourceObject: {fileID: 2571109656818120505, guid: a38ba3ff2f52dec4b930e02bf833fcfd,
@@ -42314,86 +42475,6 @@ GameObject:
     type: 3}
   m_PrefabInstance: {fileID: 1412001331}
   m_PrefabAsset: {fileID: 0}
---- !u!21 &1423723661
-Material:
-  serializedVersion: 8
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: Inherited From Round Corners
-  m_Shader: {fileID: 4800000, guid: 0bd2ec5d73751e34a814274a454bec41, type: 3}
-  m_ValidKeywords: []
-  m_InvalidKeywords: []
-  m_LightmapFlags: 4
-  m_EnableInstancingVariants: 0
-  m_DoubleSidedGI: 0
-  m_CustomRenderQueue: -1
-  stringTagMap: {}
-  disabledShaderPasses: []
-  m_SavedProperties:
-    serializedVersion: 3
-    m_TexEnvs:
-    - _BumpMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _EmissionMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _MainTex:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _MetallicGlossMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _OcclusionMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _SpecGlossMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    m_Ints: []
-    m_Floats:
-    - _AlphaClip: 0
-    - _Blend: 0
-    - _BumpScale: 1
-    - _ColorMask: 15
-    - _Cull: 2
-    - _Cutoff: 0.5
-    - _DstBlend: 0
-    - _GlossMapScale: 1
-    - _Glossiness: 0.5
-    - _GlossyReflections: 1
-    - _Metallic: 0
-    - _OcclusionStrength: 1
-    - _ReceiveShadows: 1
-    - _SmoothnessTextureChannel: 0
-    - _SpecularHighlights: 1
-    - _SrcBlend: 1
-    - _Stencil: 0
-    - _StencilComp: 8
-    - _StencilOp: 0
-    - _StencilReadMask: 255
-    - _StencilWriteMask: 255
-    - _Surface: 0
-    - _UseUIAlphaClip: 0
-    - _WorkflowMode: 1
-    - _ZWrite: 1
-    m_Colors:
-    - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
-    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
-    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
-    - _WidthHeightRadius: {r: 80.52, g: 20, b: 8, a: 0}
-    - _halfSize: {r: 150, g: 45, b: 0, a: 0}
-    - _r: {r: 2, g: 2, b: 2, a: 2}
-    - _rect2props: {r: 0.000015258789, g: -0.000015258789, b: 136.47162, a: 136.47162}
-  m_BuildTextureStacks: []
 --- !u!1 &1433626449
 GameObject:
   m_ObjectHideFlags: 0
@@ -49642,86 +49723,6 @@ MonoBehaviour:
   - note
   - color
   - multiplier
---- !u!21 &1603076726
-Material:
-  serializedVersion: 8
-  m_ObjectHideFlags: 0
-  m_CorrespondingSourceObject: {fileID: 0}
-  m_PrefabInstance: {fileID: 0}
-  m_PrefabAsset: {fileID: 0}
-  m_Name: Inherited From Round Corners
-  m_Shader: {fileID: 4800000, guid: 0bd2ec5d73751e34a814274a454bec41, type: 3}
-  m_ValidKeywords: []
-  m_InvalidKeywords: []
-  m_LightmapFlags: 4
-  m_EnableInstancingVariants: 0
-  m_DoubleSidedGI: 0
-  m_CustomRenderQueue: -1
-  stringTagMap: {}
-  disabledShaderPasses: []
-  m_SavedProperties:
-    serializedVersion: 3
-    m_TexEnvs:
-    - _BumpMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _EmissionMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _MainTex:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _MetallicGlossMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _OcclusionMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    - _SpecGlossMap:
-        m_Texture: {fileID: 0}
-        m_Scale: {x: 1, y: 1}
-        m_Offset: {x: 0, y: 0}
-    m_Ints: []
-    m_Floats:
-    - _AlphaClip: 0
-    - _Blend: 0
-    - _BumpScale: 1
-    - _ColorMask: 15
-    - _Cull: 2
-    - _Cutoff: 0.5
-    - _DstBlend: 0
-    - _GlossMapScale: 1
-    - _Glossiness: 0.5
-    - _GlossyReflections: 1
-    - _Metallic: 0
-    - _OcclusionStrength: 1
-    - _ReceiveShadows: 1
-    - _SmoothnessTextureChannel: 0
-    - _SpecularHighlights: 1
-    - _SrcBlend: 1
-    - _Stencil: 0
-    - _StencilComp: 8
-    - _StencilOp: 0
-    - _StencilReadMask: 255
-    - _StencilWriteMask: 255
-    - _Surface: 0
-    - _UseUIAlphaClip: 0
-    - _WorkflowMode: 1
-    - _ZWrite: 1
-    m_Colors:
-    - _Color: {r: 0.5, g: 0.5, b: 0.5, a: 1}
-    - _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
-    - _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
-    - _WidthHeightRadius: {r: 450, g: 315, b: 10, a: 0}
-    - _halfSize: {r: 150, g: 45, b: 0, a: 0}
-    - _r: {r: 2, g: 2, b: 2, a: 2}
-    - _rect2props: {r: 0.000015258789, g: -0.000015258789, b: 136.47162, a: 136.47162}
-  m_BuildTextureStacks: []
 --- !u!1001 &1603867848
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -56246,6 +56247,439 @@ CanvasRenderer:
   m_PrefabAsset: {fileID: 0}
   m_GameObject: {fileID: 1738448713}
   m_CullTransparentMesh: 0
+--- !u!1001 &1742629874
+PrefabInstance:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_Modification:
+    m_TransformParent: {fileID: 1326083785}
+    m_Modifications:
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_text
+      value: 0.66
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_RaycastTarget
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textAlignment
+      value: 65535
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_TextStyleHashCode
+      value: -1183493901
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_VerticalAlignment
+      value: 512
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textInfo.lineCount
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textInfo.pageCount
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textInfo.wordCount
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_HorizontalAlignment
+      value: 4
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_havePropertiesChanged
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_isInputParsingRequired
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textInfo.materialCount
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textInfo.characterCount
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 149366472385332407, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_subTextObjects.Array.data[1]
+      value: 
+      objectReference: {fileID: 0}
+    - target: {fileID: 1112006190206303360, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: tooltip
+      value: Amount of 5 beat intervals to show when editing.
+      objectReference: {fileID: 0}
+    - target: {fileID: 1112006190206303360, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: tooltip.m_TableEntryReference.m_KeyId
+      value: 89
+      objectReference: {fileID: 0}
+    - target: {fileID: 1112006190206303360, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: LocalizedTooltip.m_TableEntryReference.m_KeyId
+      value: 388776364043268096
+      objectReference: {fileID: 0}
+    - target: {fileID: 1112006190206303360, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: tooltip.m_TableReference.m_TableCollectionName
+      value: GUID:3d3fb288927a2264891ce15662e46756
+      objectReference: {fileID: 0}
+    - target: {fileID: 1112006190206303360, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: LocalizedTooltip.m_TableReference.m_TableCollectionName
+      value: GUID:3d3fb288927a2264891ce15662e46756
+      objectReference: {fileID: 0}
+    - target: {fileID: 1431853864847495345, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: -10.599976
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_text
+      value: Bookmark UI Brightness
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_fontSizeBase
+      value: 16
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textAlignment
+      value: 65535
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_TextStyleHashCode
+      value: -1183493901
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_VerticalAlignment
+      value: 512
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textInfo.spaceCount
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_havePropertiesChanged
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_isInputParsingRequired
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 2335523390688836162, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_textInfo.characterCount
+      value: 13
+      objectReference: {fileID: 0}
+    - target: {fileID: 2540764464195409678, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_Value
+      value: 0.66
+      objectReference: {fileID: 0}
+    - target: {fileID: 2540764464195409678, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_MaxValue
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 2540764464195409678, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_MinValue
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2540764464195409678, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_WholeNumbers
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2540764464195409678, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Mode
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 2540764464195409678, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Target
+      value: 
+      objectReference: {fileID: 0}
+    - target: {fileID: 2540764464195409678, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_MethodName
+      value: UpdateChunksLoaded
+      objectReference: {fileID: 0}
+    - target: {fileID: 2540764464195409678, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_OnValueChanged.m_PersistentCalls.m_Calls.Array.data[0].m_Arguments.m_ObjectArgumentAssemblyTypeName
+      value: UnityEngine.Object, UnityEngine
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: _endText
+      value: 
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: ShowValue
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: showValue
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: ShowPercent
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: showPercent
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: DecimalPlaces
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: MultipleOffset
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: _endTextEnabled
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: DefaultSliderValue
+      value: 0.66
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: defaultSliderValue
+      value: 5
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: percentMatchesValues
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 3920115293826843065, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: DecimalsMustMatchForDefault
+      value: 1
+      objectReference: {fileID: 0}
+    - target: {fileID: 4359242332484835813, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_StringReference.m_TableEntryReference.m_KeyId
+      value: 138
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064086886677873, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064086886677873, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539622, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_Name
+      value: Bookmark UI Brightness Slider
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_RootOrder
+      value: 5
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMin.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalScale.x
+      value: 0.9
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalScale.y
+      value: 0.9
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalRotation.x
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalRotation.y
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalRotation.z
+      value: -0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchoredPosition.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchoredPosition.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064087087539623, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_LocalEulerAnglesHint.z
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064088442704414, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMax.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064088442704414, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMax.y
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 4895064088442704414, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_AnchorMin.x
+      value: 0
+      objectReference: {fileID: 0}
+    - target: {fileID: 7606948093703692718, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: BindedSetting
+      value: ChunkDistance
+      objectReference: {fileID: 0}
+    - target: {fileID: 7606948093703692718, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: BindedSettingType
+      value: 2
+      objectReference: {fileID: 0}
+    - target: {fileID: 7755962971214714663, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_StringReference.m_TableEntryReference.m_KeyId
+      value: 388776190596214784
+      objectReference: {fileID: 0}
+    - target: {fileID: 7755962971214714663, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+        type: 3}
+      propertyPath: m_StringReference.m_TableReference.m_TableCollectionName
+      value: GUID:3d3fb288927a2264891ce15662e46756
+      objectReference: {fileID: 0}
+    m_RemovedComponents:
+    - {fileID: 7606948093703692718, guid: fb10ad3ad7f83f14a9f0b5542dc859fb, type: 3}
+  m_SourcePrefab: {fileID: 100100000, guid: fb10ad3ad7f83f14a9f0b5542dc859fb, type: 3}
+--- !u!1 &1742629875 stripped
+GameObject:
+  m_CorrespondingSourceObject: {fileID: 4895064087087539622, guid: fb10ad3ad7f83f14a9f0b5542dc859fb,
+    type: 3}
+  m_PrefabInstance: {fileID: 1742629874}
+  m_PrefabAsset: {fileID: 0}
+--- !u!114 &1742629876
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1742629875}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: a9268004cea6a7a4fa5bd2ef3337de59, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  BindedSettingSearchType: 3
+  BindedSetting: BookmarkTimelineBrightness
+  PopupEditorWarning: 0
+  DecimalPrecision: 2
+  Multiple: 1
+--- !u!114 &1742629877
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1742629875}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: aeb2a8adee904bd894bfe1936410f850, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  Keywords:
+  - bookmark
+  - brightness
 --- !u!1001 &1746957641
 PrefabInstance:
   m_ObjectHideFlags: 0
@@ -70956,7 +71390,7 @@ MonoBehaviour:
   m_TargetGraphic: {fileID: 916566940290238110}
   m_HandleRect: {fileID: 1528252178120670092}
   m_Direction: 2
-  m_Value: 1.0000001
+  m_Value: 1
   m_Size: 0.4939394
   m_NumberOfSteps: 0
   m_OnValueChanged:
diff --git a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
index b4f72a3b4..5af118404 100644
--- a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
+++ b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkContainer.cs
@@ -10,37 +10,47 @@ public class BookmarkContainer : MonoBehaviour, IPointerClickHandler, IPointerDo
     private BookmarkManager manager;
     public BaseBookmark Data { get; private set; }
 
-
     public void Init(BookmarkManager manager, BaseBookmark data)
     {
         if (Data != null) return;
         Data = data;
 
         this.manager = manager;
-        GetComponent<Image>().color = data.Color;
 
         UpdateUI();
-        UpdateUIWidth();
     }
 
     public void UpdateUI()
     {
-        var name = Data.Name.StripTMPTags();
+        UpdateUIText();
+        UpdateUIColor();
+        UpdateUIWidth();
+    }
+
+    public void UpdateUIText()
+    {
+        var text = Data.Name.StripTMPTags();
 
-        if (string.IsNullOrEmpty(name) || string.IsNullOrWhiteSpace(name))
+        if (string.IsNullOrEmpty(text) || string.IsNullOrWhiteSpace(text))
         {
-            name = $"<i>(This Bookmark has no name)</i>";
+            text = $"<i>(This Bookmark has no name)</i>";
         }
 
         if (Settings.Instance.BookmarkTooltipTimeInfo)
         {
             var beat = Data.JsonTime;
             var span = TimeSpan.FromSeconds(manager.Atsc.GetSecondsFromBeat(beat));
-            name += $" [{Math.Round(beat, 2)} | {span:mm':'ss}]";
+            text += $" [{Math.Round(beat, 2)} | {span:mm':'ss}]";
         }
 
-        GetComponent<Tooltip>().TooltipOverride = name;
-        GetComponent<Image>().color = Data.Color;
+        GetComponent<Tooltip>().TooltipOverride = text;
+    }
+
+    public void UpdateUIColor() {
+        var brightenedColor = Data.Color
+            .Multiply(Settings.Instance.BookmarkTimelineBrightness)
+            .WithAlpha(Data.Color.a);
+        GetComponent<Image>().color = brightenedColor;
     }
 
     public void UpdateUIWidth()
@@ -100,7 +110,8 @@ private void DisplayBookmarkEditUI()
                 Data.Color = colorPicker.Value;
             }
             manager.BookmarksUpdated.Invoke();
-            UpdateUI();
+            UpdateUIText();
+            UpdateUIColor();
         };
 
         var cancelButton = dialogBox
diff --git a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs
index 84138a2ea..7e611e7f3 100644
--- a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs
+++ b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs
@@ -81,7 +81,7 @@ private IEnumerator Start()
 
         Settings.NotifyBySettingName(nameof(Settings.BookmarkTimelineWidth), UpdateBookmarkWidth);
         Settings.NotifyBySettingName(nameof(Settings.BookmarkTooltipTimeInfo), UpdateBookmarkTooltip);
-        UpdateBookmarkWidth(true);
+        Settings.NotifyBySettingName(nameof(Settings.BookmarkTimelineBrightness), UpdateBookmarkBrightness);
 
         BookmarksUpdated.Invoke();
     }
@@ -118,7 +118,7 @@ private void UpdateBookmarkTooltip(object _)
     {
         foreach (BookmarkContainer bookContainer in bookmarkContainers)
         {
-            bookContainer.UpdateUI();
+            bookContainer.UpdateUIText();
         }
     }
 
@@ -130,6 +130,14 @@ private void UpdateBookmarkWidth(object _)
         }
     }
 
+    private void UpdateBookmarkBrightness(object _)
+    {
+        foreach (var bookmarkContainer in bookmarkContainers)
+        {
+            bookmarkContainer.UpdateUIColor();
+        }
+    }
+
     private void LateUpdate()
     {
         if (previousCanvasWidth != timelineCanvas.sizeDelta.x)
@@ -238,6 +246,7 @@ private void OnDestroy()
     {
         Settings.ClearSettingNotifications(nameof(Settings.BookmarkTimelineWidth));
         Settings.ClearSettingNotifications(nameof(Settings.BookmarkTooltipTimeInfo));
+        Settings.ClearSettingNotifications(nameof(Settings.BookmarkTimelineBrightness));
     }
 
     public void OnColorBookmarkModifier(InputAction.CallbackContext context) => ShiftContext = context;
diff --git a/Assets/__Scripts/Settings/Settings.cs b/Assets/__Scripts/Settings/Settings.cs
index 1428fdec7..5cee5375c 100644
--- a/Assets/__Scripts/Settings/Settings.cs
+++ b/Assets/__Scripts/Settings/Settings.cs
@@ -158,6 +158,7 @@ public class Settings
     public bool GridBookmarksHasLine = true;
     public bool BookmarkTooltipTimeInfo = false;
     public int BookmarkTimelineWidth = 10;
+    public float BookmarkTimelineBrightness = 0.66f;
 
     #endregion
 

From 68650ee3838842d3b417b883b065bb62b6661e80 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sun, 21 Jul 2024 23:21:50 +1000
Subject: [PATCH 29/35] Bookmarks now darken on hover

---
 Assets/_Prefabs/UI/Invalid Bookmark.prefab | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/Assets/_Prefabs/UI/Invalid Bookmark.prefab b/Assets/_Prefabs/UI/Invalid Bookmark.prefab
index 7c1598cd7..bd00de4ad 100644
--- a/Assets/_Prefabs/UI/Invalid Bookmark.prefab	
+++ b/Assets/_Prefabs/UI/Invalid Bookmark.prefab	
@@ -96,9 +96,9 @@ MonoBehaviour:
     m_SelectOnRight: {fileID: 0}
   m_Transition: 1
   m_Colors:
-    m_NormalColor: {r: 0.6603774, g: 0.6603774, b: 0.6603774, a: 1}
-    m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
-    m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
+    m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
+    m_HighlightedColor: {r: 0.75, g: 0.75, b: 0.75, a: 1}
+    m_PressedColor: {r: 0.6, g: 0.6, b: 0.6, a: 1}
     m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
     m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
     m_ColorMultiplier: 1

From f1a80be32cfc785240d7a3b04196e39c420ad2a6 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sun, 21 Jul 2024 23:20:41 +1000
Subject: [PATCH 30/35] Allow creating bookmarks with alpha

(will still default to 1 if the user does not change it)
---
 Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs
index 7e611e7f3..13053850f 100644
--- a/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs
+++ b/Assets/__Scripts/MapEditor/UI/Bookmarks/BookmarkManager.cs
@@ -53,7 +53,7 @@ private IEnumerator Start()
         bookmarkColor = createBookmarkDialogBox
             .AddComponent<NestedColorPickerComponent>()
             .WithLabel("Mapper", "bookmark.dialog.color")
-            .WithConstantAlpha(1f);
+            .WithAlpha();
 
         // Enable quick submit
         createBookmarkDialogBox.OnQuickSubmit(() => CreateNewBookmark(bookmarkName.Value, bookmarkColor.Value));

From 6ef3f0d258df4434b5c81c52855c37f08a1df107 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Sun, 21 Jul 2024 23:44:17 +1000
Subject: [PATCH 31/35] Crowdin translation update

---
 Assets/Locales/FirstBoot_ko.asset          |   3 +-
 Assets/Locales/Mapper_da.asset             |  42 ++++----
 Assets/Locales/Mapper_de.asset             |  42 ++++----
 Assets/Locales/Mapper_en-OWO.asset         |  42 ++++----
 Assets/Locales/Mapper_en-PT.asset          |  42 ++++----
 Assets/Locales/Mapper_es-ES.asset          |  42 ++++----
 Assets/Locales/Mapper_et.asset             |  42 ++++----
 Assets/Locales/Mapper_fi.asset             |  42 ++++----
 Assets/Locales/Mapper_fr.asset             |  42 ++++----
 Assets/Locales/Mapper_ja.asset             |  42 ++++----
 Assets/Locales/Mapper_ko.asset             |  50 +++++-----
 Assets/Locales/Mapper_nl.asset             |  42 ++++----
 Assets/Locales/Mapper_ru.asset             |  42 ++++----
 Assets/Locales/Mapper_sv-SE.asset          |  42 ++++----
 Assets/Locales/Mapper_zh-CN.asset          |  42 ++++----
 Assets/Locales/MultiMapping_da.asset       |  18 ++--
 Assets/Locales/MultiMapping_de.asset       |  18 ++--
 Assets/Locales/MultiMapping_en-OWO.asset   |  18 ++--
 Assets/Locales/MultiMapping_en-PT.asset    |  18 ++--
 Assets/Locales/MultiMapping_es-ES.asset    |  18 ++--
 Assets/Locales/MultiMapping_et.asset       |  18 ++--
 Assets/Locales/MultiMapping_fi.asset       |  18 ++--
 Assets/Locales/MultiMapping_fr.asset       |  18 ++--
 Assets/Locales/MultiMapping_ja.asset       |  18 ++--
 Assets/Locales/MultiMapping_ko.asset       |  18 ++--
 Assets/Locales/MultiMapping_nl.asset       |  18 ++--
 Assets/Locales/MultiMapping_ru.asset       |  18 ++--
 Assets/Locales/MultiMapping_sv-SE.asset    |  18 ++--
 Assets/Locales/MultiMapping_zh-CN.asset    |  18 ++--
 Assets/Locales/Options_da.asset            |  52 +++++-----
 Assets/Locales/Options_de.asset            |  52 +++++-----
 Assets/Locales/Options_en-OWO.asset        |  52 +++++-----
 Assets/Locales/Options_en-PT.asset         |  52 +++++-----
 Assets/Locales/Options_es-ES.asset         |  52 +++++-----
 Assets/Locales/Options_et.asset            |  52 +++++-----
 Assets/Locales/Options_fi.asset            |  52 +++++-----
 Assets/Locales/Options_fr.asset            |  52 +++++-----
 Assets/Locales/Options_ja.asset            |  68 +++++++------
 Assets/Locales/Options_ko.asset            | 106 ++++++++++++---------
 Assets/Locales/Options_nl.asset            |  52 +++++-----
 Assets/Locales/Options_ru.asset            |  52 +++++-----
 Assets/Locales/Options_sv-SE.asset         |  52 +++++-----
 Assets/Locales/Options_zh-CN.asset         |  52 +++++-----
 Assets/Locales/PersistentUI_ko.asset       |   8 +-
 Assets/Locales/SongEditMenu_da.asset       |   6 +-
 Assets/Locales/SongEditMenu_de.asset       |   6 +-
 Assets/Locales/SongEditMenu_en-OWO.asset   |   6 +-
 Assets/Locales/SongEditMenu_en-PT.asset    |   6 +-
 Assets/Locales/SongEditMenu_es-ES.asset    |   6 +-
 Assets/Locales/SongEditMenu_et.asset       |   6 +-
 Assets/Locales/SongEditMenu_fi.asset       |   6 +-
 Assets/Locales/SongEditMenu_fr.asset       |   6 +-
 Assets/Locales/SongEditMenu_ja.asset       |   6 +-
 Assets/Locales/SongEditMenu_ko.asset       |  13 ++-
 Assets/Locales/SongEditMenu_nl.asset       |   6 +-
 Assets/Locales/SongEditMenu_ru.asset       |   6 +-
 Assets/Locales/SongEditMenu_sv-SE.asset    |   6 +-
 Assets/Locales/SongEditMenu_zh-CN.asset    |   6 +-
 Assets/Locales/SongSelectMenu_da.asset     |   6 +-
 Assets/Locales/SongSelectMenu_de.asset     |   6 +-
 Assets/Locales/SongSelectMenu_en-OWO.asset |   6 +-
 Assets/Locales/SongSelectMenu_en-PT.asset  |   6 +-
 Assets/Locales/SongSelectMenu_es-ES.asset  |   6 +-
 Assets/Locales/SongSelectMenu_et.asset     |   6 +-
 Assets/Locales/SongSelectMenu_fi.asset     |   6 +-
 Assets/Locales/SongSelectMenu_fr.asset     |   6 +-
 Assets/Locales/SongSelectMenu_ja.asset     |   6 +-
 Assets/Locales/SongSelectMenu_ko.asset     |  14 ++-
 Assets/Locales/SongSelectMenu_nl.asset     |   6 +-
 Assets/Locales/SongSelectMenu_ru.asset     |   6 +-
 Assets/Locales/SongSelectMenu_sv-SE.asset  |   6 +-
 Assets/Locales/SongSelectMenu_zh-CN.asset  |   6 +-
 72 files changed, 979 insertions(+), 861 deletions(-)

diff --git a/Assets/Locales/FirstBoot_ko.asset b/Assets/Locales/FirstBoot_ko.asset
index 6d11b2933..51e48d8a0 100644
--- a/Assets/Locales/FirstBoot_ko.asset
+++ b/Assets/Locales/FirstBoot_ko.asset
@@ -79,7 +79,8 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 300762994845290496
-    m_Localized: Tweak ChroMapper's lighting to match other map editors.
+    m_Localized: "ChroMapper\uC758 \uB77C\uC774\uD2B8\uB97C \uB2E4\uB978 \uB9F5 \uC5D0\uB514\uD130\uC640
+      \uC77C\uCE58\uD558\uB3C4\uB85D \uC870\uC815\uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   references:
diff --git a/Assets/Locales/Mapper_da.asset b/Assets/Locales/Mapper_da.asset
index 22b923d95..cc1375341 100644
--- a/Assets/Locales/Mapper_da.asset
+++ b/Assets/Locales/Mapper_da.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475571
+    - rid: 1057323853537345616
   m_TableData:
   - m_Id: 1
     m_Localized: Noder {NotesCount}
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 2
     m_Localized: 'Noder i sekundet: {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 3
     m_Localized: 'Valgte noder: {NotesSelected}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 4
     m_Localized: 'Valgte noder i sekundet: {NPSselected:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 5
     m_Localized: 'Forhindringer: {ObstacleCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 6
     m_Localized: 'Begivenheder: {EventCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 7
     m_Localized: "BPM-\xE6ndringer: {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 8
     m_Localized: 'Tid brugt: {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 9
     m_Localized: 'Valgte noder: {SelectedCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 10
     m_Localized: Slut
     m_Metadata:
@@ -136,7 +136,7 @@ MonoBehaviour:
     m_Localized: Gem tidligt; gem tit!
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 30
     m_Localized: Slut ChroMapper
     m_Metadata:
@@ -182,7 +182,7 @@ MonoBehaviour:
     m_Localized: Skift Arbejdstilstande.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 42
     m_Localized: Slet ting.
     m_Metadata:
@@ -268,7 +268,7 @@ MonoBehaviour:
     m_Localized: "{Keybind} For At \xC6ndre"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 65
     m_Localized: Placer Chroma RGB begivenheder.
     m_Metadata:
@@ -587,7 +587,7 @@ MonoBehaviour:
     m_Localized: 'Sving pr. sekund: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 143
     m_Localized: Chroma skridt gradient
     m_Metadata:
@@ -674,17 +674,17 @@ MonoBehaviour:
     m_Localized: "Nuv\xE6rende BPM: {CurrentBPM:0.###}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 1123800776704
     m_Localized: "R\xF8d/Bl\xE5 Ratio: {RedBlueRatio:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 3209883108945920
     m_Localized: 'Bomber: {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 12803634470490112
     m_Localized: "V\xE6lg den nye farve for dette bogm\xE6rke."
     m_Metadata:
@@ -768,7 +768,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -795,16 +795,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475571
+      - rid: 1057323853537345616
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475571
+    - rid: 1057323853537345616
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_de.asset b/Assets/Locales/Mapper_de.asset
index aec02cb52..16ae0a0bd 100644
--- a/Assets/Locales/Mapper_de.asset
+++ b/Assets/Locales/Mapper_de.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475573
+    - rid: 1057323853537345618
   m_TableData:
   - m_Id: 1
     m_Localized: 'Noten: {NotesCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 2
     m_Localized: 'Noten pro Sekunde: {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 3
     m_Localized: "Ausgew\xE4hlte Noten: {NotesSelected}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 4
     m_Localized: 'NPS der Auswahl: {NPSselected:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 5
     m_Localized: 'Hindernisse: {ObstacleCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 6
     m_Localized: 'Events: {EventCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 7
     m_Localized: "BPM-\xC4nderungen: {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 8
     m_Localized: 'Zeit am mappen: {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 9
     m_Localized: "Ausgew\xE4hlt: {SelectedCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 10
     m_Localized: "Zur\xFCck"
     m_Metadata:
@@ -136,7 +136,7 @@ MonoBehaviour:
     m_Localized: "Speichere fr\xFCh, speichere oft!"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 30
     m_Localized: ChroMapper beenden
     m_Metadata:
@@ -182,7 +182,7 @@ MonoBehaviour:
     m_Localized: "Workflows \xE4ndern"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 42
     m_Localized: "Dinge l\xF6schen"
     m_Metadata:
@@ -267,7 +267,7 @@ MonoBehaviour:
     m_Localized: "{Keybind} zum \xE4ndern"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 65
     m_Localized: Setze Chroma RGB Events.
     m_Metadata:
@@ -586,7 +586,7 @@ MonoBehaviour:
     m_Localized: "Schw\xFCnge pro Sekunde: {OverallSPS:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 143
     m_Localized: Chroma Stufengradient
     m_Metadata:
@@ -673,17 +673,17 @@ MonoBehaviour:
     m_Localized: 'Momentaner BPM: {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 1123800776704
     m_Localized: "Rot/Blau Verh\xE4ltnis: {RedBlueRatio:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 3209883108945920
     m_Localized: Bomben:{BombCount}
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 12803634470490112
     m_Localized: "W\xE4hle die neue Farbe f\xFCr dieses Lesezeichen aus."
     m_Metadata:
@@ -765,7 +765,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 256289992891105280
     m_Localized: "Gib die Beatzahl ein, zu der du gehen m\xF6chtest"
     m_Metadata:
@@ -790,16 +790,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475573
+      - rid: 1057323853537345618
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475573
+    - rid: 1057323853537345618
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_en-OWO.asset b/Assets/Locales/Mapper_en-OWO.asset
index b4668132b..e5be622f9 100644
--- a/Assets/Locales/Mapper_en-OWO.asset
+++ b/Assets/Locales/Mapper_en-OWO.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475549
+    - rid: 1057323853537345594
   m_TableData:
   - m_Id: 1
     m_Localized: 'Nwotes: {NotesCount} OwO'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 2
     m_Localized: "Nwotes Pew Swecond: {NPSCount:F2} \u25CF\uFE4F\u25CF"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 3
     m_Localized: 'Sewected Nwotes: {NotesSelected} OWO'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 4
     m_Localized: 'Sewected NPS: {NPSselected:F2} UwU'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 5
     m_Localized: 'Obwtacwels: {ObstacleCount} umu'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 6
     m_Localized: "Ewents: {EventCount}\u30FE(\u3003^\u2207^)\uFF89"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 7
     m_Localized: "BPM Wanges: {BPMCount} \uFF3C(^\u03C9^\uFF3C)"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 8
     m_Localized: "Twime Mwapping: {hours:0}:{minutes:00}:{seconds:00} \u2510(\u2018\uFF5E`\uFF1B)\u250C"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 9
     m_Localized: "Sewected: {SelectedCount} \u25CF\u203F\u25CF"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 10
     m_Localized: Exwit ;w;
     m_Metadata:
@@ -143,7 +143,7 @@ MonoBehaviour:
     m_Localized: "Save eawy, (^\uFF70^);save owften! (^\uFF2F^)"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 30
     m_Localized: "Quit CowoMappew (\u3112o\u3112)"
     m_Metadata:
@@ -188,7 +188,7 @@ MonoBehaviour:
     m_Localized: Change Workfwows.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 42
     m_Localized: Dewete stuff. :c
     m_Metadata:
@@ -274,7 +274,7 @@ MonoBehaviour:
     m_Localized: '{Keybind} To Change'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 65
     m_Localized: Pwace Cowoma RGB ewents.
     m_Metadata:
@@ -605,7 +605,7 @@ MonoBehaviour:
     m_Localized: 'Swings Pew Secownd: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 143
     m_Localized: Chwoma Stjep Gwadient
     m_Metadata:
@@ -692,17 +692,17 @@ MonoBehaviour:
     m_Localized: 'Cuwwent fastnes: {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 1123800776704
     m_Localized: 'Wed/Bwu Watio: {RedBlueRatio:F2} (I know you keep checking this)'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 3209883108945920
     m_Localized: 'OH NO BOMBS: {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 12803634470490112
     m_Localized: Sewect da nyu cowow fow this bukmawk
     m_Metadata:
@@ -786,7 +786,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -813,16 +813,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475549
+      - rid: 1057323853537345594
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475549
+    - rid: 1057323853537345594
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_en-PT.asset b/Assets/Locales/Mapper_en-PT.asset
index 745de1eff..a98b4500c 100644
--- a/Assets/Locales/Mapper_en-PT.asset
+++ b/Assets/Locales/Mapper_en-PT.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475568
+    - rid: 1057323853537345613
   m_TableData:
   - m_Id: 1
     m_Localized: 'Notes: {NotesCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 2
     m_Localized: 'Notes Per Second: {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 3
     m_Localized: 'Selected Notes: {NotesSelected}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 4
     m_Localized: 'Selected NPS: {NPSselected:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 5
     m_Localized: 'Obstacles: {ObstacleCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 6
     m_Localized: 'Events: {EventCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 7
     m_Localized: 'BPM Changes: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 8
     m_Localized: 'Time Mapping: {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 9
     m_Localized: 'Selected: {SelectedCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 10
     m_Localized: Abandon Ship!
     m_Metadata:
@@ -138,7 +138,7 @@ MonoBehaviour:
     m_Localized: Save early; save often!
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 30
     m_Localized: Abandon Ship!
     m_Metadata:
@@ -184,7 +184,7 @@ MonoBehaviour:
     m_Localized: Change Workflows.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 42
     m_Localized: Delete stuff.
     m_Metadata:
@@ -269,7 +269,7 @@ MonoBehaviour:
     m_Localized: '{Keybind} To Change'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 65
     m_Localized: Place Chroma RGB events.
     m_Metadata:
@@ -595,7 +595,7 @@ MonoBehaviour:
     m_Localized: 'Swings Per Second: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 143
     m_Localized: Chroma Step Gradient
     m_Metadata:
@@ -682,17 +682,17 @@ MonoBehaviour:
     m_Localized: 'Current BPM: {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 1123800776704
     m_Localized: 'Red/Blue Ratio: {RedBlueRatio:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 3209883108945920
     m_Localized: 'Bombs: {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 12803634470490112
     m_Localized: Select the new color for this bookmark.
     m_Metadata:
@@ -776,7 +776,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -803,16 +803,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475568
+      - rid: 1057323853537345613
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475568
+    - rid: 1057323853537345613
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_es-ES.asset b/Assets/Locales/Mapper_es-ES.asset
index 82c3f474f..65455dd58 100644
--- a/Assets/Locales/Mapper_es-ES.asset
+++ b/Assets/Locales/Mapper_es-ES.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475526
+    - rid: 1057323853537345571
   m_TableData:
   - m_Id: 1
     m_Localized: 'Notas: {NotesCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 2
     m_Localized: 'Notes Per Second: {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 3
     m_Localized: 'Notas Seleccionadas: {NotesSelected}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 4
     m_Localized: 'NPS seleccionado: {NPSselected:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 5
     m_Localized: "Obst\xE1culos: {ObstacleCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 6
     m_Localized: 'Eventos: {EventCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 7
     m_Localized: 'Cambios de BPM: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 8
     m_Localized: 'Tiempo Mapeando: {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 9
     m_Localized: 'Seleccionado: {SelectedCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 10
     m_Localized: Salir
     m_Metadata:
@@ -143,7 +143,7 @@ MonoBehaviour:
     m_Localized: "\xA1Guarda cuanto antes, guarda a menudo!"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 30
     m_Localized: Salir de ChroMapper
     m_Metadata:
@@ -219,7 +219,7 @@ MonoBehaviour:
     m_Localized: Cambiar los flujos de trabajo.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 42
     m_Localized: Eliminar cosas.
     m_Metadata:
@@ -304,7 +304,7 @@ MonoBehaviour:
     m_Localized: '{Keybind} a cambiar'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 65
     m_Localized: Coloque los eventos de Chroma RGB.
     m_Metadata:
@@ -634,7 +634,7 @@ MonoBehaviour:
     m_Localized: 'Oscilaciones por segundo: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 143
     m_Localized: Gradiente escalonado de Chroma
     m_Metadata:
@@ -691,17 +691,17 @@ MonoBehaviour:
     m_Localized: 'BPM Actual: {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 1123800776704
     m_Localized: 'Ratio de Rojo/Azul: {RedBlueRatio:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 3209883108945920
     m_Localized: 'Bombas: {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 12803634470490112
     m_Localized: Seleccione el nuevo color para este marcador.
     m_Metadata:
@@ -785,7 +785,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -812,16 +812,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475526
+      - rid: 1057323853537345571
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475526
+    - rid: 1057323853537345571
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_et.asset b/Assets/Locales/Mapper_et.asset
index 47650536a..6afe85a66 100644
--- a/Assets/Locales/Mapper_et.asset
+++ b/Assets/Locales/Mapper_et.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475556
+    - rid: 1057323853537345601
   m_TableData:
   - m_Id: 1
     m_Localized: 'Nootide arv: {NotesCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 2
     m_Localized: 'Noote sekundis: {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 3
     m_Localized: 'Valitud noote: {NotesSelected}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 4
     m_Localized: 'Valitud nootide kiirus: {NPSselected:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 5
     m_Localized: 'Takistused: {ObstacleCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 6
     m_Localized: "S\xFCndmused: {EventCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 7
     m_Localized: 'BPM muutused: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 8
     m_Localized: 'Mappimisele kulutatud aeg: {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 9
     m_Localized: 'Valitud: {SelectedCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 10
     m_Localized: Lahku
     m_Metadata:
@@ -137,7 +137,7 @@ MonoBehaviour:
     m_Localized: Salvesta varakult, salvesta palju!
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 30
     m_Localized: "V\xE4ljuge ChroMapperist"
     m_Metadata:
@@ -183,7 +183,7 @@ MonoBehaviour:
     m_Localized: "T\xF6\xF6voogude muutmine."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 42
     m_Localized: Kustuta asju.
     m_Metadata:
@@ -268,7 +268,7 @@ MonoBehaviour:
     m_Localized: '{Keybind} To Change'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 65
     m_Localized: Place Chroma RGB events.
     m_Metadata:
@@ -594,7 +594,7 @@ MonoBehaviour:
     m_Localized: 'Swings Per Second: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 143
     m_Localized: Chroma Step Gradient
     m_Metadata:
@@ -681,17 +681,17 @@ MonoBehaviour:
     m_Localized: 'Current BPM: {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 1123800776704
     m_Localized: 'Red/Blue Ratio: {RedBlueRatio:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 3209883108945920
     m_Localized: 'Bombs: {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 12803634470490112
     m_Localized: Select the new color for this bookmark.
     m_Metadata:
@@ -775,7 +775,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -802,16 +802,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475556
+      - rid: 1057323853537345601
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475556
+    - rid: 1057323853537345601
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_fi.asset b/Assets/Locales/Mapper_fi.asset
index 40b680605..e6a5d571b 100644
--- a/Assets/Locales/Mapper_fi.asset
+++ b/Assets/Locales/Mapper_fi.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475591
+    - rid: 1057323853537345636
   m_TableData:
   - m_Id: 1
     m_Localized: 'Nuotit: {NotesCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 2
     m_Localized: 'Nuotteja Sekunnissa: {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 3
     m_Localized: 'Valittuja Nuotteja: {NotesSelected}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 4
     m_Localized: 'Valinnan Nuotit Sekunnissa: {NPSselected:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 5
     m_Localized: 'Esteet: {ObstacleCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 6
     m_Localized: 'Eventit: {EventCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 7
     m_Localized: 'BPM-Muutokset: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 8
     m_Localized: 'Aikaa Kulunut: {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 9
     m_Localized: 'Valittu: {SelectedCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 10
     m_Localized: Poistu
     m_Metadata:
@@ -142,7 +142,7 @@ MonoBehaviour:
     m_Localized: Tallenna aikaisin; tallenna usein!
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 30
     m_Localized: Poistu ChroMapperista
     m_Metadata:
@@ -188,7 +188,7 @@ MonoBehaviour:
     m_Localized: "Muuta Ty\xF6nkulkua."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 42
     m_Localized: Poista juttuja.
     m_Metadata:
@@ -273,7 +273,7 @@ MonoBehaviour:
     m_Localized: '{Keybind} Vaihtaaksesi'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 65
     m_Localized: "Aseta Chroma RGB-eventtej\xE4."
     m_Metadata:
@@ -591,7 +591,7 @@ MonoBehaviour:
     m_Localized: 'Huitaisua Sekunnissa: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 143
     m_Localized: Chroma Step-Gradientti
     m_Metadata:
@@ -678,17 +678,17 @@ MonoBehaviour:
     m_Localized: 'Nykyinen BPM: {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 1123800776704
     m_Localized: 'Punaisen/sinisen suhde: {RedBlueRatio:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 3209883108945920
     m_Localized: 'Pommit: {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 12803634470490112
     m_Localized: "Valitse uusi v\xE4ri t\xE4lle kirjanmerkille."
     m_Metadata:
@@ -773,7 +773,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -800,16 +800,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475591
+      - rid: 1057323853537345636
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475591
+    - rid: 1057323853537345636
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_fr.asset b/Assets/Locales/Mapper_fr.asset
index a9f05a20f..2082ae7ac 100644
--- a/Assets/Locales/Mapper_fr.asset
+++ b/Assets/Locales/Mapper_fr.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475587
+    - rid: 1057323853537345632
   m_TableData:
   - m_Id: 1
     m_Localized: 'Notes: {NotesCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 2
     m_Localized: 'Notes par seconde : {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 3
     m_Localized: "Notes s\xE9lectionn\xE9es : {NotesSelected}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 4
     m_Localized: "NPS s\xE9lectionn\xE9es : {NPSselected:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 5
     m_Localized: 'Obstacles : {ObstacleCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 6
     m_Localized: "\xC9v\xE9nements : {EventCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 7
     m_Localized: 'Changements de BPM : {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 8
     m_Localized: 'Temps de travail : {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 9
     m_Localized: "S\xE9lectionn\xE9s : {SelectedCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 10
     m_Localized: Quitter
     m_Metadata:
@@ -141,7 +141,7 @@ MonoBehaviour:
     m_Localized: "Sauvez t\xF4t; sauvez souvent !"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 30
     m_Localized: Quitter ChroMapper
     m_Metadata:
@@ -188,7 +188,7 @@ MonoBehaviour:
     m_Localized: Changer de workflow.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 42
     m_Localized: Supprimez des objets.
     m_Metadata:
@@ -273,7 +273,7 @@ MonoBehaviour:
     m_Localized: '{Keybind} pour changer'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 65
     m_Localized: "Placer des \xE9v\xE9nements RVB Chroma."
     m_Metadata:
@@ -608,7 +608,7 @@ MonoBehaviour:
     m_Localized: 'Swings par seconde: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 143
     m_Localized: "Les \xC9tapes du D\xE9grad\xE9 Chroma"
     m_Metadata:
@@ -695,17 +695,17 @@ MonoBehaviour:
     m_Localized: 'BPM actuel : {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 1123800776704
     m_Localized: 'Ratio Rouge/Bleu : {RedBlueRatio:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 3209883108945920
     m_Localized: 'Bombes : {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 12803634470490112
     m_Localized: "S\xE9lectionnez la nouvelle couleur pour ce signet."
     m_Metadata:
@@ -789,7 +789,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -816,16 +816,16 @@ MonoBehaviour:
     m_Localized: "Arcs\_: {ArcCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475587
+      - rid: 1057323853537345632
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475587
+    - rid: 1057323853537345632
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_ja.asset b/Assets/Locales/Mapper_ja.asset
index cc05b4958..1c32dd253 100644
--- a/Assets/Locales/Mapper_ja.asset
+++ b/Assets/Locales/Mapper_ja.asset
@@ -17,54 +17,54 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475589
+    - rid: 1057323853537345635
   m_TableData:
   - m_Id: 1
     m_Localized: "\u30CE\u30FC\u30C4\uFF1A{NotesCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 2
     m_Localized: "\u30CE\u30FC\u30C4\u6BCE\u79D2\uFF1A{NPSCount:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 3
     m_Localized: "\u9078\u629E\u4E2D\u30CE\u30FC\u30C4\uFF1A{NotesSelected}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 4
     m_Localized: "\u9078\u629E\u6E08\u307F\u30CE\u30FC\u30C4\u6BCE\u79D2\uFF1A{NPSselected:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 5
     m_Localized: "\u969C\u5BB3\u7269: {ObstacleCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 6
     m_Localized: "\u30A4\u30D9\u30F3\u30C8: {EventCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 7
     m_Localized: "BPM\u5909\u66F4: {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 8
     m_Localized: "\u30DE\u30C3\u30D4\u30F3\u30B0\u306B\u8CBB\u3084\u3057\u305F\u6642\u9593:
       {hours:0}:{minutes:00}:{seconds:00}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 9
     m_Localized: "\u9078\u629E\u6E08\u307F\uFF1A{SelectedCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 10
     m_Localized: "\u7D42\u4E86"
     m_Metadata:
@@ -137,7 +137,7 @@ MonoBehaviour:
     m_Localized: "\u983B\u7E41\u306B\u4FDD\u5B58\u3059\u308B"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 30
     m_Localized: "ChroMapper\u3092\u7D42\u4E86"
     m_Metadata:
@@ -183,7 +183,7 @@ MonoBehaviour:
     m_Localized: "\u5909\u66F4\u30EF\u30FC\u30AF\u30D5\u30ED\u30FC"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 42
     m_Localized: "\u524A\u9664"
     m_Metadata:
@@ -268,7 +268,7 @@ MonoBehaviour:
     m_Localized: "{Keybind} \u5909\u66F4\u3059\u308B\u306B\u306F"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 65
     m_Localized: "\u3010Chroma RGB\u3011 \u30A4\u30D9\u30F3\u30C8\u3092\u914D\u7F6E\u3059\u308B"
     m_Metadata:
@@ -583,7 +583,7 @@ MonoBehaviour:
     m_Localized: "\u30B9\u30A4\u30F3\u30B0/\u79D2: {OverallSPS:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 143
     m_Localized: "Chroma\u306E\u30B0\u30E9\u30C7\u30FC\u30B7\u30E7\u30F3\u30B9\u30C6\u30C3\u30D7"
     m_Metadata:
@@ -670,17 +670,17 @@ MonoBehaviour:
     m_Localized: "\u73FE\u5728\u306EBPM: {CurrentBPM:0.###}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 1123800776704
     m_Localized: "\u8D64/\u9752\u306E\u6BD4\u7387: {RedBlueRatio:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 3209883108945920
     m_Localized: "\u30DC\u30E0: {BombCount}\u3000\u3000"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 12803634470490112
     m_Localized: "\u3053\u306E\u30D6\u30C3\u30AF\u30DE\u30FC\u30AF\u306E\u65B0\u3057\u3044\u8272\u3092\u9078\u629E\u3057\u307E\u3059"
     m_Metadata:
@@ -761,7 +761,7 @@ MonoBehaviour:
     m_Localized: "BPM\u30A4\u30D9\u30F3\u30C8: {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 256289992891105280
     m_Localized: "\u30B8\u30E3\u30F3\u30D7\u3057\u305F\u3044\u30D3\u30FC\u30C8\u306E\u4F4D\u7F6E\u3092\u5165\u529B\u3057\u3066\u304F\u3060\u3055\u3044"
     m_Metadata:
@@ -786,16 +786,16 @@ MonoBehaviour:
     m_Localized: "\u30A2\u30FC\u30AF: {ArcCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   - m_Id: 357744742603026432
     m_Localized: "\u30C1\u30A7\u30FC\u30F3: {ChainCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475589
+      - rid: 1057323853537345635
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475589
+    - rid: 1057323853537345635
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_ko.asset b/Assets/Locales/Mapper_ko.asset
index ebde16646..a0f1a2b43 100644
--- a/Assets/Locales/Mapper_ko.asset
+++ b/Assets/Locales/Mapper_ko.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475530
+    - rid: 1057323853537345575
   m_TableData:
   - m_Id: 105
     m_Localized: "\uD68C\uC804 \uC774\uBCA4\uD2B8\uB294 360\uB3C4, 90\uB3C4, Lawless\uAC00
@@ -116,7 +116,7 @@ MonoBehaviour:
     m_Localized: "\uC791\uC5C5 \uD750\uB984\uC744 \uBCC0\uACBD\uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 154
     m_Localized: "\uC2A4\uD399\uD2B8\uB85C\uADF8\uB7A8\uC774 \uC788\uB294 \uBA74\uC744
       \uBC14\uAFC9\uB2C8\uB2E4."
@@ -245,62 +245,62 @@ MonoBehaviour:
     m_Localized: "\uD3ED\uD0C4 \uAC1C\uC218: {BombCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 7
     m_Localized: "BPM \uBCC0\uACBD \uD69F\uC218: {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 234935484416
     m_Localized: "\uD604\uC7AC BPM: {CurrentBPM:0.###}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 6
     m_Localized: "\uC774\uBCA4\uD2B8 \uAC1C\uC218: {EventCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 1
     m_Localized: "\uB178\uD2B8 \uAC1C\uC218: {NotesCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 3
     m_Localized: "\uC120\uD0DD\uB41C \uB178\uD2B8 \uAC1C\uC218: {NotesSelected}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 2
     m_Localized: "\uCD08\uB2F9 \uB178\uD2B8 \uC218: {NPSCount:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 4
     m_Localized: "\uC120\uD0DD\uB41C \uCD08\uB2F9 \uB178\uD2B8 \uC218: {NPSselected:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 5
     m_Localized: "\uBCBD \uAC1C\uC218: {ObstacleCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 1123800776704
     m_Localized: "\uBE68\uAC04\uC0C9/\uD30C\uB780\uC0C9 \uBE44\uC728: {RedBlueRatio:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 141
     m_Localized: "\uCD08\uB2F9 \uC2A4\uC719 \uC218: {OverallSPS:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 8
     m_Localized: "\uB9E4\uD551\uD55C \uC2DC\uAC04: {hours:0}:{minutes:00}:{seconds:00}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 86
     m_Localized: "\uC0C9\uC0C1 \uBC18\uC804"
     m_Metadata:
@@ -584,7 +584,7 @@ MonoBehaviour:
     m_Localized: "\uBBF8\uB9AC, \uC790\uC8FC \uC800\uC7A5\uD558\uC138\uC694!"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 12
     m_Localized: "\uC800\uC7A5 \uBC0F \uB098\uAC00\uAE30"
     m_Metadata:
@@ -685,12 +685,12 @@ MonoBehaviour:
     m_Localized: "\uC120\uD0DD\uB41C \uAC1C\uC218: {SelectedCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 64
     m_Localized: "{Keybind} \uB85C \uBCC0\uACBD"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 58
     m_Localized: "UI \uBAA8\uB4DC"
     m_Metadata:
@@ -795,7 +795,7 @@ MonoBehaviour:
     m_Localized: "BPM \uBCC0\uACBD \uD69F\uC218: {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 256289992891105280
     m_Localized: "\uAC00\uACE0 \uC2F6\uC740 \uBE44\uD2B8\uB97C \uC785\uB825\uD558\uC138\uC694"
     m_Metadata:
@@ -806,11 +806,11 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 294393564396453888
-    m_Localized: Invalid number.
+    m_Localized: "\uC798\uBABB\uB41C \uC22B\uC790."
     m_Metadata:
       m_Items: []
   - m_Id: 294393379213737984
-    m_Localized: Reset Beat
+    m_Localized: "\uBE44\uD2B8 \uC7AC\uC124\uC815"
     m_Metadata:
       m_Items: []
   - m_Id: 294393312377503744
@@ -818,19 +818,19 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 357744672130330624
-    m_Localized: 'Arcs: {ArcCount}'
+    m_Localized: "\uC544\uD06C: {ArcCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   - m_Id: 357744742603026432
-    m_Localized: 'Chains: {ChainCount}'
+    m_Localized: "\uCCB4\uC778: {ChainCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475530
+      - rid: 1057323853537345575
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475530
+    - rid: 1057323853537345575
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_nl.asset b/Assets/Locales/Mapper_nl.asset
index e58577f02..da83bbc02 100644
--- a/Assets/Locales/Mapper_nl.asset
+++ b/Assets/Locales/Mapper_nl.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475590
+    - rid: 1057323853537345634
   m_TableData:
   - m_Id: 1
     m_Localized: 'Noten: {NotesCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 2
     m_Localized: 'Noten per seconde: {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 3
     m_Localized: 'Aantal geselecteerde noten: {NotesSelected}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 4
     m_Localized: 'Noten per seconde v/d selectie: {NPSselected:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 5
     m_Localized: 'Aantal obstakels: {ObstacleCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 6
     m_Localized: 'Aantal evenementen: {EventCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 7
     m_Localized: 'BPM wijzigingen: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 8
     m_Localized: 'Tijd verstreken: {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 9
     m_Localized: 'Geselecteerd: {SelectedCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 10
     m_Localized: Sluiten
     m_Metadata:
@@ -143,7 +143,7 @@ MonoBehaviour:
     m_Localized: Sla vaak op!
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 30
     m_Localized: ChroMapper sluiten
     m_Metadata:
@@ -189,7 +189,7 @@ MonoBehaviour:
     m_Localized: Verander workflow.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 42
     m_Localized: Objecten verwijderen.
     m_Metadata:
@@ -274,7 +274,7 @@ MonoBehaviour:
     m_Localized: '{Keybind} om te veranderen'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 65
     m_Localized: Plaats Chroma RGB evenementen.
     m_Metadata:
@@ -603,7 +603,7 @@ MonoBehaviour:
     m_Localized: 'Swings per seconde: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 143
     m_Localized: "Chroma Stap Gradi\xEBnt"
     m_Metadata:
@@ -690,17 +690,17 @@ MonoBehaviour:
     m_Localized: 'Huidige BPM: {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 1123800776704
     m_Localized: 'Rood/Blauw Verhouding: {RedBlueRatio:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 3209883108945920
     m_Localized: 'Bommen: {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 12803634470490112
     m_Localized: Selecteer een nieuwe kleur voor deze bladwijzer.
     m_Metadata:
@@ -784,7 +784,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -811,16 +811,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475590
+      - rid: 1057323853537345634
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475590
+    - rid: 1057323853537345634
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_ru.asset b/Assets/Locales/Mapper_ru.asset
index 0fe64d884..cd329201f 100644
--- a/Assets/Locales/Mapper_ru.asset
+++ b/Assets/Locales/Mapper_ru.asset
@@ -17,60 +17,60 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475531
+    - rid: 1057323853537345576
   m_TableData:
   - m_Id: 1
     m_Localized: "\u0411\u043B\u043E\u043A\u043E\u0432: {NotesCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 2
     m_Localized: "\u0411\u043B\u043E\u043A\u043E\u0432 \u0432 \u0441\u0435\u043A\u0443\u043D\u0434\u0443:
       {NPSCount:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 3
     m_Localized: "\u0412\u044B\u0431\u0440\u0430\u043D\u043E \u0431\u043B\u043E\u043A\u043E\u0432:
       {NotesSelected}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 4
     m_Localized: "\u0411\u043B\u043E\u043A\u043E\u0432 \u0432 \u0441\u0435\u043A\u0443\u043D\u0434\u0443
       \u0432 \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u043E\u043C \u043E\u0442\u0440\u0435\u0437\u043A\u0435:
       {NPSselected:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 5
     m_Localized: "\u041F\u0440\u0435\u043F\u044F\u0442\u0441\u0442\u0432\u0438\u0439:
       {ObstacleCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 6
     m_Localized: "\u0418\u0432\u0435\u043D\u0442\u043E\u0432: {EventCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 7
     m_Localized: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0439 \u0442\u0435\u043C\u043F\u0430:
       {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 8
     m_Localized: "\u0412\u0440\u0435\u043C\u044F \u0441\u043E\u0437\u0434\u0430\u043D\u0438\u044F:
       {hours:0}:{minutes:00}:{seconds:00}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 9
     m_Localized: "\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {SelectedCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 10
     m_Localized: "\u0412\u044B\u0445\u043E\u0434"
     m_Metadata:
@@ -154,7 +154,7 @@ MonoBehaviour:
       \u0438 \u0447\u0430\u0449\u0435!"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 30
     m_Localized: "\u0412\u044B\u0439\u0442\u0438"
     m_Metadata:
@@ -209,7 +209,7 @@ MonoBehaviour:
       \u043F\u0440\u043E\u0441\u0442\u0440\u0430\u043D\u0441\u0442\u0432\u043E."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 42
     m_Localized: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C."
     m_Metadata:
@@ -301,7 +301,7 @@ MonoBehaviour:
       \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 65
     m_Localized: "\u0420\u0430\u0437\u043C\u0435\u0441\u0442\u0438\u0442\u044C \u0438\u0432\u0435\u043D\u0442\u044B
       Chroma RGB."
@@ -713,7 +713,7 @@ MonoBehaviour:
       {OverallSPS:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 143
     m_Localized: "\u041F\u043E\u0448\u0430\u0433\u043E\u0432\u044B\u0439 \u0433\u0440\u0430\u0434\u0438\u0435\u043D\u0442
       Chroma"
@@ -803,19 +803,19 @@ MonoBehaviour:
     m_Localized: "\u0422\u0435\u043A\u0443\u0449\u0438\u0439 BPM: {CurrentBPM:0.###}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 1123800776704
     m_Localized: "\u0421\u043E\u043E\u0442\u043D\u043E\u0448\u0435\u043D\u0438\u0435
       \u043A\u0440\u0430\u0441\u043D\u044B\u0445/\u0441\u0438\u043D\u0438\u0445 \u043D\u043E\u0442:
       {RedBlueRatio:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 3209883108945920
     m_Localized: "\u0411\u043E\u043C\u0431: {BombCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 12803634470490112
     m_Localized: "\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0446\u0432\u0435\u0442
       \u0434\u043B\u044F \u044D\u0442\u043E\u0439 \u0437\u0430\u043A\u043B\u0430\u0434\u043A\u0438."
@@ -916,7 +916,7 @@ MonoBehaviour:
     m_Localized: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 BPM: {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 256289992891105280
     m_Localized: "\u0412\u0432\u0435\u0434\u0438\u0442\u0435 BPM, \u043D\u0430 \u043A\u043E\u0442\u043E\u0440\u044B\u0439
       \u043D\u0443\u0436\u043D\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C \u043F\u0435\u0440\u0435\u0445\u043E\u0434"
@@ -945,16 +945,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475531
+      - rid: 1057323853537345576
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475531
+    - rid: 1057323853537345576
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_sv-SE.asset b/Assets/Locales/Mapper_sv-SE.asset
index dac9adc81..ca309bf70 100644
--- a/Assets/Locales/Mapper_sv-SE.asset
+++ b/Assets/Locales/Mapper_sv-SE.asset
@@ -17,53 +17,53 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475544
+    - rid: 1057323853537345589
   m_TableData:
   - m_Id: 1
     m_Localized: 'Block: {NotesCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 2
     m_Localized: 'Block Per Sekund: {NPSCount:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 3
     m_Localized: 'Valda Block: {NotesSelected}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 4
     m_Localized: 'Valda BPS: {NPSselected:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 5
     m_Localized: 'Hinder: {ObstacleCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 6
     m_Localized: 'Events: {EventCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 7
     m_Localized: "TPM-\xE4ndringar: {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 8
     m_Localized: 'Tid spenderat: {hours:0}:{minutes:00}:{seconds:00}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 9
     m_Localized: 'Markerade: {SelectedCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 10
     m_Localized: Avsluta
     m_Metadata:
@@ -142,7 +142,7 @@ MonoBehaviour:
       spara ofta!'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 30
     m_Localized: Avsluta ChroMapper
     m_Metadata:
@@ -218,7 +218,7 @@ MonoBehaviour:
     m_Localized: "\xC4ndra arbetsfl\xF6det."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 42
     m_Localized: Radera saker.
     m_Metadata:
@@ -303,7 +303,7 @@ MonoBehaviour:
     m_Localized: "{Keybind} F\xF6r att \xE4ndra"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 65
     m_Localized: "Placera Chroma RGB-h\xE4ndelser."
     m_Metadata:
@@ -626,7 +626,7 @@ MonoBehaviour:
     m_Localized: 'Slag Per Sekund: {OverallSPS:F2}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 143
     m_Localized: Chroma Step Gradient
     m_Metadata:
@@ -683,17 +683,17 @@ MonoBehaviour:
     m_Localized: 'Nuvarande BPM: {CurrentBPM:0.###}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 1123800776704
     m_Localized: "R\xF6tt/Bl\xE5tt F\xF6rh\xE5llande: {RedBlueRatio:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 3209883108945920
     m_Localized: 'Bomber: {BombCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 12803634470490112
     m_Localized: "V\xE4lj den nya f\xE4rgen f\xF6r detta bokm\xE4rke."
     m_Metadata:
@@ -777,7 +777,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -804,16 +804,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475544
+      - rid: 1057323853537345589
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475544
+    - rid: 1057323853537345589
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/Mapper_zh-CN.asset b/Assets/Locales/Mapper_zh-CN.asset
index 683803c4b..7a6e85e21 100644
--- a/Assets/Locales/Mapper_zh-CN.asset
+++ b/Assets/Locales/Mapper_zh-CN.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 8944026aec77cf8479a89f2280c8e1ff, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475592
+    - rid: 1057323853537345637
   m_TableData:
   - m_Id: 105
     m_Localized: "\u5728360\u5EA6\u300190\u5EA6\u548C\u65E0\u89C4\u5F8B\u7684\u7279\u5F81\u4E4B\u5916\uFF0C\u65CB\u8F6C\u4E8B\u4EF6\u88AB\u7981\u7528\u3002\n\n\u5982\u679C\u4F60\u60F3\u653E\u7F6E\u8FD9\u4E9B\u4E8B\u4EF6\uFF0C\u8BF7\u4E3A\u4E0A\u8FF0\u7279\u5F81\u521B\u9020\u56F0\u96BE\u3002"
@@ -111,7 +111,7 @@ MonoBehaviour:
     m_Localized: "\u66F4\u6539\u5DE5\u4F5C\u6D41\u7A0B\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 154
     m_Localized: "\u5207\u6362\u5149\u8C31\u5230\u53E6\u4E00\u4FA7\u3002"
     m_Metadata:
@@ -233,62 +233,62 @@ MonoBehaviour:
     m_Localized: "\u70B8\u5F39\uFF1A {BombCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 7
     m_Localized: "BPM \u53D8\u5316\uFF1A {BPMCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 234935484416
     m_Localized: "\u5F53\u524D BPM\uFF1A {CurrentBPM:0.###}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 6
     m_Localized: "\u4E8B\u4EF6\uFF1A {EventCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 1
     m_Localized: "\u97F3\u7B26\uFF1A {NotesCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 3
     m_Localized: "\u6240\u9009\u97F3\u7B26: {NotesSelected}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 2
     m_Localized: "\u6BCF\u79D2\u97F3\u7B26\u6570\uFF1A {NPSCount:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 4
     m_Localized: "\u9009\u4E2D\u7684NPS: {NPSselected:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 5
     m_Localized: "\u969C\u788D: {ObstacleCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 1123800776704
     m_Localized: "\u7EA2/\u84DD \u6BD4\u4F8B: {RedBlueRatio:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 141
     m_Localized: "\u6BCF\u79D2\u6325\u51FB\u6570\uFF1A {OverallSPS:F2}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 8
     m_Localized: "\u7ED8\u8C31\u65F6\u95F4: {hours:0}:{minutes:00}:{seconds:00}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 86
     m_Localized: "\u7FFB\u8F6C\u989C\u8272"
     m_Metadata:
@@ -552,7 +552,7 @@ MonoBehaviour:
     m_Localized: "\u63D0\u524D\u4FDD\u5B58\uFF0C\u7ECF\u5E38\u4FDD\u5B58\uFF01"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 12
     m_Localized: "\u4FDD\u5B58\u5E76\u9000\u51FA"
     m_Metadata:
@@ -651,12 +651,12 @@ MonoBehaviour:
     m_Localized: "\u9009\u4E2D: {SelectedCount}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 64
     m_Localized: "{Keybind} \u5207\u6362"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 58
     m_Localized: "UI\u6A21\u5F0F"
     m_Metadata:
@@ -758,7 +758,7 @@ MonoBehaviour:
     m_Localized: 'BPM Events: {BPMCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 256289992891105280
     m_Localized: Enter the beat you want to go to
     m_Metadata:
@@ -785,16 +785,16 @@ MonoBehaviour:
     m_Localized: 'Arcs: {ArcCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   - m_Id: 357744742603026432
     m_Localized: 'Chains: {ChainCount}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475592
+      - rid: 1057323853537345637
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475592
+    - rid: 1057323853537345637
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 290000000000000000b07a265f670b00070000000000000000003fb3360000000600000000000000010000000000000003000000000000000200000000000000040000000000000005000000000000000000bfa7050100008d0000000000000008000000000000001d0000000000000009000000000000004000000000000000000083e97b09560300f09d46e2f6f60400f01daff2f6f604
diff --git a/Assets/Locales/MultiMapping_da.asset b/Assets/Locales/MultiMapping_da.asset
index 3328bf703..81e629272 100644
--- a/Assets/Locales/MultiMapping_da.asset
+++ b/Assets/Locales/MultiMapping_da.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475588
+    - rid: 1057323853537345633
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Join Session
@@ -88,17 +88,17 @@ MonoBehaviour:
     m_Localized: 'Connection with the host lost: {0}. Returning to song list...'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475588
+      - rid: 1057323853537345633
   - m_Id: 5357561843712
     m_Localized: 'A networking error occured: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475588
+      - rid: 1057323853537345633
   - m_Id: 5800807501824
     m_Localized: 'Connection with the ChroMapTogether server lost: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475588
+      - rid: 1057323853537345633
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -125,26 +125,26 @@ MonoBehaviour:
     m_Localized: This object was first created/modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475588
+      - rid: 1057323853537345633
   - m_Id: 2018498240393216
     m_Localized: This object was last modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475588
+      - rid: 1057323853537345633
   - m_Id: 2336103375384576
     m_Localized: Are you sure you want to ban {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475588
+      - rid: 1057323853537345633
   - m_Id: 2336237542780928
     m_Localized: Are you sure you want to kick {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475588
+      - rid: 1057323853537345633
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475588
+    - rid: 1057323853537345633
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_de.asset b/Assets/Locales/MultiMapping_de.asset
index 8d0ba530b..f8fc83ae2 100644
--- a/Assets/Locales/MultiMapping_de.asset
+++ b/Assets/Locales/MultiMapping_de.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475538
+    - rid: 1057323853537345583
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Sitzung beitreten
@@ -85,17 +85,17 @@ MonoBehaviour:
       zur\xFCck..."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475538
+      - rid: 1057323853537345583
   - m_Id: 5357561843712
     m_Localized: 'Ein Netzwerkfehler ist aufgetreten: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475538
+      - rid: 1057323853537345583
   - m_Id: 5800807501824
     m_Localized: 'Verbindung mit dem ChroMapTogether Server wurde verloren: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475538
+      - rid: 1057323853537345583
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -123,26 +123,26 @@ MonoBehaviour:
     m_Localized: "Dieses Objekt wurde zuerst von {0} erstellt/ge\xE4ndert."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475538
+      - rid: 1057323853537345583
   - m_Id: 2018498240393216
     m_Localized: "Dieses Objekt wurde zuletzt von {0} ge\xE4ndert."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475538
+      - rid: 1057323853537345583
   - m_Id: 2336103375384576
     m_Localized: "Sicher, dass du {0} aus der Sitzung bannen m\xF6chtest?"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475538
+      - rid: 1057323853537345583
   - m_Id: 2336237542780928
     m_Localized: "Sicher, dass du {0} aus der Sitzung herauswerfen m\xF6chtest?"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475538
+      - rid: 1057323853537345583
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475538
+    - rid: 1057323853537345583
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_en-OWO.asset b/Assets/Locales/MultiMapping_en-OWO.asset
index 0a828e4a6..35d3342d0 100644
--- a/Assets/Locales/MultiMapping_en-OWO.asset
+++ b/Assets/Locales/MultiMapping_en-OWO.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475543
+    - rid: 1057323853537345588
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Join Session
@@ -88,17 +88,17 @@ MonoBehaviour:
     m_Localized: 'Connection with the host lost: {0}. Returning to song list...'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475543
+      - rid: 1057323853537345588
   - m_Id: 5357561843712
     m_Localized: 'A networking error occured: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475543
+      - rid: 1057323853537345588
   - m_Id: 5800807501824
     m_Localized: 'Connection with the ChroMapTogether server lost: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475543
+      - rid: 1057323853537345588
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -125,26 +125,26 @@ MonoBehaviour:
     m_Localized: This object was first created/modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475543
+      - rid: 1057323853537345588
   - m_Id: 2018498240393216
     m_Localized: This object was last modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475543
+      - rid: 1057323853537345588
   - m_Id: 2336103375384576
     m_Localized: Are you sure you want to ban {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475543
+      - rid: 1057323853537345588
   - m_Id: 2336237542780928
     m_Localized: Are you sure you want to kick {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475543
+      - rid: 1057323853537345588
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475543
+    - rid: 1057323853537345588
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_en-PT.asset b/Assets/Locales/MultiMapping_en-PT.asset
index 3966d3708..876ae77d3 100644
--- a/Assets/Locales/MultiMapping_en-PT.asset
+++ b/Assets/Locales/MultiMapping_en-PT.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475532
+    - rid: 1057323853537345577
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Join Session
@@ -88,17 +88,17 @@ MonoBehaviour:
     m_Localized: 'Connection with the host lost: {0}. Returning to song list...'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475532
+      - rid: 1057323853537345577
   - m_Id: 5357561843712
     m_Localized: 'A networking error occured: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475532
+      - rid: 1057323853537345577
   - m_Id: 5800807501824
     m_Localized: 'Connection with the ChroMapTogether server lost: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475532
+      - rid: 1057323853537345577
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -125,26 +125,26 @@ MonoBehaviour:
     m_Localized: This object was first created/modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475532
+      - rid: 1057323853537345577
   - m_Id: 2018498240393216
     m_Localized: This object was last modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475532
+      - rid: 1057323853537345577
   - m_Id: 2336103375384576
     m_Localized: Are you sure you want to ban {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475532
+      - rid: 1057323853537345577
   - m_Id: 2336237542780928
     m_Localized: Are you sure you want to kick {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475532
+      - rid: 1057323853537345577
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475532
+    - rid: 1057323853537345577
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_es-ES.asset b/Assets/Locales/MultiMapping_es-ES.asset
index f2fdea9a9..e3945211a 100644
--- a/Assets/Locales/MultiMapping_es-ES.asset
+++ b/Assets/Locales/MultiMapping_es-ES.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475534
+    - rid: 1057323853537345579
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Join Session
@@ -88,17 +88,17 @@ MonoBehaviour:
     m_Localized: 'Connection with the host lost: {0}. Returning to song list...'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475534
+      - rid: 1057323853537345579
   - m_Id: 5357561843712
     m_Localized: 'A networking error occured: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475534
+      - rid: 1057323853537345579
   - m_Id: 5800807501824
     m_Localized: 'Connection with the ChroMapTogether server lost: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475534
+      - rid: 1057323853537345579
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -125,26 +125,26 @@ MonoBehaviour:
     m_Localized: This object was first created/modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475534
+      - rid: 1057323853537345579
   - m_Id: 2018498240393216
     m_Localized: This object was last modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475534
+      - rid: 1057323853537345579
   - m_Id: 2336103375384576
     m_Localized: Are you sure you want to ban {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475534
+      - rid: 1057323853537345579
   - m_Id: 2336237542780928
     m_Localized: Are you sure you want to kick {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475534
+      - rid: 1057323853537345579
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475534
+    - rid: 1057323853537345579
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_et.asset b/Assets/Locales/MultiMapping_et.asset
index b1e877c12..06285ca8a 100644
--- a/Assets/Locales/MultiMapping_et.asset
+++ b/Assets/Locales/MultiMapping_et.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475539
+    - rid: 1057323853537345584
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Join Session
@@ -88,17 +88,17 @@ MonoBehaviour:
     m_Localized: 'Connection with the host lost: {0}. Returning to song list...'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475539
+      - rid: 1057323853537345584
   - m_Id: 5357561843712
     m_Localized: 'A networking error occured: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475539
+      - rid: 1057323853537345584
   - m_Id: 5800807501824
     m_Localized: 'Connection with the ChroMapTogether server lost: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475539
+      - rid: 1057323853537345584
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -125,26 +125,26 @@ MonoBehaviour:
     m_Localized: This object was first created/modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475539
+      - rid: 1057323853537345584
   - m_Id: 2018498240393216
     m_Localized: This object was last modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475539
+      - rid: 1057323853537345584
   - m_Id: 2336103375384576
     m_Localized: Are you sure you want to ban {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475539
+      - rid: 1057323853537345584
   - m_Id: 2336237542780928
     m_Localized: Are you sure you want to kick {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475539
+      - rid: 1057323853537345584
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475539
+    - rid: 1057323853537345584
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_fi.asset b/Assets/Locales/MultiMapping_fi.asset
index b3f6086e0..9419e47d8 100644
--- a/Assets/Locales/MultiMapping_fi.asset
+++ b/Assets/Locales/MultiMapping_fi.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475548
+    - rid: 1057323853537345593
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Liity istuntoon
@@ -84,17 +84,17 @@ MonoBehaviour:
     m_Localized: "Yhteys is\xE4nt\xE4\xE4n katkesi: {0}. Palataan kappalelistaan..."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475548
+      - rid: 1057323853537345593
   - m_Id: 5357561843712
     m_Localized: 'Tapahtui verkkovirhe: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475548
+      - rid: 1057323853537345593
   - m_Id: 5800807501824
     m_Localized: 'Yhteys ChroMapTogether-palvelimeen katkesi: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475548
+      - rid: 1057323853537345593
   - m_Id: 6140520960000
     m_Localized: United Mapping (CUM)
     m_Metadata:
@@ -122,27 +122,27 @@ MonoBehaviour:
     m_Localized: "T\xE4m\xE4n objektin loi/muokkasi ensin {0}."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475548
+      - rid: 1057323853537345593
   - m_Id: 2018498240393216
     m_Localized: "T\xE4t\xE4 objektia muokkasi viimeksi {0}."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475548
+      - rid: 1057323853537345593
   - m_Id: 2336103375384576
     m_Localized: "Oletko varma, ett\xE4 haluat antaa porttikiellon k\xE4ytt\xE4j\xE4lle
       {0}?"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475548
+      - rid: 1057323853537345593
   - m_Id: 2336237542780928
     m_Localized: "Oletko varma, ett\xE4 haluat potkia {0}?"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475548
+      - rid: 1057323853537345593
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475548
+    - rid: 1057323853537345593
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_fr.asset b/Assets/Locales/MultiMapping_fr.asset
index 43dfea452..a44be3d33 100644
--- a/Assets/Locales/MultiMapping_fr.asset
+++ b/Assets/Locales/MultiMapping_fr.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475565
+    - rid: 1057323853537345610
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Rejoindre la session
@@ -85,17 +85,17 @@ MonoBehaviour:
       des musiques..."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475565
+      - rid: 1057323853537345610
   - m_Id: 5357561843712
     m_Localized: "Une erreur r\xE9seau s'est produite : {0}."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475565
+      - rid: 1057323853537345610
   - m_Id: 5800807501824
     m_Localized: 'Connexion avec le serveur ChroMapTogether perdue : {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475565
+      - rid: 1057323853537345610
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -123,26 +123,26 @@ MonoBehaviour:
     m_Localized: "Cet objet a \xE9t\xE9 cr\xE9\xE9/modifi\xE9 en premier par {0}."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475565
+      - rid: 1057323853537345610
   - m_Id: 2018498240393216
     m_Localized: "Cet objet a \xE9t\xE9 modifi\xE9 en dernier par {0}."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475565
+      - rid: 1057323853537345610
   - m_Id: 2336103375384576
     m_Localized: "\xCAtes-vous s\xFBr de vouloir bannir {0} ?"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475565
+      - rid: 1057323853537345610
   - m_Id: 2336237542780928
     m_Localized: "\xCAtes-vous s\xFBr de vouloir expulser {0} ?"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475565
+      - rid: 1057323853537345610
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475565
+    - rid: 1057323853537345610
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_ja.asset b/Assets/Locales/MultiMapping_ja.asset
index 5e40b7ade..4b9963328 100644
--- a/Assets/Locales/MultiMapping_ja.asset
+++ b/Assets/Locales/MultiMapping_ja.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475559
+    - rid: 1057323853537345604
   m_TableData:
   - m_Id: 34914570240
     m_Localized: "\u30BB\u30C3\u30B7\u30E7\u30F3\u306B\u53C2\u52A0"
@@ -84,19 +84,19 @@ MonoBehaviour:
       {0}\u3002\u66F2\u30EA\u30B9\u30C8\u306B\u623B\u308A\u307E\u3059..."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475559
+      - rid: 1057323853537345604
   - m_Id: 5357561843712
     m_Localized: "\u30CD\u30C3\u30C8\u30EF\u30FC\u30AF\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F:
       {0}\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475559
+      - rid: 1057323853537345604
   - m_Id: 5800807501824
     m_Localized: "ChroMapTogether\u30B5\u30FC\u30D0\u30FC\u3068\u306E\u63A5\u7D9A\u304C\u5931\u308F\u308C\u307E\u3057\u305F:
       {0}\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475559
+      - rid: 1057323853537345604
   - m_Id: 6140520960000
     m_Localized: "\u7D71\u5408\u30DE\u30C3\u30D4\u30F3\u30B0"
     m_Metadata:
@@ -122,27 +122,27 @@ MonoBehaviour:
       {0} \u306B\u3088\u3063\u3066\u4F5C\u6210/\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475559
+      - rid: 1057323853537345604
   - m_Id: 2018498240393216
     m_Localized: "\u3053\u306E\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306F\u6700\u5F8C\u306B
       {0} \u306B\u3088\u3063\u3066\u5909\u66F4\u3055\u308C\u307E\u3057\u305F\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475559
+      - rid: 1057323853537345604
   - m_Id: 2336103375384576
     m_Localized: "{0} \u3092BAN\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475559
+      - rid: 1057323853537345604
   - m_Id: 2336237542780928
     m_Localized: "{0} \u3092\u8FFD\u653E\u3057\u3066\u3082\u3088\u308D\u3057\u3044\u3067\u3059\u304B\uFF1F"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475559
+      - rid: 1057323853537345604
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475559
+    - rid: 1057323853537345604
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_ko.asset b/Assets/Locales/MultiMapping_ko.asset
index 7fded966b..a73c99db2 100644
--- a/Assets/Locales/MultiMapping_ko.asset
+++ b/Assets/Locales/MultiMapping_ko.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475560
+    - rid: 1057323853537345606
   m_TableData:
   - m_Id: 34914570240
     m_Localized: "\uC138\uC158 \uCC38\uC5EC"
@@ -87,19 +87,19 @@ MonoBehaviour:
       {0}. \uB178\uB798 \uBAA9\uB85D\uC73C\uB85C \uB3CC\uC544\uAC00\uB294 \uC911..."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475560
+      - rid: 1057323853537345606
   - m_Id: 5357561843712
     m_Localized: "\uB124\uD2B8\uC6CC\uD06C \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4:
       {0}."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475560
+      - rid: 1057323853537345606
   - m_Id: 5800807501824
     m_Localized: "ChroMapTogether \uC11C\uBC84\uC640\uC758 \uC5F0\uACB0\uC774 \uB04A\uACBC\uC2B5\uB2C8\uB2E4:
       {0}."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475560
+      - rid: 1057323853537345606
   - m_Id: 6140520960000
     m_Localized: "\uD1B5\uD569 \uB9E4\uD551"
     m_Metadata:
@@ -129,27 +129,27 @@ MonoBehaviour:
       \uC0DD\uC131/\uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475560
+      - rid: 1057323853537345606
   - m_Id: 2018498240393216
     m_Localized: "\uC774 \uAC1C\uCCB4\uB294 {0} \uC5D0 \uC758\uD574 \uB9C8\uC9C0\uB9C9\uC73C\uB85C
       \uC218\uC815\uB418\uC5C8\uC2B5\uB2C8\uB2E4."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475560
+      - rid: 1057323853537345606
   - m_Id: 2336103375384576
     m_Localized: "{0} \uC744 \uCC28\uB2E8\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475560
+      - rid: 1057323853537345606
   - m_Id: 2336237542780928
     m_Localized: "{0} \uC744 \uCD94\uBC29\uD558\uC2DC\uACA0\uC2B5\uB2C8\uAE4C?"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475560
+      - rid: 1057323853537345606
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475560
+    - rid: 1057323853537345606
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_nl.asset b/Assets/Locales/MultiMapping_nl.asset
index e5ddf0684..6eb25a213 100644
--- a/Assets/Locales/MultiMapping_nl.asset
+++ b/Assets/Locales/MultiMapping_nl.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475561
+    - rid: 1057323853537345605
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Deelnemen aan sessie
@@ -88,17 +88,17 @@ MonoBehaviour:
     m_Localized: 'Connection with the host lost: {0}. Returning to song list...'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475561
+      - rid: 1057323853537345605
   - m_Id: 5357561843712
     m_Localized: 'Er is een netwerkfout opgetreden: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475561
+      - rid: 1057323853537345605
   - m_Id: 5800807501824
     m_Localized: 'Verbinding met de ChroMapTogether-server is verbroken: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475561
+      - rid: 1057323853537345605
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -125,26 +125,26 @@ MonoBehaviour:
     m_Localized: "Dit object is gecre\xEBerd/voor het eerst aangepast door {0}."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475561
+      - rid: 1057323853537345605
   - m_Id: 2018498240393216
     m_Localized: Dit object is voor het laatst aangepast door {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475561
+      - rid: 1057323853537345605
   - m_Id: 2336103375384576
     m_Localized: Weet je zeker dat je {0} wil verbannen?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475561
+      - rid: 1057323853537345605
   - m_Id: 2336237542780928
     m_Localized: Are you sure you want to kick {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475561
+      - rid: 1057323853537345605
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475561
+    - rid: 1057323853537345605
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_ru.asset b/Assets/Locales/MultiMapping_ru.asset
index d7c280649..e54774f9b 100644
--- a/Assets/Locales/MultiMapping_ru.asset
+++ b/Assets/Locales/MultiMapping_ru.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475580
+    - rid: 1057323853537345625
   m_TableData:
   - m_Id: 34914570240
     m_Localized: Join Session
@@ -88,17 +88,17 @@ MonoBehaviour:
     m_Localized: 'Connection with the host lost: {0}. Returning to song list...'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475580
+      - rid: 1057323853537345625
   - m_Id: 5357561843712
     m_Localized: 'A networking error occured: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475580
+      - rid: 1057323853537345625
   - m_Id: 5800807501824
     m_Localized: 'Connection with the ChroMapTogether server lost: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475580
+      - rid: 1057323853537345625
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -125,26 +125,26 @@ MonoBehaviour:
     m_Localized: This object was first created/modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475580
+      - rid: 1057323853537345625
   - m_Id: 2018498240393216
     m_Localized: This object was last modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475580
+      - rid: 1057323853537345625
   - m_Id: 2336103375384576
     m_Localized: Are you sure you want to ban {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475580
+      - rid: 1057323853537345625
   - m_Id: 2336237542780928
     m_Localized: Are you sure you want to kick {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475580
+      - rid: 1057323853537345625
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475580
+    - rid: 1057323853537345625
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_sv-SE.asset b/Assets/Locales/MultiMapping_sv-SE.asset
index 586c0244f..b1fc1e1d4 100644
--- a/Assets/Locales/MultiMapping_sv-SE.asset
+++ b/Assets/Locales/MultiMapping_sv-SE.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475550
+    - rid: 1057323853537345595
   m_TableData:
   - m_Id: 34914570240
     m_Localized: "G\xE5 med i session"
@@ -84,17 +84,17 @@ MonoBehaviour:
     m_Localized: 'Connection with the host lost: {0}. Returning to song list...'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475550
+      - rid: 1057323853537345595
   - m_Id: 5357561843712
     m_Localized: 'A networking error occured: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475550
+      - rid: 1057323853537345595
   - m_Id: 5800807501824
     m_Localized: 'Connection with the ChroMapTogether server lost: {0}.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475550
+      - rid: 1057323853537345595
   - m_Id: 6140520960000
     m_Localized: United Mapping
     m_Metadata:
@@ -121,26 +121,26 @@ MonoBehaviour:
     m_Localized: This object was first created/modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475550
+      - rid: 1057323853537345595
   - m_Id: 2018498240393216
     m_Localized: This object was last modified by {0}.
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475550
+      - rid: 1057323853537345595
   - m_Id: 2336103375384576
     m_Localized: Are you sure you want to ban {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475550
+      - rid: 1057323853537345595
   - m_Id: 2336237542780928
     m_Localized: Are you sure you want to kick {0}?
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475550
+      - rid: 1057323853537345595
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475550
+    - rid: 1057323853537345595
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/MultiMapping_zh-CN.asset b/Assets/Locales/MultiMapping_zh-CN.asset
index c6844a689..051746313 100644
--- a/Assets/Locales/MultiMapping_zh-CN.asset
+++ b/Assets/Locales/MultiMapping_zh-CN.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 4bc9586dd75931946bdf2f3334dc9397, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475535
+    - rid: 1057323853537345580
   m_TableData:
   - m_Id: 34914570240
     m_Localized: "\u52A0\u5165\u4F1A\u8BDD"
@@ -83,18 +83,18 @@ MonoBehaviour:
     m_Localized: "\u4E0E\u4E3B\u673A\u7684\u8FDE\u63A5\u4E22\u5931: {0}\u3002 \u6B63\u5728\u8FD4\u56DE\u6B4C\u66F2\u5217\u8868..."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475535
+      - rid: 1057323853537345580
   - m_Id: 5357561843712
     m_Localized: "\u53D1\u751F\u7F51\u7EDC\u9519\u8BEF\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475535
+      - rid: 1057323853537345580
   - m_Id: 5800807501824
     m_Localized: "\u4E0E ChroMapTogether \u670D\u52A1\u5668\u7684\u8FDE\u63A5\u4E22\u5931\uFF1A
       {0}\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475535
+      - rid: 1057323853537345580
   - m_Id: 6140520960000
     m_Localized: "\u591A\u4EBA\u7ED8\u8C31"
     m_Metadata:
@@ -120,26 +120,26 @@ MonoBehaviour:
     m_Localized: "\u6B64\u5BF9\u8C61\u662F\u7531 {0} \u9996\u6B21\u521B\u5EFA/\u4FEE\u6539\u7684\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475535
+      - rid: 1057323853537345580
   - m_Id: 2018498240393216
     m_Localized: "\u8BE5\u5BF9\u8C61\u6700\u540E\u4FEE\u6539\u8005\u4E3A {0}\u3002"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475535
+      - rid: 1057323853537345580
   - m_Id: 2336103375384576
     m_Localized: "\u4F60\u786E\u5B9A\u8981\u8E22\u51FA {0} \uFF1F"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475535
+      - rid: 1057323853537345580
   - m_Id: 2336237542780928
     m_Localized: "\u4F60\u786E\u5B9A\u8981\u8E22\u51FA {0} \uFF1F"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475535
+      - rid: 1057323853537345580
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475535
+    - rid: 1057323853537345580
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010928e7104000000109267df0400000010129b46050000003059b4a92b07000030993ed02b07000030d973ac4c08000030d9b0cb4c0800
diff --git a/Assets/Locales/Options_da.asset b/Assets/Locales/Options_da.asset
index 4fafb85b1..8e28dd77e 100644
--- a/Assets/Locales/Options_da.asset
+++ b/Assets/Locales/Options_da.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475570
+    - rid: 1057323853537345615
   m_TableData:
   - m_Id: 1
     m_Localized: Indstillinger - {tabName}
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 2
     m_Localized: Diverse Indstillinger
     m_Metadata:
@@ -282,7 +282,7 @@ MonoBehaviour:
     m_Localized: "Indl\xE6ste plugins: {Count}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 67
     m_Localized: Plugin Info
     m_Metadata:
@@ -320,7 +320,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} decimal placering'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 74
     m_Localized: "Hvor mange decimaler der skal afrundes \"_time\" -v\xE6rdier for
       hvert map objekt, n\xE5r de gemmes p\xE5 disken.\nLavere pr\xE6cision betyder
@@ -557,7 +557,7 @@ MonoBehaviour:
     m_Localized: Plugins
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 132
     m_Localized: Eksperimental
     m_Metadata:
@@ -570,47 +570,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 139
     m_Localized: '{TextValue} slag'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 140
     m_Localized: '{TextValue} slag'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 143
     m_Localized: Clamp Rotation Display
     m_Metadata:
@@ -655,7 +655,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 154
     m_Localized: UI-skala
     m_Metadata:
@@ -668,7 +668,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 157
     m_Localized: Event Models
     m_Metadata:
@@ -738,7 +738,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 174
     m_Localized: Song
     m_Metadata:
@@ -859,7 +859,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 3301721636864
     m_Localized: Changes the transparency of the grid background
     m_Metadata:
@@ -868,7 +868,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 23812497342464
     m_Localized: Gitter-gennemsigtighed
     m_Metadata:
@@ -917,7 +917,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1259,7 +1259,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475570
+      - rid: 1057323853537345615
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1389,10 +1389,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475570
+    - rid: 1057323853537345615
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_de.asset b/Assets/Locales/Options_de.asset
index 08f54420f..3df350aed 100644
--- a/Assets/Locales/Options_de.asset
+++ b/Assets/Locales/Options_de.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475537
+    - rid: 1057323853537345582
   m_TableData:
   - m_Id: 1
     m_Localized: 'Einstellungen - {TabName} '
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 2
     m_Localized: Sonstige Einstellungen
     m_Metadata:
@@ -283,7 +283,7 @@ MonoBehaviour:
     m_Localized: 'Geladene Erweiterungen: {Count}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 67
     m_Localized: Erweiterungs Information
     m_Metadata:
@@ -323,7 +323,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} Dezimalstelle/n'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 74
     m_Localized: "Wie viele Dezimalstellen, um \"_time\" -Werte f\xFCr jedes Kartenobjekt
       beim Speichern auf der Festplatte zu runden.\nGeringere Genauigkeit bedeutet
@@ -560,7 +560,7 @@ MonoBehaviour:
     m_Localized: Erweiterungen
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 132
     m_Localized: Experimentel
     m_Metadata:
@@ -573,47 +573,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 139
     m_Localized: "{TextValue} Schl\xE4ge"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 140
     m_Localized: "{TextValue} Schl\xE4ge"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 143
     m_Localized: Rotationsanzeige halten
     m_Metadata:
@@ -659,7 +659,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 154
     m_Localized: UI Skalierung
     m_Metadata:
@@ -672,7 +672,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 157
     m_Localized: Beleuchtungsereignis Modelle
     m_Metadata:
@@ -744,7 +744,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 174
     m_Localized: Song
     m_Metadata:
@@ -865,7 +865,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 3301721636864
     m_Localized: "Ver\xE4ndert die Transparenz des Karrieten Hintergrund"
     m_Metadata:
@@ -874,7 +874,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 23812497342464
     m_Localized: Transparenz des Rasters
     m_Metadata:
@@ -925,7 +925,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 67492742661058560
     m_Localized: "Skaliert die (gesamte) Renderaufl\xF6sung f\xFCr bessere Leistung
       oder visuelle Verbesserungen."
@@ -1268,7 +1268,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475537
+      - rid: 1057323853537345582
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1398,10 +1398,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475537
+    - rid: 1057323853537345582
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_en-OWO.asset b/Assets/Locales/Options_en-OWO.asset
index e50c35c4f..b172043ac 100644
--- a/Assets/Locales/Options_en-OWO.asset
+++ b/Assets/Locales/Options_en-OWO.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475564
+    - rid: 1057323853537345609
   m_TableData:
   - m_Id: 1
     m_Localized: Shettingsh
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 2
     m_Localized: Misc Opshunsh
     m_Metadata:
@@ -286,7 +286,7 @@ MonoBehaviour:
     m_Localized: 'Woaded Pwugins: {Count}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 67
     m_Localized: Pwugin Info
     m_Metadata:
@@ -333,7 +333,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} Decimaw Pwace(s)'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 74
     m_Localized: 'How many decimal places to round "_time" values for every map object
       when saving to disk.
@@ -571,7 +571,7 @@ MonoBehaviour:
     m_Localized: Plugins
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 132
     m_Localized: Experimental
     m_Metadata:
@@ -584,47 +584,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 139
     m_Localized: '{TextValue} beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 140
     m_Localized: '{TextValue} beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 143
     m_Localized: Clamp Rotation Display
     m_Metadata:
@@ -669,7 +669,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 154
     m_Localized: UI Scale
     m_Metadata:
@@ -682,7 +682,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 157
     m_Localized: Event Models
     m_Metadata:
@@ -752,7 +752,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 174
     m_Localized: Song
     m_Metadata:
@@ -873,7 +873,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 3301721636864
     m_Localized: Changes the transparency of the grid background
     m_Metadata:
@@ -882,7 +882,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 23812497342464
     m_Localized: Grid Transparency
     m_Metadata:
@@ -931,7 +931,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1273,7 +1273,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475564
+      - rid: 1057323853537345609
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1403,10 +1403,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475564
+    - rid: 1057323853537345609
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_en-PT.asset b/Assets/Locales/Options_en-PT.asset
index ae12cf93b..e4aeaee6a 100644
--- a/Assets/Locales/Options_en-PT.asset
+++ b/Assets/Locales/Options_en-PT.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475593
+    - rid: 1057323853537345638
   m_TableData:
   - m_Id: 1
     m_Localized: Settings - {TabName}
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 2
     m_Localized: Misc Options
     m_Metadata:
@@ -286,7 +286,7 @@ MonoBehaviour:
     m_Localized: 'Loaded Plugins: {Count}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 67
     m_Localized: Plugin Info
     m_Metadata:
@@ -333,7 +333,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} Decimal Place(s)'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 74
     m_Localized: 'How many decimal places to round "_time" values for every map object
       when saving to disk.
@@ -574,7 +574,7 @@ MonoBehaviour:
     m_Localized: Plugins
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 132
     m_Localized: Experimental
     m_Metadata:
@@ -587,47 +587,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 139
     m_Localized: '{TextValue} beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 140
     m_Localized: '{TextValue} beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 143
     m_Localized: Clamp Rotation Display
     m_Metadata:
@@ -672,7 +672,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 154
     m_Localized: UI Scale
     m_Metadata:
@@ -685,7 +685,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 157
     m_Localized: Event Models
     m_Metadata:
@@ -755,7 +755,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 174
     m_Localized: Song
     m_Metadata:
@@ -876,7 +876,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 3301721636864
     m_Localized: Changes the transparency of the grid background
     m_Metadata:
@@ -885,7 +885,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 23812497342464
     m_Localized: Grid Transparency
     m_Metadata:
@@ -934,7 +934,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1276,7 +1276,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475593
+      - rid: 1057323853537345638
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1406,10 +1406,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475593
+    - rid: 1057323853537345638
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_es-ES.asset b/Assets/Locales/Options_es-ES.asset
index 69da74740..9c3b207d1 100644
--- a/Assets/Locales/Options_es-ES.asset
+++ b/Assets/Locales/Options_es-ES.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475562
+    - rid: 1057323853537345607
   m_TableData:
   - m_Id: 1
     m_Localized: Ajustes - {tabName}
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 2
     m_Localized: Opciones varias
     m_Metadata:
@@ -282,7 +282,7 @@ MonoBehaviour:
     m_Localized: 'Plugins cargados: {Count}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 67
     m_Localized: "Informaci\xF3n de plugin"
     m_Metadata:
@@ -320,7 +320,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} decimal(es)'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 74
     m_Localized: "Por cu\xE1ntos decimales redondear los valores de \"_time\" por
       cada objeto del mapa visible cuando se guarda al disco.\nMenor precisi\xF3n
@@ -564,7 +564,7 @@ MonoBehaviour:
     m_Localized: Extensiones
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 132
     m_Localized: Experimentales
     m_Metadata:
@@ -577,47 +577,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 139
     m_Localized: '{TextValue} golpes'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 140
     m_Localized: '{TextValue} golpes'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 143
     m_Localized: "Restringe el visor de rotaci\xF3n"
     m_Metadata:
@@ -664,7 +664,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 154
     m_Localized: Escala de la interfaz de usuario
     m_Metadata:
@@ -677,7 +677,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 157
     m_Localized: Modelo de eventos
     m_Metadata:
@@ -749,7 +749,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 174
     m_Localized: "Canci\xF3n"
     m_Metadata:
@@ -871,7 +871,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 3301721636864
     m_Localized: Changes the transparency of the grid background
     m_Metadata:
@@ -880,7 +880,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 23812497342464
     m_Localized: "Trasparencia de la cuadr\xEDcula"
     m_Metadata:
@@ -930,7 +930,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1272,7 +1272,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475562
+      - rid: 1057323853537345607
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1402,10 +1402,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475562
+    - rid: 1057323853537345607
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_et.asset b/Assets/Locales/Options_et.asset
index 85d7dd0f8..10fcd9b00 100644
--- a/Assets/Locales/Options_et.asset
+++ b/Assets/Locales/Options_et.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475525
+    - rid: 1057323853537345570
   m_TableData:
   - m_Id: 1
     m_Localized: Settings - {TabName}
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 2
     m_Localized: Misc Options
     m_Metadata:
@@ -286,7 +286,7 @@ MonoBehaviour:
     m_Localized: 'Loaded Plugins: {Count}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 67
     m_Localized: Plugin Info
     m_Metadata:
@@ -333,7 +333,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} Decimal Place(s)'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 74
     m_Localized: 'How many decimal places to round "_time" values for every map object
       when saving to disk.
@@ -574,7 +574,7 @@ MonoBehaviour:
     m_Localized: Plugins
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 132
     m_Localized: Experimental
     m_Metadata:
@@ -587,47 +587,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 139
     m_Localized: '{TextValue} beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 140
     m_Localized: '{TextValue} beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 143
     m_Localized: Clamp Rotation Display
     m_Metadata:
@@ -672,7 +672,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 154
     m_Localized: UI Scale
     m_Metadata:
@@ -685,7 +685,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 157
     m_Localized: Event Models
     m_Metadata:
@@ -755,7 +755,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 174
     m_Localized: Song
     m_Metadata:
@@ -876,7 +876,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 3301721636864
     m_Localized: Changes the transparency of the grid background
     m_Metadata:
@@ -885,7 +885,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 23812497342464
     m_Localized: Grid Transparency
     m_Metadata:
@@ -934,7 +934,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1276,7 +1276,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475525
+      - rid: 1057323853537345570
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1406,10 +1406,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475525
+    - rid: 1057323853537345570
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_fi.asset b/Assets/Locales/Options_fi.asset
index 47463176f..a2201d442 100644
--- a/Assets/Locales/Options_fi.asset
+++ b/Assets/Locales/Options_fi.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475579
+    - rid: 1057323853537345624
   m_TableData:
   - m_Id: 1
     m_Localized: Asetukset - {tabName}
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 2
     m_Localized: Muut Asetukset
     m_Metadata:
@@ -286,7 +286,7 @@ MonoBehaviour:
     m_Localized: 'Ladatut Pluginit: {Count}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 67
     m_Localized: Plugin-tietoa
     m_Metadata:
@@ -333,7 +333,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} Desimaalien Paikka/Paikat'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 74
     m_Localized: 'How many decimal places to round "_time" values for every map object
       when saving to disk.
@@ -574,7 +574,7 @@ MonoBehaviour:
     m_Localized: "Lis\xE4osat"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 132
     m_Localized: Kokeellinen
     m_Metadata:
@@ -587,47 +587,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 139
     m_Localized: '{TextValue} tahti(a)'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 140
     m_Localized: '{TextValue} tahti(a)'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 143
     m_Localized: "N\xE4yt\xE4 K\xE4\xE4nt\xF6"
     m_Metadata:
@@ -673,7 +673,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 154
     m_Localized: "K\xE4ytt\xF6liittym\xE4n Koko"
     m_Metadata:
@@ -686,7 +686,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 157
     m_Localized: Eventtimallit
     m_Metadata:
@@ -757,7 +757,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 174
     m_Localized: Kappale
     m_Metadata:
@@ -879,7 +879,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 3301721636864
     m_Localized: "Muuttaa ruudukon taustan l\xE4pin\xE4kyvyytt\xE4"
     m_Metadata:
@@ -888,7 +888,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 23812497342464
     m_Localized: "Ruudukon L\xE4pin\xE4kyvyys"
     m_Metadata:
@@ -937,7 +937,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1280,7 +1280,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475579
+      - rid: 1057323853537345624
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1410,10 +1410,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475579
+    - rid: 1057323853537345624
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_fr.asset b/Assets/Locales/Options_fr.asset
index 36b6ab014..103bf5096 100644
--- a/Assets/Locales/Options_fr.asset
+++ b/Assets/Locales/Options_fr.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475567
+    - rid: 1057323853537345612
   m_TableData:
   - m_Id: 1
     m_Localized: "Param\xE8tres - {TabName}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 2
     m_Localized: Options diverses
     m_Metadata:
@@ -282,7 +282,7 @@ MonoBehaviour:
     m_Localized: "Plugins charg\xE9s: {Count}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 67
     m_Localized: Infos des plugins
     m_Metadata:
@@ -321,7 +321,7 @@ MonoBehaviour:
     m_Localized: "{TextValue} d\xE9cimale(s)"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 74
     m_Localized: "\xC0 combien de d\xE9cimales arrondir les valeurs \"_time\" pour
       chaque objet de la map au moment d'\xE9crire sur le disque. Une pr\xE9cision
@@ -566,7 +566,7 @@ MonoBehaviour:
     m_Localized: Plugins
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 132
     m_Localized: "Exp\xE9rimental"
     m_Metadata:
@@ -579,47 +579,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 139
     m_Localized: '{TextValue} temps'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 140
     m_Localized: '{TextValue} temps'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 143
     m_Localized: Limiter l'affichage de la rotation
     m_Metadata:
@@ -667,7 +667,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 154
     m_Localized: "\xC9chelle de l'interface"
     m_Metadata:
@@ -680,7 +680,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 157
     m_Localized: "Mod\xE8les d'\xE9v\xE9nements"
     m_Metadata:
@@ -751,7 +751,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 174
     m_Localized: Musique
     m_Metadata:
@@ -874,7 +874,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 3301721636864
     m_Localized: "Modifie la transparence de l'arri\xE8re-plan de la grille"
     m_Metadata:
@@ -883,7 +883,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 23812497342464
     m_Localized: Transparence de la grille
     m_Metadata:
@@ -935,7 +935,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 67492742661058560
     m_Localized: "Changer l'\xE9chelle (totale) de la r\xE9solution du rendu pour
       les performances ou des am\xE9liorations visuelles."
@@ -1284,7 +1284,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475567
+      - rid: 1057323853537345612
   - m_Id: 322078335378526208
     m_Localized: "Objets et \xE9clairage"
     m_Metadata:
@@ -1414,10 +1414,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475567
+    - rid: 1057323853537345612
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_ja.asset b/Assets/Locales/Options_ja.asset
index 1cb500ccf..0062da97c 100644
--- a/Assets/Locales/Options_ja.asset
+++ b/Assets/Locales/Options_ja.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475552
+    - rid: 1057323853537345597
   m_TableData:
   - m_Id: 1
     m_Localized: "\u8A2D\u5B9A\u30FB{tabName}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 2
     m_Localized: "\u305D\u306E\u4ED6\u306E\u30AA\u30D7\u30B7\u30E7\u30F3"
     m_Metadata:
@@ -275,7 +275,7 @@ MonoBehaviour:
       {Count}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 67
     m_Localized: "\u30D7\u30E9\u30B0\u30A4\u30F3"
     m_Metadata:
@@ -308,7 +308,7 @@ MonoBehaviour:
     m_Localized: "{TextValue} \u5C0F\u6570\u70B9\u4EE5\u4E0B\u306E\u6841\u6570"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 74
     m_Localized: "\u4FDD\u5B58\u3059\u308B\u3068\u304D\u306B\u3001\u5404\u30DE\u30C3\u30D7\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u306E
       \"_time\" \u5024\u3092\u4F55\u6841\u306B\u4E38\u3081\u308B\u304B\u3092\u6307\u5B9A\u3057\u307E\u3059\u3002\n\u7CBE\u5EA6\u304C\u4F4E\u3044\u307B\u3069\u30BF\u30A4\u30DF\u30F3\u30B0\u30A8\u30E9\u30FC\u306E\u4F59\u5730\u304C\u5927\u304D\u304F\u306A\u308A\u307E\u3059\u304C\u3001\u3088\u308A\u8907\u96D1\u306A\u30DE\u30C3\u30D7\u3067\u306F\u7A7A\u304D\u5BB9\u91CF\u3092\u7BC0\u7D04\u3067\u304D\u307E\u3059\u3002"
@@ -527,7 +527,7 @@ MonoBehaviour:
     m_Localized: "\u30D7\u30E9\u30B0\u30A4\u30F3"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 132
     m_Localized: "\u5B9F\u9A13\u7684\u6A5F\u80FD"
     m_Metadata:
@@ -540,47 +540,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 139
     m_Localized: "{TextValue} \u62CD\u6570"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 140
     m_Localized: "{TextValue} \u62CD\u6570"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 143
     m_Localized: "\u56DE\u8EE2\u89D2\u5EA6\u306E\u8868\u793A\u306E\u5236\u9650"
     m_Metadata:
@@ -625,7 +625,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 154
     m_Localized: "UI\u306E\u5927\u304D\u3055"
     m_Metadata:
@@ -638,7 +638,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 157
     m_Localized: "\u30A4\u30D9\u30F3\u30C8\u30E2\u30C7\u30EB"
     m_Metadata:
@@ -707,7 +707,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 174
     m_Localized: "\u66F2"
     m_Metadata:
@@ -828,7 +828,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 3301721636864
     m_Localized: "\u30B0\u30EA\u30C3\u30C9\u306E\u80CC\u666F\u306E\u900F\u660E\u5EA6\u3092\u5909\u66F4\u3057\u307E\u3059"
     m_Metadata:
@@ -837,7 +837,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 23812497342464
     m_Localized: "\u30B0\u30EA\u30C3\u30C9\u306E\u900F\u660E\u5EA6"
     m_Metadata:
@@ -886,7 +886,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 67492742661058560
     m_Localized: "\u30D1\u30D5\u30A9\u30FC\u30DE\u30F3\u30B9\u307E\u305F\u306F\u8996\u899A\u7684\u306A\u6539\u5584\u306E\u305F\u3081\u306B\u3001\u30EC\u30F3\u30C0\u30EA\u30F3\u30B0\u89E3\u50CF\u5EA6\uFF08\u5408\u8A08\u5024\uFF09\u3092\u30B9\u30B1\u30FC\u30EA\u30F3\u30B0\u3057\u307E\u3059\u3002"
     m_Metadata:
@@ -1224,7 +1224,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475552
+      - rid: 1057323853537345597
   - m_Id: 322078335378526208
     m_Localized: "\u30AA\u30D6\u30B8\u30A7\u30AF\u30C8\u3068\u30E9\u30A4\u30C6\u30A3\u30F3\u30B0"
     m_Metadata:
@@ -1295,24 +1295,23 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 362172452363964416
-    m_Localized: Sample Size
+    m_Localized: "\u30B5\u30F3\u30D7\u30EB\u30B5\u30A4\u30BA"
     m_Metadata:
       m_Items: []
   - m_Id: 362172654227427328
-    m_Localized: Frequency resolution of the spectrogram. Higher numbers reduce timeline
-      accuracy.
+    m_Localized: "\u6CE2\u5F62\u306E\u5468\u6CE2\u6570\u89E3\u50CF\u5EA6\u3002\u6570\u5024\u304C\u9AD8\u3044\u307B\u3069\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u306E\u7CBE\u5EA6\u304C\u4F4E\u4E0B\u3057\u307E\u3059\u3002"
     m_Metadata:
       m_Items: []
   - m_Id: 362172845764513792
-    m_Localized: Bilinear Filtering
+    m_Localized: "\u30D0\u30A4\u30EA\u30CB\u30A2\u30D5\u30A3\u30EB\u30BF"
     m_Metadata:
       m_Items: []
   - m_Id: 362172895014031360
-    m_Localized: Basic interpolation between spectrogram values.
+    m_Localized: "\u6CE2\u5F62\u306E\u6570\u5024\u9593\u306E\u57FA\u672C\u7684\u306A\u88DC\u9593\u3002"
     m_Metadata:
       m_Items: []
   - m_Id: 362173257435451392
-    m_Localized: Logarithmic Shift
+    m_Localized: "\u5BFE\u6570\u30B7\u30D5\u30C8"
     m_Metadata:
       m_Items: []
   - m_Id: 362173301957988352
@@ -1320,12 +1319,11 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 362173439820566528
-    m_Localized: Sample Quality
+    m_Localized: "\u30B5\u30F3\u30D7\u30EB\u306E\u54C1\u8CEA"
     m_Metadata:
       m_Items: []
   - m_Id: 362173496468836352
-    m_Localized: Increases timeline detail by multiplying the number of spectrogram
-      samples.
+    m_Localized: "\u6CE2\u5F62\u306E\u30B5\u30F3\u30D7\u30EB\u6570\u3092\u5897\u3084\u3059\u3053\u3068\u3067\u30BF\u30A4\u30E0\u30E9\u30A4\u30F3\u3092\u3088\u308A\u8A73\u7D30\u306B\u3057\u307E\u3059\u3002"
     m_Metadata:
       m_Items: []
   - m_Id: 362174267792953344
@@ -1353,10 +1351,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475552
+    - rid: 1057323853537345597
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_ko.asset b/Assets/Locales/Options_ko.asset
index 746cfc0ff..39f6b36b5 100644
--- a/Assets/Locales/Options_ko.asset
+++ b/Assets/Locales/Options_ko.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475585
+    - rid: 1057323853537345630
   m_TableData:
   - m_Id: 1
     m_Localized: "\uC124\uC815 - {TabName}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 2
     m_Localized: "\uAE30\uD0C0 \uC124\uC815"
     m_Metadata:
@@ -292,7 +292,7 @@ MonoBehaviour:
     m_Localized: "\uB85C\uB529\uB41C \uD50C\uB7EC\uADF8\uC778 \uAC1C\uC218: {Count}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 67
     m_Localized: "\uD50C\uB7EC\uADF8\uC778 \uC815\uBCF4"
     m_Metadata:
@@ -337,7 +337,7 @@ MonoBehaviour:
     m_Localized: "{TextValue} \uC790\uB9AC"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 74
     m_Localized: "\uB514\uC2A4\uD06C\uC5D0 \uC800\uC7A5\uD560 \uB54C \"_time\"\uAC12\uC5D0
       \uC5BC\uB9C8\uB098 \uB9CE\uC740 \uC18C\uC218\uC810 \uC790\uB9AC\uC218\uAC00
@@ -605,7 +605,7 @@ MonoBehaviour:
     m_Localized: "\uD50C\uB7EC\uADF8\uC778"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 132
     m_Localized: "\uC2E4\uD5D8\uC801\uC778 \uAE30\uB2A5"
     m_Metadata:
@@ -618,47 +618,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 139
     m_Localized: "{TextValue} \uBE44\uD2B8"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 140
     m_Localized: "{TextValue} \uBE44\uD2B8"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 143
     m_Localized: "\uD68C\uC804 \uD45C\uC2DC \uACE0\uC815"
     m_Metadata:
@@ -708,7 +708,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 154
     m_Localized: "UI \uD06C\uAE30"
     m_Metadata:
@@ -721,7 +721,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 157
     m_Localized: "\uC774\uBCA4\uD2B8 \uBAA8\uB378"
     m_Metadata:
@@ -798,7 +798,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 174
     m_Localized: "\uACE1"
     m_Metadata:
@@ -923,7 +923,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 3301721636864
     m_Localized: "\uADF8\uB9AC\uB4DC \uBC30\uACBD \uD22C\uBA85\uB3C4 \uBCC0\uACBD"
     m_Metadata:
@@ -932,7 +932,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 23812497342464
     m_Localized: "\uADF8\uB9AC\uB4DC \uD22C\uBA85\uB3C4"
     m_Metadata:
@@ -986,7 +986,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 67492742661058560
     m_Localized: "\uC131\uB2A5 \uB610\uB294 \uC2DC\uAC01\uC801 \uD5A5\uC0C1\uC744
       \uC704\uD574 (\uCD1D) \uB80C\uB354\uB9C1 \uD574\uC0C1\uB3C4\uB97C \uC870\uC815\uD569\uB2C8\uB2E4."
@@ -1319,95 +1319,101 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 288364334621589504
-    m_Localized: Save Without Default Values
+    m_Localized: "\uAE30\uBCF8\uAC12 \uC5C6\uC774 \uC800\uC7A5"
     m_Metadata:
       m_Items: []
   - m_Id: 288364497993924608
-    m_Localized: Saves the difficulty file without properties that have a default
-      value.
+    m_Localized: "\uAE30\uBCF8\uAC12\uC774 \uC788\uB294 \uC18D\uC131 \uC5C6\uC774
+      \uB09C\uC774\uB3C4 \uD30C\uC77C\uC744 \uC800\uC7A5\uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 249214922956247040
-    m_Localized: Enables Noodle Extensions animations while in preview mode.
+    m_Localized: "\uBBF8\uB9AC\uBCF4\uAE30 \uBAA8\uB4DC\uC5D0\uC11C Noodle Extensions
+      \uC560\uB2C8\uBA54\uC774\uC158\uC744 \uD65C\uC131\uD654\uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 249224607608377344
-    m_Localized: Preview Animations
+    m_Localized: "\uC560\uB2C8\uBA54\uC774\uC158 \uBBF8\uB9AC\uBCF4\uAE30"
     m_Metadata:
       m_Items: []
   - m_Id: 252032304653307904
-    m_Localized: Change Field of View of the preview camera
+    m_Localized: "\uBBF8\uB9AC\uBCF4\uAE30 \uCE74\uBA54\uB77C\uC758 \uD654\uAC01
+      \uBCC0\uACBD"
     m_Metadata:
       m_Items: []
   - m_Id: 252047222777614336
-    m_Localized: Preview Camera FOV
+    m_Localized: "\uCE74\uBA54\uB77C FOV \uBBF8\uB9AC\uBCF4\uAE30"
     m_Metadata:
       m_Items: []
   - m_Id: 298177154557083648
-    m_Localized: Open Plugins Folder
+    m_Localized: "\uD50C\uB7EC\uADF8\uC778 \uD3F4\uB354 \uC5F4\uAE30"
     m_Metadata:
       m_Items: []
   - m_Id: 300616661902491648
-    m_Localized: Preview Camera Z Offset
+    m_Localized: "\uBBF8\uB9AC\uBCF4\uAE30 \uCE74\uBA54\uB77C Z \uC624\uD504\uC14B"
     m_Metadata:
       m_Items: []
   - m_Id: 300616655971745792
-    m_Localized: Offsets the preview camera backwards (in metres)
+    m_Localized: "\uBBF8\uB9AC\uBCF4\uAE30 \uCE74\uBA54\uB77C\uB97C \uB4A4\uB85C
+      \uC624\uD504\uC14B(\uBBF8\uD130 \uB2E8\uC704\uB85C) \uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 300618005946236928
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475585
+      - rid: 1057323853537345630
   - m_Id: 322078335378526208
-    m_Localized: Objects and Lighting
+    m_Localized: "\uC624\uBE0C\uC81D\uD2B8\uC640 \uC870\uBA85"
     m_Metadata:
       m_Items: []
   - m_Id: 322078433017729024
-    m_Localized: Note Color Multiplier
+    m_Localized: "\uB178\uD2B8 \uC0C9\uC0C1 \uBC30\uC728"
     m_Metadata:
       m_Items: []
   - m_Id: 322078544036761600
-    m_Localized: Brightens or darkens the color of the note block.
+    m_Localized: "\uB178\uD2B8 \uBE14\uB85D\uC758 \uC0C9\uC0C1\uC744 \uBC1D\uAC8C
+      \uB610\uB294 \uC5B4\uB461\uAC8C \uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 322078560457461760
-    m_Localized: Arrow Color Multiplier
+    m_Localized: "\uD654\uC0B4\uD45C \uC0C9\uC0C1 \uBC30\uC728"
     m_Metadata:
       m_Items: []
   - m_Id: 322078585577148416
-    m_Localized: Brightens or darkens the color of the note arrow.
+    m_Localized: "\uB178\uD2B8 \uD654\uC0B4\uD45C\uC758 \uC0C9\uC0C1\uC744 \uBC1D\uAC8C
+      \uB610\uB294 \uC5B4\uB461\uAC8C \uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 322078609908305920
-    m_Localized: Arrow White Blend
+    m_Localized: "\uD654\uC0B4\uD45C \uD770\uC0C9 \uD63C\uD569"
     m_Metadata:
       m_Items: []
   - m_Id: 322078641902456832
-    m_Localized: Blends the color of the arrow, from the assigned note color to a
-      pure white.
+    m_Localized: "\uD654\uC0B4\uD45C\uC758 \uC0C9\uC744 \uC9C0\uC815\uB41C \uB178\uD2B8
+      \uC0C9\uC0C1\uC5D0\uC11C \uC21C\uC218\uD55C \uD770\uC0C9\uC73C\uB85C \uD63C\uD569\uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 322078668309794816
-    m_Localized: Obstacle Opacity
+    m_Localized: "\uC7A5\uC560\uBB3C \uBD88\uD22C\uBA85\uB3C4"
     m_Metadata:
       m_Items: []
   - m_Id: 322078693966352384
-    m_Localized: Changes the opacity of the obstacle's inner body.
+    m_Localized: "\uC7A5\uC560\uBB3C \uB0B4\uBD80\uC758 \uBD88\uD22C\uBA85\uB3C4\uB97C
+      \uBCC0\uACBD\uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 322078715722207232
-    m_Localized: Alternate Lighting
+    m_Localized: "\uB300\uCCB4 \uC870\uBA85"
     m_Metadata:
       m_Items: []
   - m_Id: 322078739269029888
-    m_Localized: Tweaks ChroMapper's lighting to give an appearance more similar
-      to MMA2.
+    m_Localized: "ChroMapper\uC758 \uB77C\uC774\uD305\uC744 \uC870\uC815\uD558\uC5EC
+      MMA2\uC640 \uB354 \uC720\uC0AC\uD55C \uC870\uBA85\uC744 \uC81C\uACF5\uD569\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 330014416099160064
-    m_Localized: Interface Opacity
+    m_Localized: "\uC778\uD130\uD398\uC774\uC2A4 \uBD88\uD22C\uBA85\uB3C4"
     m_Metadata:
       m_Items: []
   - m_Id: 330014459573121024
@@ -1489,10 +1495,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475585
+    - rid: 1057323853537345630
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_nl.asset b/Assets/Locales/Options_nl.asset
index 6446d39ee..90297040c 100644
--- a/Assets/Locales/Options_nl.asset
+++ b/Assets/Locales/Options_nl.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475528
+    - rid: 1057323853537345573
   m_TableData:
   - m_Id: 1
     m_Localized: Instellingen - {tabName}
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 2
     m_Localized: Overige opties
     m_Metadata:
@@ -279,7 +279,7 @@ MonoBehaviour:
     m_Localized: 'Geladen Plugins: {Count}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 67
     m_Localized: Plugin informatie
     m_Metadata:
@@ -326,7 +326,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} Decimalen'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 74
     m_Localized: 'Het aantal decimalen waarnaar de "_time" waarde wordt afgerond
       bij het opslaan.
@@ -572,7 +572,7 @@ MonoBehaviour:
     m_Localized: Plugins
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 132
     m_Localized: Experimenteel
     m_Metadata:
@@ -585,47 +585,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 139
     m_Localized: '{TextValue} Beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 140
     m_Localized: '{TextValue} Beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 143
     m_Localized: Rotatie-weergave limiteren
     m_Metadata:
@@ -671,7 +671,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 154
     m_Localized: Gebruikersinterface grootte
     m_Metadata:
@@ -684,7 +684,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 157
     m_Localized: Evenementmodellen
     m_Metadata:
@@ -755,7 +755,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 174
     m_Localized: Lied
     m_Metadata:
@@ -877,7 +877,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 3301721636864
     m_Localized: Veranderingen in de transparantie van de rasterachtergrond
     m_Metadata:
@@ -886,7 +886,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 23812497342464
     m_Localized: Transparantie raster
     m_Metadata:
@@ -937,7 +937,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1279,7 +1279,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475528
+      - rid: 1057323853537345573
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1409,10 +1409,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475528
+    - rid: 1057323853537345573
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_ru.asset b/Assets/Locales/Options_ru.asset
index 1df7afa7d..a3f8b16c7 100644
--- a/Assets/Locales/Options_ru.asset
+++ b/Assets/Locales/Options_ru.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475586
+    - rid: 1057323853537345631
   m_TableData:
   - m_Id: 1
     m_Localized: "\u041D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438 - {tabName}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 2
     m_Localized: "\u041E\u043F\u0446\u0438\u0438"
     m_Metadata:
@@ -341,7 +341,7 @@ MonoBehaviour:
       \u043F\u043B\u0430\u0433\u0438\u043D\u043E\u0432: {Count}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 67
     m_Localized: "\u0418\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044F \u043E
       \u043F\u043B\u0430\u0433\u0438\u043D\u0430\u0445"
@@ -408,7 +408,7 @@ MonoBehaviour:
       \u0437\u0430\u043F\u044F\u0442\u043E\u0439"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 74
     m_Localized: "\u041D\u0430 \u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0434\u0435\u0441\u044F\u0442\u0438\u0447\u043D\u044B\u0445
       \u0437\u043D\u0430\u043A\u043E\u0432 \u043E\u043A\u0440\u0443\u0433\u043B\u044F\u0442\u044C
@@ -690,7 +690,7 @@ MonoBehaviour:
     m_Localized: Plugins
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 132
     m_Localized: Experimental
     m_Metadata:
@@ -703,47 +703,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 139
     m_Localized: '{TextValue} beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 140
     m_Localized: '{TextValue} beats'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 143
     m_Localized: Clamp Rotation Display
     m_Metadata:
@@ -788,7 +788,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 154
     m_Localized: "\u041C\u0430\u0441\u0448\u0442\u0430\u0431 \u0438\u043D\u0442\u0435\u0440\u0444\u0435\u0439\u0441\u0430"
     m_Metadata:
@@ -801,7 +801,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 157
     m_Localized: Event Models
     m_Metadata:
@@ -871,7 +871,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 174
     m_Localized: "\u041F\u0435\u0441\u043D\u044F"
     m_Metadata:
@@ -998,7 +998,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 3301721636864
     m_Localized: Changes the transparency of the grid background
     m_Metadata:
@@ -1007,7 +1007,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 23812497342464
     m_Localized: Grid Transparency
     m_Metadata:
@@ -1057,7 +1057,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1406,7 +1406,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475586
+      - rid: 1057323853537345631
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1536,10 +1536,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475586
+    - rid: 1057323853537345631
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_sv-SE.asset b/Assets/Locales/Options_sv-SE.asset
index 5c7e5fd9d..31cb380a1 100644
--- a/Assets/Locales/Options_sv-SE.asset
+++ b/Assets/Locales/Options_sv-SE.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475533
+    - rid: 1057323853537345578
   m_TableData:
   - m_Id: 1
     m_Localized: "Inst\xE4llningar - {tabName}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 2
     m_Localized: "\xD6vriga alternativ"
     m_Metadata:
@@ -282,7 +282,7 @@ MonoBehaviour:
     m_Localized: "Inl\xE4sta Plugins: {Count}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 67
     m_Localized: Information om Plugins
     m_Metadata:
@@ -329,7 +329,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} Decimal Place(s)'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 74
     m_Localized: 'How many decimal places to round "_time" values for every map object
       when saving to disk.
@@ -571,7 +571,7 @@ MonoBehaviour:
     m_Localized: Insticksprogram
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 132
     m_Localized: Experimentellt
     m_Metadata:
@@ -584,47 +584,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 139
     m_Localized: '{TextValue} takter'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 140
     m_Localized: '{TextValue} takter'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 143
     m_Localized: "F\xE4st rotations displayen"
     m_Metadata:
@@ -670,7 +670,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 154
     m_Localized: UI Scale
     m_Metadata:
@@ -683,7 +683,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 157
     m_Localized: Event Models
     m_Metadata:
@@ -753,7 +753,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 174
     m_Localized: Song
     m_Metadata:
@@ -874,7 +874,7 @@ MonoBehaviour:
     m_Localized: '{TextValue} ms'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 3301721636864
     m_Localized: Changes the transparency of the grid background
     m_Metadata:
@@ -883,7 +883,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 23812497342464
     m_Localized: Grid Transparency
     m_Metadata:
@@ -932,7 +932,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 67492742661058560
     m_Localized: Scales the (total) rendering resolution for performance or visual
       improvements.
@@ -1274,7 +1274,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475533
+      - rid: 1057323853537345578
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1404,10 +1404,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475533
+    - rid: 1057323853537345578
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/Options_zh-CN.asset b/Assets/Locales/Options_zh-CN.asset
index f656d30b0..d6194daf0 100644
--- a/Assets/Locales/Options_zh-CN.asset
+++ b/Assets/Locales/Options_zh-CN.asset
@@ -17,13 +17,13 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 3d3fb288927a2264891ce15662e46756, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475541
+    - rid: 1057323853537345586
   m_TableData:
   - m_Id: 1
     m_Localized: "\u8BBE\u7F6E - {TabName}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 2
     m_Localized: "\u6742\u9879"
     m_Metadata:
@@ -274,7 +274,7 @@ MonoBehaviour:
     m_Localized: "\u5DF2\u52A0\u8F7D\u7684\u63D2\u4EF6\uFF1A {Count}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 67
     m_Localized: "\u63D2\u4EF6\u4FE1\u606F"
     m_Metadata:
@@ -304,7 +304,7 @@ MonoBehaviour:
     m_Localized: "{TextValue} \u5341\u8FDB\u5236\u7CBE\u5EA6(S)"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 74
     m_Localized: "\u4FDD\u5B58\u5230\u78C1\u76D8\u65F6\uFF0C\u6BCF\u4E2A\u5730\u56FE\u5BF9\u8C61\u7684\u201C_time\u201D\u503C\u8981\u820D\u5165\u591A\u5C11\u4F4D\u5C0F\u6570\u3002\n\u8F83\u4F4E\u7684\u7CBE\u5EA6\u610F\u5473\u7740\u66F4\u591A\u7684\u65F6\u95F4\u8BEF\u5DEE\u7A7A\u95F4\uFF0C\u4F46\u662F\u53EF\u4EE5\u5728\u8F83\u5927\u7684\u590D\u6742\u5EA6\u56FE\u4E0A\u8282\u7701\u7A7A\u95F4\u3002"
     m_Metadata:
@@ -526,7 +526,7 @@ MonoBehaviour:
     m_Localized: "\u63D2\u4EF6"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 132
     m_Localized: "\u6D4B\u8BD5\u7248"
     m_Metadata:
@@ -539,47 +539,47 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 135
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 136
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 137
     m_Localized: "{TextValue}\xB0"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 138
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 139
     m_Localized: "{TextValue} \u8282\u62CD"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 140
     m_Localized: "{TextValue} \u8282\u62CD"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 141
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 142
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 143
     m_Localized: "\u56FA\u5B9A\u65CB\u8F6C\u663E\u793A"
     m_Metadata:
@@ -624,7 +624,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 154
     m_Localized: "\u754C\u9762\u6BD4\u4F8B"
     m_Metadata:
@@ -637,7 +637,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 157
     m_Localized: "\u4E8B\u4EF6\u6A21\u578B"
     m_Metadata:
@@ -707,7 +707,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 174
     m_Localized: "\u6B4C\u66F2"
     m_Metadata:
@@ -829,7 +829,7 @@ MonoBehaviour:
     m_Localized: "{TextValue} \u6BEB\u79D2"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 3301721636864
     m_Localized: "\u66F4\u6539\u7F51\u683C\u80CC\u666F\u7684\u900F\u660E\u5EA6"
     m_Metadata:
@@ -838,7 +838,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 23812497342464
     m_Localized: "\u7F51\u683C\u900F\u660E\u5EA6"
     m_Metadata:
@@ -889,7 +889,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 67492742661058560
     m_Localized: "\u7F29\u653E\u6E32\u67D3\u5206\u8FA8\u7387\u4EE5\u63D0\u9AD8\u6027\u80FD\u6216\u89C6\u89C9\u6548\u679C\u3002"
     m_Metadata:
@@ -1228,7 +1228,7 @@ MonoBehaviour:
     m_Localized: '{TextValue}m'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475541
+      - rid: 1057323853537345586
   - m_Id: 322078335378526208
     m_Localized: Objects and Lighting
     m_Metadata:
@@ -1358,10 +1358,18 @@ MonoBehaviour:
       error messages.
     m_Metadata:
       m_Items: []
+  - m_Id: 388776190596214784
+    m_Localized: Bookmark UI Brightness
+    m_Metadata:
+      m_Items: []
+  - m_Id: 388776364043268096
+    m_Localized: How bright the bookmarks on the timeline are.
+    m_Metadata:
+      m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475541
+    - rid: 1057323853537345586
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 010000000000000042000000000000004900000000000000830000000000000086000000000000008700000000000000880000000000000089000000000000008a000000000000008b000000000000008c000000000000008d000000000000008e0000000000000099000000000000009c00000000000000ad0000000000000000b07a73ae0400000000b21e8704000000b0ba6917caef00000083d17b022c04
diff --git a/Assets/Locales/PersistentUI_ko.asset b/Assets/Locales/PersistentUI_ko.asset
index f550b4bdf..26038af38 100644
--- a/Assets/Locales/PersistentUI_ko.asset
+++ b/Assets/Locales/PersistentUI_ko.asset
@@ -84,11 +84,15 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 365546173453295616
-    m_Localized: This audio file is too long to have a rendered spectrogram.
+    m_Localized: "\uC774 \uC624\uB514\uC624 \uD30C\uC77C\uC740 \uB108\uBB34 \uAE38\uC5B4\uC11C
+      \uC2A4\uD399\uD2B8\uB85C\uADF8\uB7A8\uC744 \uB80C\uB354\uB9C1 \uD560 \uC218
+      \uC5C6\uC2B5\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   - m_Id: 365546339392544768
-    m_Localized: Your system does not have enough video memory for a rendered spectrogram.
+    m_Localized: "\uC2DC\uC2A4\uD15C\uC5D0 \uB80C\uB354\uB9C1\uB41C \uC2A4\uD399\uD2B8\uB85C\uADF8\uB7A8\uC744
+      \uC704\uD55C \uBE44\uB514\uC624 \uBA54\uBAA8\uB9AC\uAC00 \uCDA9\uBD84\uD558\uC9C0
+      \uC54A\uC2B5\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   references:
diff --git a/Assets/Locales/SongEditMenu_da.asset b/Assets/Locales/SongEditMenu_da.asset
index 9e09881d6..f212500d1 100644
--- a/Assets/Locales/SongEditMenu_da.asset
+++ b/Assets/Locales/SongEditMenu_da.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475566
+    - rid: 1057323853537345611
   m_TableData:
   - m_Id: 1
     m_Localized: Sang Info
@@ -344,7 +344,7 @@ MonoBehaviour:
     m_Localized: "{0}% fuldf\xF8rt."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475566
+      - rid: 1057323853537345611
   - m_Id: 44795657592176640
     m_Localized: Reaktionstid
     m_Metadata:
@@ -410,7 +410,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475566
+    - rid: 1057323853537345611
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_de.asset b/Assets/Locales/SongEditMenu_de.asset
index e15815f3c..c1b5caa09 100644
--- a/Assets/Locales/SongEditMenu_de.asset
+++ b/Assets/Locales/SongEditMenu_de.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475546
+    - rid: 1057323853537345591
   m_TableData:
   - m_Id: 1
     m_Localized: Song-Info
@@ -369,7 +369,7 @@ MonoBehaviour:
     m_Localized: '{0}% fertig.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475546
+      - rid: 1057323853537345591
   - m_Id: 44795657592176640
     m_Localized: Reaktionszeit
     m_Metadata:
@@ -439,7 +439,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475546
+    - rid: 1057323853537345591
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_en-OWO.asset b/Assets/Locales/SongEditMenu_en-OWO.asset
index 9e7ab4563..246ad49d1 100644
--- a/Assets/Locales/SongEditMenu_en-OWO.asset
+++ b/Assets/Locales/SongEditMenu_en-OWO.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475536
+    - rid: 1057323853537345581
   m_TableData:
   - m_Id: 1
     m_Localized: Song InfOwO
@@ -360,7 +360,7 @@ MonoBehaviour:
     m_Localized: '{0}% compwete!'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475536
+      - rid: 1057323853537345581
   - m_Id: 44795657592176640
     m_Localized: Weaction Twime
     m_Metadata:
@@ -433,7 +433,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475536
+    - rid: 1057323853537345581
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_en-PT.asset b/Assets/Locales/SongEditMenu_en-PT.asset
index 99d44776f..ed4a0e485 100644
--- a/Assets/Locales/SongEditMenu_en-PT.asset
+++ b/Assets/Locales/SongEditMenu_en-PT.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475557
+    - rid: 1057323853537345602
   m_TableData:
   - m_Id: 1
     m_Localized: Song Info
@@ -365,7 +365,7 @@ MonoBehaviour:
     m_Localized: '{0}% complete.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475557
+      - rid: 1057323853537345602
   - m_Id: 44795657592176640
     m_Localized: Reaction Time
     m_Metadata:
@@ -437,7 +437,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475557
+    - rid: 1057323853537345602
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_es-ES.asset b/Assets/Locales/SongEditMenu_es-ES.asset
index 66a8772c4..50ffc678a 100644
--- a/Assets/Locales/SongEditMenu_es-ES.asset
+++ b/Assets/Locales/SongEditMenu_es-ES.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475574
+    - rid: 1057323853537345619
   m_TableData:
   - m_Id: 1
     m_Localized: "Datos de la canci\xF3n"
@@ -343,7 +343,7 @@ MonoBehaviour:
     m_Localized: '{0}% complete.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475574
+      - rid: 1057323853537345619
   - m_Id: 44795657592176640
     m_Localized: Reaction Time
     m_Metadata:
@@ -415,7 +415,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475574
+    - rid: 1057323853537345619
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_et.asset b/Assets/Locales/SongEditMenu_et.asset
index 2c43cd4b0..be3d997bc 100644
--- a/Assets/Locales/SongEditMenu_et.asset
+++ b/Assets/Locales/SongEditMenu_et.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475547
+    - rid: 1057323853537345592
   m_TableData:
   - m_Id: 1
     m_Localized: Song Info
@@ -367,7 +367,7 @@ MonoBehaviour:
     m_Localized: '{0}% complete.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475547
+      - rid: 1057323853537345592
   - m_Id: 44795657592176640
     m_Localized: Reaction Time
     m_Metadata:
@@ -439,7 +439,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475547
+    - rid: 1057323853537345592
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_fi.asset b/Assets/Locales/SongEditMenu_fi.asset
index 73029dc57..009a3b5fb 100644
--- a/Assets/Locales/SongEditMenu_fi.asset
+++ b/Assets/Locales/SongEditMenu_fi.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475529
+    - rid: 1057323853537345574
   m_TableData:
   - m_Id: 1
     m_Localized: Kappaleen Tiedot
@@ -348,7 +348,7 @@ MonoBehaviour:
     m_Localized: '{0}% valmiina'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475529
+      - rid: 1057323853537345574
   - m_Id: 44795657592176640
     m_Localized: Reaktioaika
     m_Metadata:
@@ -420,7 +420,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475529
+    - rid: 1057323853537345574
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_fr.asset b/Assets/Locales/SongEditMenu_fr.asset
index 92a87c025..b6d9fa8bd 100644
--- a/Assets/Locales/SongEditMenu_fr.asset
+++ b/Assets/Locales/SongEditMenu_fr.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475545
+    - rid: 1057323853537345590
   m_TableData:
   - m_Id: 1
     m_Localized: Infos du morceau
@@ -350,7 +350,7 @@ MonoBehaviour:
     m_Localized: "{0}% compl\xE9t\xE9."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475545
+      - rid: 1057323853537345590
   - m_Id: 44795657592176640
     m_Localized: "Temps de r\xE9action"
     m_Metadata:
@@ -417,7 +417,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475545
+    - rid: 1057323853537345590
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_ja.asset b/Assets/Locales/SongEditMenu_ja.asset
index 34da6139c..6a3a1f7b9 100644
--- a/Assets/Locales/SongEditMenu_ja.asset
+++ b/Assets/Locales/SongEditMenu_ja.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475582
+    - rid: 1057323853537345627
   m_TableData:
   - m_Id: 1
     m_Localized: "\u66F2\u306E\u8A73\u7D30"
@@ -325,7 +325,7 @@ MonoBehaviour:
     m_Localized: "{0}%\u5B8C\u4E86"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475582
+      - rid: 1057323853537345627
   - m_Id: 44795657592176640
     m_Localized: "\u53CD\u5FDC\u6642\u9593"
     m_Metadata:
@@ -385,7 +385,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475582
+    - rid: 1057323853537345627
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_ko.asset b/Assets/Locales/SongEditMenu_ko.asset
index b7f966891..ae4a61f35 100644
--- a/Assets/Locales/SongEditMenu_ko.asset
+++ b/Assets/Locales/SongEditMenu_ko.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475558
+    - rid: 1057323853537345603
   m_TableData:
   - m_Id: 1
     m_Localized: "\uACE1 \uC815\uBCF4"
@@ -365,7 +365,7 @@ MonoBehaviour:
     m_Localized: "{0}% \uC644\uB8CC."
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475558
+      - rid: 1057323853537345603
   - m_Id: 44795657592176640
     m_Localized: "\uBC18\uC751 \uC2DC\uAC04"
     m_Metadata:
@@ -432,16 +432,15 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 272807305041276928
-    m_Localized: 'Error while creating the packaged zip:
-
-      Cannot use absolute
-      paths for files.'
+    m_Localized: "\uD328\uD0A4\uC9C0 \uC555\uCD95 \uD30C\uC77C\uC744 \uB9CC\uB4DC\uB294
+      \uB3D9\uC548 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4:\n\uD30C\uC77C\uC5D0
+      \uC808\uB300 \uACBD\uB85C\uB97C \uC0AC\uC6A9\uD560 \uC218 \uC5C6\uC2B5\uB2C8\uB2E4."
     m_Metadata:
       m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475558
+    - rid: 1057323853537345603
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_nl.asset b/Assets/Locales/SongEditMenu_nl.asset
index 26a5f9c9b..18dc0bfc3 100644
--- a/Assets/Locales/SongEditMenu_nl.asset
+++ b/Assets/Locales/SongEditMenu_nl.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475575
+    - rid: 1057323853537345620
   m_TableData:
   - m_Id: 1
     m_Localized: Nummer Info
@@ -365,7 +365,7 @@ MonoBehaviour:
     m_Localized: '{0}% complete.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475575
+      - rid: 1057323853537345620
   - m_Id: 44795657592176640
     m_Localized: Reaction Time
     m_Metadata:
@@ -433,7 +433,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475575
+    - rid: 1057323853537345620
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_ru.asset b/Assets/Locales/SongEditMenu_ru.asset
index 5b99b7f5e..678965f0e 100644
--- a/Assets/Locales/SongEditMenu_ru.asset
+++ b/Assets/Locales/SongEditMenu_ru.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475527
+    - rid: 1057323853537345572
   m_TableData:
   - m_Id: 1
     m_Localized: "\u041C\u0435\u0442\u0430\u0434\u0430\u043D\u043D\u044B\u0435"
@@ -399,7 +399,7 @@ MonoBehaviour:
     m_Localized: '{0}% complete.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475527
+      - rid: 1057323853537345572
   - m_Id: 44795657592176640
     m_Localized: Reaction Time
     m_Metadata:
@@ -472,7 +472,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475527
+    - rid: 1057323853537345572
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_sv-SE.asset b/Assets/Locales/SongEditMenu_sv-SE.asset
index 24f05e2ef..c92160376 100644
--- a/Assets/Locales/SongEditMenu_sv-SE.asset
+++ b/Assets/Locales/SongEditMenu_sv-SE.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475594
+    - rid: 1057323853537345639
   m_TableData:
   - m_Id: 1
     m_Localized: "L\xE5t info"
@@ -361,7 +361,7 @@ MonoBehaviour:
     m_Localized: '{0}% complete.'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475594
+      - rid: 1057323853537345639
   - m_Id: 44795657592176640
     m_Localized: Reaction Time
     m_Metadata:
@@ -433,7 +433,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475594
+    - rid: 1057323853537345639
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongEditMenu_zh-CN.asset b/Assets/Locales/SongEditMenu_zh-CN.asset
index 5b96df0e5..81bd6bb30 100644
--- a/Assets/Locales/SongEditMenu_zh-CN.asset
+++ b/Assets/Locales/SongEditMenu_zh-CN.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: b86ac019838731d46842f98842efbe60, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475572
+    - rid: 1057323853537345617
   m_TableData:
   - m_Id: 1
     m_Localized: "\u6B4C\u66F2\u4FE1\u606F"
@@ -326,7 +326,7 @@ MonoBehaviour:
     m_Localized: "\u5DF2\u5B8C\u6210{0}%"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475572
+      - rid: 1057323853537345617
   - m_Id: 44795657592176640
     m_Localized: "\u53CD\u5E94\u65F6\u95F4"
     m_Metadata:
@@ -393,7 +393,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475572
+    - rid: 1057323853537345617
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0010d21a57e67101
diff --git a/Assets/Locales/SongSelectMenu_da.asset b/Assets/Locales/SongSelectMenu_da.asset
index 95100e416..f4f97b8dc 100644
--- a/Assets/Locales/SongSelectMenu_da.asset
+++ b/Assets/Locales/SongSelectMenu_da.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475554
+    - rid: 1057323853537345599
   m_TableData:
   - m_Id: 1
     m_Localized: Ny Map
@@ -69,7 +69,7 @@ MonoBehaviour:
     m_Localized: 'Side: {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475554
+      - rid: 1057323853537345599
   - m_Id: 13
     m_Localized: "S\xF8g..."
     m_Metadata:
@@ -147,7 +147,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475554
+    - rid: 1057323853537345599
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_de.asset b/Assets/Locales/SongSelectMenu_de.asset
index 7020e69d2..299f6e9ad 100644
--- a/Assets/Locales/SongSelectMenu_de.asset
+++ b/Assets/Locales/SongSelectMenu_de.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475584
+    - rid: 1057323853537345629
   m_TableData:
   - m_Id: 1
     m_Localized: Neue Map
@@ -69,7 +69,7 @@ MonoBehaviour:
     m_Localized: 'Seite: {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475584
+      - rid: 1057323853537345629
   - m_Id: 13
     m_Localized: Suchen...
     m_Metadata:
@@ -144,7 +144,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475584
+    - rid: 1057323853537345629
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_en-OWO.asset b/Assets/Locales/SongSelectMenu_en-OWO.asset
index 6ac654f66..77ef4616e 100644
--- a/Assets/Locales/SongSelectMenu_en-OWO.asset
+++ b/Assets/Locales/SongSelectMenu_en-OWO.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475553
+    - rid: 1057323853537345598
   m_TableData:
   - m_Id: 1
     m_Localized: New Mwap OWO
@@ -73,7 +73,7 @@ MonoBehaviour:
     m_Localized: 'Pwage: {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475553
+      - rid: 1057323853537345598
   - m_Id: 13
     m_Localized: notice youw mwap...
     m_Metadata:
@@ -154,7 +154,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475553
+    - rid: 1057323853537345598
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_en-PT.asset b/Assets/Locales/SongSelectMenu_en-PT.asset
index 1aca3eb48..e5b90b64c 100644
--- a/Assets/Locales/SongSelectMenu_en-PT.asset
+++ b/Assets/Locales/SongSelectMenu_en-PT.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475583
+    - rid: 1057323853537345628
   m_TableData:
   - m_Id: 1
     m_Localized: New Map
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: 'Page: {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475583
+      - rid: 1057323853537345628
   - m_Id: 13
     m_Localized: Search...
     m_Metadata:
@@ -148,7 +148,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475583
+    - rid: 1057323853537345628
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_es-ES.asset b/Assets/Locales/SongSelectMenu_es-ES.asset
index c3d15ec4e..5fc2f3c72 100644
--- a/Assets/Locales/SongSelectMenu_es-ES.asset
+++ b/Assets/Locales/SongSelectMenu_es-ES.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475581
+    - rid: 1057323853537345626
   m_TableData:
   - m_Id: 1
     m_Localized: Nuevo mapa
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: "P\xE1gina: {CurrentPage}/{MaxPage}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475581
+      - rid: 1057323853537345626
   - m_Id: 13
     m_Localized: Buscar...
     m_Metadata:
@@ -148,7 +148,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475581
+    - rid: 1057323853537345626
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_et.asset b/Assets/Locales/SongSelectMenu_et.asset
index 2b0ded1f9..826449713 100644
--- a/Assets/Locales/SongSelectMenu_et.asset
+++ b/Assets/Locales/SongSelectMenu_et.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475551
+    - rid: 1057323853537345596
   m_TableData:
   - m_Id: 1
     m_Localized: New Map
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: 'Page: {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475551
+      - rid: 1057323853537345596
   - m_Id: 13
     m_Localized: Search...
     m_Metadata:
@@ -148,7 +148,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475551
+    - rid: 1057323853537345596
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_fi.asset b/Assets/Locales/SongSelectMenu_fi.asset
index d333dda19..3ec902001 100644
--- a/Assets/Locales/SongSelectMenu_fi.asset
+++ b/Assets/Locales/SongSelectMenu_fi.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475577
+    - rid: 1057323853537345622
   m_TableData:
   - m_Id: 1
     m_Localized: Uusi Mappi
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: 'Sivu: {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475577
+      - rid: 1057323853537345622
   - m_Id: 13
     m_Localized: Haku...
     m_Metadata:
@@ -144,7 +144,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475577
+    - rid: 1057323853537345622
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_fr.asset b/Assets/Locales/SongSelectMenu_fr.asset
index e5ae03dc2..9f89b2626 100644
--- a/Assets/Locales/SongSelectMenu_fr.asset
+++ b/Assets/Locales/SongSelectMenu_fr.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475576
+    - rid: 1057323853537345621
   m_TableData:
   - m_Id: 1
     m_Localized: Nouvelle map
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: 'Page : {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475576
+      - rid: 1057323853537345621
   - m_Id: 13
     m_Localized: Rechercher...
     m_Metadata:
@@ -142,7 +142,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475576
+    - rid: 1057323853537345621
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_ja.asset b/Assets/Locales/SongSelectMenu_ja.asset
index 3cddbe0fa..a347332e6 100644
--- a/Assets/Locales/SongSelectMenu_ja.asset
+++ b/Assets/Locales/SongSelectMenu_ja.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475540
+    - rid: 1057323853537345585
   m_TableData:
   - m_Id: 1
     m_Localized: "\u65B0\u898F\u8B5C\u9762"
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: "\u30DA\u30FC\u30B8\uFF1A{CurrentPage}/{MaxPage}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475540
+      - rid: 1057323853537345585
   - m_Id: 13
     m_Localized: "\u691C\u7D22..."
     m_Metadata:
@@ -140,7 +140,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475540
+    - rid: 1057323853537345585
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_ko.asset b/Assets/Locales/SongSelectMenu_ko.asset
index 09b607865..866a0e4a8 100644
--- a/Assets/Locales/SongSelectMenu_ko.asset
+++ b/Assets/Locales/SongSelectMenu_ko.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475569
+    - rid: 1057323853537345614
   m_TableData:
   - m_Id: 1
     m_Localized: "\uC0C8\uB85C\uC6B4 \uB9F5"
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: "\uD398\uC774\uC9C0: {CurrentPage}/{MaxPage}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475569
+      - rid: 1057323853537345614
   - m_Id: 13
     m_Localized: "\uAC80\uC0C9..."
     m_Metadata:
@@ -138,17 +138,15 @@ MonoBehaviour:
     m_Metadata:
       m_Items: []
   - m_Id: 161103413248
-    m_Localized: 'Could not create a folder with that name.
-
-
-      Please enter
-      a different name for the new beatmap.'
+    m_Localized: "\uD574\uB2F9 \uC774\uB984\uC73C\uB85C \uD3F4\uB354\uB97C \uB9CC\uB4E4
+      \uC218 \uC5C6\uC2B5\uB2C8\uB2E4.\n\n\uC0C8 \uBE44\uD2B8\uB9F5\uC758 \uC774\uB984\uC744
+      \uB2E4\uB974\uAC8C \uC785\uB825\uD574\uC8FC\uC138\uC694."
     m_Metadata:
       m_Items: []
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475569
+    - rid: 1057323853537345614
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_nl.asset b/Assets/Locales/SongSelectMenu_nl.asset
index 054082b63..c755fb6c5 100644
--- a/Assets/Locales/SongSelectMenu_nl.asset
+++ b/Assets/Locales/SongSelectMenu_nl.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475578
+    - rid: 1057323853537345623
   m_TableData:
   - m_Id: 1
     m_Localized: Nieuwe map
@@ -71,7 +71,7 @@ MonoBehaviour:
     m_Localized: 'Pagina: {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475578
+      - rid: 1057323853537345623
   - m_Id: 13
     m_Localized: Zoeken...
     m_Metadata:
@@ -150,7 +150,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475578
+    - rid: 1057323853537345623
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_ru.asset b/Assets/Locales/SongSelectMenu_ru.asset
index e2a875b84..797fc3291 100644
--- a/Assets/Locales/SongSelectMenu_ru.asset
+++ b/Assets/Locales/SongSelectMenu_ru.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475563
+    - rid: 1057323853537345608
   m_TableData:
   - m_Id: 1
     m_Localized: "\u041D\u043E\u0432\u0430\u044F \u043A\u0430\u0440\u0442\u0430"
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: "\u0421\u0442\u0440\u0430\u043D\u0438\u0446\u0430: {CurrentPage}/{MaxPage}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475563
+      - rid: 1057323853537345608
   - m_Id: 13
     m_Localized: "\u041F\u043E\u0438\u0441\u043A..."
     m_Metadata:
@@ -160,7 +160,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475563
+    - rid: 1057323853537345608
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_sv-SE.asset b/Assets/Locales/SongSelectMenu_sv-SE.asset
index 696a104f1..292bbd114 100644
--- a/Assets/Locales/SongSelectMenu_sv-SE.asset
+++ b/Assets/Locales/SongSelectMenu_sv-SE.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475542
+    - rid: 1057323853537345587
   m_TableData:
   - m_Id: 1
     m_Localized: Ny Map
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: 'Sida: {CurrentPage}/{MaxPage}'
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475542
+      - rid: 1057323853537345587
   - m_Id: 13
     m_Localized: "S\xF6k..."
     m_Metadata:
@@ -148,7 +148,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475542
+    - rid: 1057323853537345587
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000
diff --git a/Assets/Locales/SongSelectMenu_zh-CN.asset b/Assets/Locales/SongSelectMenu_zh-CN.asset
index 86df439e6..cb545d7de 100644
--- a/Assets/Locales/SongSelectMenu_zh-CN.asset
+++ b/Assets/Locales/SongSelectMenu_zh-CN.asset
@@ -17,7 +17,7 @@ MonoBehaviour:
   m_SharedData: {fileID: 11400000, guid: 95d340fdffc264d469407a049a1fb729, type: 2}
   m_Metadata:
     m_Items:
-    - rid: 2609315181482475555
+    - rid: 1057323853537345600
   m_TableData:
   - m_Id: 1
     m_Localized: "\u65B0\u5EFA\u8C31\u9762"
@@ -67,7 +67,7 @@ MonoBehaviour:
     m_Localized: "\u9875\u6570\uFF1A {CurrentPage}/{MaxPage}"
     m_Metadata:
       m_Items:
-      - rid: 2609315181482475555
+      - rid: 1057323853537345600
   - m_Id: 13
     m_Localized: "\u641C\u7D22..."
     m_Metadata:
@@ -140,7 +140,7 @@ MonoBehaviour:
   references:
     version: 2
     RefIds:
-    - rid: 2609315181482475555
+    - rid: 1057323853537345600
       type: {class: SmartFormatTag, ns: UnityEngine.Localization.Metadata, asm: Unity.Localization}
       data:
         m_Entries: 0c00000000000000

From ec10a5ec1bbe26a4e11b25547138e2cae8f8d6a6 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Tue, 23 Jul 2024 18:11:15 +1000
Subject: [PATCH 32/35] Fix potentially sending outdated map to peers

---
 .../__Scripts/MapEditor/Multi Mapping/MultiServerNetListener.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Assets/__Scripts/MapEditor/Multi Mapping/MultiServerNetListener.cs b/Assets/__Scripts/MapEditor/Multi Mapping/MultiServerNetListener.cs
index 4a039065d..84471c3e1 100644
--- a/Assets/__Scripts/MapEditor/Multi Mapping/MultiServerNetListener.cs	
+++ b/Assets/__Scripts/MapEditor/Multi Mapping/MultiServerNetListener.cs	
@@ -184,7 +184,7 @@ internal static IEnumerator SaveAndSendMapToPeer(MultiNetListener listener, Auto
         autoSave.Save(false);
 
         // Wait until saving operation is completed
-        yield return new WaitWhile(() => autoSave.IsSaving);
+        yield return new WaitWhile(() => !autoSave.IsSaving);
 
         // Zip the song in its current state, then send to the player.
         // I'm aware that there's a little bit of time in between saving and zipping where changes made *arent* sent to the client,

From 4729562e029816796474616f9fc64cfcf4bf3c7f Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Tue, 23 Jul 2024 18:11:45 +1000
Subject: [PATCH 33/35] Wait for map to save before exiting to song info

---
 Assets/__Scripts/MapEditor/UI/PauseManager.cs | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/Assets/__Scripts/MapEditor/UI/PauseManager.cs b/Assets/__Scripts/MapEditor/UI/PauseManager.cs
index dd0917710..f59b875cb 100644
--- a/Assets/__Scripts/MapEditor/UI/PauseManager.cs
+++ b/Assets/__Scripts/MapEditor/UI/PauseManager.cs
@@ -91,14 +91,19 @@ public void SaveAndExitToMenu()
         {
             // We want to transition to Song List if we're a multi mapping client;
             //    sending to Song Edit screen would allow people full access to the multi mapped song (not supported)
-            SceneTransitionManager.Instance.LoadScene("01_SongSelectMenu");
+            SceneTransitionManager.Instance.LoadScene("01_SongSelectMenu", WaitForSaveToFinish());
         }
         else
         {
-            SceneTransitionManager.Instance.LoadScene("02_SongEditMenu");
+            SceneTransitionManager.Instance.LoadScene("02_SongEditMenu", WaitForSaveToFinish());
         }
     }
 
+    private IEnumerator WaitForSaveToFinish()
+    {
+        yield return new WaitUntil(() => !saveController.IsSaving);
+    }
+
     public void SaveAndQuitCM()
     {
         saveController.Save();
@@ -128,11 +133,11 @@ private void SaveAndExitResult(int result)
             {
                 // We want to transition to Song List if we're a multi mapping client;
                 //    sending to Song Edit screen would allow people full access to the multi mapped song (not supported)
-                SceneTransitionManager.Instance.LoadScene("01_SongSelectMenu");
+                SceneTransitionManager.Instance.LoadScene("01_SongSelectMenu", WaitForSaveToFinish());
             }
             else
             {
-                SceneTransitionManager.Instance.LoadScene("02_SongEditMenu");
+                SceneTransitionManager.Instance.LoadScene("02_SongEditMenu", WaitForSaveToFinish());
             }
         }
         //Right button (ID 2) would be clicked; the user does not want to exit the editor after all, so we aint doing shit.

From 6422ee0f783f86bb572835b83dc14229ea002cd6 Mon Sep 17 00:00:00 2001
From: Bullet <68104413+XAce1337manX@users.noreply.github.com>
Date: Tue, 23 Jul 2024 20:54:37 +1000
Subject: [PATCH 34/35] Fix bpm events not being converted

---
 Assets/__Scripts/Beatmap/Converters/V2ToV3.cs | 1 +
 Assets/__Scripts/Beatmap/Converters/V3ToV2.cs | 1 +
 2 files changed, 2 insertions(+)

diff --git a/Assets/__Scripts/Beatmap/Converters/V2ToV3.cs b/Assets/__Scripts/Beatmap/Converters/V2ToV3.cs
index e76c07c0a..7d5cb08a3 100644
--- a/Assets/__Scripts/Beatmap/Converters/V2ToV3.cs
+++ b/Assets/__Scripts/Beatmap/Converters/V2ToV3.cs
@@ -352,6 +352,7 @@ public static V3Difficulty Difficulty(V2Difficulty other)
                 DirectoryAndFile = other.DirectoryAndFile,
                 Obstacles = other.Obstacles.Select(Obstacle).Cast<BaseObstacle>().ToList(),
                 Arcs = other.Arcs.Select(Arc).Cast<BaseArc>().ToList(),
+                BpmEvents = other.BpmEvents.Select(BpmEvent).Cast<BaseBpmEvent>().ToList(),
                 Waypoints = other.Waypoints.Select(Waypoint).Cast<BaseWaypoint>().ToList(),
                 EventTypesWithKeywords = other.EventTypesWithKeywords != null
                     ? new V3BasicEventTypesWithKeywords(other.EventTypesWithKeywords)
diff --git a/Assets/__Scripts/Beatmap/Converters/V3ToV2.cs b/Assets/__Scripts/Beatmap/Converters/V3ToV2.cs
index ccec42e8c..b61f750b0 100644
--- a/Assets/__Scripts/Beatmap/Converters/V3ToV2.cs
+++ b/Assets/__Scripts/Beatmap/Converters/V3ToV2.cs
@@ -327,6 +327,7 @@ public static V2Difficulty Difficulty(V3Difficulty other)
                 Obstacles = other.Obstacles,
                 Waypoints = other.Waypoints,
                 Arcs = other.Arcs,
+                BpmEvents = other.BpmEvents,
                 BpmChanges = other.BpmChanges,
                 Bookmarks = other.Bookmarks,
                 CustomEvents = other.CustomEvents,

From 4c7bff0dd5e6d8ad03a7f4c82d46607b2b16b639 Mon Sep 17 00:00:00 2001
From: Caeden117 <caeden.s@outlook.com>
Date: Wed, 24 Jul 2024 15:04:43 -0700
Subject: [PATCH 35/35] Build ChroMapper in Release mode

---
 Assets/Editor/SimpleEditorUtils.cs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Assets/Editor/SimpleEditorUtils.cs b/Assets/Editor/SimpleEditorUtils.cs
index 23bfbfcaa..d58317007 100644
--- a/Assets/Editor/SimpleEditorUtils.cs
+++ b/Assets/Editor/SimpleEditorUtils.cs
@@ -31,7 +31,7 @@ private static void SetBuildNumber()
         PlayerSettings.bundleVersion = PlayerSettings.bundleVersion.Replace(".0", "." + buildNumber);
     }
 
-    private const BuildOptions buildOptions = BuildOptions.CompressWithLz4 | BuildOptions.Development;
+    private const BuildOptions buildOptions = BuildOptions.CompressWithLz4 /*| BuildOptions.Development*/;
 
     private static void BuildWindows()
     {