diff --git a/Screenshot (830).png b/Screenshot (830).png
new file mode 100644
index 0000000000000000000000000000000000000000..457f1bfaa2845f393a063c24714bf6270202f808
Binary files /dev/null and b/Screenshot (830).png differ
diff --git a/Screenshot (831).png b/Screenshot (831).png
new file mode 100644
index 0000000000000000000000000000000000000000..3edb1a0c4a943f167ed9b66d433c24485805b9c1
Binary files /dev/null and b/Screenshot (831).png differ
diff --git a/Screenshot (832).png b/Screenshot (832).png
new file mode 100644
index 0000000000000000000000000000000000000000..2f06b96fdfce3db5d8dad46864251004ff482e3b
Binary files /dev/null and b/Screenshot (832).png differ
diff --git a/Screenshot (834).png b/Screenshot (834).png
new file mode 100644
index 0000000000000000000000000000000000000000..c8966072c7dfc23523b6ced7096c504ea7309a65
Binary files /dev/null and b/Screenshot (834).png differ
diff --git a/Screenshot (836).png b/Screenshot (836).png
new file mode 100644
index 0000000000000000000000000000000000000000..e1e4f091549199a3317fa77d92ba3d641636ac16
Binary files /dev/null and b/Screenshot (836).png differ
diff --git a/Screenshot (837).png b/Screenshot (837).png
new file mode 100644
index 0000000000000000000000000000000000000000..11abf39c8bce239c5eb11346005111036c4876d9
Binary files /dev/null and b/Screenshot (837).png differ
diff --git a/Screenshot (838).png b/Screenshot (838).png
new file mode 100644
index 0000000000000000000000000000000000000000..f91f2031aa680d3486226a85d2801bad7c3540d8
Binary files /dev/null and b/Screenshot (838).png differ
diff --git a/Screenshot (839).png b/Screenshot (839).png
new file mode 100644
index 0000000000000000000000000000000000000000..0926a0fab5f9fa357b9f0be75ea56373bb783063
Binary files /dev/null and b/Screenshot (839).png differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/.vs/Tugas2_PBD_MRizkiFonna_13516001_rev/v16/.suo b/Tugas2_PBD_MRizkiFonna_13516001_rev/.vs/Tugas2_PBD_MRizkiFonna_13516001_rev/v16/.suo
index 6de65ee596a270546c84044f2f552e72ef64cb00..3a85f4f98f89821198af6408c100d77c33c78531 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/.vs/Tugas2_PBD_MRizkiFonna_13516001_rev/v16/.suo and b/Tugas2_PBD_MRizkiFonna_13516001_rev/.vs/Tugas2_PBD_MRizkiFonna_13516001_rev/v16/.suo differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/.vs/Tugas2_PBD_MRizkiFonna_13516001_rev/v16/Server/sqlite3/storage.ide b/Tugas2_PBD_MRizkiFonna_13516001_rev/.vs/Tugas2_PBD_MRizkiFonna_13516001_rev/v16/Server/sqlite3/storage.ide
index 751bc503cae7a11a209788ceb7e230bf2bdabca5..ffb5f0e89d743dc20d5e96505110ed276e3b0b5c 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/.vs/Tugas2_PBD_MRizkiFonna_13516001_rev/v16/Server/sqlite3/storage.ide and b/Tugas2_PBD_MRizkiFonna_13516001_rev/.vs/Tugas2_PBD_MRizkiFonna_13516001_rev/v16/Server/sqlite3/storage.ide differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assembly-CSharp.csproj b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assembly-CSharp.csproj
index 794a12179a9139615d1ae66bc2c6d8af7e6ac588..8a97da7aebc91a26b235e43a6a3b166526bad0a8 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assembly-CSharp.csproj
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assembly-CSharp.csproj
@@ -69,8 +69,11 @@
     <Compile Include="Assets\MainMenuCtr.cs" />
     <Compile Include="Assets\PlayerCtr.cs" />
     <Compile Include="Assets\ScoreCtr.cs" />
+    <Compile Include="Assets\ScoreDataBase.cs" />
+    <Compile Include="Assets\SimpleJSON.cs" />
     <Compile Include="Assets\SoundManagerCtr.cs" />
     <Compile Include="Assets\StartGameCtr.cs" />
