public bool SetVariable(string key, bool value, bool overwrite = true)
 {
     if (VarsTypeCache.ContainsKey(key))
     {
         if (!overwrite)
         {
             return(false);
         }
         else
         {
             VarsTypeCache[key] = VariableType.Bool;
             VarsBool[key]      = value;
             return(true);
         }
     }
     else
     {
         VarsTypeCache.Add(key, VariableType.Bool);
         VarsBool.Add(key, value);
         return(true);
     }
 }
        public bool RemoveVariable(string key)
        {
            if (IfVariableExist(key))
            {
                switch (VarsTypeCache[key])
                {
                case VariableType.Float:
                    VarsFloat.Remove(key);
                    break;

                case VariableType.String:
                    VarsString.Remove(key);
                    break;

                case VariableType.Bool:
                    VarsBool.Remove(key);
                    break;

                case VariableType.FloatArray:
                    VarsFloatArray.Remove(key);
                    break;

                case VariableType.StringArray:
                    VarsStringArray.Remove(key);
                    break;

                case VariableType.BoolArray:
                    VarsBoolArray.Remove(key);
                    break;
                }
                VarsTypeCache.Remove(key);
                return(true);
            }
            else
            {
                return(false);
            }
        }