internal static void PatchSceneDecals()
        {
            GameObject[] rObjs = RCUtils.GetRootObjects().ToArray();

            foreach (GameObject rootObj in rObjs)
            {
                MeshRenderer   childRenderer = rootObj.GetComponent <MeshRenderer>();
                MeshRenderer[] allRenderers  = rootObj.GetComponentsInChildren <MeshRenderer>();
                allRenderers.Add(childRenderer);

                foreach (MeshRenderer renderer in allRenderers)
                {
                    if (renderer.gameObject.name.ToLower().Contains("decal-"))
                    {
                        renderer.receiveShadows = true;
                        qd_Decal decal = renderer.GetComponent <qd_Decal>();
                        if (decal != null && (decal.texture.name.StartsWith("FX_DebrisPaper") || decal.texture.name.StartsWith("FX_DebrisMail") || decal.texture.name.StartsWith("FX_DebriPaper")))
                        {
                            BreakDownDefinition bdDef = new BreakDownDefinition
                            {
                                filter           = "Paper",
                                minutesToHarvest = 1f,
                                sound            = "Paper"
                            };

                            PrepareGameObject(renderer.gameObject, bdDef);
                        }

                        continue;
                    }
                }
            }

            //BreakDown.DeserializeAllAdditive(sceneBreakDownData);
        }
        //Item preparation - searches every object that appears on the config file
        internal static void PatchSceneObjects()
        {
            if (objList == null)
            {
                return;
            }

            //Get list of all root objects
            List <GameObject> rObjs = RCUtils.GetRootObjects();

            //Results container
            List <GameObject> result = new List <GameObject>();

            //Clear object list
            itemList.Clear();

            int setupObjects = 0;

            //Iterate over obj config list
            foreach (BreakDownDefinition obj in objList)
            {
                if (obj.filter.Trim() == "" || obj.filter == null)
                {
                    continue;
                }

                foreach (GameObject rootObj in rObjs)
                {
                    RCUtils.GetChildrenWithName(rootObj, "OBJ_" + obj.filter, result);

                    if (result.Count > 0)
                    {
                        foreach (GameObject child in result)
                        {
                            if (child != null && !child.name.Contains("xpzclutter") && child.GetComponent("RepairableContainer") == null)
                            {
                                child.name += "_xpzclutter";

                                PrepareGameObject(child, obj);

                                setupObjects++;

                                if (verbose)
                                {
                                    Debug.Log("[remove-clutter] Added: " + child.name);
                                }
                            }
                        }
                    }
                }
            }



            Debug.Log("[remove-clutter] " + setupObjects + " objects setup for removal.");

            //BreakDown.DeserializeAllAdditive(sceneBreakDownData);
        }