+    <Compile Include="Assets\TextScoreCtr.cs" />
     <Compile Include="Assets\UsernameManager.cs" />
     <None Include="Assets\BayatGames\Free Platform Game Assets\Readme.txt" />
     <Reference Include="Unity.TextMeshPro.Editor">
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/MainMenuCtr.cs b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/MainMenuCtr.cs
index 10097d8c5e343e6090ae4b8ddf0a4f40148a4ef7..c50fef3ff5eb1abba855f75d0f06a91e7f224e7a 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/MainMenuCtr.cs
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/MainMenuCtr.cs
@@ -18,7 +18,7 @@ public class MainMenuCtr : MonoBehaviour
     {
         if (Input.GetKeyDown(KeyCode.Return))
         {
-            SceneManager.LoadScene(0); 
+            SceneManager.LoadScene(1); 
 
         }
 
@@ -26,7 +26,7 @@ public class MainMenuCtr : MonoBehaviour
 
     public void MoveToMainGame()
     {
-        SceneManager.LoadScene(0);
+        SceneManager.LoadScene(3);
 
 
     }
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/ScoreDataBase.cs b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/ScoreDataBase.cs
new file mode 100644
index 0000000000000000000000000000000000000000..288bda659304201555615b2ca8943c5c53572593
--- /dev/null
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/ScoreDataBase.cs
@@ -0,0 +1,95 @@
+
+
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+using UnityEngine.UI;
+using System.IO;
+using SimpleJSON;
+
+
+
+public class ScoreDataBase : MonoBehaviour
+{
+    private const string url = "http://134.209.97.218:5051/scoreboards/13516001";
+    public Text res;
+    public Text res2;
+
+    /*
+    // Start is called before the first frame update
+    void Start()
+    {
+        
+    }
+
+    // Update is called once per frame
+    void Update()
+    {
+        
+    }
+    */
+    public void Request()
+    {
+        WWW r = new WWW(url);
+        StartCoroutine(OnResponse(r));
+
+    }
+    
+
+
+    private IEnumerator OnResponse(WWW req)
+    {
+        yield return req;
+        res.text = req.text;
+        string a = res.text;
+        //Debug.Log("a");
+        //Debug.Log(req.text);
+        //Debug.Log("b");
+        var N = JSON.Parse(a);
+        string username2 = N[0]["username"];
+        string cek= N[0]["username"];
+        int score2 = N[0]["score"];
+        int i = 1;
+        while (cek!=null)
+        {
+            if ((N[i]["score"])>= score2)
+            {
+                score2 = N[i]["score"];
+                username2= N[i]["username"];
+
+            }
+            cek = N[i]["username"];
+            i++;
+
+        }
+        Debug.Log(username2);
+        //Score obj = JsonUtility.FromJson<Score>("{\"users\":" + a + "}");
+        //Debug.Log(obj.score);
+        res.text = username2;
+        res2.text = score2.ToString();
+
+
+
+    }
+    [System.Serializable]
+    public class Score
+    {
+        public string _id;
+        public string nim;
+        public string username;
+        public int score;
+
+
+
+        /*
+        public static TextScoreCtr CreateFromJSON(string jsonString)
+        {
+            return JsonUtility.FromJson<TextScoreCtr>(jsonString);
+
+
+        }
+        */
+
+    }
+
+}
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/ScoreDataBase.cs.meta b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/ScoreDataBase.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..6db917ec116600af4620d063c7d66c6cea9354f8
--- /dev/null
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/ScoreDataBase.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: bf66bf89648b06940bfba3995feac835
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/SimpleJSON.cs b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/SimpleJSON.cs
new file mode 100644
index 0000000000000000000000000000000000000000..0eee026bcc4f763130d0ad04f4dac85f223dbe59
--- /dev/null
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/SimpleJSON.cs
@@ -0,0 +1,1352 @@
+/* * * * *
+ * A simple JSON Parser / builder
+ * ------------------------------
+ * 
+ * It mainly has been written as a simple JSON parser. It can build a JSON string
+ * from the node-tree, or generate a node tree from any valid JSON string.
+ * 
+ * Written by Bunny83 
+ * 2012-06-09
+ * 
+ * Changelog now external. See Changelog.txt
+ * 
+ * The MIT License (MIT)
+ * 
+ * Copyright (c) 2012-2019 Markus Göbel (Bunny83)
+ * 
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
+ * of this software and associated documentation files (the "Software"), to deal
+ * in the Software without restriction, including without limitation the rights
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+ * copies of the Software, and to permit persons to whom the Software is
+ * furnished to do so, subject to the following conditions:
+ * 
+ * The above copyright notice and this permission notice shall be included in all
+ * copies or substantial portions of the Software.
+ * 
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+ * SOFTWARE.
+ * 
+ * * * * */
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Globalization;
+using System.Linq;
+using System.Text;
+
+namespace SimpleJSON
+{
+    public enum JSONNodeType
+    {
+        Array = 1,
+        Object = 2,
+        String = 3,
+        Number = 4,
+        NullValue = 5,
+        Boolean = 6,
+        None = 7,
+        Custom = 0xFF,
+    }
+    public enum JSONTextMode
+    {
+        Compact,
+        Indent
+    }
+
+    public abstract partial class JSONNode
+    {
+        #region Enumerators
+        public struct Enumerator
+        {
+            private enum Type { None, Array, Object }
+            private Type type;
+            private Dictionary<string, JSONNode>.Enumerator m_Object;
+            private List<JSONNode>.Enumerator m_Array;
+            public bool IsValid { get { return type != Type.None; } }
+            public Enumerator(List<JSONNode>.Enumerator aArrayEnum)
+            {
+                type = Type.Array;
+                m_Object = default(Dictionary<string, JSONNode>.Enumerator);
+                m_Array = aArrayEnum;
+            }
+            public Enumerator(Dictionary<string, JSONNode>.Enumerator aDictEnum)
+            {
+                type = Type.Object;
+                m_Object = aDictEnum;
+                m_Array = default(List<JSONNode>.Enumerator);
+            }
+            public KeyValuePair<string, JSONNode> Current
+            {
+                get
+                {
+                    if (type == Type.Array)
+                        return new KeyValuePair<string, JSONNode>(string.Empty, m_Array.Current);
+                    else if (type == Type.Object)
+                        return m_Object.Current;
+                    return new KeyValuePair<string, JSONNode>(string.Empty, null);
+                }
+            }
+            public bool MoveNext()
+            {
+                if (type == Type.Array)
+                    return m_Array.MoveNext();
+                else if (type == Type.Object)
+                    return m_Object.MoveNext();
+                return false;
+            }
+        }
+        public struct ValueEnumerator
+        {
+            private Enumerator m_Enumerator;
+            public ValueEnumerator(List<JSONNode>.Enumerator aArrayEnum) : this(new Enumerator(aArrayEnum)) { }
+            public ValueEnumerator(Dictionary<string, JSONNode>.Enumerator aDictEnum) : this(new Enumerator(aDictEnum)) { }
+            public ValueEnumerator(Enumerator aEnumerator) { m_Enumerator = aEnumerator; }
+            public JSONNode Current { get { return m_Enumerator.Current.Value; } }
+            public bool MoveNext() { return m_Enumerator.MoveNext(); }
+            public ValueEnumerator GetEnumerator() { return this; }
+        }
+        public struct KeyEnumerator
+        {
+            private Enumerator m_Enumerator;
+            public KeyEnumerator(List<JSONNode>.Enumerator aArrayEnum) : this(new Enumerator(aArrayEnum)) { }
+            public KeyEnumerator(Dictionary<string, JSONNode>.Enumerator aDictEnum) : this(new Enumerator(aDictEnum)) { }
+            public KeyEnumerator(Enumerator aEnumerator) { m_Enumerator = aEnumerator; }
+            public string Current { get { return m_Enumerator.Current.Key; } }
+            public bool MoveNext() { return m_Enumerator.MoveNext(); }
+            public KeyEnumerator GetEnumerator() { return this; }
+        }
+
+        public class LinqEnumerator : IEnumerator<KeyValuePair<string, JSONNode>>, IEnumerable<KeyValuePair<string, JSONNode>>
+        {
+            private JSONNode m_Node;
+            private Enumerator m_Enumerator;
+            internal LinqEnumerator(JSONNode aNode)
+            {
+                m_Node = aNode;
+                if (m_Node != null)
+                    m_Enumerator = m_Node.GetEnumerator();
+            }
+            public KeyValuePair<string, JSONNode> Current { get { return m_Enumerator.Current; } }
+            object IEnumerator.Current { get { return m_Enumerator.Current; } }
+            public bool MoveNext() { return m_Enumerator.MoveNext(); }
+
+            public void Dispose()
+            {
+                m_Node = null;
+                m_Enumerator = new Enumerator();
+            }
+
+            public IEnumerator<KeyValuePair<string, JSONNode>> GetEnumerator()
+            {
+                return new LinqEnumerator(m_Node);
+            }
+
+            public void Reset()
+            {
+                if (m_Node != null)
+                    m_Enumerator = m_Node.GetEnumerator();
+            }
+
+            IEnumerator IEnumerable.GetEnumerator()
+            {
+                return new LinqEnumerator(m_Node);
+            }
+        }
+
+        #endregion Enumerators
+
+        #region common interface
+
+        public static bool forceASCII = false; // Use Unicode by default
+        public static bool longAsString = false; // lazy creator creates a JSONString instead of JSONNumber
+        public static bool allowLineComments = true; // allow "//"-style comments at the end of a line
+
+        public abstract JSONNodeType Tag { get; }
+
+        public virtual JSONNode this[int aIndex] { get { return null; } set { } }
+
+        public virtual JSONNode this[string aKey] { get { return null; } set { } }
+
+        public virtual string Value { get { return ""; } set { } }
+
+        public virtual int Count { get { return 0; } }
+
+        public virtual bool IsNumber { get { return false; } }
+        public virtual bool IsString { get { return false; } }
+        public virtual bool IsBoolean { get { return false; } }
+        public virtual bool IsNull { get { return false; } }
+        public virtual bool IsArray { get { return false; } }
+        public virtual bool IsObject { get { return false; } }
+
+        public virtual bool Inline { get { return false; } set { } }
+
+        public virtual void Add(string aKey, JSONNode aItem)
+        {
+        }
+        public virtual void Add(JSONNode aItem)
+        {
+            Add("", aItem);
+        }
+
+        public virtual JSONNode Remove(string aKey)
+        {
+            return null;
+        }
+
+        public virtual JSONNode Remove(int aIndex)
+        {
+            return null;
+        }
+
+        public virtual JSONNode Remove(JSONNode aNode)
+        {
+            return aNode;
+        }
+
+        public virtual JSONNode Clone()
+        {
+            return null;
+        }
+
+        public virtual IEnumerable<JSONNode> Children
+        {
+            get
+            {
+                yield break;
+            }
+        }
+
+        public IEnumerable<JSONNode> DeepChildren
+        {
+            get
+            {
+                foreach (var C in Children)
+                    foreach (var D in C.DeepChildren)
+                        yield return D;
+            }
+        }
+
+        public virtual bool HasKey(string aKey)
+        {
+            return false;
+        }
+
+        public virtual JSONNode GetValueOrDefault(string aKey, JSONNode aDefault)
+        {
+            return aDefault;
+        }
+
+        public override string ToString()
+        {
+            StringBuilder sb = new StringBuilder();
+            WriteToStringBuilder(sb, 0, 0, JSONTextMode.Compact);
+            return sb.ToString();
+        }
+
+        public virtual string ToString(int aIndent)
+        {
+            StringBuilder sb = new StringBuilder();
+            WriteToStringBuilder(sb, 0, aIndent, JSONTextMode.Indent);
+            return sb.ToString();
+        }
+        internal abstract void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode);
+
+        public abstract Enumerator GetEnumerator();
+        public IEnumerable<KeyValuePair<string, JSONNode>> Linq { get { return new LinqEnumerator(this); } }
+        public KeyEnumerator Keys { get { return new KeyEnumerator(GetEnumerator()); } }
+        public ValueEnumerator Values { get { return new ValueEnumerator(GetEnumerator()); } }
+
+        #endregion common interface
+
+        #region typecasting properties
+
+
+        public virtual double AsDouble
+        {
+            get
+            {
+                double v = 0.0;
+                if (double.TryParse(Value, NumberStyles.Float, CultureInfo.InvariantCulture, out v))
+                    return v;
+                return 0.0;
+            }
+            set
+            {
+                Value = value.ToString(CultureInfo.InvariantCulture);
+            }
+        }
+
+        public virtual int AsInt
+        {
+            get { return (int)AsDouble; }
+            set { AsDouble = value; }
+        }
+
+        public virtual float AsFloat
+        {
+            get { return (float)AsDouble; }
+            set { AsDouble = value; }
+        }
+
+        public virtual bool AsBool
+        {
+            get
+            {
+                bool v = false;
+                if (bool.TryParse(Value, out v))
+                    return v;
+                return !string.IsNullOrEmpty(Value);
+            }
+            set
+            {
+                Value = (value) ? "true" : "false";
+            }
+        }
+
+        public virtual long AsLong
+        {
+            get
+            {
+                long val = 0;
+                if (long.TryParse(Value, out val))
+                    return val;
+                return 0L;
+            }
+            set
+            {
+                Value = value.ToString();
+            }
+        }
+
+        public virtual JSONArray AsArray
+        {
+            get
+            {
+                return this as JSONArray;
+            }
+        }
+
+        public virtual JSONObject AsObject
+        {
+            get
+            {
+                return this as JSONObject;
+            }
+        }
+
+
+        #endregion typecasting properties
+
+        #region operators
+
+        public static implicit operator JSONNode(string s)
+        {
+            return new JSONString(s);
+        }
+        public static implicit operator string(JSONNode d)
+        {
+            return (d == null) ? null : d.Value;
+        }
+
+        public static implicit operator JSONNode(double n)
+        {
+            return new JSONNumber(n);
+        }
+        public static implicit operator double(JSONNode d)
+        {
+            return (d == null) ? 0 : d.AsDouble;
+        }
+
+        public static implicit operator JSONNode(float n)
+        {
+            return new JSONNumber(n);
+        }
+        public static implicit operator float(JSONNode d)
+        {
+            return (d == null) ? 0 : d.AsFloat;
+        }
+
+        public static implicit operator JSONNode(int n)
+        {
+            return new JSONNumber(n);
+        }
+        public static implicit operator int(JSONNode d)
+        {
+            return (d == null) ? 0 : d.AsInt;
+        }
+
+        public static implicit operator JSONNode(long n)
+        {
+            if (longAsString)
+                return new JSONString(n.ToString());
+            return new JSONNumber(n);
+        }
+        public static implicit operator long(JSONNode d)
+        {
+            return (d == null) ? 0L : d.AsLong;
+        }
+
+        public static implicit operator JSONNode(bool b)
+        {
+            return new JSONBool(b);
+        }
+        public static implicit operator bool(JSONNode d)
+        {
+            return (d == null) ? false : d.AsBool;
+        }
+
+        public static implicit operator JSONNode(KeyValuePair<string, JSONNode> aKeyValue)
+        {
+            return aKeyValue.Value;
+        }
+
+        public static bool operator ==(JSONNode a, object b)
+        {
+            if (ReferenceEquals(a, b))
+                return true;
+            bool aIsNull = a is JSONNull || ReferenceEquals(a, null) || a is JSONLazyCreator;
+            bool bIsNull = b is JSONNull || ReferenceEquals(b, null) || b is JSONLazyCreator;
+            if (aIsNull && bIsNull)
+                return true;
+            return !aIsNull && a.Equals(b);
+        }
+
+        public static bool operator !=(JSONNode a, object b)
+        {
+            return !(a == b);
+        }
+
+        public override bool Equals(object obj)
+        {
+            return ReferenceEquals(this, obj);
+        }
+
+        public override int GetHashCode()
+        {
+            return base.GetHashCode();
+        }
+
+        #endregion operators
+
+        [ThreadStatic]
+        private static StringBuilder m_EscapeBuilder;
+        internal static StringBuilder EscapeBuilder
+        {
+            get
+            {
+                if (m_EscapeBuilder == null)
+                    m_EscapeBuilder = new StringBuilder();
+                return m_EscapeBuilder;
+            }
+        }
+        internal static string Escape(string aText)
+        {
+            var sb = EscapeBuilder;
+            sb.Length = 0;
+            if (sb.Capacity < aText.Length + aText.Length / 10)
+                sb.Capacity = aText.Length + aText.Length / 10;
+            foreach (char c in aText)
+            {
+                switch (c)
+                {
+                    case '\\':
+                        sb.Append("\\\\");
+                        break;
+                    case '\"':
+                        sb.Append("\\\"");
+                        break;
+                    case '\n':
+                        sb.Append("\\n");
+                        break;
+                    case '\r':
+                        sb.Append("\\r");
+                        break;
+                    case '\t':
+                        sb.Append("\\t");
+                        break;
+                    case '\b':
+                        sb.Append("\\b");
+                        break;
+                    case '\f':
+                        sb.Append("\\f");
+                        break;
+                    default:
+                        if (c < ' ' || (forceASCII && c > 127))
+                        {
+                            ushort val = c;
+                            sb.Append("\\u").Append(val.ToString("X4"));
+                        }
+                        else
+                            sb.Append(c);
+                        break;
+                }
+            }
+            string result = sb.ToString();
+            sb.Length = 0;
+            return result;
+        }
+
+        private static JSONNode ParseElement(string token, bool quoted)
+        {
+            if (quoted)
+                return token;
+            string tmp = token.ToLower();
+            if (tmp == "false" || tmp == "true")
+                return tmp == "true";
+            if (tmp == "null")
+                return JSONNull.CreateOrGet();
+            double val;
+            if (double.TryParse(token, NumberStyles.Float, CultureInfo.InvariantCulture, out val))
+                return val;
+            else
+                return token;
+        }
+
+        public static JSONNode Parse(string aJSON)
+        {
+            Stack<JSONNode> stack = new Stack<JSONNode>();
+            JSONNode ctx = null;
+            int i = 0;
+            StringBuilder Token = new StringBuilder();
+            string TokenName = "";
+            bool QuoteMode = false;
+            bool TokenIsQuoted = false;
+            while (i < aJSON.Length)
+            {
+                switch (aJSON[i])
+                {
+                    case '{':
+                        if (QuoteMode)
+                        {
+                            Token.Append(aJSON[i]);
+                            break;
+                        }
+                        stack.Push(new JSONObject());
+                        if (ctx != null)
+                        {
+                            ctx.Add(TokenName, stack.Peek());
+                        }
+                        TokenName = "";
+                        Token.Length = 0;
+                        ctx = stack.Peek();
+                        break;
+
+                    case '[':
+                        if (QuoteMode)
+                        {
+                            Token.Append(aJSON[i]);
+                            break;
+                        }
+
+                        stack.Push(new JSONArray());
+                        if (ctx != null)
+                        {
+                            ctx.Add(TokenName, stack.Peek());
+                        }
+                        TokenName = "";
+                        Token.Length = 0;
+                        ctx = stack.Peek();
+                        break;
+
+                    case '}':
+                    case ']':
+                        if (QuoteMode)
+                        {
+
+                            Token.Append(aJSON[i]);
+                            break;
+                        }
+                        if (stack.Count == 0)
+                            throw new Exception("JSON Parse: Too many closing brackets");
+
+                        stack.Pop();
+                        if (Token.Length > 0 || TokenIsQuoted)
+                            ctx.Add(TokenName, ParseElement(Token.ToString(), TokenIsQuoted));
+                        TokenIsQuoted = false;
+                        TokenName = "";
+                        Token.Length = 0;
+                        if (stack.Count > 0)
+                            ctx = stack.Peek();
+                        break;
+
+                    case ':':
+                        if (QuoteMode)
+                        {
+                            Token.Append(aJSON[i]);
+                            break;
+                        }
+                        TokenName = Token.ToString();
+                        Token.Length = 0;
+                        TokenIsQuoted = false;
+                        break;
+
+                    case '"':
+                        QuoteMode ^= true;
+                        TokenIsQuoted |= QuoteMode;
+                        break;
+
+                    case ',':
+                        if (QuoteMode)
+                        {
+                            Token.Append(aJSON[i]);
+                            break;
+                        }
+                        if (Token.Length > 0 || TokenIsQuoted)
+                            ctx.Add(TokenName, ParseElement(Token.ToString(), TokenIsQuoted));
+                        TokenIsQuoted = false;
+                        TokenName = "";
+                        Token.Length = 0;
+                        TokenIsQuoted = false;
+                        break;
+
+                    case '\r':
+                    case '\n':
+                        break;
+
+                    case ' ':
+                    case '\t':
+                        if (QuoteMode)
+                            Token.Append(aJSON[i]);
+                        break;
+
+                    case '\\':
+                        ++i;
+                        if (QuoteMode)
+                        {
+                            char C = aJSON[i];
+                            switch (C)
+                            {
+                                case 't':
+                                    Token.Append('\t');
+                                    break;
+                                case 'r':
+                                    Token.Append('\r');
+                                    break;
+                                case 'n':
+                                    Token.Append('\n');
+                                    break;
+                                case 'b':
+                                    Token.Append('\b');
+                                    break;
+                                case 'f':
+                                    Token.Append('\f');
+                                    break;
+                                case 'u':
+                                    {
+                                        string s = aJSON.Substring(i + 1, 4);
+                                        Token.Append((char)int.Parse(
+                                            s,
+                                            System.Globalization.NumberStyles.AllowHexSpecifier));
+                                        i += 4;
+                                        break;
+                                    }
+                                default:
+                                    Token.Append(C);
+                                    break;
+                            }
+                        }
+                        break;
+                    case '/':
+                        if (allowLineComments && !QuoteMode && i + 1 < aJSON.Length && aJSON[i + 1] == '/')
+                        {
+                            while (++i < aJSON.Length && aJSON[i] != '\n' && aJSON[i] != '\r') ;
+                            break;
+                        }
+                        Token.Append(aJSON[i]);
+                        break;
+                    case '\uFEFF': // remove / ignore BOM (Byte Order Mark)
+                        break;
+
+                    default:
+                        Token.Append(aJSON[i]);
+                        break;
+                }
+                ++i;
+            }
+            if (QuoteMode)
+            {
+                throw new Exception("JSON Parse: Quotation marks seems to be messed up.");
+            }
+            if (ctx == null)
+                return ParseElement(Token.ToString(), TokenIsQuoted);
+            return ctx;
+        }
+
+    }
+    // End of JSONNode
+
+    public partial class JSONArray : JSONNode
+    {
+        private List<JSONNode> m_List = new List<JSONNode>();
+        private bool inline = false;
+        public override bool Inline
+        {
+            get { return inline; }
+            set { inline = value; }
+        }
+
+        public override JSONNodeType Tag { get { return JSONNodeType.Array; } }
+        public override bool IsArray { get { return true; } }
+        public override Enumerator GetEnumerator() { return new Enumerator(m_List.GetEnumerator()); }
+
+        public override JSONNode this[int aIndex]
+        {
+            get
+            {
+                if (aIndex < 0 || aIndex >= m_List.Count)
+                    return new JSONLazyCreator(this);
+                return m_List[aIndex];
+            }
+            set
+            {
+                if (value == null)
+                    value = JSONNull.CreateOrGet();
+                if (aIndex < 0 || aIndex >= m_List.Count)
+                    m_List.Add(value);
+                else
+                    m_List[aIndex] = value;
+            }
+        }
+
+        public override JSONNode this[string aKey]
+        {
+            get { return new JSONLazyCreator(this); }
+            set
+            {
+                if (value == null)
+                    value = JSONNull.CreateOrGet();
+                m_List.Add(value);
+            }
+        }
+
+        public override int Count
+        {
+            get { return m_List.Count; }
+        }
+
+        public override void Add(string aKey, JSONNode aItem)
+        {
+            if (aItem == null)
+                aItem = JSONNull.CreateOrGet();
+            m_List.Add(aItem);
+        }
+
+        public override JSONNode Remove(int aIndex)
+        {
+            if (aIndex < 0 || aIndex >= m_List.Count)
+                return null;
+            JSONNode tmp = m_List[aIndex];
+            m_List.RemoveAt(aIndex);
+            return tmp;
+        }
+
+        public override JSONNode Remove(JSONNode aNode)
+        {
+            m_List.Remove(aNode);
+            return aNode;
+        }
+
+        public override JSONNode Clone()
+        {
+            var node = new JSONArray();
+            node.m_List.Capacity = m_List.Capacity;
+            foreach(var n in m_List)
+            {
+                if (n != null)
+                    node.Add(n.Clone());
+                else
+                    node.Add(null);
+            }
+            return node;
+        }
+
+        public override IEnumerable<JSONNode> Children
+        {
+            get
+            {
+                foreach (JSONNode N in m_List)
+                    yield return N;
+            }
+        }
+
+
+        internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode)
+        {
+            aSB.Append('[');
+            int count = m_List.Count;
+            if (inline)
+                aMode = JSONTextMode.Compact;
+            for (int i = 0; i < count; i++)
+            {
+                if (i > 0)
+                    aSB.Append(',');
+                if (aMode == JSONTextMode.Indent)
+                    aSB.AppendLine();
+
+                if (aMode == JSONTextMode.Indent)
+                    aSB.Append(' ', aIndent + aIndentInc);
+                m_List[i].WriteToStringBuilder(aSB, aIndent + aIndentInc, aIndentInc, aMode);
+            }
+            if (aMode == JSONTextMode.Indent)
+                aSB.AppendLine().Append(' ', aIndent);
+            aSB.Append(']');
+        }
+    }
+    // End of JSONArray
+
+    public partial class JSONObject : JSONNode
+    {
+        private Dictionary<string, JSONNode> m_Dict = new Dictionary<string, JSONNode>();
+
+        private bool inline = false;
+        public override bool Inline
+        {
+            get { return inline; }
+            set { inline = value; }
+        }
+
+        public override JSONNodeType Tag { get { return JSONNodeType.Object; } }
+        public override bool IsObject { get { return true; } }
+
+        public override Enumerator GetEnumerator() { return new Enumerator(m_Dict.GetEnumerator()); }
+
+
+        public override JSONNode this[string aKey]
+        {
+            get
+            {
+                if (m_Dict.ContainsKey(aKey))
+                    return m_Dict[aKey];
+                else
+                    return new JSONLazyCreator(this, aKey);
+            }
+            set
+            {
+                if (value == null)
+                    value = JSONNull.CreateOrGet();
+                if (m_Dict.ContainsKey(aKey))
+                    m_Dict[aKey] = value;
+                else
+                    m_Dict.Add(aKey, value);
+            }
+        }
+
+        public override JSONNode this[int aIndex]
+        {
+            get
+            {
+                if (aIndex < 0 || aIndex >= m_Dict.Count)
+                    return null;
+                return m_Dict.ElementAt(aIndex).Value;
+            }
+            set
+            {
+                if (value == null)
+                    value = JSONNull.CreateOrGet();
+                if (aIndex < 0 || aIndex >= m_Dict.Count)
+                    return;
+                string key = m_Dict.ElementAt(aIndex).Key;
+                m_Dict[key] = value;
+            }
+        }
+
+        public override int Count
+        {
+            get { return m_Dict.Count; }
+        }
+
+        public override void Add(string aKey, JSONNode aItem)
+        {
+            if (aItem == null)
+                aItem = JSONNull.CreateOrGet();
+
+            if (aKey != null)
+            {
+                if (m_Dict.ContainsKey(aKey))
+                    m_Dict[aKey] = aItem;
+                else
+                    m_Dict.Add(aKey, aItem);
+            }
+            else
+                m_Dict.Add(Guid.NewGuid().ToString(), aItem);
+        }
+
+        public override JSONNode Remove(string aKey)
+        {
+            if (!m_Dict.ContainsKey(aKey))
+                return null;
+            JSONNode tmp = m_Dict[aKey];
+            m_Dict.Remove(aKey);
+            return tmp;
+        }
+
+        public override JSONNode Remove(int aIndex)
+        {
+            if (aIndex < 0 || aIndex >= m_Dict.Count)
+                return null;
+            var item = m_Dict.ElementAt(aIndex);
+            m_Dict.Remove(item.Key);
+            return item.Value;
+        }
+
+        public override JSONNode Remove(JSONNode aNode)
+        {
+            try
+            {
+                var item = m_Dict.Where(k => k.Value == aNode).First();
+                m_Dict.Remove(item.Key);
+                return aNode;
+            }
+            catch
+            {
+                return null;
+            }
+        }
+
+        public override JSONNode Clone()
+        {
+            var node = new JSONObject();
+            foreach (var n in m_Dict)
+            {
+                node.Add(n.Key, n.Value.Clone());
+            }
+            return node;
+        }
+
+        public override bool HasKey(string aKey)
+        {
+            return m_Dict.ContainsKey(aKey);
+        }
+
+        public override JSONNode GetValueOrDefault(string aKey, JSONNode aDefault)
+        {
+            JSONNode res;
+            if (m_Dict.TryGetValue(aKey, out res))
+                return res;
+            return aDefault;
+        }
+
+        public override IEnumerable<JSONNode> Children
+        {
+            get
+            {
+                foreach (KeyValuePair<string, JSONNode> N in m_Dict)
+                    yield return N.Value;
+            }
+        }
+
+        internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode)
+        {
+            aSB.Append('{');
+            bool first = true;
+            if (inline)
+                aMode = JSONTextMode.Compact;
+            foreach (var k in m_Dict)
+            {
+                if (!first)
+                    aSB.Append(',');
+                first = false;
+                if (aMode == JSONTextMode.Indent)
+                    aSB.AppendLine();
+                if (aMode == JSONTextMode.Indent)
+                    aSB.Append(' ', aIndent + aIndentInc);
+                aSB.Append('\"').Append(Escape(k.Key)).Append('\"');
+                if (aMode == JSONTextMode.Compact)
+                    aSB.Append(':');
+                else
+                    aSB.Append(" : ");
+                k.Value.WriteToStringBuilder(aSB, aIndent + aIndentInc, aIndentInc, aMode);
+            }
+            if (aMode == JSONTextMode.Indent)
+                aSB.AppendLine().Append(' ', aIndent);
+            aSB.Append('}');
+        }
+
+    }
+    // End of JSONObject
+
+    public partial class JSONString : JSONNode
+    {
+        private string m_Data;
+
+        public override JSONNodeType Tag { get { return JSONNodeType.String; } }
+        public override bool IsString { get { return true; } }
+
+        public override Enumerator GetEnumerator() { return new Enumerator(); }
+
+
+        public override string Value
+        {
+            get { return m_Data; }
+            set
+            {
+                m_Data = value;
+            }
+        }
+
+        public JSONString(string aData)
+        {
+            m_Data = aData;
+        }
+        public override JSONNode Clone()
+        {
+            return new JSONString(m_Data);
+        }
+
+        internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode)
+        {
+            aSB.Append('\"').Append(Escape(m_Data)).Append('\"');
+        }
+        public override bool Equals(object obj)
+        {
+            if (base.Equals(obj))
+                return true;
+            string s = obj as string;
+            if (s != null)
+                return m_Data == s;
+            JSONString s2 = obj as JSONString;
+            if (s2 != null)
+                return m_Data == s2.m_Data;
+            return false;
+        }
+        public override int GetHashCode()
+        {
+            return m_Data.GetHashCode();
+        }
+    }
+    // End of JSONString
+
+    public partial class JSONNumber : JSONNode
+    {
+        private double m_Data;
+
+        public override JSONNodeType Tag { get { return JSONNodeType.Number; } }
+        public override bool IsNumber { get { return true; } }
+        public override Enumerator GetEnumerator() { return new Enumerator(); }
+
+        public override string Value
+        {
+            get { return m_Data.ToString(CultureInfo.InvariantCulture); }
+            set
+            {
+                double v;
+                if (double.TryParse(value, NumberStyles.Float, CultureInfo.InvariantCulture, out v))
+                    m_Data = v;
+            }
+        }
+
+        public override double AsDouble
+        {
+            get { return m_Data; }
+            set { m_Data = value; }
+        }
+        public override long AsLong
+        {
+            get { return (long)m_Data; }
+            set { m_Data = value; }
+        }
+
+        public JSONNumber(double aData)
+        {
+            m_Data = aData;
+        }
+
+        public JSONNumber(string aData)
+        {
+            Value = aData;
+        }
+
+        public override JSONNode Clone()
+        {
+            return new JSONNumber(m_Data);
+        }
+
+        internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode)
+        {
+            aSB.Append(Value);
+        }
+        private static bool IsNumeric(object value)
+        {
+            return value is int || value is uint
+                || value is float || value is double
+                || value is decimal
+                || value is long || value is ulong
+                || value is short || value is ushort
+                || value is sbyte || value is byte;
+        }
+        public override bool Equals(object obj)
+        {
+            if (obj == null)
+                return false;
+            if (base.Equals(obj))
+                return true;
+            JSONNumber s2 = obj as JSONNumber;
+            if (s2 != null)
+                return m_Data == s2.m_Data;
+            if (IsNumeric(obj))
+                return Convert.ToDouble(obj) == m_Data;
+            return false;
+        }
+        public override int GetHashCode()
+        {
+            return m_Data.GetHashCode();
+        }
+    }
+    // End of JSONNumber
+
+    public partial class JSONBool : JSONNode
+    {
+        private bool m_Data;
+
+        public override JSONNodeType Tag { get { return JSONNodeType.Boolean; } }
+        public override bool IsBoolean { get { return true; } }
+        public override Enumerator GetEnumerator() { return new Enumerator(); }
+
+        public override string Value
+        {
+            get { return m_Data.ToString(); }
+            set
+            {
+                bool v;
+                if (bool.TryParse(value, out v))
+                    m_Data = v;
+            }
+        }
+        public override bool AsBool
+        {
+            get { return m_Data; }
+            set { m_Data = value; }
+        }
+
+        public JSONBool(bool aData)
+        {
+            m_Data = aData;
+        }
+
+        public JSONBool(string aData)
+        {
+            Value = aData;
+        }
+
+        public override JSONNode Clone()
+        {
+            return new JSONBool(m_Data);
+        }
+
+        internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode)
+        {
+            aSB.Append((m_Data) ? "true" : "false");
+        }
+        public override bool Equals(object obj)
+        {
+            if (obj == null)
+                return false;
+            if (obj is bool)
+                return m_Data == (bool)obj;
+            return false;
+        }
+        public override int GetHashCode()
+        {
+            return m_Data.GetHashCode();
+        }
+    }
+    // End of JSONBool
+
+    public partial class JSONNull : JSONNode
+    {
+        static JSONNull m_StaticInstance = new JSONNull();
+        public static bool reuseSameInstance = true;
+        public static JSONNull CreateOrGet()
+        {
+            if (reuseSameInstance)
+                return m_StaticInstance;
+            return new JSONNull();
+        }
+        private JSONNull() { }
+
+        public override JSONNodeType Tag { get { return JSONNodeType.NullValue; } }
+        public override bool IsNull { get { return true; } }
+        public override Enumerator GetEnumerator() { return new Enumerator(); }
+
+        public override string Value
+        {
+            get { return "null"; }
+            set { }
+        }
+        public override bool AsBool
+        {
+            get { return false; }
+            set { }
+        }
+
+        public override JSONNode Clone()
+        {
+            return CreateOrGet();
+        }
+
+        public override bool Equals(object obj)
+        {
+            if (object.ReferenceEquals(this, obj))
+                return true;
+            return (obj is JSONNull);
+        }
+        public override int GetHashCode()
+        {
+            return 0;
+        }
+
+        internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode)
+        {
+            aSB.Append("null");
+        }
+    }
+    // End of JSONNull
+
+    internal partial class JSONLazyCreator : JSONNode
+    {
+        private JSONNode m_Node = null;
+        private string m_Key = null;
+        public override JSONNodeType Tag { get { return JSONNodeType.None; } }
+        public override Enumerator GetEnumerator() { return new Enumerator(); }
+
+        public JSONLazyCreator(JSONNode aNode)
+        {
+            m_Node = aNode;
+            m_Key = null;
+        }
+
+        public JSONLazyCreator(JSONNode aNode, string aKey)
+        {
+            m_Node = aNode;
+            m_Key = aKey;
+        }
+
+        private T Set<T>(T aVal) where T : JSONNode
+        {
+            if (m_Key == null)
+                m_Node.Add(aVal);
+            else
+                m_Node.Add(m_Key, aVal);
+            m_Node = null; // Be GC friendly.
+            return aVal;
+        }
+
+        public override JSONNode this[int aIndex]
+        {
+            get { return new JSONLazyCreator(this); }
+            set { Set(new JSONArray()).Add(value); }
+        }
+
+        public override JSONNode this[string aKey]
+        {
+            get { return new JSONLazyCreator(this, aKey); }
+            set { Set(new JSONObject()).Add(aKey, value); }
+        }
+
+        public override void Add(JSONNode aItem)
+        {
+            Set(new JSONArray()).Add(aItem);
+        }
+
+        public override void Add(string aKey, JSONNode aItem)
+        {
+            Set(new JSONObject()).Add(aKey, aItem);
+        }
+
+        public static bool operator ==(JSONLazyCreator a, object b)
+        {
+            if (b == null)
+                return true;
+            return System.Object.ReferenceEquals(a, b);
+        }
+
+        public static bool operator !=(JSONLazyCreator a, object b)
+        {
+            return !(a == b);
+        }
+
+        public override bool Equals(object obj)
+        {
+            if (obj == null)
+                return true;
+            return System.Object.ReferenceEquals(this, obj);
+        }
+
+        public override int GetHashCode()
+        {
+            return 0;
+        }
+
+        public override int AsInt
+        {
+            get { Set(new JSONNumber(0)); return 0; }
+            set { Set(new JSONNumber(value)); }
+        }
+
+        public override float AsFloat
+        {
+            get { Set(new JSONNumber(0.0f)); return 0.0f; }
+            set { Set(new JSONNumber(value)); }
+        }
+
+        public override double AsDouble
+        {
+            get { Set(new JSONNumber(0.0)); return 0.0; }
+            set { Set(new JSONNumber(value)); }
+        }
+
+        public override long AsLong
+        {
+            get
+            {
+                if (longAsString)
+                    Set(new JSONString("0"));
+                else
+                    Set(new JSONNumber(0.0));
+                return 0L;
+            }
+            set
+            {
+                if (longAsString)
+                    Set(new JSONString(value.ToString()));
+                else
+                    Set(new JSONNumber(value));
+            }
+        }
+
+        public override bool AsBool
+        {
+            get { Set(new JSONBool(false)); return false; }
+            set { Set(new JSONBool(value)); }
+        }
+
+        public override JSONArray AsArray
+        {
+            get { return Set(new JSONArray()); }
+        }
+
+        public override JSONObject AsObject
+        {
+            get { return Set(new JSONObject()); }
+        }
+        internal override void WriteToStringBuilder(StringBuilder aSB, int aIndent, int aIndentInc, JSONTextMode aMode)
+        {
+            aSB.Append("null");
+        }
+    }
+    // End of JSONLazyCreator
+
+    public static class JSON
+    {
+        public static JSONNode Parse(string aJSON)
+        {
+            return JSONNode.Parse(aJSON);
+        }
+    }
+}
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/SimpleJSON.cs.meta b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/SimpleJSON.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..f76afaa60d8db36bc28ed58990e0863360d9699f
--- /dev/null
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/SimpleJSON.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: ff71202a08e96224a9a595f2b8f2f31f
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/TextScoreCtr.cs b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/TextScoreCtr.cs
new file mode 100644
index 0000000000000000000000000000000000000000..b5d484b01e9a17e05b187bd516ccbb89f3bb447e
--- /dev/null
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/TextScoreCtr.cs
@@ -0,0 +1,22 @@
+using System.Collections;
+using System.Collections.Generic;
+using UnityEngine;
+
+[System.Serializable]
+public class TextScoreCtr : MonoBehaviour
+{
+    public string username;
+    public int score;
+
+
+
+    /*
+    public static TextScoreCtr CreateFromJSON(string jsonString)
+    {
+        return JsonUtility.FromJson<TextScoreCtr>(jsonString);
+
+
+    }
+    */
+
+}
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/TextScoreCtr.cs.meta b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/TextScoreCtr.cs.meta
new file mode 100644
index 0000000000000000000000000000000000000000..fa48d9677a943d99862cd758806761fae2c75d1c
--- /dev/null
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Assets/TextScoreCtr.cs.meta
@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: 70f0a4130413ddf4ca138a5c907aafab
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/CurrentLayout.dwlt b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/CurrentLayout.dwlt
index 45e875a27573cf49548e53874abbfadd9d62f628..8213bb33c60b2a0424a741217bbe48506cbbf6a0 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/CurrentLayout.dwlt
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/CurrentLayout.dwlt
@@ -74,7 +74,7 @@ MonoBehaviour:
   m_MinSize: {x: 232, y: 498}
   m_MaxSize: {x: 10002, y: 14048}
   vertical: 1
