public static IEnumerator GpsRun()
        {
            ++OpenCoRoutes;

            yield return(new WaitForSecondsRealtime(1));

            if (OpenCoRoutes-- > 1)
            {
                yield break;
            }

#if (DEBUG)
            Debug.Log("Attempting to remove null objects!");
#endif
            Objects = Objects
                      .Where(p => p != null)
                      .ToList();

#if (DEBUG)
            Debug.Log($"Collecting materials and pushing them to the material editor: {Objects.Count}");
#endif

            var renders = Objects
                          .Where(o => o != null)
                          .Select(o => o.transform)
                          .Where(t => t != null)
                          .Select(t => t.GetComponentsInChildren <Transform>(true))
                          .Where(ts => ts != null)
                          .SelectMany(ts => ts)
                          .Select(t => t.GetComponent <Renderer>())
                          .Where(r => r != null)
                          .ToList();

            renders.ForEach(r => Init.instance.StartCoroutine(ModShadows.Run(r, Init.Props)));

            var materials =
                renders
                .Where(r => r.materials != null)
                .SelectMany(r => r.materials)
                .ToList();

#if (DEBUG)
            Debug.Log($"Gathered this many materials: {materials.Count}");
#endif

            materials.ForEach(m => Init.instance.StartCoroutine(ModMat.Run(m, Init.Props)));

#if (DEBUG)
            Debug.Log("Done!");
#endif
        }
        public static IEnumerator BgRun()
        {
            ++OpenCoRoutes;

            yield return(new WaitForSecondsRealtime(1));

            if (OpenCoRoutes-- > 1)
            {
                yield break;
            }

#if (DEBUG)
            Debug.Log($"Collecting materials and pushing them to the material editor");
#endif

            var renders = Background
                          .transform
                          .GetComponentsInChildren <Transform>(true)
                          .Select(t => t)
                          .Where(ts => ts != null)
                          .Select(t => t.GetComponent <Renderer>())
                          .Where(r => r != null)
                          .ToList();

#if (DEBUG)
            Debug.Log($"Collected Renderers");
#endif

            renders.ForEach(r => Init.instance.StartCoroutine(ModShadows.Run(r, Init.Bg)));

#if (DEBUG)
            Debug.Log($"Manipulated Shadows");
#endif

            var materials =
                renders
                .Where(r => r.materials != null)
                .SelectMany(r => r.materials)
                .ToList();

#if (DEBUG)
            Debug.Log($"Gathered this many materials: {materials.Count}");
#endif

            materials.ForEach(m => Init.instance.StartCoroutine(ModMat.Run(m, Init.Bg)));

#if (DEBUG)
            Debug.Log("Done!");
#endif
        }