{
  // Adds visible things that show you have been using BitMono
  // Set to true indicates whether enabled
  "Watermark": true,

  // Clear the CLI on obfuscation start or not
  // Set to true indicates whether enabled
  "ClearCLI": false,

  // Don't ask the Output directory, and take the references folder as folder where specified file for obfuscation is located.
  // In simple words, the BitMono will use File Base Directory for output/references, etc
  // Set to true indicates whether enabled
  "ForceObfuscation": false,

  // Protection preset/level: "Custom" (default; use the protections list in protections.json
  // as-is), "Minimal", "Balanced", or "Maximum". When not "Custom" the preset decides which
  // protections run and protections.json is ignored. Chosen by you, never auto-detected.
  // The CLI --preset flag overrides this value.
  "Preset": "Custom",

  // Build the assembly for a Unity IL2CPP game. When true, protections that aren't IL2CPP-compatible
  // (native code, calli, PE packers, etc.) are skipped so they don't break the il2cpp.exe C++ build;
  // the IL2CPP-safe ones (renaming, string encryption, ...) still run and obfuscate global-metadata.dat.
  // The BitMono Unity integration sets this automatically when the scripting backend is IL2CPP; the CLI
  // --il2cpp flag also turns it on.
  "IL2CPP": false,

  // Name of the references directory
  "ReferencesDirectoryName": "libs",

  // Name of the output directory
  "OutputDirectoryName": "output",

  // Directory scanned for drop-in plugins (custom protections). Drop a plugin DLL here (or in a
  // subfolder with its dependencies) and BitMono loads it on start. Relative paths are resolved
  // against BitMono's base directory; absolute paths are used as-is. See the Plugins docs.
  "PluginsDirectoryName": "plugins",

  // Outputs information about protections (Enabled protections, disabled, deprecated, unknown, etc)
  // Set to true indicates whether enabled
  "NotifyProtections": true,

  // Outputs short, helpful tips after obfuscation (how to exclude members, disable watermark, etc)
  // Set to true indicates whether enabled
  "Tips": true,

  // For WPF apps: rename the type names that XAML/BAML references and rewrite the BAML to match
  // (their members are always kept). Set false to instead leave XAML-referenced types untouched.
  "WpfBamlRewrite": true,

  // Exclude from obfuscation if method has [MethodImpl(MethodImplOptions.NoInlining)] attribute or NoInlining bit
  // Set to true indicates whether enabled
  "NoInliningMethodObfuscationExclude": true,

  // Exclude from obfuscation if type/method has [ObfuscationAttribute(..)]
  // should have an [Obfuscation(Feature = "Name")] attribute with Protection name known as Feature
  // Set to true indicates whether enabled
  "ObfuscationAttributeObfuscationExclude": true,

  // Exclude from obfuscation if assembly has [ObfuscateAssemblyAttribute(true)]
  // Set to true indicates whether enabled
  "ObfuscateAssemblyAttributeObfuscationExclude": true,

  // Exclude from obfuscation if member name used by:
  // Type.GetMethod, Type.GetField, Type.GetProperty, Type.GetEvent, Type.GetMember
  // Set to true indicates whether enabled
  "ReflectionMembersObfuscationExclude": true,

  // Strip attribute after obfuscation if assembly has [ObfuscateAssemblyAttribute(true, StripAfterObfuscation = true)]
  // or member has [Obfuscation(Feature = "Some_BitMono_Feature", StripAfterObfuscation = true]
  // By default, you could just specify [Obfuscation(Feature = "Some_BitMono_Feature"] - and this will strip it
  // (StripAfterObfuscation is true by default in dotnet sources), the same with ObfuscateAssemblyAttribute
  // Set to true indicates whether enabled
  "StripObfuscationAttributes": true,

  // Output errors that were registered while building the PE image. BitMono feature is that
  // being used vulnerabilities of decompilers and Mono and this is the most powerful of them,
  // decompilers and other tools could think that this is cannot work fine and because of that some weird errors
  // can be outputted
  // Set to true indicates whether enabled
  "OutputPEImageBuildErrors": true,

  // Sometimes when you don't have needed dependency for your app, a tons of reasons could be for that,
  // if you got an error that says you don't have needed dependency first of all at least try to add this dependency
  // otherwise if this is deprecated - you can set this as false to ignore error and continue obfuscation
  // NB! but be aware of kind a weird errors and issues that breaking you app, and it stops working after that
  // If this is Unity go to your game path (eg, steam), open-up the directory and search for Managed directory xxx_Data\Managed,
  // Copy asked libraries from there and feed them to BitMono
  // Stay it true to stay enabled if this is possible!
  "FailOnNoRequiredDependency": false,

  // Output warnings saying that protection is intended for specific runtime
  // Set to true indicates whether enabled
  "OutputRuntimeMonikerWarnings": true,

  // Output warnings saying that protection is requires native code configuration
  // Set to true indicates whether enabled
  "OutputConfigureForNativeCodeWarnings": true,

  // Opens directory with protected file in file explorer in top of the screen, if set to true
  "OpenFileDestinationInFileExplorer": false,

  // Set to true to enable, in cases when you want to obfuscate only the specific namespace(s)
  "SpecificNamespacesObfuscationOnly": false,
  "SpecificNamespaces": [
    "Scripts.API",
    "Utilities"
  ],

  // Random strings for Renamer or for such other things
  "RandomStrings": [
    "HasPermission",
    "HasPermissions",
    "GetPermissions",
    "GetOpenWindows",
    "EnumWindows",
    "GetWindowText",
    "GetWindowTextLength",
    "IsWindowVisible",
    "GetShellWindow",
    "Awake",
    "FixedUpdate",
    "add_OnRockedInitialized",
    "remove_OnRockedInitialized",
    "Awake",
    "Initialize",
    "Translate",
    "Reload",
    "<Initialize>b__13_0",
    "Initialize",
    "FixedUpdate",
    "Start",
    "checkTimerRestart",
    "QueueOnMainThread",
    "QueueOnMainThread",
    "RunAsync",
    "RunAction",
    "Awake",
    "FixedUpdate",
    "IsUri",
    "GetTypes",
    "GetTypesFromParentClass",
    "GetTypesFromParentClass",
    "GetTypesFromInterface",
    "GetTypesFromInterface",
    "get_Timeout",
    "set_Timeout",
    "GetWebRequest",
    "get_SteamID64",
    "set_SteamID64",
    "get_SteamID",
    "set_SteamID",
    "get_OnlineState",
    "set_OnlineState",
    "get_StateMessage",
    "set_StateMessage",
    "get_PrivacyState",
    "set_PrivacyState",
    "get_VisibilityState",
    "set_VisibilityState",
    "get_AvatarIcon",
    "set_AvatarIcon",
    "get_AvatarMedium",
    "set_AvatarMedium",
    "get_AvatarFull",
    "set_AvatarFull",
    "get_IsVacBanned",
    "set_IsVacBanned",
    "get_TradeBanState",
    "set_TradeBanState",
    "get_IsLimitedAccount",
    "set_IsLimitedAccount",
    "get_CustomURL",
    "set_CustomURL",
    "get_MemberSince",
    "set_MemberSince",
    "get_HoursPlayedLastTwoWeeks",
    "set_HoursPlayedLastTwoWeeks",
    "get_Headline",
    "set_Headline",
    "get_Location",
    "set_Location",
    "get_RealName",
    "set_RealName",
    "get_Summary",
    "set_Summary",
    "get_MostPlayedGames",
    "set_MostPlayedGames",
    "get_Groups",
    "set_Groups",
    "Reload",
    "ParseString",
    "ParseDateTime",
    "ParseDouble",
    "ParseUInt16",
    "ParseUInt32",
    "ParseUInt64",
    "ParseBool",
    "ParseUri",
    "IsValidCSteamID",
    "LoadDefaults",
    "LoadDefaults",
    "get_Clients",
    "Awake",
    "handleConnection",
    "FixedUpdate",
    "Broadcast",
    "OnDestroy",
    "Read",
    "Send",
    "<Awake>b__8_0",
    "get_InstanceID",
    "set_InstanceID",
    "get_ConnectedTime",
    "set_ConnectedTime",
    "Send",
    "Read",
    "Close",
    "get_Address",
    "get_Instance",
    "set_Instance",
    "Save",
    "Load",
    "Unload",
    "Load",
    "Save",
    "Load",
    "get_Configuration",
    "LoadPlugin",
    "<.ctor>b__3_0",
    "<LoadPlugin>b__4_0",
    "add_OnPluginUnloading",
    "remove_OnPluginUnloading",
    "add_OnPluginLoading",
    "remove_OnPluginLoading",
    "get_Translations",
    "get_State",
    "get_Assembly",
    "set_Assembly",
    "get_Directory",
    "set_Directory",
    "get_Name",
    "set_Name",
    "get_DefaultTranslations",
    "IsDependencyLoaded",
    "ExecuteDependencyCode",
    "Translate",
    "ReloadPlugin",
    "LoadPlugin",
    "UnloadPlugin",
    "OnEnable",
    "OnDisable",
    "Load",
    "Unload",
    "TryAddComponent",
    "TryRemoveComponent",
    "add_OnPluginsLoaded",
    "remove_OnPluginsLoaded",
    "get_Plugins",
    "GetPlugins",
    "GetPlugin",
    "GetPlugin",
    "Awake",
    "Start",
    "GetMainTypeFromAssembly",
    "loadPlugins",
    "unloadPlugins",
    "Reload",
    "GetAssembliesFromDirectory",
    "LoadAssembliesFromDirectory",
    "<Awake>b__12_0",
    "GetGroupsByIds",
    "GetParentGroups",
    "HasPermission",
    "GetGroup",
    "RemovePlayerFromGroup",
    "AddPlayerToGroup",
    "DeleteGroup",
    "SaveGroup",
    "AddGroup",
    "GetGroups",
    "GetPermissions",
    "GetPermissions",
    "<GetGroups>b__11_3",
    "Start",
    "FixedUpdate",
    "Reload",
    "HasPermission",
    "GetGroups",
    "GetPermissions",
    "GetPermissions",
    "AddPlayerToGroup",
    "RemovePlayerFromGroup",
    "GetGroup",
    "SaveGroup",
    "AddGroup",
    "DeleteGroup",
    "DeleteGroup",
    "<FixedUpdate>b__4_0",
    "Enqueue",
    "_Logger_DoWork",
    "processLog",
    "Log",
    "Log",
    "var_dump",
    "LogWarning",
    "LogError",
    "LogError",
    "Log",
    "LogException",
    "ProcessInternalLog",
    "logRCON",
    "writeToConsole",
    "ProcessLog",
    "ExternalLog",
    "Invoke",
    "_invoke",
    "TryInvoke",
    "get_Aliases",
    "get_AllowedCaller",
    "get_Help",
    "get_Name",
    "get_Permissions",
    "get_Syntax",
    "Execute",
    "get_Aliases",
    "get_AllowedCaller",
    "get_Help",
    "get_Name",
    "get_Permissions",
    "get_Syntax",
    "Execute",
    "get_Aliases",
    "get_AllowedCaller",
    "get_Help",
    "get_Name",
    "get_Permissions",
    "get_Syntax",
    "Execute",
    "get_Name",
    "set_Name",
    "get_Name",
    "set_Name",
    "get_Name",
    "get_Help",
    "get_Syntax",
    "get_AllowedCaller",
    "get_Commands",
    "set_Commands",
    "add_OnExecuteCommand",
    "remove_OnExecuteCommand",
    "Reload",
    "Awake",
    "checkCommandMappings",
    "checkDuplicateCommandMappings",
    "Plugins_OnPluginsLoaded",
    "GetCommand",
    "GetCommand",
    "getCommandIdentity",
    "getCommandType",
    "Register",
    "Register",
    "Register",
    "DeregisterFromAssembly",
    "GetCooldown",
    "SetCooldown",
    "Execute",
    "RegisterFromAssembly",
    "Assembly.Load",
    "AppDomain.Current.Load",
    "ExternalLoad",
    "ExternalAssemblyLoad",
    "MethodInvokableCallback",
    "FireEventCallback",
    "RegisterAssemblyFromNative",
    "Memory",
    "Plugin",
    "External",
    "Logger.log",
    "Logging.log",
    "Logs"
  ]
}