-  controlID: 60
+  controlID: 121
 --- !u!114 &4
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -94,8 +94,8 @@ MonoBehaviour:
     y: 0
     width: 341
     height: 354
-  m_MinSize: {x: 202, y: 224}
-  m_MaxSize: {x: 4002, y: 4024}
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 21}
   m_Panes:
   - {fileID: 21}
@@ -201,7 +201,7 @@ MonoBehaviour:
   m_MinSize: {x: 817, y: 498}
   m_MaxSize: {x: 22012, y: 14048}
   vertical: 0
-  controlID: 59
+  controlID: 120
 --- !u!114 &9
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -244,10 +244,10 @@ MonoBehaviour:
     y: 0
     width: 504
     height: 635
-  m_MinSize: {x: 204, y: 448}
-  m_MaxSize: {x: 4004, y: 8048}
+  m_MinSize: {x: 204, y: 424}
+  m_MaxSize: {x: 4004, y: 8024}
   vertical: 1
-  controlID: 80
+  controlID: 101
 --- !u!114 &11
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -321,8 +321,8 @@ MonoBehaviour:
     y: 366
     width: 504
     height: 269
-  m_MinSize: {x: 204, y: 224}
-  m_MaxSize: {x: 4004, y: 4024}
+  m_MinSize: {x: 200, y: 200}
+  m_MaxSize: {x: 4000, y: 4000}
   m_ActualView: {fileID: 23}
   m_Panes:
   - {fileID: 23}
