public static void ForceUpdate()
        {
            Players.Clear();
            AllPlayerEntities.Clear();
            PlayerHands.Clear();
            bool search = false;

            if (PlayerHands.ContainsValue(null) || PlayerHands.Count != Scene.SceneTracker.allPlayers.Count || PlayerHands.Count == 0)
            {
                PlayerHands.Clear();
                search = true;
            }

            for (int i = 0; i < Scene.SceneTracker.allPlayers.Count; i++)
            {
                Players.Add(Scene.SceneTracker.allPlayers[i]);
                if (!ModSettings.IsDedicated)
                {
                    if (Scene.SceneTracker.allPlayers[i].transform.root == LocalPlayer.Transform.root)
                    {
                        ThisPlayerID = i;
                    }
                }
                BoltEntity b = Scene.SceneTracker.allPlayers[i].GetComponent <BoltEntity>();
                if (b != null)
                {
                    AllPlayerEntities.Add(b);
                    try
                    {
                        if (UnityEngine.Input.GetKey(KeyCode.F8))
                        {
                            Debug.LogWarning("PLAYER " + b.transform.root.name);

                            ModAPI.Log.Write("PLAYER " + "\n\n" + ModReferences.ListAllChildren(b.transform.root, ""));
                        }
                    }
                    catch (Exception exc)
                    {
                        Debug.LogWarning(exc.ToString());
                    }
                    if (search)
                    {
                        Transform hand = FindHandRetardedWay(b.transform.root);
                        if (hand != null)
                        {
                            PlayerHands.Add(b.networkId.PackedValue, hand);
                            Debug.Log("FOUND HAND TRANSFORM for player " + b.networkId.PackedValue);
                        }
                        else
                        {
                            Debug.LogWarning("Couldnt find hand for player " + b.networkId.PackedValue);
                        }
                    }
                }
            }
            if (!ModSettings.IsDedicated)
            {
                ThisPlayerPacked = LocalPlayer.Entity.networkId.PackedValue;
            }
        }
        /// <summary>
        /// Updates the player setups and changes the static variable accordingly
        /// </summary>
        private IEnumerator UpdateSetups()
        {
            while (true)
            {
                yield return(null);

                Players.Clear();
                AllPlayerEntities.Clear();
                PlayerHands.Clear();

                if (!ModSettings.IsDedicated)
                {
                    ThisPlayerPacked = LocalPlayer.Entity.networkId.PackedValue;
                    if (ThisPlayerPacked == 0)
                    {
                        ThisPlayerPacked = LocalPlayer.GameObject.GetComponent <BoltEntity>().networkId.PackedValue;
                    }
                    if (ThisPlayerPacked == 0)
                    {
                        ModAPI.Console.Write("Still 0");
                    }
                }

                bool search = false;

                if (PlayerHands.ContainsValue(null) || PlayerHands.Count != Scene.SceneTracker.allPlayers.Count || PlayerHands.Count == 0)
                {
                    PlayerHands.Clear();
                    search = true;
                }

                for (int i = 0; i < Scene.SceneTracker.allPlayers.Count; i++)
                {
                    Players.Add(Scene.SceneTracker.allPlayers[i]);
                    if (!ModSettings.IsDedicated)
                    {
                        if (Scene.SceneTracker.allPlayers[i].transform.root == LocalPlayer.Transform.root)
                        {
                            ThisPlayerID = i;
                        }
                    }
                    BoltEntity b = Scene.SceneTracker.allPlayers[i].GetComponent <BoltEntity>();
                    if (b != null)
                    {
                        AllPlayerEntities.Add(b);
                        try
                        {
                            if (UnityEngine.Input.GetKey(KeyCode.F8))
                            {
                                ModAPI.Console.Write("PLAYER " + b.transform.root.name);
                                ModAPI.Log.Write("PLAYER " + "\n\n" + ModReferences.ListAllChildren(b.transform.root, ""));
                            }
                        }
                        catch (Exception exc)
                        {
                            ModAPI.Console.Write(exc.ToString());
                        }
                        if (search)
                        {
                            Transform hand = FindDeepChild(b.transform, "rightHandHeld");
                            if (hand != null)
                            {
                                PlayerHands.Add(b.networkId.PackedValue, hand);
                                Debug.Log("FOUND HAND TRANSFORM for player " + b.networkId.PackedValue);
                            }
                            else
                            {
                                Debug.LogWarning("Couldnt find hand for player " + b.networkId.PackedValue);
                            }
                        }
                    }
                }



                yield return(new WaitForSeconds(10));
            }
        }