public override uint ExtraPlayerBuffSlots => 27;                        // Extra buff slots that the player can use (22 + ExtraPlayerBuffSlots = Player.MaxBuffs)

        // Called when the mod is loaded
        public override void Load()
        {
            base.Load();

            _mod = this;
            // Instantiate server instance (but don't start it)
            _server = new CCServer();

            // Load shader(s)
            if (!Main.dedServ)
            {
                try
                {
                    Ref <Effect> flipVerticalRef = new Ref <Effect>(GetEffect("Effects/SH_FlipVertical"));
                    Filters.Scene["FlipVertical"] = new Filter(new ScreenShaderData(flipVerticalRef, "FilterMyShader"), EffectPriority.High);

                    Ref <Effect> sineRef = new Ref <Effect>(GetEffect("Effects/SH_Sine"));
                    Filters.Scene["Sine"] = new Filter(new ScreenShaderData(sineRef, "CreateSine"), EffectPriority.VeryHigh);
                    Filters.Scene["Sine"].Load();

                    Ref <Effect> glitchRef = new Ref <Effect>(GetEffect("Effects/SH_Glitch"));
                    Filters.Scene["Glitch"] = new Filter(new ScreenShaderData(glitchRef, "CreateGlitch"), EffectPriority.VeryHigh);
                    Filters.Scene["Glitch"].Load();
                }
                catch { };
            }

            Main.OnPostDraw += OnPostDraw;
        }
        // Called when the mod is unloaded (null-ify references and static references)
        public override void Unload()
        {
            base.Unload();

            // Stop the server when the mod is unloaded
            _server?.Stop();

            _server           = null;
            _mod              = null;
            m_wormHoleOldItem = null;

            Main.OnPostDraw -= OnPostDraw;
        }