@@ -495,7 +495,7 @@ MonoBehaviour:
   m_PersistentViewDataDictionary: {fileID: 0}
   m_LockTracker:
     m_IsLocked: 0
-  m_LastSelectedObjectID: 17416
+  m_LastSelectedObjectID: 17828
 --- !u!114 &18
 MonoBehaviour:
   m_ObjectHideFlags: 52
@@ -619,7 +619,7 @@ MonoBehaviour:
       scrollPos: {x: 0, y: 0}
       m_SelectedIDs: 
       m_LastClickedID: 0
-      m_ExpandedIDs: 90f1ffff3efbffff60fbffffdefbffffe4430000fe430000
+      m_ExpandedIDs: 9ef4ffffb6f4ffffdef5ffffe6f5ffff02f6ffff06f6fffff6f7ffff18fbffff4afbffffdefbffff80450000
       m_RenameOverlay:
         m_UserAcceptedRename: 0
         m_Name: 
@@ -692,9 +692,9 @@ MonoBehaviour:
     m_IsLocked: 0
   m_FolderTreeState:
     scrollPos: {x: 0, y: 95}
-    m_SelectedIDs: 8e090000
-    m_LastClickedID: 2446
-    m_ExpandedIDs: 000000008e090000680b0000320c0000c20d0000040e0000fa0e00003e110000c2120000ae130000d4140000a61b0000da1b0000241e0000c8200000da2000000626000000ca9a3b
+    m_SelectedIDs: 94090000
+    m_LastClickedID: 2452
+    m_ExpandedIDs: 00000000940900006e0b0000380c0000c80d00000a0e0000000f000044110000c8120000b4130000da140000ac1b0000e01b00002a1e0000ce200000e02000000c26000000ca9a3b
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -722,7 +722,7 @@ MonoBehaviour:
     scrollPos: {x: 0, y: 0}
     m_SelectedIDs: 
     m_LastClickedID: 0
-    m_ExpandedIDs: 000000008e090000680b0000320c0000c20d0000040e0000fa0e00003e110000c2120000ae130000d4140000a61b0000da1b0000241e0000c8200000da20000006260000
+    m_ExpandedIDs: 00000000940900006e0b0000380c0000c80d00000a0e0000000f000044110000c8120000b4130000da140000ac1b0000e01b00002a1e0000ce200000e02000000c260000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
       m_Name: 
@@ -749,7 +749,7 @@ MonoBehaviour:
   m_ListAreaState:
     m_SelectedInstanceIDs: 
     m_LastClickedInstanceID: 0
-    m_HadKeyboardFocusLastEvent: 1
+    m_HadKeyboardFocusLastEvent: 0
     m_ExpandedInstanceIDs: f6280000e02800007c29000064290000362b0000962900000e2a0000322a00002a2a0000462a0000da2900006235000082650000626600001c45000018450000
     m_RenameOverlay:
       m_UserAcceptedRename: 0
@@ -766,7 +766,7 @@ MonoBehaviour:
       m_IsRenaming: 0
       m_OriginalEventType: 11
       m_IsRenamingFilename: 1
-      m_ClientGUIView: {fileID: 2}
+      m_ClientGUIView: {fileID: 5}
     m_CreateAssetUtility:
       m_EndAction: {fileID: 0}
       m_InstanceID: 0
@@ -774,7 +774,7 @@ MonoBehaviour:
       m_Icon: {fileID: 0}
       m_ResourceFile: 
     m_NewAssetIndexInList: -1
-    m_ScrollPosition: {x: 0, y: 163}
+    m_ScrollPosition: {x: 0, y: 0}
     m_GridSize: 32
   m_DirectoriesAreaWidth: 110
 --- !u!114 &23
@@ -888,9 +888,9 @@ MonoBehaviour:
   m_isRotationLocked: 0
   m_AudioPlay: 0
   m_Position:
-    m_Target: {x: 0.02705051, y: -0.270505, z: 90}
+    m_Target: {x: 0.13276248, y: -0.5145027, z: 194.88116}
     speed: 2
-    m_Value: {x: 0.02705051, y: -0.270505, z: 90}
+    m_Value: {x: 0.13276248, y: -0.5145027, z: 194.88116}
   m_RenderMode: 0
   m_CameraMode:
     drawMode: 0
@@ -922,9 +922,9 @@ MonoBehaviour:
     speed: 2
     m_Value: {x: 0, y: 0, z: 0, w: 1}
   m_Size:
-    m_Target: 1.8310844
+    m_Target: 4.09548
     speed: 2
-    m_Value: 1.8310844
+    m_Value: 4.09548
   m_Ortho:
     m_Target: 1
     speed: 2
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/EditorUserBuildSettings.asset b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/EditorUserBuildSettings.asset
index ff9d0a5d20091c42ebda79cbcad1d08a98af3730..c3fa799110d3f07dba4f93d4d5193532b2368158 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/EditorUserBuildSettings.asset and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/EditorUserBuildSettings.asset differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/LastBuild.buildreport b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/LastBuild.buildreport
index 9ca7b8c0be2fd47a06bec47d52c584a4566c6eda..f7781469df93c1867b94315fdc26cb02366d5174 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/LastBuild.buildreport and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/LastBuild.buildreport differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Assembly-CSharp.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Assembly-CSharp.dll
index caa5d283180bbf76d3c81881048844659604144a..e50b910aaa325c107f3264b5670e162268cd5fab 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Assembly-CSharp.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Assembly-CSharp.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Unity.Analytics.DataPrivacy.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Unity.Analytics.DataPrivacy.dll
index a9bd7486fe11d08e2f62ba1d6f06327358e64699..2a76d7bc81967f3f164aa327cee72a8afff44640 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Unity.Analytics.DataPrivacy.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Unity.Analytics.DataPrivacy.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Unity.TextMeshPro.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Unity.TextMeshPro.dll
index a0ba02f62fe447dfe46fc6761de584c99d0653f3..e3d79658d1d8b45b38991c0a4811d702e99c906a 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Unity.TextMeshPro.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/Managed/Unity.TextMeshPro.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/globalgamemanagers b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/globalgamemanagers
index 771c96c29ee93b080edfc650bee6864f9fc8f9c3..912e5dc8f347a505a77d4f04335131b3c15b78d1 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/globalgamemanagers and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/globalgamemanagers differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/globalgamemanagers.assets b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/globalgamemanagers.assets
index 1450be8f973a19e08983ea2bdf50cf3653999392..7c5131aa86689b28bded9987314a45900c22499e 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/globalgamemanagers.assets and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/globalgamemanagers.assets differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level0 b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level0
index 721b8a0bd187276903d6b57072fe18dcf4f42c28..714005b49d769c13c22a50ec178fbc87e21fde13 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level0 and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level0 differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level1 b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level1
index 9f9dcd47f460a406ec689dcb53b532160516f884..f34adc13f21c8540b1afdf55fd22bfc5bc7d6923 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level1 and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level1 differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level2 b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level2
index 63c4198b8e7446a5c23073749572a23155d21762..086536cdc0fd2ec9eb136cb7ac469ba19729b96d 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level2 and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level2 differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level3 b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level3
new file mode 100644
index 0000000000000000000000000000000000000000..8114a7b939174997836a32f772f81c61d3655e9e
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/level3 differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/resources.assets b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/resources.assets
index c9e7d50f741d46dcf5fd1142b8892cd41837d4a5..067176e3a3c66e5cccee2a8e79a077c76871d66f 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/resources.assets and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/resources.assets differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/resources.assets.resS b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/resources.assets.resS
new file mode 100644
index 0000000000000000000000000000000000000000..c64fb0b2a0bac816546534ec969bf46aef57ff02
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/resources.assets.resS differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets0.assets b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets0.assets
index d91631e9b87834b3931a7d735ab0a6d76d413592..dee52a9ad8681f6f8289f3fd7b87349a8f7494c3 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets0.assets and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets0.assets differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets0.assets.resS b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets0.assets.resS
index 53c3e3a5f8a346318c7c03be8e67981633ddfb17..9de823ec1c52b1a6db6090562bb1f3731a961b48 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets0.assets.resS and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets0.assets.resS differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets1.assets b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets1.assets
index 6cdf7f8bccec71bef178da0e95f6f1689f0f4f9f..85b68c5cd50ab100e9b8cd8b6fc45e1e0e0c3cc7 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets1.assets and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets1.assets differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets1.assets.resS b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets1.assets.resS
index 49db7ac1295ea2f2fec7719beab1e68b62099b24..a7a28b7f123081c4d1e50fcf8d81b57a0cec538c 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets1.assets.resS and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets1.assets.resS differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets2.assets b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets2.assets
index 7ec91163c6ba04731c9c1c0a0dc176f2ff71abb2..2fffebce5f33c5f4572ec67f9d1eec16a8bd7733 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets2.assets and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets2.assets differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets2.assets.resS b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets2.assets.resS
index 5c0124e7502cfb32514dc12a334a6e28a56c40ab..c7a0a3b10eba1fd36ac16592ac08779124a98ee1 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets2.assets.resS and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets2.assets.resS differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets3.assets b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets3.assets
new file mode 100644
index 0000000000000000000000000000000000000000..a8c0b80dd541e6100af526eac5beb2c4e688b5e2
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/Data/sharedassets3.assets differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/ScriptLayoutHashes.txt b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/ScriptLayoutHashes.txt
index fee718bb086f876616466d7d561336cacc7a9856..364907fe3cd9066a2c469fa6b877a4524b13d6d9 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/ScriptLayoutHashes.txt
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/PlayerDataCache/Win64/ScriptLayoutHashes.txt
@@ -1,10 +1,11 @@
 Win64
 PlayerPath?
-E:/Tubes2_PBD/Executable/5/Tugas2_PBD_MRizkiFonna_13516001_rev.exe
+E:/Tubes2_PBD/Executable/7/Tugas2_PBD_MRizkiFonna_13516001_rev.exe
 SceneListBegin?
-Assets/Scenes/Main.unity
 Assets/Scenes/MainMenu.unity
+Assets/Scenes/Main.unity
 Assets/Scenes/GameOver.unity
+Assets/Scenes/ScoreBoard.unity
 SceneListEnd?
 3c08375166df118bd1801438fc36b92f Unity.TextMeshPro.dll:TMPro.TMP_SelectionCaret
 77c21079ace8d76ce6e941d3dabbfe6e Unity.TextMeshPro.dll:TMPro.TMP_Dropdown
@@ -89,6 +90,7 @@ aa165095bcf0f4d99594ea33df01c81b UnityEngine.UI.dll:UnityEngine.UI.Slider
 0fd6822f6177297bd0eb4d83cc7a9030 UnityEngine.UI.dll:UnityEngine.UI.ToggleGroup
 abf1930d8126d0b2e00e9449129a0190 UnityEngine.UI.dll:UnityEngine.EventSystems.TouchInputModule
 64e54c0cbb0177c5ea26f340efb9ff85 UnityEngine.UI.dll:UnityEngine.UI.VerticalLayoutGroup
+1e2595e8e892880aa0f31ce12d699b1d Assembly-CSharp.dll:.TextScoreCtr
 71bb6a6b6c8f052f948db64c7dd3ca4f Assembly-CSharp.dll:.SoundManagerCtr
 71bb6a6b6c8f052f948db64c7dd3ca4f UnityEngine.Timeline.dll:UnityEngine.Timeline.ActivationPlayableAsset
 06f0fef534ca4c1d6064fd77a26bf722 UnityEngine.Timeline.dll:UnityEngine.Timeline.ActivationTrack
@@ -139,6 +141,7 @@ e0ee4b3d4e27318934cc940a969d3d96 UnityEngine.Networking.dll:UnityEngine.Networki
 ad9173d3a69d99153f38ed4b62226129 UnityEngine.Networking.dll:UnityEngine.Networking.NetworkTransform
 9b895dcabbc1faf095c000c32d471fd0 UnityEngine.Networking.dll:UnityEngine.Networking.NetworkTransformChild
 5887ef1bc706b22b773d253fd443ceef UnityEngine.Networking.dll:UnityEngine.Networking.NetworkTransformVisualizer
+c4165c2ab538b9cd365477db450066f9 Assembly-CSharp.dll:.ScoreDataBase
 35a9693c388776aaf487636491a20f11 Unity.TextMeshPro.dll:TMPro.TMP_FontAsset
 e1300922cc039f41ab46a47f4cb05898 Unity.TextMeshPro.dll:TMPro.TMP_Settings
 83e769eee07fc231384c812eedbb8224 Assembly-CSharp.dll:.CameraCtr
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Assembly-CSharp.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Assembly-CSharp.dll
index 7f55fa96702faa5b04e5a600be326c7ca85ac352..11c20bcce80f05fae8d80097f89d9bb6d8e02cae 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Assembly-CSharp.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Assembly-CSharp.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Assembly-CSharp.pdb b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Assembly-CSharp.pdb
index f63c5dc02721972233b3314f11f23b476cb7df38..b05052de4b0063078af86f08bd09823838a4b65d 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Assembly-CSharp.pdb and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Assembly-CSharp.pdb differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.Analytics.DataPrivacy.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.Analytics.DataPrivacy.dll
index 6431bd183f25cdfc92adcd672f27f24c58620639..f7107352958216c5ed6745badf9209b97d6d95fb 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.Analytics.DataPrivacy.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.Analytics.DataPrivacy.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.CollabProxy.Editor.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.CollabProxy.Editor.dll
index da37b298e8db4039b83a36c5434b24bd9defd5e9..4ba83d8d53204a884ddf55d513094026509982e9 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.CollabProxy.Editor.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.CollabProxy.Editor.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll
index 61632e87b77e2b508a0979ecdbf102e7d427dea6..1689d2aeae196d224d042316bab7b1071c5c1848 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.PackageManagerUI.Editor.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll
index 6f405924f7082ee217c9b75429d108d39d806cd2..3f033183bcf6817a41d2c7fe500577573a3059e5 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.TextMeshPro.Editor.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.TextMeshPro.dll b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.TextMeshPro.dll
index 547691cbf23c1589303ad2f9540f63a6b3ca6b3f..674dcc89c8ab988a3d1442b83040350404f447f0 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.TextMeshPro.dll and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/ScriptAssemblies/Unity.TextMeshPro.dll differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/StateCache/SceneView/7a5f7d-mainStage.json b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/StateCache/SceneView/7a5f7d-mainStage.json
index 2f51bd4688c00bf815450bac05841cbcb513e614..7ff30304bb1de7d1cce5114041e92be48d119709 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/StateCache/SceneView/7a5f7d-mainStage.json
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/StateCache/SceneView/7a5f7d-mainStage.json
@@ -1 +1 @@
-{"cameraMode":{"drawMode":0,"name":"Shaded","section":"Shading Mode"},"sceneLighting":true,"audioPlay":false,"sceneViewState":{"showFog":true,"showMaterialUpdate":false,"showSkybox":true,"showFlares":true,"showImageEffects":true,"showParticleSystems":true},"in2DMode":true,"pivot":{"x":0.027050510048866273,"y":-0.27050501108169558,"z":90.0},"rotation":{"x":0.0,"y":0.0,"z":0.0,"w":1.0},"size":1.8310843706130982,"orthographic":true}
\ No newline at end of file
+{"cameraMode":{"drawMode":0,"name":"Shaded","section":"Shading Mode"},"sceneLighting":true,"audioPlay":false,"sceneViewState":{"showFog":true,"showMaterialUpdate":false,"showSkybox":true,"showFlares":true,"showImageEffects":true,"showParticleSystems":true},"in2DMode":true,"pivot":{"x":0.13276247680187226,"y":-0.5145027041435242,"z":194.88116455078126},"rotation":{"x":0.0,"y":0.0,"z":0.0,"w":1.0},"size":4.095479965209961,"orthographic":true}
\ No newline at end of file
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/assetDatabase3 b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/assetDatabase3
index 9b4de467fef40af862672f6309b3e253a7fb40a7..cea1431372ecaa301edde6e41e4bab3e6aa4cc84 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/assetDatabase3 and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/assetDatabase3 differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/70/70f0a4130413ddf4ca138a5c907aafab b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/70/70f0a4130413ddf4ca138a5c907aafab
new file mode 100644
index 0000000000000000000000000000000000000000..14367d0ec6866c5db0893e99873046854ddb316f
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/70/70f0a4130413ddf4ca138a5c907aafab differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/70/70f0a4130413ddf4ca138a5c907aafab.info b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/70/70f0a4130413ddf4ca138a5c907aafab.info
new file mode 100644
index 0000000000000000000000000000000000000000..2a1860d67679b0627fbaa9e40987ee91a88e26ae
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/70/70f0a4130413ddf4ca138a5c907aafab.info differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/b0/b03a81a1854c3884991945b40a5ca0ab b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/b0/b03a81a1854c3884991945b40a5ca0ab
index ab466e26fcec200556ec014fcc8f82cf4755e425..52fd63359b8b8638157e86b511985b9e1eb73271 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/b0/b03a81a1854c3884991945b40a5ca0ab and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/b0/b03a81a1854c3884991945b40a5ca0ab differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/bf/bf66bf89648b06940bfba3995feac835 b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/bf/bf66bf89648b06940bfba3995feac835
new file mode 100644
index 0000000000000000000000000000000000000000..85d2c9ea1faad2945bfecf2e4ddb1b178a208ae8
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/bf/bf66bf89648b06940bfba3995feac835 differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/bf/bf66bf89648b06940bfba3995feac835.info b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/bf/bf66bf89648b06940bfba3995feac835.info
new file mode 100644
index 0000000000000000000000000000000000000000..4fe63287e06e84bccab238c80e2071c2563c75bd
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/bf/bf66bf89648b06940bfba3995feac835.info differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/ff/ff71202a08e96224a9a595f2b8f2f31f b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/ff/ff71202a08e96224a9a595f2b8f2f31f
new file mode 100644
index 0000000000000000000000000000000000000000..62cd5bc6880c1ad052ff4504ed6c2229589cf5e5
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/ff/ff71202a08e96224a9a595f2b8f2f31f differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/ff/ff71202a08e96224a9a595f2b8f2f31f.info b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/ff/ff71202a08e96224a9a595f2b8f2f31f.info
new file mode 100644
index 0000000000000000000000000000000000000000..e4460b6a559d03fd82c2e4a9ae22126cb07b7476
Binary files /dev/null and b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/metadata/ff/ff71202a08e96224a9a595f2b8f2f31f.info differ
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe0.log b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe0.log
index 196930d4876cde47d8977ac8298d9249a33cf164..e12e373ce9fa75673ed7f397a8abc2cea0b7f83b 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe0.log
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe0.log
@@ -4,12 +4,3 @@ Cmd: initializeCompiler
 Cmd: initializeCompiler
 Cmd: initializeCompiler
 Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe1.log b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe1.log
index 1e137ab04bf60a3343b2f8bdb2f864cfc233b72b..9436f3a293b8b6c2b1ad56f3be8b139e884ba9d5 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe1.log
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe1.log
@@ -1,5 +1,2 @@
 Base path: C:/Program Files/Unity/Hub/Editor/2018.4.19f1/Editor/Data
 Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe2.log b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe2.log
index 1e137ab04bf60a3343b2f8bdb2f864cfc233b72b..9436f3a293b8b6c2b1ad56f3be8b139e884ba9d5 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe2.log
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe2.log
@@ -1,5 +1,2 @@
 Base path: C:/Program Files/Unity/Hub/Editor/2018.4.19f1/Editor/Data
 Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe3.log b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe3.log
index 1e137ab04bf60a3343b2f8bdb2f864cfc233b72b..9436f3a293b8b6c2b1ad56f3be8b139e884ba9d5 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe3.log
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/Library/shadercompiler-UnityShaderCompiler.exe3.log
@@ -1,5 +1,2 @@
 Base path: C:/Program Files/Unity/Hub/Editor/2018.4.19f1/Editor/Data
 Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
-Cmd: initializeCompiler
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/ProjectSettings/EditorBuildSettings.asset b/Tugas2_PBD_MRizkiFonna_13516001_rev/ProjectSettings/EditorBuildSettings.asset
index dc21c33ea39f35570eeaf799a9fdb9edb989da30..dbffc917c7d94048d644ab614c7f43b8cfa0bc04 100644
--- a/Tugas2_PBD_MRizkiFonna_13516001_rev/ProjectSettings/EditorBuildSettings.asset
+++ b/Tugas2_PBD_MRizkiFonna_13516001_rev/ProjectSettings/EditorBuildSettings.asset
@@ -5,13 +5,16 @@ EditorBuildSettings:
   m_ObjectHideFlags: 0
   serializedVersion: 2
   m_Scenes:
-  - enabled: 1
-    path: Assets/Scenes/Main.unity
-    guid: de767d0f4ccfb54439c4d40186fe5ee6
   - enabled: 1
     path: Assets/Scenes/MainMenu.unity
     guid: a11fd5dcef9761c46b438ba164553552
+  - enabled: 1
+    path: Assets/Scenes/Main.unity
+    guid: de767d0f4ccfb54439c4d40186fe5ee6
   - enabled: 1
     path: Assets/Scenes/GameOver.unity
     guid: bd50a2108310d57439b98b9d0a0ffbca
+  - enabled: 1
+    path: Assets/Scenes/ScoreBoard.unity
+    guid: 23aa5e1708a7d12479c492ea696282fe
   m_configObjects: {}
diff --git a/Tugas2_PBD_MRizkiFonna_13516001_rev/obj/Debug/Assembly-CSharp.csprojAssemblyReference.cache b/Tugas2_PBD_MRizkiFonna_13516001_rev/obj/Debug/Assembly-CSharp.csprojAssemblyReference.cache
index 3b25f4a7621517b2b4dfa12d2a405e24aad2eb53..d86ea6bfbe89bc3a3f09c072cd85f38c6acb041d 100644
Binary files a/Tugas2_PBD_MRizkiFonna_13516001_rev/obj/Debug/Assembly-CSharp.csprojAssemblyReference.cache and b/Tugas2_PBD_MRizkiFonna_13516001_rev/obj/Debug/Assembly-CSharp.csprojAssemblyReference.cache differ