diff --git a/.gitignore b/.gitignore
new file mode 100644
index 00000000..5f2cc750
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,21 @@
+###############
+# folder #
+###############
+/**/DROP/
+/**/TEMP/
+/**/packages/
+/**/bin/
+/**/obj/
+_site
+
+# Ignore the src folder because it's included in the CI instead
+src/
+.vs/
+.vscode/
+
+# Ignore common repo files
+gh-pages/
+tools/
+./build.*
+templates/
+common/
\ No newline at end of file
diff --git a/CNAME b/CNAME
new file mode 100644
index 00000000..58c9f685
--- /dev/null
+++ b/CNAME
@@ -0,0 +1 @@
+docs.bepinex.dev
\ No newline at end of file
diff --git a/README.html b/README.html
new file mode 100644
index 00000000..890b8627
--- /dev/null
+++ b/README.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+ BepInEx Documentation | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BepInEx Documentation
+
+This is the repo for storing documentation related to BepInEx.
+
+Contributing
+All contributions either via PRs or issues are welcome!
+This project uses DocFX to render the API documentation and the articles.
+Please refer to DocFX documentation for information on using DocFX-flavoured markdown .
+In general, you should be able to update pages with a simple markdown editor.
+Testing docs locally
+If you want to preview the docs locally, you need .NET 5 or newer installed.
+After that, do the following:
+
+Clone this repo with git clone
+In the cloned directory, run
+git worktree add --checkout common common
+
+A folder named common
should appear.
+Write documentation into api
or articles
folder. Refer to docfx guide and DFM syntax guide for info on writing the guides using DocFX
+Run common/build.bat --target=Build
to build the docs. The generated docs will appear in _site
folder
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.BaseUnityPlugin.html b/api/BepInEx.BaseUnityPlugin.html
new file mode 100644
index 00000000..f275f6c6
--- /dev/null
+++ b/api/BepInEx.BaseUnityPlugin.html
@@ -0,0 +1,561 @@
+
+
+
+
+
+ Class BaseUnityPlugin
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BaseUnityPlugin
+
+ The base plugin type that is used by the BepInEx plugin loader.
+
+
+
+
+
Inheritance
+ System.Object
+ BaseUnityPlugin
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public abstract class BaseUnityPlugin : MonoBehaviour
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Create a new instance of a plugin and all of its tied in objects.
+
+
+
Declaration
+
+
+
protected BaseUnityPlugin()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.InvalidOperationException
+ BepInPlugin attribute is missing.
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Default config file tied to this plugin. The config file will not be created until
+any settings are added and changed, or Save() is called.
+
+
+
Declaration
+
+
+
public ConfigFile Config { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Information about this plugin as it was loaded.
+
+
+
Declaration
+
+
+
public PluginInfo Info { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ PluginInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logger instance tied to this plugin.
+
+
+
Declaration
+
+
+
protected ManualLogSource Logger { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.BepInDependency.DependencyFlags.html b/api/BepInEx.BepInDependency.DependencyFlags.html
new file mode 100644
index 00000000..73c5f1ca
--- /dev/null
+++ b/api/BepInEx.BepInDependency.DependencyFlags.html
@@ -0,0 +1,319 @@
+
+
+
+
+
+ Enum BepInDependency.DependencyFlags
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enum BepInDependency.DependencyFlags
+
+ Flags that are applied to a dependency
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
[Flags]
+public enum DependencyFlags
+
+
+
+
+
+
+
+
+
+
+
+
+
Fields
+
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+ HardDependency
+ The plugin has a hard dependency on the referenced plugin, and will not run without it.
+
+
+
+ SoftDependency
+ This plugin has a soft dependency on the referenced plugin, and is able to run without it.
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.BepInDependency.html b/api/BepInEx.BepInDependency.html
new file mode 100644
index 00000000..bd12aee4
--- /dev/null
+++ b/api/BepInEx.BepInDependency.html
@@ -0,0 +1,928 @@
+
+
+
+
+
+ Class BepInDependency
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInDependency
+
+ This attribute specifies any dependencies that this plugin has on other plugins.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ BepInDependency
+
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+public class BepInDependency : Attribute, _Attribute, ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Marks this BaseUnityPlugin as depenant on another plugin. The other plugin will be loaded before this one.
+If the other plugin doesn't exist, what happens depends on the Flags parameter.
+
+
+
Declaration
+
+
+
public BepInDependency(string DependencyGUID, BepInDependency.DependencyFlags Flags = BepInDependency.DependencyFlags.HardDependency)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ DependencyGUID
+ The GUID of the referenced plugin.
+
+
+
+ BepInDependency.DependencyFlags
+ Flags
+ The flags associated with this dependency definition.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Marks this BaseUnityPlugin as depenant on another plugin. The other plugin will be loaded before this one.
+If the other plugin doesn't exist or is of a version below MinimumVersion , this plugin will not load and an error will be logged instead.
+
+
+
Declaration
+
+
+
public BepInDependency(string DependencyGUID, string MinimumDependencyVersion)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ DependencyGUID
+ The GUID of the referenced plugin.
+
+
+
+ System.String
+ MinimumDependencyVersion
+ The minimum version of the referenced plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The GUID of the referenced plugin.
+
+
+
Declaration
+
+
+
public string DependencyGUID { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The flags associated with this dependency definition.
+
+
+
Declaration
+
+
+
public BepInDependency.DependencyFlags Flags { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The minimum version of the referenced plugin.
+
+
+
Declaration
+
+
+
public Version MinimumVersion { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Load(BinaryReader br)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryReader
+ br
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Save(BinaryWriter bw)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryWriter
+ bw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.BepInIncompatibility.html b/api/BepInEx.BepInIncompatibility.html
new file mode 100644
index 00000000..7ec7e5c0
--- /dev/null
+++ b/api/BepInEx.BepInIncompatibility.html
@@ -0,0 +1,723 @@
+
+
+
+
+
+ Class BepInIncompatibility
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInIncompatibility
+
+ This attribute specifies other plugins that are incompatible with this plugin.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ BepInIncompatibility
+
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+public class BepInIncompatibility : Attribute, _Attribute, ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Marks this BaseUnityPlugin as incompatible with another plugin.
+If the other plugin exists, this plugin will not be loaded and a warning will be shown.
+
+
+
Declaration
+
+
+
public BepInIncompatibility(string IncompatibilityGUID)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ IncompatibilityGUID
+ The GUID of the referenced plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The GUID of the referenced plugin.
+
+
+
Declaration
+
+
+
public string IncompatibilityGUID { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Load(BinaryReader br)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryReader
+ br
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Save(BinaryWriter bw)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryWriter
+ bw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.BepInPlugin.html b/api/BepInEx.BepInPlugin.html
new file mode 100644
index 00000000..851f693d
--- /dev/null
+++ b/api/BepInEx.BepInPlugin.html
@@ -0,0 +1,724 @@
+
+
+
+
+
+ Class BepInPlugin
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInPlugin
+
+ This attribute denotes that a class is a plugin, and specifies the required metadata.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ BepInPlugin
+
+
+
+
Implements
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = false)]
+public class BepInPlugin : Attribute, _Attribute
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInPlugin(string GUID, string Name, string Version)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ GUID
+ The unique identifier of the plugin. Should not change between plugin versions.
+
+
+
+ System.String
+ Name
+ The user friendly name of the plugin. Is able to be changed between versions.
+
+
+
+ System.String
+ Version
+ The specfic version of the plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The unique identifier of the plugin. Should not change between plugin versions.
+
+
+
Declaration
+
+
+
public string GUID { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The user friendly name of the plugin. Is able to be changed between versions.
+
+
+
Declaration
+
+
+
public string Name { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The specfic version of the plugin.
+
+
+
Declaration
+
+
+
public Version Version { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.BepInProcess.html b/api/BepInEx.BepInProcess.html
new file mode 100644
index 00000000..98388b4a
--- /dev/null
+++ b/api/BepInEx.BepInProcess.html
@@ -0,0 +1,588 @@
+
+
+
+
+
+ Class BepInProcess
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInProcess
+
+ This attribute specifies which processes this plugin should be run for. Not specifying this attribute will load the plugin under every process.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ BepInProcess
+
+
+
+
Implements
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+public class BepInProcess : Attribute, _Attribute
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInProcess(string ProcessName)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ ProcessName
+ The name of the process that this plugin will run under.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The name of the process that this plugin will run under.
+
+
+
Declaration
+
+
+
public string ProcessName { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Bootstrap.CachedAssembly-1.html b/api/BepInEx.Bootstrap.CachedAssembly-1.html
new file mode 100644
index 00000000..f7890e0c
--- /dev/null
+++ b/api/BepInEx.Bootstrap.CachedAssembly-1.html
@@ -0,0 +1,472 @@
+
+
+
+
+
+ Class CachedAssembly<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class CachedAssembly<T>
+
+
+
+
+
+
Inheritance
+ System.Object
+ CachedAssembly<T>
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class CachedAssembly<T>
+ where T : ICacheable
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
List of cached items inside the assembly.
+
+
+
Declaration
+
+
+
public List<T> CacheItems { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.List <T>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Timestamp of the assembly. Used to check the age of the cache.
+
+
+
Declaration
+
+
+
public long Timestamp { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Int64
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Bootstrap.Chainloader.html b/api/BepInEx.Bootstrap.Chainloader.html
new file mode 100644
index 00000000..6822fcb8
--- /dev/null
+++ b/api/BepInEx.Bootstrap.Chainloader.html
@@ -0,0 +1,787 @@
+
+
+
+
+
+ Class Chainloader
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Chainloader
+
+ The manager and loader for all plugins, and the entry point for BepInEx plugin system.
+
+
+
+
+
Inheritance
+ System.Object
+ Chainloader
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public static class Chainloader
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Collection of error chainloader messages that occured during plugin loading.
+Contains information about what certain plugins were not loaded.
+
+
+
Declaration
+
+
+
public static List<string> DependencyErrors { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.List <System.String >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The GameObject that all plugins are attached to as components.
+
+
+
Declaration
+
+
+
public static GameObject ManagerObject { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ GameObject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The loaded and initialized list of plugins.
+
+
+
Declaration
+
+
+
public static Dictionary<string, PluginInfo> PluginInfos { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , PluginInfo >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
[Obsolete("Use PluginInfos instead")]
+public static List<BaseUnityPlugin> Plugins { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.List <BaseUnityPlugin >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Initializes BepInEx to be able to start the chainloader.
+
+
+
Declaration
+
+
+
public static void Initialize(string gameExePath, bool startConsole = true, ICollection<LogEventArgs> preloaderLogEvents = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ gameExePath
+
+
+
+ System.Boolean
+ startConsole
+
+
+
+ System.Collections.Generic.ICollection <LogEventArgs >
+ preloaderLogEvents
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The entrypoint for the BepInEx plugin system.
+
+
+
Declaration
+
+
+
public static void Start()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Analyzes the given type definition and attempts to convert it to a valid PluginInfo
+
+
+
Declaration
+
+
+
public static PluginInfo ToPluginInfo(TypeDefinition type)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ TypeDefinition
+ type
+ Type definition to analyze.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ PluginInfo
+ If the type represent a valid plugin, returns a PluginInfo instance. Otherwise, return null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Bootstrap.ICacheable.html b/api/BepInEx.Bootstrap.ICacheable.html
new file mode 100644
index 00000000..5a34d185
--- /dev/null
+++ b/api/BepInEx.Bootstrap.ICacheable.html
@@ -0,0 +1,431 @@
+
+
+
+
+
+ Interface ICacheable
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public interface ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Loads the object from binary format.
+
+
+
Declaration
+
+
+
void Load(BinaryReader br)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryReader
+ br
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Serialize the object into a binary format.
+
+
+
Declaration
+
+
+
void Save(BinaryWriter bw)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryWriter
+ bw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Bootstrap.TypeLoader.html b/api/BepInEx.Bootstrap.TypeLoader.html
new file mode 100644
index 00000000..781baeff
--- /dev/null
+++ b/api/BepInEx.Bootstrap.TypeLoader.html
@@ -0,0 +1,904 @@
+
+
+
+
+
+ Class TypeLoader
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TypeLoader
+
+ Provides methods for loading specified types from an assembly.
+
+
+
+
+
Inheritance
+ System.Object
+ TypeLoader
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public static class TypeLoader
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static readonly ReaderParameters ReaderParameters
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ReaderParameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Default assembly resolved used by the TypeLoader
+
+
+
Declaration
+
+
+
public static readonly DefaultAssemblyResolver Resolver
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ DefaultAssemblyResolver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Looks up assemblies in the given directory and locates all types that can be loaded and collects their metadata.
+
+
+
Declaration
+
+
+
public static Dictionary<string, List<T>> FindPluginTypes<T>(string directory, Func<TypeDefinition, T> typeSelector, Func<AssemblyDefinition, bool> assemblyFilter = null, string cacheName = null)
+ where T : ICacheable, new()
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ directory
+ The directory to search for assemblies.
+
+
+
+ System.Func <TypeDefinition , T>
+ typeSelector
+ A function to check if a type should be selected and to build the type metadata.
+
+
+
+ System.Func <AssemblyDefinition , System.Boolean >
+ assemblyFilter
+ A filter function to quickly determine if the assembly can be loaded.
+
+
+
+ System.String
+ cacheName
+ The name of the cache to get cached types from.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , System.Collections.Generic.List <T>>
+ A dictionary of all assemblies in the directory and the list of type metadatas of types that match the selector.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ The specific base type to search for.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loads an index of type metadatas from a cache.
+
+
+
Declaration
+
+
+
public static Dictionary<string, CachedAssembly<T>> LoadAssemblyCache<T>(string cacheName)
+ where T : ICacheable, new()
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ cacheName
+ Name of the cache
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , CachedAssembly <T>>
+ Cached type metadatas indexed by the path of the assembly that defines the type. If no cache is defined, return null.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Cacheable item
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Saves indexed type metadata into a cache.
+
+
+
Declaration
+
+
+
public static void SaveAssemblyCache<T>(string cacheName, Dictionary<string, List<T>> entries)
+ where T : ICacheable
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ cacheName
+ Name of the cache
+
+
+
+ System.Collections.Generic.Dictionary <System.String , System.Collections.Generic.List <T>>
+ entries
+ List of plugin metadatas indexed by the path to the assembly that contains the types
+
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Cacheable item
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Converts TypeLoadException to a readable string.
+
+
+
Declaration
+
+
+
public static string TypeLoadExceptionToString(ReflectionTypeLoadException ex)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.ReflectionTypeLoadException
+ ex
+ TypeLoadException
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ Readable representation of the exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Event fired when TypeLoader fails to resolve a type during type loading.
+
+
+
Declaration
+
+
+
public static event AssemblyResolveEventHandler AssemblyResolve
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ AssemblyResolveEventHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Bootstrap.html b/api/BepInEx.Bootstrap.html
new file mode 100644
index 00000000..60d69ff8
--- /dev/null
+++ b/api/BepInEx.Bootstrap.html
@@ -0,0 +1,277 @@
+
+
+
+
+
+ Namespace BepInEx.Bootstrap
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Bootstrap
+
+
+
+
+ Classes
+
+
+
+
+ The manager and loader for all plugins, and the entry point for BepInEx plugin system.
+
+
+ Provides methods for loading specified types from an assembly.
+
+ Interfaces
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.AcceptableValueBase.html b/api/BepInEx.Configuration.AcceptableValueBase.html
new file mode 100644
index 00000000..94361505
--- /dev/null
+++ b/api/BepInEx.Configuration.AcceptableValueBase.html
@@ -0,0 +1,686 @@
+
+
+
+
+
+ Class AcceptableValueBase
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class AcceptableValueBase
+
+ Base type of all classes representing and enforcing acceptable values of config settings.
+
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public abstract class AcceptableValueBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected AcceptableValueBase(Type valueType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ valueType
+ Type of values that this class can Clamp.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Type of the supported values.
+
+
+
Declaration
+
+
+
public Type ValueType { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Change the value to be acceptable, if it's not already.
+
+
+
Declaration
+
+
+
public abstract object Clamp(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the value is an acceptable value.
+
+
+
Declaration
+
+
+
public abstract bool IsValid(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get the string for use in config files.
+
+
+
Declaration
+
+
+
public abstract string ToDescriptionString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.AcceptableValueList-1.html b/api/BepInEx.Configuration.AcceptableValueList-1.html
new file mode 100644
index 00000000..8db5afec
--- /dev/null
+++ b/api/BepInEx.Configuration.AcceptableValueList-1.html
@@ -0,0 +1,710 @@
+
+
+
+
+
+ Class AcceptableValueList<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class AcceptableValueList<T>
+
+ Specify the list of acceptable values for a setting.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class AcceptableValueList<T> : AcceptableValueBase where T : IEquatable<T>
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Specify the list of acceptable values for a setting.
+If the setting does not equal any of the values, it will be set to the first one.
+
+
+
Declaration
+
+
+
public AcceptableValueList(params T[] acceptableValues)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ T[]
+ acceptableValues
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
List of values that a setting can take.
+
+
+
Declaration
+
+
+
public virtual T[] AcceptableValues { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T[]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Change the value to be acceptable, if it's not already.
+
+
+
Declaration
+
+
+
public override object Clamp(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the value is an acceptable value.
+
+
+
Declaration
+
+
+
public override bool IsValid(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get the string for use in config files.
+
+
+
Declaration
+
+
+
public override string ToDescriptionString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.AcceptableValueRange-1.html b/api/BepInEx.Configuration.AcceptableValueRange-1.html
new file mode 100644
index 00000000..32fc6d98
--- /dev/null
+++ b/api/BepInEx.Configuration.AcceptableValueRange-1.html
@@ -0,0 +1,777 @@
+
+
+
+
+
+ Class AcceptableValueRange<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class AcceptableValueRange<T>
+
+ Specify the range of acceptable values for a setting.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class AcceptableValueRange<T> : AcceptableValueBase where T : IComparable
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public AcceptableValueRange(T minValue, T maxValue)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ T
+ minValue
+ Lowest acceptable value
+
+
+
+ T
+ maxValue
+ Highest acceptable value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Highest acceptable value
+
+
+
Declaration
+
+
+
public virtual T MaxValue { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Lowest acceptable value
+
+
+
Declaration
+
+
+
public virtual T MinValue { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Change the value to be acceptable, if it's not already.
+
+
+
Declaration
+
+
+
public override object Clamp(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the value is an acceptable value.
+
+
+
Declaration
+
+
+
public override bool IsValid(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get the string for use in config files.
+
+
+
Declaration
+
+
+
public override string ToDescriptionString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.ConfigDefinition.html b/api/BepInEx.Configuration.ConfigDefinition.html
new file mode 100644
index 00000000..d1905b1e
--- /dev/null
+++ b/api/BepInEx.Configuration.ConfigDefinition.html
@@ -0,0 +1,1064 @@
+
+
+
+
+
+ Class ConfigDefinition
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigDefinition
+
+ Section and key of a setting. Used as a unique key for identification within a ConfigFile .
+The same definition can be used in multiple config files, it will point to different settings then.
+
+
+
+
+
Inheritance
+ System.Object
+ ConfigDefinition
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class ConfigDefinition : IEquatable<ConfigDefinition>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Create a new definition. Definitions with same section and key are equal.
+
+
+
Declaration
+
+
+
public ConfigDefinition(string section, string key)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Group of the setting, case sensitive.
+
+
+
+ System.String
+ key
+ Name of the setting, case sensitive.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
[Obsolete("description argument is no longer used, put it in a ConfigDescription instead")]
+public ConfigDefinition(string section, string key, string description)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+
+
+
+ System.String
+ key
+
+
+
+ System.String
+ description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string Key { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Group of the setting. All settings within a config file are grouped by this.
+
+
+
Declaration
+
+
+
public string Section { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Check if the definitions are the same.
+
+
+
Declaration
+
+
+
public bool Equals(ConfigDefinition other)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the definitions are the same.
+
+
+
Declaration
+
+
+
public override bool Equals(object obj)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ obj
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.Equals(System.Object)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override int GetHashCode()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Int32
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.GetHashCode()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Operators
+
+
+
+
+
+
+
Check if the definitions are the same.
+
+
+
Declaration
+
+
+
public static bool operator ==(ConfigDefinition left, ConfigDefinition right)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the definitions are the same.
+
+
+
Declaration
+
+
+
public static bool operator !=(ConfigDefinition left, ConfigDefinition right)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.IEquatable<T>
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.ConfigDescription.html b/api/BepInEx.Configuration.ConfigDescription.html
new file mode 100644
index 00000000..e9a53825
--- /dev/null
+++ b/api/BepInEx.Configuration.ConfigDescription.html
@@ -0,0 +1,660 @@
+
+
+
+
+
+ Class ConfigDescription
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigDescription
+
+
+
+
+
+
Inheritance
+ System.Object
+ ConfigDescription
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class ConfigDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Create a new description.
+
+
+
Declaration
+
+
+
public ConfigDescription(string description, AcceptableValueBase acceptableValues = null, params object[] tags)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ description
+ Text describing the function of the setting and any notes or warnings.
+
+
+
+ AcceptableValueBase
+ acceptableValues
+ Range of values that this setting can take. The setting's value will be automatically clamped.
+
+
+
+ System.Object []
+ tags
+ Objects that can be used by user-made classes to add functionality.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Range of acceptable values for a setting.
+
+
+
Declaration
+
+
+
public AcceptableValueBase AcceptableValues { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Text describing the function of the setting and any notes or warnings.
+
+
+
Declaration
+
+
+
public string Description { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static ConfigDescription Empty { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Objects that can be used by user-made classes to add functionality.
+
+
+
Declaration
+
+
+
public object[] Tags { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object []
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.ConfigEntry-1.html b/api/BepInEx.Configuration.ConfigEntry-1.html
new file mode 100644
index 00000000..6a2474d6
--- /dev/null
+++ b/api/BepInEx.Configuration.ConfigEntry-1.html
@@ -0,0 +1,569 @@
+
+
+
+
+
+ Class ConfigEntry<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigEntry<T>
+
+ Provides access to a single setting inside of a ConfigFile .
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public sealed class ConfigEntry<T> : ConfigEntryBase
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+ Type of the setting.
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Get or set the value of the setting.
+
+
+
Declaration
+
+
+
public override object BoxedValue { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public T Value { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Fired when the setting is changed. Does not detect changes made outside from this object.
+
+
+
Declaration
+
+
+
public event EventHandler SettingChanged
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.ConfigEntryBase.html b/api/BepInEx.Configuration.ConfigEntryBase.html
new file mode 100644
index 00000000..829b1fd3
--- /dev/null
+++ b/api/BepInEx.Configuration.ConfigEntryBase.html
@@ -0,0 +1,1057 @@
+
+
+
+
+
+ Class ConfigEntryBase
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigEntryBase
+
+ Container for a single setting of a ConfigFile .
+Each config entry is linked to one config file.
+
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public abstract class ConfigEntryBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Get or set the value of the setting.
+
+
+
Declaration
+
+
+
public abstract object BoxedValue { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Config file this entry is a part of.
+
+
+
Declaration
+
+
+
public ConfigFile ConfigFile { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Default value of this setting (set only if the setting was not changed before).
+
+
+
Declaration
+
+
+
public object DefaultValue { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Category and name of this setting. Used as a unique key for identification within a ConfigFile .
+
+
+
Declaration
+
+
+
public ConfigDefinition Definition { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Description / metadata of this setting.
+
+
+
Declaration
+
+
+
public ConfigDescription Description { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Type SettingType { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
If necessary, clamp the value to acceptable value range. T has to be equal to settingType.
+
+
+
Declaration
+
+
+
protected T ClampValue<T>(T value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ T
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get the serialized representation of the value.
+
+
+
Declaration
+
+
+
public string GetSerializedValue()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Trigger setting changed event.
+
+
+
Declaration
+
+
+
protected void OnSettingChanged(object sender)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Set the value by using its serialized form.
+
+
+
Declaration
+
+
+
public void SetSerializedValue(string value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Write a description of this setting using all available metadata.
+
+
+
Declaration
+
+
+
public void WriteDescription(StreamWriter writer)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.StreamWriter
+ writer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.ConfigFile.html b/api/BepInEx.Configuration.ConfigFile.html
new file mode 100644
index 00000000..59219d99
--- /dev/null
+++ b/api/BepInEx.Configuration.ConfigFile.html
@@ -0,0 +1,3602 @@
+
+
+
+
+
+ Class ConfigFile
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigFile
+
+ A helper class to handle persistent data. All public methods are thread-safe.
+
+
+
+
+
Inheritance
+ System.Object
+ ConfigFile
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class ConfigFile : IDictionary<ConfigDefinition, ConfigEntryBase>, ICollection<KeyValuePair<ConfigDefinition, ConfigEntryBase>>, IEnumerable<KeyValuePair<ConfigDefinition, ConfigEntryBase>>, IEnumerable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigFile(string configPath, bool saveOnInit)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ configPath
+
+
+
+ System.Boolean
+ saveOnInit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new config file at the specified config path.
+
+
+
Declaration
+
+
+
public ConfigFile(string configPath, bool saveOnInit, BepInPlugin ownerMetadata)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ configPath
+ Full path to a file that contains settings. The file will be created as needed.
+
+
+
+ System.Boolean
+ saveOnInit
+ If the config file/directory doesn't exist, create it immediately.
+
+
+
+ BepInPlugin
+ ownerMetadata
+ Information about the plugin that owns this setting file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Create a list with all config entries inside of this config file.
+
+
+
Declaration
+
+
+
[Obsolete("Use Keys instead")]
+public ReadOnlyCollection<ConfigDefinition> ConfigDefinitions { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.ObjectModel.ReadOnlyCollection <ConfigDefinition >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Full path to the config file. The file might not exist until a setting is added and changed, or Save() is called.
+
+
+
Declaration
+
+
+
public string ConfigFilePath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public int Count { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Int32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
All config entries inside
+
+
+
Declaration
+
+
+
protected Dictionary<ConfigDefinition, ConfigEntryBase> Entries { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool IsReadOnly { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigEntryBase this[ConfigDefinition key] { get; }
+
+
+
Parameters
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigEntryBase this[string section, string key] { get; }
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+
+
+
+ System.String
+ key
+
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the ConfigDefinitions that the ConfigFile contains.
+
Creates a new array when the property is accessed. Thread-safe.
+
+
+
Declaration
+
+
+
public ICollection<ConfigDefinition> Keys { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.ICollection <ConfigDefinition >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
If enabled, writes the config to disk every time a value is set.
+If disabled, you have to manually use Save() or the changes will be lost!
+
+
+
Declaration
+
+
+
public bool SaveOnConfigSet { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Add(ConfigDefinition key, ConfigEntryBase value)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each definition can be used to add only one setting, trying to add a second setting will throw an exception.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigEntry<T> AddSetting<T>(ConfigDefinition configDefinition, T defaultValue, ConfigDescription configDescription = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+ Section and Key of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ ConfigDescription
+ configDescription
+ Description of the setting shown to the user and other metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each section and key pair can be used to add only one setting, trying to add a second setting will throw an exception.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigEntry<T> AddSetting<T>(string section, string key, T defaultValue, ConfigDescription configDescription = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ ConfigDescription
+ configDescription
+ Description of the setting shown to the user and other metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each section and key pair can be used to add only one setting, trying to add a second setting will throw an exception.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigEntry<T> AddSetting<T>(string section, string key, T defaultValue, string description)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ System.String
+ description
+ Simple description of the setting shown to the user.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each definition can be used to add only one setting, trying to add a second setting will throw an exception.
+
+
+
Declaration
+
+
+
public ConfigEntry<T> Bind<T>(ConfigDefinition configDefinition, T defaultValue, ConfigDescription configDescription = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+ Section and Key of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ ConfigDescription
+ configDescription
+ Description of the setting shown to the user and other metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each section and key pair can be used to add only one setting, trying to add a second setting will throw an exception.
+
+
+
Declaration
+
+
+
public ConfigEntry<T> Bind<T>(string section, string key, T defaultValue, ConfigDescription configDescription = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ ConfigDescription
+ configDescription
+ Description of the setting shown to the user and other metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each section and key pair can be used to add only one setting, trying to add a second setting will throw an exception.
+
+
+
Declaration
+
+
+
public ConfigEntry<T> Bind<T>(string section, string key, T defaultValue, string description)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ System.String
+ description
+ Simple description of the setting shown to the user.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool Contains(KeyValuePair<ConfigDefinition, ConfigEntryBase> item)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool ContainsKey(ConfigDefinition key)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
[Obsolete("Use Values instead")]
+public ConfigEntryBase[] GetConfigEntries()
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public IEnumerator<KeyValuePair<ConfigDefinition, ConfigEntryBase>> GetEnumerator()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerator <System.Collections.Generic.KeyValuePair <ConfigDefinition , ConfigEntryBase >>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access one of the existing settings. If the setting has not been added yet, null is returned.
+If the setting exists but has a different type than T, an exception is thrown.
+New settings should be added with AddSetting<T>(ConfigDefinition, T, ConfigDescription) .
+
+
+
Declaration
+
+
+
[Obsolete("Use ConfigFile[key] or TryGetEntry instead")]
+public ConfigEntry<T> GetSetting<T>(ConfigDefinition configDefinition)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+ Section and Key of the setting.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access one of the existing settings. If the setting has not been added yet, null is returned.
+If the setting exists but has a different type than T, an exception is thrown.
+New settings should be added with AddSetting<T>(ConfigDefinition, T, ConfigDescription) .
+
+
+
Declaration
+
+
+
[Obsolete("Use ConfigFile[key] or TryGetEntry instead")]
+public ConfigEntry<T> GetSetting<T>(string section, string key)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Reloads the config from disk. Unsaved changes are lost.
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool Remove(ConfigDefinition key)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writes the config to disk.
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access one of the existing settings. If the setting has not been added yet, false is returned. Otherwise, true.
+If the setting exists but has a different type than T, an exception is thrown.
+New settings should be added with Bind<T>(ConfigDefinition, T, ConfigDescription) .
+
+
+
Declaration
+
+
+
public bool TryGetEntry<T>(ConfigDefinition configDefinition, out ConfigEntry<T> entry)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+ Section and Key of the setting.
+
+
+
+ ConfigEntry <T>
+ entry
+ The ConfigEntry value to return.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access one of the existing settings. If the setting has not been added yet, null is returned.
+If the setting exists but has a different type than T, an exception is thrown.
+New settings should be added with Bind<T>(ConfigDefinition, T, ConfigDescription) .
+
+
+
Declaration
+
+
+
public bool TryGetEntry<T>(string section, string key, out ConfigEntry<T> entry)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ ConfigEntry <T>
+ entry
+ The ConfigEntry value to return.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access a setting. Use Bind instead.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigWrapper<T> Wrap<T>(ConfigDefinition configDefinition, T defaultValue = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+
+
+
+ T
+ defaultValue
+
+
+
+
+
+
+
Returns
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access a setting. Use Bind instead.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigWrapper<T> Wrap<T>(string section, string key, string description = null, T defaultValue = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+
+
+
+ System.String
+ key
+
+
+
+ System.String
+ description
+
+
+
+ T
+ defaultValue
+
+
+
+
+
+
+
Returns
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
An event that is fired every time the config is reloaded.
+
+
+
Declaration
+
+
+
public event EventHandler ConfigReloaded
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Fired when one of the settings is changed.
+
+
+
Declaration
+
+
+
public event EventHandler<SettingChangedEventArgs> SettingChanged
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICollection<KeyValuePair<ConfigDefinition, ConfigEntryBase>>.Add(KeyValuePair<ConfigDefinition, ConfigEntryBase> item)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICollection<KeyValuePair<ConfigDefinition, ConfigEntryBase>>.CopyTo(KeyValuePair<ConfigDefinition, ConfigEntryBase>[] array, int arrayIndex)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.KeyValuePair <ConfigDefinition , ConfigEntryBase >[]
+ array
+
+
+
+ System.Int32
+ arrayIndex
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool ICollection<KeyValuePair<ConfigDefinition, ConfigEntryBase>>.Remove(KeyValuePair<ConfigDefinition, ConfigEntryBase> item)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
ConfigEntryBase IDictionary<ConfigDefinition, ConfigEntryBase>.this[ConfigDefinition key] { get; set; }
+
+
+
Parameters
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool IDictionary<ConfigDefinition, ConfigEntryBase>.TryGetValue(ConfigDefinition key, out ConfigEntryBase value)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the ConfigEntryBase values that the ConfigFile contains.
+
Creates a new array when the property is accessed. Thread-safe.
+
+
+
Declaration
+
+
+
ICollection<ConfigEntryBase> IDictionary<ConfigDefinition, ConfigEntryBase>.Values { get; }
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.ICollection <ConfigEntryBase >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
IEnumerator IEnumerable.GetEnumerator()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.IEnumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Collections.Generic.IDictionary<TKey, TValue>
+
+
+ System.Collections.Generic.ICollection<T>
+
+
+ System.Collections.Generic.IEnumerable<T>
+
+
+ System.Collections.IEnumerable
+
+
+ Extension Methods
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.ConfigWrapper-1.html b/api/BepInEx.Configuration.ConfigWrapper-1.html
new file mode 100644
index 00000000..1f42395a
--- /dev/null
+++ b/api/BepInEx.Configuration.ConfigWrapper-1.html
@@ -0,0 +1,661 @@
+
+
+
+
+
+ Class ConfigWrapper<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigWrapper<T>
+
+ Provides access to a single setting inside of a ConfigFile .
+
+
+
+
+
Inheritance
+ System.Object
+ ConfigWrapper<T>
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
[Obsolete("Use ConfigFile from new Bind overloads instead")]
+public sealed class ConfigWrapper<T>
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+ Type of the setting.
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigEntry<T> ConfigEntry { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Config file this setting is inside of.
+
+
+
Declaration
+
+
+
public ConfigFile ConfigFile { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Unique definition of this setting.
+
+
+
Declaration
+
+
+
public ConfigDefinition Definition { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public T Value { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Fired when the setting is changed. Does not detect changes made outside from this object.
+
+
+
Declaration
+
+
+
public event EventHandler SettingChanged
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.KeyboardShortcut.html b/api/BepInEx.Configuration.KeyboardShortcut.html
new file mode 100644
index 00000000..71b5c026
--- /dev/null
+++ b/api/BepInEx.Configuration.KeyboardShortcut.html
@@ -0,0 +1,1181 @@
+
+
+
+
+
+ Struct KeyboardShortcut
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Struct KeyboardShortcut
+
+ A keyboard shortcut that can be used in Update method to check if user presses a key combo. The shortcut is only
+triggered when the user presses the exact combination. For example, F + LeftCtrl
will trigger only if user
+presses and holds only LeftCtrl, and then presses F. If any other keys are pressed, the shortcut will not trigger.
+
Can be used as a value of a setting in Bind<T>(ConfigDefinition, T, ConfigDescription)
+to allow user to change this shortcut and have the changes saved.
+
How to use: Use IsDown() in this class instead of in the Update loop.
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public struct KeyboardShortcut
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Create a new keyboard shortcut.
+
+
+
Declaration
+
+
+
public KeyboardShortcut(KeyCode mainKey, params KeyCode[] modifiers)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ KeyCode
+ mainKey
+ Main key to press
+
+
+
+ KeyCode []
+ modifiers
+ Keys that should be held down before main key is registered
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
All KeyCode values that can be used in a keyboard shortcut.
+
+
+
Declaration
+
+
+
[Obsolete("Use UnityInput.Current.SupportedKeyCodes instead")]
+public static readonly IEnumerable<KeyCode> AllKeyCodes
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <KeyCode >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Shortcut that never triggers.
+
+
+
Declaration
+
+
+
public static readonly KeyboardShortcut Empty
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Main key of the key combination. It has to be pressed / let go last for the combination to be triggered.
+If the combination is empty, is returned.
+
+
+
Declaration
+
+
+
public readonly KeyCode MainKey { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ KeyCode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Modifiers of the key combination, if any.
+
+
+
Declaration
+
+
+
public readonly IEnumerable<KeyCode> Modifiers { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <KeyCode >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Attempt to deserialize key combination from the string.
+
+
+
Declaration
+
+
+
public static KeyboardShortcut Deserialize(string str)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ str
+
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override bool Equals(object obj)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ obj
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.ValueType.Equals(System.Object)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override int GetHashCode()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Int32
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.ValueType.GetHashCode()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the main key was just pressed (Input.GetKeyDown), and specified modifier keys are all pressed
+
+
+
Declaration
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the main key is currently held down (Input.GetKey), and specified modifier keys are all pressed
+
+
+
Declaration
+
+
+
public bool IsPressed()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the main key was just lifted (Input.GetKeyUp), and specified modifier keys are all pressed.
+
+
+
Declaration
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Serialize the key combination into a user readable string.
+
+
+
Declaration
+
+
+
public string Serialize()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.ValueType.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.SettingChangedEventArgs.html b/api/BepInEx.Configuration.SettingChangedEventArgs.html
new file mode 100644
index 00000000..6ef76bb6
--- /dev/null
+++ b/api/BepInEx.Configuration.SettingChangedEventArgs.html
@@ -0,0 +1,464 @@
+
+
+
+
+
+ Class SettingChangedEventArgs
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class SettingChangedEventArgs
+
+ Arguments for events concerning a change of a setting.
+
+
+
+
+
Inheritance
+ System.Object
+ System.EventArgs
+ SettingChangedEventArgs
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.EventArgs.Empty
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public sealed class SettingChangedEventArgs : EventArgs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public SettingChangedEventArgs(ConfigEntryBase changedSetting)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigEntryBase
+ changedSetting
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Setting that was changed
+
+
+
Declaration
+
+
+
public ConfigEntryBase ChangedSetting { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.TomlTypeConverter.html b/api/BepInEx.Configuration.TomlTypeConverter.html
new file mode 100644
index 00000000..ea67a905
--- /dev/null
+++ b/api/BepInEx.Configuration.TomlTypeConverter.html
@@ -0,0 +1,899 @@
+
+
+
+
+
+ Class TomlTypeConverter
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TomlTypeConverter
+
+ Serializer/deserializer used by the config system.
+
+
+
+
+
Inheritance
+ System.Object
+ TomlTypeConverter
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public static class TomlTypeConverter
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Add a new type converter for a given type.
+If a different converter is already added, this call is ignored and false is returned.
+
+
+
Declaration
+
+
+
public static bool AddConverter(Type type, TypeConverter converter)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ type
+
+
+
+ TypeConverter
+ converter
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if a given type can be converted to and from string.
+
+
+
Declaration
+
+
+
public static bool CanConvert(Type type)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ type
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Convert object of a given type to a string using available converters.
+
+
+
Declaration
+
+
+
public static string ConvertToString(object value, Type valueType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+ System.Type
+ valueType
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Convert string to an object of a given type using available converters.
+
+
+
Declaration
+
+
+
public static object ConvertToValue(string value, Type valueType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ value
+
+
+
+ System.Type
+ valueType
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Convert string to an object of a given type using available converters.
+
+
+
Declaration
+
+
+
public static T ConvertToValue<T>(string value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get a converter for a given type if there is any.
+
+
+
Declaration
+
+
+
public static TypeConverter GetConverter(Type valueType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ valueType
+
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Give a list of types with registered converters.
+
+
+
Declaration
+
+
+
public static IEnumerable<Type> GetSupportedTypes()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <System.Type >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.TypeConverter.html b/api/BepInEx.Configuration.TypeConverter.html
new file mode 100644
index 00000000..2dd73a38
--- /dev/null
+++ b/api/BepInEx.Configuration.TypeConverter.html
@@ -0,0 +1,458 @@
+
+
+
+
+
+ Class TypeConverter
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TypeConverter
+
+ A serializer/deserializer combo for some type(s). Used by the config system.
+
+
+
+
+
Inheritance
+ System.Object
+ TypeConverter
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class TypeConverter
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Used to deserialize the type from a string.
+String is the data to deserialize, Type is the object's type, should return instance to an object of Type.
+
+
+
Declaration
+
+
+
public Func<string, Type, object> ConvertToObject { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Func <System.String , System.Type , System.Object >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Used to serialize the type into a (hopefully) human-readable string.
+Object is the instance to serialize, Type is the object's type.
+
+
+
Declaration
+
+
+
public Func<object, Type, string> ConvertToString { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Func <System.Object , System.Type , System.String >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Configuration.html b/api/BepInEx.Configuration.html
new file mode 100644
index 00000000..e7dfc466
--- /dev/null
+++ b/api/BepInEx.Configuration.html
@@ -0,0 +1,311 @@
+
+
+
+
+
+ Namespace BepInEx.Configuration
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Configuration
+
+
+
+
+ Classes
+
+
+ Base type of all classes representing and enforcing acceptable values of config settings.
+
+
+ Specify the list of acceptable values for a setting.
+
+
+ Specify the range of acceptable values for a setting.
+
+
+ Section and key of a setting. Used as a unique key for identification within a ConfigFile .
+The same definition can be used in multiple config files, it will point to different settings then.
+
+
+
+
+ Provides access to a single setting inside of a ConfigFile .
+
+
+ Container for a single setting of a ConfigFile .
+Each config entry is linked to one config file.
+
+
+ A helper class to handle persistent data. All public methods are thread-safe.
+
+
+ Provides access to a single setting inside of a ConfigFile .
+
+
+ Arguments for events concerning a change of a setting.
+
+
+ Serializer/deserializer used by the config system.
+
+
+ A serializer/deserializer combo for some type(s). Used by the config system.
+
+ Structs
+
+
+ A keyboard shortcut that can be used in Update method to check if user presses a key combo. The shortcut is only
+triggered when the user presses the exact combination. For example, F + LeftCtrl
will trigger only if user
+presses and holds only LeftCtrl, and then presses F. If any other keys are pressed, the shortcut will not trigger.
+Can be used as a value of a setting in Bind<T>(ConfigDefinition, T, ConfigDescription)
+to allow user to change this shortcut and have the changes saved.
+How to use: Use IsDown() in this class instead of in the Update loop.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.IInputSystem.html b/api/BepInEx.IInputSystem.html
new file mode 100644
index 00000000..47f99c75
--- /dev/null
+++ b/api/BepInEx.IInputSystem.html
@@ -0,0 +1,1421 @@
+
+
+
+
+
+ Interface IInputSystem
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Generic input system interface. Just barely good enough for hotkeys.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
+
+
public interface IInputSystem
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool anyKeyDown { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
Vector3 mousePosition { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ Vector3
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool mousePresent { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
Vector2 mouseScrollDelta { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ Vector2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
All KeyCodes supported by the current input system.
+
+
+
Declaration
+
+
+
IEnumerable<KeyCode> SupportedKeyCodes { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <KeyCode >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetKey(KeyCode key)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ KeyCode
+ key
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetKey(string name)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ name
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetKeyDown(KeyCode key)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ KeyCode
+ key
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetKeyDown(string name)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ name
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetKeyUp(KeyCode key)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ KeyCode
+ key
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetKeyUp(string name)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ name
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetMouseButton(int button)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ button
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetMouseButtonDown(int button)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ button
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool GetMouseButtonUp(int button)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ button
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ResetInputAxes()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.ConsoleLogListener.html b/api/BepInEx.Logging.ConsoleLogListener.html
new file mode 100644
index 00000000..a559975d
--- /dev/null
+++ b/api/BepInEx.Logging.ConsoleLogListener.html
@@ -0,0 +1,461 @@
+
+
+
+
+
+ Class ConsoleLogListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConsoleLogListener
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+
Inheritance
+ System.Object
+ ConsoleLogListener
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class ConsoleLogListener : ILogListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
public void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.DiskLogListener.html b/api/BepInEx.Logging.DiskLogListener.html
new file mode 100644
index 00000000..71201921
--- /dev/null
+++ b/api/BepInEx.Logging.DiskLogListener.html
@@ -0,0 +1,845 @@
+
+
+
+
+
+ Class DiskLogListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class DiskLogListener
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+
Inheritance
+ System.Object
+ DiskLogListener
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class DiskLogListener : ILogListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates a new disk log listener.
+
+
+
Declaration
+
+
+
public DiskLogListener(string localPath, LogLevel displayedLogLevel = LogLevel.Info, bool appendLog = false, bool includeUnityLog = false)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ localPath
+ Path to the log.
+
+
+
+ LogLevel
+ displayedLogLevel
+ Log levels to display.
+
+
+
+ System.Boolean
+ appendLog
+ Whether to append logs to an already existing log file.
+
+
+
+ System.Boolean
+ includeUnityLog
+ Whether to include Unity log into the disk log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public LogLevel DisplayedLogLevel { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Timer for flushing the logs to a file.
+
+
+
Declaration
+
+
+
public Timer FlushTimer { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Threading.Timer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writer for the disk log.
+
+
+
Declaration
+
+
+
public TextWriter LogWriter { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IO.TextWriter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Whether to write Unity log messages to disk log.
+
+
+
Declaration
+
+
+
public bool WriteFromUnityLog { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Disposes of Disk logger
+
+
+
Declaration
+
+
+
protected void Finalize()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
public void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.ILogListener.html b/api/BepInEx.Logging.ILogListener.html
new file mode 100644
index 00000000..0a40c101
--- /dev/null
+++ b/api/BepInEx.Logging.ILogListener.html
@@ -0,0 +1,380 @@
+
+
+
+
+
+ Interface ILogListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface ILogListener
+
+ A generic log listener that receives log events and can route them to some output (e.g. file, console, socket).
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.IDisposable.Dispose()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public interface ILogListener : IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.ILogSource.html b/api/BepInEx.Logging.ILogSource.html
new file mode 100644
index 00000000..278b996e
--- /dev/null
+++ b/api/BepInEx.Logging.ILogSource.html
@@ -0,0 +1,435 @@
+
+
+
+
+
+ Interface ILogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface ILogSource
+
+ Log source that can output log messages.
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.IDisposable.Dispose()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public interface ILogSource : IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Name of the log source.
+
+
+
Declaration
+
+
+
string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Event that sends the log message. Call System.EventHandler.Invoke(System.Object,System.EventArgs) to send a log message.
+
+
+
Declaration
+
+
+
event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.LogEventArgs.html b/api/BepInEx.Logging.LogEventArgs.html
new file mode 100644
index 00000000..257929d8
--- /dev/null
+++ b/api/BepInEx.Logging.LogEventArgs.html
@@ -0,0 +1,728 @@
+
+
+
+
+
+ Class LogEventArgs
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class LogEventArgs
+
+ Log event arguments. Contains info about the log message.
+
+
+
+
+
Inheritance
+ System.Object
+ System.EventArgs
+ LogEventArgs
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.EventArgs.Empty
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class LogEventArgs : EventArgs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates the log event args-
+
+
+
Declaration
+
+
+
public LogEventArgs(object data, LogLevel level, ILogSource source)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Logged data.
+
+
+
+ LogLevel
+ level
+ Log level of the data.
+
+
+
+ ILogSource
+ source
+ Log source that emits these args.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public object Data { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Log levels for the data.
+
+
+
Declaration
+
+
+
public LogLevel Level { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Log source that emitted the log event.
+
+
+
Declaration
+
+
+
public ILogSource Source { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ILogSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string ToStringLine()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ Same output as ToString() but with new line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.LogLevel.html b/api/BepInEx.Logging.LogLevel.html
new file mode 100644
index 00000000..015a4cd3
--- /dev/null
+++ b/api/BepInEx.Logging.LogLevel.html
@@ -0,0 +1,356 @@
+
+
+
+
+
+ Enum LogLevel
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enum LogLevel
+
+ The level, or severity of a log entry.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
[Flags]
+public enum LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
Fields
+
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+ All
+ All log levels.
+
+
+
+ Debug
+ A message that would likely only interest a developer.
+
+
+
+ Error
+ An error has occured, but can be recovered from.
+
+
+
+ Fatal
+ A fatal error has occurred, which cannot be recovered from.
+
+
+
+ Info
+ A message of low importance.
+
+
+
+ Message
+ An important message that should be displayed to the user.
+
+
+
+ None
+ No level selected.
+
+
+
+ Warning
+ A warning has been produced, but does not necessarily mean that something wrong has happened.
+
+
+
+
+
+ Extension Methods
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.LogLevelExtensions.html b/api/BepInEx.Logging.LogLevelExtensions.html
new file mode 100644
index 00000000..32143417
--- /dev/null
+++ b/api/BepInEx.Logging.LogLevelExtensions.html
@@ -0,0 +1,494 @@
+
+
+
+
+
+ Class LogLevelExtensions
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class LogLevelExtensions
+
+ Helper methods for log level handling.
+
+
+
+
+
Inheritance
+ System.Object
+ LogLevelExtensions
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public static class LogLevelExtensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Returns a translation of a log level to it's associated console colour.
+
+
+
Declaration
+
+
+
public static ConsoleColor GetConsoleColor(this LogLevel level)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ LogLevel
+ level
+ The log level(s).
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.ConsoleColor
+ A console color associated with the highest log level supplied.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gets the highest log level when there could potentially be multiple levels provided.
+
+
+
Declaration
+
+
+
public static LogLevel GetHighestLevel(this LogLevel levels)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ LogLevel
+ levels
+ The log level(s).
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+ The highest log level supplied.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.Logger.html b/api/BepInEx.Logging.Logger.html
new file mode 100644
index 00000000..78ca9642
--- /dev/null
+++ b/api/BepInEx.Logging.Logger.html
@@ -0,0 +1,540 @@
+
+
+
+
+
+ Class Logger
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Logger
+
+ A static Logger instance.
+
+
+
+
+
Inheritance
+ System.Object
+ Logger
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public static class Logger
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Collection of all log listeners that receive log events.
+
+
+
Declaration
+
+
+
public static ICollection<ILogListener> Listeners { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.ICollection <ILogListener >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Collection of all log source that output log events.
+
+
+
Declaration
+
+
+
public static ICollection<ILogSource> Sources { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.ICollection <ILogSource >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Creates a new log source with a name and attaches it to log sources.
+
+
+
Declaration
+
+
+
public static ManualLogSource CreateLogSource(string sourceName)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ sourceName
+ Name of the log source to create.
+
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.ManualLogSource.html b/api/BepInEx.Logging.ManualLogSource.html
new file mode 100644
index 00000000..9cac9ebb
--- /dev/null
+++ b/api/BepInEx.Logging.ManualLogSource.html
@@ -0,0 +1,1048 @@
+
+
+
+
+
+ Class ManualLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ManualLogSource
+
+ A generic, multi-purpose log source. Exposes simple API to manually emit logs.
+
+
+
+
+
Inheritance
+ System.Object
+ ManualLogSource
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class ManualLogSource : ILogSource, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates a manual log source.
+
+
+
Declaration
+
+
+
public ManualLogSource(string sourceName)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ sourceName
+ Name of the log source.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Name of the log source.
+
+
+
Declaration
+
+
+
public string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with the specified log level.
+
+
+
Declaration
+
+
+
public void Log(LogLevel level, object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ LogLevel
+ level
+ Log levels to attach to the message. Multiple can be used with bitwise ORing.
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Debug level.
+
+
+
Declaration
+
+
+
public void LogDebug(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Error level.
+
+
+
Declaration
+
+
+
public void LogError(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Fatal level.
+
+
+
Declaration
+
+
+
public void LogFatal(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Info level.
+
+
+
Declaration
+
+
+
public void LogInfo(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Message level.
+
+
+
Declaration
+
+
+
public void LogMessage(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Warning level.
+
+
+
Declaration
+
+
+
public void LogWarning(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Event that sends the log message. Call System.EventHandler.Invoke(System.Object,System.EventArgs) to send a log message.
+
+
+
Declaration
+
+
+
public event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.TraceLogSource.html b/api/BepInEx.Logging.TraceLogSource.html
new file mode 100644
index 00000000..73873e73
--- /dev/null
+++ b/api/BepInEx.Logging.TraceLogSource.html
@@ -0,0 +1,981 @@
+
+
+
+
+
+ Class TraceLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TraceLogSource
+
+ A source that routes all logs from System.Diagnostics.Trace API to BepInEx logger.
+
+
+
+
+
Inheritance
+ System.Object
+ System.MarshalByRefObject
+ System.Diagnostics.TraceListener
+ TraceLogSource
+
+
+
+
Implements
+
+ System.IDisposable
+
+
+
+
+
Inherited Members
+
+
+ System.Diagnostics.TraceListener.Dispose()
+
+
+ System.Diagnostics.TraceListener.Dispose(System.Boolean)
+
+
+ System.Diagnostics.TraceListener.Close()
+
+
+ System.Diagnostics.TraceListener.Flush()
+
+
+ System.Diagnostics.TraceListener.Fail(System.String)
+
+
+ System.Diagnostics.TraceListener.Fail(System.String, System.String)
+
+
+ System.Diagnostics.TraceListener.GetSupportedAttributes()
+
+
+ System.Diagnostics.TraceListener.Write(System.Object)
+
+
+ System.Diagnostics.TraceListener.Write(System.String, System.String)
+
+
+ System.Diagnostics.TraceListener.Write(System.Object, System.String)
+
+
+ System.Diagnostics.TraceListener.WriteIndent()
+
+
+ System.Diagnostics.TraceListener.WriteLine(System.Object)
+
+
+ System.Diagnostics.TraceListener.WriteLine(System.String, System.String)
+
+
+ System.Diagnostics.TraceListener.WriteLine(System.Object, System.String)
+
+
+ System.Diagnostics.TraceListener.TraceData(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32, System.Object)
+
+
+ System.Diagnostics.TraceListener.TraceData(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32, System.Object[])
+
+
+ System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32)
+
+
+ System.Diagnostics.TraceListener.TraceTransfer(System.Diagnostics.TraceEventCache, System.String, System.Int32, System.String, System.Guid)
+
+
+ System.Diagnostics.TraceListener.Attributes
+
+
+ System.Diagnostics.TraceListener.Name
+
+
+ System.Diagnostics.TraceListener.IsThreadSafe
+
+
+ System.Diagnostics.TraceListener.IndentLevel
+
+
+ System.Diagnostics.TraceListener.IndentSize
+
+
+ System.Diagnostics.TraceListener.Filter
+
+
+ System.Diagnostics.TraceListener.NeedIndent
+
+
+ System.Diagnostics.TraceListener.TraceOutputOptions
+
+
+ System.MarshalByRefObject.MemberwiseClone(System.Boolean)
+
+
+ System.MarshalByRefObject.GetLifetimeService()
+
+
+ System.MarshalByRefObject.InitializeLifetimeService()
+
+
+ System.MarshalByRefObject.CreateObjRef(System.Type)
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class TraceLogSource : TraceListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates a new trace log source.
+
+
+
Declaration
+
+
+
protected TraceLogSource()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Whether Trace logs are rerouted.
+
+
+
Declaration
+
+
+
public static bool IsListening { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected ManualLogSource LogSource { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Creates a new trace log source.
+
+
+
Declaration
+
+
+
public static ILogSource CreateSource()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ILogSource
+ New log source (or already existing one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Diagnostics.TraceEventCache
+ eventCache
+
+
+
+ System.String
+ source
+
+
+
+ System.Diagnostics.TraceEventType
+ eventType
+
+
+
+ System.Int32
+ id
+
+
+
+ System.String
+ message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32, System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Diagnostics.TraceEventCache
+ eventCache
+
+
+
+ System.String
+ source
+
+
+
+ System.Diagnostics.TraceEventType
+ eventType
+
+
+
+ System.Int32
+ id
+
+
+
+ System.String
+ format
+
+
+
+ System.Object []
+ args
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32, System.String, System.Object[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void Write(string message)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ message
+ The message to write.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Diagnostics.TraceListener.Write(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writes a message and a newline to the underlying ManualLogSource instance.
+
+
+
Declaration
+
+
+
public override void WriteLine(string message)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ message
+ The message to write.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Diagnostics.TraceListener.WriteLine(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.UnityLogListener.html b/api/BepInEx.Logging.UnityLogListener.html
new file mode 100644
index 00000000..a11347be
--- /dev/null
+++ b/api/BepInEx.Logging.UnityLogListener.html
@@ -0,0 +1,461 @@
+
+
+
+
+
+ Class UnityLogListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class UnityLogListener
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+
Inheritance
+ System.Object
+ UnityLogListener
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class UnityLogListener : ILogListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
public void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.UnityLogSource.html b/api/BepInEx.Logging.UnityLogSource.html
new file mode 100644
index 00000000..93e433a4
--- /dev/null
+++ b/api/BepInEx.Logging.UnityLogSource.html
@@ -0,0 +1,569 @@
+
+
+
+
+
+ Class UnityLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class UnityLogSource
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+
Inheritance
+ System.Object
+ UnityLogSource
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class UnityLogSource : ILogSource, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates a new Unity log source.
+
+
+
Declaration
+
+
+
public UnityLogSource()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Name of the log source.
+
+
+
Declaration
+
+
+
public string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Event that sends the log message. Call System.EventHandler.Invoke(System.Object,System.EventArgs) to send a log message.
+
+
+
Declaration
+
+
+
public event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Logging.html b/api/BepInEx.Logging.html
new file mode 100644
index 00000000..36066ed1
--- /dev/null
+++ b/api/BepInEx.Logging.html
@@ -0,0 +1,303 @@
+
+
+
+
+
+ Namespace BepInEx.Logging
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Logging
+
+
+
+
+ Classes
+
+
+ Logs entries using Unity specific outputs.
+
+
+ Logs entries using Unity specific outputs.
+
+
+ Log event arguments. Contains info about the log message.
+
+
+ A static Logger instance.
+
+
+ Helper methods for log level handling.
+
+
+ A generic, multi-purpose log source. Exposes simple API to manually emit logs.
+
+
+ A source that routes all logs from System.Diagnostics.Trace API to BepInEx logger.
+
+
+ Logs entries using Unity specific outputs.
+
+
+ Logs entries using Unity specific outputs.
+
+ Interfaces
+
+
+ A generic log listener that receives log events and can route them to some output (e.g. file, console, socket).
+
+
+ Log source that can output log messages.
+
+ Enums
+
+
+ The level, or severity of a log entry.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.MetadataHelper.html b/api/BepInEx.MetadataHelper.html
new file mode 100644
index 00000000..2e5def8b
--- /dev/null
+++ b/api/BepInEx.MetadataHelper.html
@@ -0,0 +1,771 @@
+
+
+
+
+
+ Class MetadataHelper
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Helper class to use for retrieving metadata about a plugin, defined as attributes.
+
+
+
+
+
Inheritance
+ System.Object
+ MetadataHelper
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
+
+
public static class MetadataHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Gets the specified attributes of an instance, if they exist.
+
+
+
Declaration
+
+
+
public static IEnumerable<T> GetAttributes<T>(object plugin)
+ where T : Attribute
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ plugin
+ The plugin instance.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <T>
+ The attributes of the instance, if existing.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ The attribute type to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gets the specified attributes of a type, if they exist.
+
+
+
Declaration
+
+
+
public static T[] GetAttributes<T>(Type pluginType)
+ where T : Attribute
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ pluginType
+ The plugin type.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T[]
+ The attributes of the type, if existing.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ The attribute type to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves the dependencies of the specified plugin type.
+
+
+
Declaration
+
+
+
public static IEnumerable<BepInDependency> GetDependencies(Type plugin)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ plugin
+ The plugin type.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <BepInDependency >
+ A list of all plugin types that the specified plugin type depends upon.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves the BepInPlugin metadata from a plugin instance.
+
+
+
Declaration
+
+
+
public static BepInPlugin GetMetadata(object plugin)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ plugin
+ The plugin instance.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ BepInPlugin
+ The BepInPlugin metadata of the plugin instance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves the BepInPlugin metadata from a plugin type.
+
+
+
Declaration
+
+
+
public static BepInPlugin GetMetadata(Type pluginType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ pluginType
+ The plugin type.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ BepInPlugin
+ The BepInPlugin metadata of the plugin type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Paths.html b/api/BepInEx.Paths.html
new file mode 100644
index 00000000..e05fcfe7
--- /dev/null
+++ b/api/BepInEx.Paths.html
@@ -0,0 +1,1142 @@
+
+
+
+
+
+ Class Paths
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Paths
+
+
+
+
+
+
Inheritance
+ System.Object
+ Paths
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public static class Paths
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The directory that the core BepInEx DLLs reside in.
+
+
+
Declaration
+
+
+
public static string BepInExAssemblyDirectory { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the core BepInEx DLL.
+
+
+
Declaration
+
+
+
public static string BepInExAssemblyPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the global BepInEx configuration file.
+
+
+
Declaration
+
+
+
public static string BepInExConfigPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the main BepInEx folder.
+
+
+
Declaration
+
+
+
public static string BepInExRootPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to temporary cache files.
+
+
+
Declaration
+
+
+
public static string CachePath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the config directory.
+
+
+
Declaration
+
+
+
public static string ConfigPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
List of directories from where Mono will search assemblies before assembly resolving is invoked.
+
+
+
Declaration
+
+
+
public static string[] DllSearchPaths { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String []
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path of the currently executing program BepInEx is encapsulated in.
+
+
+
Declaration
+
+
+
public static string ExecutablePath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The directory that the currently executing process resides in.
+
On OSX however, this is the parent directory of the game.app folder.
+
+
+
Declaration
+
+
+
public static string GameRootPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the Managed folder of the currently running Unity game.
+
+
+
Declaration
+
+
+
public static string ManagedPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the patcher plugin folder which resides in the BepInEx folder.
+
+
+
Declaration
+
+
+
public static string PatcherPluginPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the plugin folder which resides in the BepInEx folder.
+
+ This is ONLY guaranteed to be set correctly when Chainloader has been initialized.
+
+
+
+
Declaration
+
+
+
public static string PluginPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The name of the currently executing process.
+
+
+
Declaration
+
+
+
public static string ProcessName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.PluginInfo.html b/api/BepInEx.PluginInfo.html
new file mode 100644
index 00000000..f2d628c3
--- /dev/null
+++ b/api/BepInEx.PluginInfo.html
@@ -0,0 +1,906 @@
+
+
+
+
+
+ Class PluginInfo
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class PluginInfo
+
+ Data class that represents information about a loadable BepInEx plugin.
+Contains all metadata and additional info required for plugin loading by Chainloader .
+
+
+
+
+
Inheritance
+ System.Object
+ PluginInfo
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public class PluginInfo : ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Collection of BepInDependency attributes that describe what plugins this plugin depends on.
+
+
+
Declaration
+
+
+
public IEnumerable<BepInDependency> Dependencies { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <BepInDependency >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Collection of BepInIncompatibility attributes that describe what plugins this plugin
+is incompatible with.
+
+
+
Declaration
+
+
+
public IEnumerable<BepInIncompatibility> Incompatibilities { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <BepInIncompatibility >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance of the plugin that represents this info. NULL if no plugin is instantiated from info (yet)
+
+
+
Declaration
+
+
+
public BaseUnityPlugin Instance { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
File path to the plugin DLL
+
+
+
Declaration
+
+
+
public string Location { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
General metadata about a plugin.
+
+
+
Declaration
+
+
+
public BepInPlugin Metadata { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Collection of BepInProcess attributes that describe what processes the plugin can run on.
+
+
+
Declaration
+
+
+
public IEnumerable<BepInProcess> Processes { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <BepInProcess >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Load(BinaryReader br)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryReader
+ br
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Save(BinaryWriter bw)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryWriter
+ bw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.ThreadingExtensions.html b/api/BepInEx.ThreadingExtensions.html
new file mode 100644
index 00000000..1c9555af
--- /dev/null
+++ b/api/BepInEx.ThreadingExtensions.html
@@ -0,0 +1,601 @@
+
+
+
+
+
+ Class ThreadingExtensions
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ThreadingExtensions
+
+ Convenience extensions for utilizing multiple threads and using the ThreadingHelper .
+
+
+
+
+
Inheritance
+ System.Object
+ ThreadingExtensions
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public static class ThreadingExtensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Apply a function to a collection of data by spreading the work on multiple threads.
+Outputs of the functions are returned to the current thread and yielded one by one.
+
+
+
Declaration
+
+
+
public static IEnumerable<TOut> RunParallel<TIn, TOut>(this IEnumerable<TIn> data, Func<TIn, TOut> work, int workerCount = -1)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IEnumerable <TIn>
+ data
+
+
+
+ System.Func <TIn, TOut>
+ work
+ Function to apply to the data on multiple threads at once.
+
+
+
+ System.Int32
+ workerCount
+ Number of worker threads. By default SystemInfo.processorCount is used.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <TOut>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ TIn
+ Type of the input values.
+
+
+
+ TOut
+ Type of the output values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.Reflection.TargetInvocationException
+ An exception was thrown inside one of the threads, and the operation was aborted.
+
+
+
+ System.ArgumentException
+ Need at least 1 workerCount.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Apply a function to a collection of data by spreading the work on multiple threads.
+Outputs of the functions are returned to the current thread and yielded one by one.
+
+
+
Declaration
+
+
+
public static IEnumerable<TOut> RunParallel<TIn, TOut>(this IList<TIn> data, Func<TIn, TOut> work, int workerCount = -1)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IList <TIn>
+ data
+ Input values for the work function.
+
+
+
+ System.Func <TIn, TOut>
+ work
+ Function to apply to the data on multiple threads at once.
+
+
+
+ System.Int32
+ workerCount
+ Number of worker threads. By default SystemInfo.processorCount is used.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <TOut>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ TIn
+ Type of the input values.
+
+
+
+ TOut
+ Type of the output values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.Reflection.TargetInvocationException
+ An exception was thrown inside one of the threads, and the operation was aborted.
+
+
+
+ System.ArgumentException
+ Need at least 1 workerCount.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.ThreadingHelper.html b/api/BepInEx.ThreadingHelper.html
new file mode 100644
index 00000000..63988602
--- /dev/null
+++ b/api/BepInEx.ThreadingHelper.html
@@ -0,0 +1,886 @@
+
+
+
+
+
+ Class ThreadingHelper
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ThreadingHelper
+
+ Provides methods for running code on other threads and synchronizing with the main thread.
+
+
+
+
+
Inheritance
+ System.Object
+ ThreadingHelper
+
+
+
+
Implements
+
+ System.ComponentModel.ISynchronizeInvoke
+
+
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public sealed class ThreadingHelper : MonoBehaviour, ISynchronizeInvoke
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Current instance of the helper.
+
+
+
Declaration
+
+
+
public static ThreadingHelper Instance { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
False if current code is executing on the main unity thread, otherwise True.
+Warning: Will return true before the first frame finishes (i.e. inside plugin Awake and Start methods).
+
+
+
Declaration
+
+
+
public bool InvokeRequired { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gives methods for invoking delegates on the main unity thread, both synchronously and asynchronously.
+Can be used in many built-in framework types, for example System.IO.FileSystemWatcher.SynchronizingObject
+and System.Timers.Timer.SynchronizingObject to make their events fire on the main unity thread.
+
+
+
Declaration
+
+
+
public static ISynchronizeInvoke SynchronizingObject { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.ComponentModel.ISynchronizeInvoke
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Queue the delegate to be invoked on a background thread. Use this to run slow tasks without affecting the game.
+NOTE: Most of Unity API can not be accessed while running on another thread!
+
+
+
Declaration
+
+
+
public void StartAsyncInvoke(Func<Action> action)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Func <System.Action >
+ action
+ Task to be executed on another thread. Can optionally return an Action that will be executed on the main thread.
+You can use this action to return results of your work safely. Return null if this is not needed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Queue the delegate to be invoked on the main unity thread. Use to synchronize your threads.
+
+
+
Declaration
+
+
+
public void StartSyncInvoke(Action action)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Action
+ action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
IAsyncResult ISynchronizeInvoke.BeginInvoke(Delegate method, object[] args)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Delegate
+ method
+
+
+
+ System.Object []
+ args
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IAsyncResult
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
object ISynchronizeInvoke.EndInvoke(IAsyncResult result)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IAsyncResult
+ result
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
object ISynchronizeInvoke.Invoke(Delegate method, object[] args)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Delegate
+ method
+
+
+
+ System.Object []
+ args
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.ComponentModel.ISynchronizeInvoke
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.UnityInput.html b/api/BepInEx.UnityInput.html
new file mode 100644
index 00000000..b68b778c
--- /dev/null
+++ b/api/BepInEx.UnityInput.html
@@ -0,0 +1,458 @@
+
+
+
+
+
+ Class UnityInput
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Abstraction layer over Unity's input systems for use in universal plugins that need to use hotkeys.
+It can use either Input or Unity.InputSystem, depending on what's available. Input is preferred.
+WARNING: Use only inside of Unity's main thread!
+
+
+
+
+
Inheritance
+ System.Object
+ UnityInput
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
+
+
public static class UnityInput
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Best currently supported input system.
+
+
+
Declaration
+
+
+
public static IInputSystem Current { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
True if the Input class is not disabled.
+
+
+
Declaration
+
+
+
public static bool LegacyInputSystemAvailable { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.Utility.html b/api/BepInEx.Utility.html
new file mode 100644
index 00000000..b9301fdd
--- /dev/null
+++ b/api/BepInEx.Utility.html
@@ -0,0 +1,1645 @@
+
+
+
+
+
+ Class Utility
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Utility
+
+ Generic helper properties and methods.
+
+
+
+
+
Inheritance
+ System.Object
+ Utility
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.dll
+
+
+
Syntax
+
+
public static class Utility
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Whether current Common Language Runtime supports dynamic method generation using System.Reflection.Emit namespace.
+
+
+
Declaration
+
+
+
public static bool CLRSupportsDynamicAssemblies { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
An encoding for UTF-8 which does not emit a byte order mark (BOM).
+
+
+
Declaration
+
+
+
public static Encoding UTF8NoBom { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Text.Encoding
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Combines multiple paths together, as the specific method is not available in .NET 3.5.
+
+
+
Declaration
+
+
+
public static string CombinePaths(params string[] parts)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String []
+ parts
+ The multiple paths to combine together.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ A combined path.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Converts a file path into a UnityEngine.WWW format.
+
+
+
Declaration
+
+
+
public static string ConvertToWWWFormat(string path)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ path
+ The file path to convert.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ A converted file path.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gets unique files in all given directories. If the file with the same name exists in multiple directories,
+only the first occurrence is returned.
+
+
+
Declaration
+
+
+
public static IEnumerable<string> GetUniqueFilesInDirectories(IEnumerable<string> directories, string pattern = "*")
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IEnumerable <System.String >
+ directories
+ Directories to search from.
+
+
+
+ System.String
+ pattern
+ File pattern to search.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <System.String >
+ Collection of all files in the directories.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Indicates whether a specified string is null, empty, or consists only of white-space characters.
+
+
+
Declaration
+
+
+
public static bool IsNullOrWhiteSpace(this string self)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ self
+ The string to test.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True if the value parameter is null or empty, or if value consists exclusively of white-space characters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Checks whether a given cecil type definition is a subtype of a provided type.
+
+
+
Declaration
+
+
+
public static bool IsSubtypeOf(this TypeDefinition self, Type td)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ TypeDefinition
+ self
+ Cecil type definition
+
+
+
+ System.Type
+ td
+ Type to check against
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ Whether the given cecil type is a subtype of the type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the parent directory of a path, optionally specifying the amount of levels.
+
+
+
Declaration
+
+
+
public static string ParentDirectory(string path, int levels = 1)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ path
+ The path to get the parent directory of.
+
+
+
+ System.Int32
+ levels
+ The amount of levels to traverse. Defaults to 1
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ The parent directory.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tries to parse a bool, with a default value if unable to parse.
+
+
+
Declaration
+
+
+
public static bool SafeParseBool(string input, bool defaultValue = false)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ input
+ The string to parse
+
+
+
+ System.Boolean
+ defaultValue
+ The value to return if parsing is unsuccessful.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ Boolean value of input if able to be parsed, otherwise default value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Sorts a given dependency graph using a direct toposort, reporting possible cyclic dependencies.
+
+
+
Declaration
+
+
+
public static IEnumerable<TNode> TopologicalSort<TNode>(IEnumerable<TNode> nodes, Func<TNode, IEnumerable<TNode>> dependencySelector)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IEnumerable <TNode>
+ nodes
+ Nodes to sort
+
+
+
+ System.Func <TNode, System.Collections.Generic.IEnumerable <TNode>>
+ dependencySelector
+ Function that maps a node to a collection of its dependencies.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <TNode>
+ Collection of nodes sorted in the order of least dependencies to the most.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ TNode
+ Type of the node in a dependency graph.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.Exception
+ Thrown when a cyclic dependency occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to perform an action.
+
+
+
Declaration
+
+
+
public static bool TryDo(Action action, out Exception exception)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Action
+ action
+ Action to perform.
+
+
+
+ System.Exception
+ exception
+ Possible exception that gets returned.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True, if action succeeded, false if an exception occured.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tries to create a file with the given name
+
+
+
Declaration
+
+
+
public static bool TryOpenFileStream(string path, FileMode mode, out FileStream fileStream, FileAccess access = FileAccess.ReadWrite, FileShare share = FileShare.Read)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ path
+ Path of the file to create
+
+
+
+ System.IO.FileMode
+ mode
+ File open mode
+
+
+
+ System.IO.FileStream
+ fileStream
+ Resulting filestream
+
+
+
+ System.IO.FileAccess
+ access
+ File access options
+
+
+
+ System.IO.FileShare
+ share
+ File share options
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to parse given string as an assembly name
+
+
+
Declaration
+
+
+
public static bool TryParseAssemblyName(string fullName, out AssemblyName assemblyName)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ fullName
+ Fully qualified assembly name
+
+
+
+ System.Reflection.AssemblyName
+ assemblyName
+ Resulting System.Reflection.AssemblyName instance
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ true
, if parsing was successful, otherwise false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to resolve and load the given assembly DLL.
+
+
+
Declaration
+
+
+
public static bool TryResolveDllAssembly(AssemblyName assemblyName, string directory, ReaderParameters readerParameters, out AssemblyDefinition assembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.AssemblyName
+ assemblyName
+ Name of the assembly, of the type System.Reflection.AssemblyName .
+
+
+
+ System.String
+ directory
+ Directory to search the assembly from.
+
+
+
+ ReaderParameters
+ readerParameters
+ Reader parameters that contain possible custom assembly resolver.
+
+
+
+ AssemblyDefinition
+ assembly
+ The loaded assembly.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True, if the assembly was found and loaded. Otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to resolve and load the given assembly DLL.
+
+
+
Declaration
+
+
+
public static bool TryResolveDllAssembly(AssemblyName assemblyName, string directory, out Assembly assembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.AssemblyName
+ assemblyName
+ Name of the assembly, of the type System.Reflection.AssemblyName .
+
+
+
+ System.String
+ directory
+ Directory to search the assembly from.
+
+
+
+ System.Reflection.Assembly
+ assembly
+ The loaded assembly.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True, if the assembly was found and loaded. Otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/BepInEx.html b/api/BepInEx.html
new file mode 100644
index 00000000..5bde8a10
--- /dev/null
+++ b/api/BepInEx.html
@@ -0,0 +1,312 @@
+
+
+
+
+
+ Namespace BepInEx
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx
+
+
+
+
+ Classes
+
+
+ The base plugin type that is used by the BepInEx plugin loader.
+
+
+ This attribute specifies any dependencies that this plugin has on other plugins.
+
+
+ This attribute specifies other plugins that are incompatible with this plugin.
+
+
+ This attribute denotes that a class is a plugin, and specifies the required metadata.
+
+
+ This attribute specifies which processes this plugin should be run for. Not specifying this attribute will load the plugin under every process.
+
+
+ Helper class to use for retrieving metadata about a plugin, defined as attributes.
+
+
+
+
+ Data class that represents information about a loadable BepInEx plugin.
+Contains all metadata and additional info required for plugin loading by Chainloader .
+
+
+ Convenience extensions for utilizing multiple threads and using the ThreadingHelper .
+
+
+ Provides methods for running code on other threads and synchronizing with the main thread.
+
+
+ Abstraction layer over Unity's input systems for use in universal plugins that need to use hotkeys.
+It can use either Input or Unity.InputSystem, depending on what's available. Input is preferred.
+WARNING: Use only inside of Unity's main thread!
+
+
+ Generic helper properties and methods.
+
+ Interfaces
+
+
+ Generic input system interface. Just barely good enough for hotkeys.
+
+ Enums
+
+
+ Flags that are applied to a dependency
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/index.html b/api/index.html
new file mode 100644
index 00000000..0a5e7dc3
--- /dev/null
+++ b/api/index.html
@@ -0,0 +1,267 @@
+
+
+
+
+
+ BepInEx API documentation | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BepInEx API documentation
+
+This page contains documentation for BepInEx API.
+Main namespaces of BepInEx
+
+Contains most commonly used API provided by BepInEx.
+Important classes:
+
+
+Contains internals of BepInEx plugin loader. Allows access to other loaded plugins.
+
+All classes related to logging in BepInEx.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/api/toc.html b/api/toc.html
new file mode 100644
index 00000000..8bce5bc7
--- /dev/null
+++ b/api/toc.html
@@ -0,0 +1,171 @@
+
+
\ No newline at end of file
diff --git a/articles/advanced/compatibility.html b/articles/advanced/compatibility.html
new file mode 100644
index 00000000..66484b48
--- /dev/null
+++ b/articles/advanced/compatibility.html
@@ -0,0 +1,257 @@
+
+
+
+
+
+ External mod loader support | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+
+
+BepInEx allows for easy integration of other Unity modding frameworks. That way
+you can get the benefit of installing only one framework without worrying about
+potential compatibility issues. Moreover, by using BepInEx to power plugins
+from other frameworks you get the benefits of
+
+Easy installation: BepInEx installation is as simple as a drag-and-drop
+Support: BepInEx is actively maintained and supported while being fully open-source
+High compatibility: BepInEx strives to support as many platforms as it can as stable as it can
+
+As of right now, BepInEx 5 has loaders for the following frameworks and tools:
+
+
+
+Framework/Loader
+BepInEx Loader
+Status
+
+
+
+
+BSIPA (Beat Saber IPA)
+BepInEx.BSIPA.Loader
+Stable, Supports most features
+
+
+IPA (Illusion Plugin Architecture)
+IPALoaderX
+Stable, Maintained, Full interop
+
+
+MonoMod Patches
+MonoModLoader
+Stable, Maintained, Supports most featues
+
+
+MuseDash ModLoader
+BepInEx.MDML.Loader
+Stable, Maintained, Full interop
+
+
+Sybaris 2
+SybarisLoader
+Stable, Maintained, Full interop
+
+
+UMod Framework
+BepInEx.uMod.Loader
+Stable, Maintained, Supports most features
+
+
+Unity Mod Manger
+Yan.UMMLoader
+WIP, Maintaned by community, Full interop
+
+
+UnityInjector
+UnityInjectorLoader
+Stable, Maintained, Full interop
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/advanced/debug/assemblies_dnSpy.html b/articles/advanced/debug/assemblies_dnSpy.html
new file mode 100644
index 00000000..44e9b9da
--- /dev/null
+++ b/articles/advanced/debug/assemblies_dnSpy.html
@@ -0,0 +1,236 @@
+
+
+
+
+
+ Debugging all assemblies with dnSpy | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Debugging patched assemblies
+
+In some cases it is useful to be able to also debug assemblies that have been patched via BepInEx's preloader.
+However, this is very difficult, as the preloader patches and loads assemblies directly in memory, which makes debugging with dnSpy impossible without additional tinkering.
+Using BepInEx LoadDumpedAssemblies
option
+BepInEx includes two new configuration options: LoadDumpedAssemblies
and BreakBeforeLoadAssemblies
. With these, it is possible to debug assemblies loaded via the preloader (i.e. Assembly-CSharp).
+First install debug version of mono and download dnSpy if you haven't done so yet.
+Run the game once in order for BepInEx to generate its full configuration file.
+Then, open to BepInEx/config/BepInEx.cfg
and edit the the two configuration options to have the following values:
+LoadDumpedAssemblies = true
+
+BreakBeforeLoadAssemblies = true
+
+After that [run the game via dnSpy](Debugging with dnSpy #running-the-game-via-dnspy).
+
+
Warning
+
The assemblies in DumpedAssemblies
must not be opened before debugging!
+This is because otherwise BepInEx will not be able to write to the folder!
+
+If everything worked, BepInEx will launch, patch assemblies and automatically break the execution and display a message in console:
+
+Now go to BepInEx/DumpedAssemblies
(as specified in the console), open patched assemblies you want to debug and set breakpoints.
+When you're done, click Continue
in the top bar to continue execution.
+BepInEx will continue loading the patched assemblies. If everything worked, you will eventually hit a breakpoint in the patched assembly:
+
+Using dnSpy's module view
+In Debug mode, dnSpy provides the ability to access all assemblies that are loaded in memory.
+That way you are able to access all
+assemblies that were loaded in memory -- even dynamic assemblies (ones generated by Harmony, for example).
+When in debug mode, open the modules window by selecting Debug > Windows > Modules
+
+The opened tab shows all modules already loaded into memory:
+
+You can open modules by double-clicking them. This opens them in dnSpy, after which you can
+put breakpoints like you normally would.
+Finally, it's possible to put breakpoints for when an assembly has been loaded.
+For that, select Debug > Windows > Module Breakpoints
. This will open a window into which
+you can put the names of the modules to break on.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/advanced/debug/images/bepin_breakpoint_hit.png b/articles/advanced/debug/images/bepin_breakpoint_hit.png
new file mode 100644
index 00000000..4421dd0e
Binary files /dev/null and b/articles/advanced/debug/images/bepin_breakpoint_hit.png differ
diff --git a/articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png b/articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png
new file mode 100644
index 00000000..da43f4a3
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png differ
diff --git a/articles/advanced/debug/images/dnSpy_breakpoint_hit.png b/articles/advanced/debug/images/dnSpy_breakpoint_hit.png
new file mode 100644
index 00000000..bd886b49
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_breakpoint_hit.png differ
diff --git a/articles/advanced/debug/images/dnSpy_debug.png b/articles/advanced/debug/images/dnSpy_debug.png
new file mode 100644
index 00000000..5f845678
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_debug.png differ
diff --git a/articles/advanced/debug/images/dnSpy_dragndrop.png b/articles/advanced/debug/images/dnSpy_dragndrop.png
new file mode 100644
index 00000000..43423698
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_dragndrop.png differ
diff --git a/articles/advanced/debug/images/dnSpy_module_breakpoints.png b/articles/advanced/debug/images/dnSpy_module_breakpoints.png
new file mode 100644
index 00000000..3f7b6206
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_module_breakpoints.png differ
diff --git a/articles/advanced/debug/images/dnSpy_modules.png b/articles/advanced/debug/images/dnSpy_modules.png
new file mode 100644
index 00000000..11755fcb
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_modules.png differ
diff --git a/articles/advanced/debug/images/dnSpy_modules_view.png b/articles/advanced/debug/images/dnSpy_modules_view.png
new file mode 100644
index 00000000..15e4af2d
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_modules_view.png differ
diff --git a/articles/advanced/debug/images/dnSpy_set_breakpoint.png b/articles/advanced/debug/images/dnSpy_set_breakpoint.png
new file mode 100644
index 00000000..f7eff294
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_set_breakpoint.png differ
diff --git a/articles/advanced/debug/images/dnSpy_start_debug.png b/articles/advanced/debug/images/dnSpy_start_debug.png
new file mode 100644
index 00000000..261a9578
Binary files /dev/null and b/articles/advanced/debug/images/dnSpy_start_debug.png differ
diff --git a/articles/advanced/debug/images/vstu_debugger_select.png b/articles/advanced/debug/images/vstu_debugger_select.png
new file mode 100644
index 00000000..89512169
Binary files /dev/null and b/articles/advanced/debug/images/vstu_debugger_select.png differ
diff --git a/articles/advanced/debug/images/vstu_pdb2mdb.gif b/articles/advanced/debug/images/vstu_pdb2mdb.gif
new file mode 100644
index 00000000..0c0ee13b
Binary files /dev/null and b/articles/advanced/debug/images/vstu_pdb2mdb.gif differ
diff --git a/articles/advanced/debug/images/vstu_plugin_install.png b/articles/advanced/debug/images/vstu_plugin_install.png
new file mode 100644
index 00000000..cabdd08f
Binary files /dev/null and b/articles/advanced/debug/images/vstu_plugin_install.png differ
diff --git a/articles/advanced/debug/images/vstu_select.png b/articles/advanced/debug/images/vstu_select.png
new file mode 100644
index 00000000..fbdc838b
Binary files /dev/null and b/articles/advanced/debug/images/vstu_select.png differ
diff --git a/articles/advanced/debug/images/vstu_select_process.png b/articles/advanced/debug/images/vstu_select_process.png
new file mode 100644
index 00000000..e38126d3
Binary files /dev/null and b/articles/advanced/debug/images/vstu_select_process.png differ
diff --git a/articles/advanced/debug/images/vstu_works.png b/articles/advanced/debug/images/vstu_works.png
new file mode 100644
index 00000000..b47e4b59
Binary files /dev/null and b/articles/advanced/debug/images/vstu_works.png differ
diff --git a/articles/advanced/debug/index.html b/articles/advanced/debug/index.html
new file mode 100644
index 00000000..cdab3555
--- /dev/null
+++ b/articles/advanced/debug/index.html
@@ -0,0 +1,206 @@
+
+
+
+
+
+ Debugging plugins | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Debugging plugins
+
+Debugging BepInEx plugins can pose a challenge depending on the game and the plugin.
+Currently there are two ways to debug plugins and Unity games
+
+Using dnSpy and its debug builds of the Mono runtime
+Converting the game to debug build and using Visual Studio Tools for Unity (or Rider's Unity extension)
+
+Depending on your needs an tooling, you might need to use different approaches
+to debugging Unity games. If you are unsure which way to use, we suggest
+first trying out debugging with dnSpy.
+Please refer to specific debugging guides on the subpages.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/advanced/debug/plugins_dnSpy.html b/articles/advanced/debug/plugins_dnSpy.html
new file mode 100644
index 00000000..7d74ee76
--- /dev/null
+++ b/articles/advanced/debug/plugins_dnSpy.html
@@ -0,0 +1,261 @@
+
+
+
+
+
+ Debugging with dnSpy | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Debugging with dnSpy
+
+Turning the game into a debug build
+
+First, the game's mono runtime has to be swapped to one that supports debugging with dnSpy.
+For that, you need to know the Unity version your game has been built against.
+You can do that by checking file properties of the game EXE or by running BepInEx,
+which will log the Unity version of the game in the console (or into BepInEx/LogOutput.txt
):
+[Message: BepInEx] BepInEx 5.0.1.0 - <Game Name>
+[Info : BepInEx] Running under Unity v5.4.0.6710170
+[Info : BepInEx] CLR runtime version: 2.0.50727.1433
+...
+
+Next, head to dnSpy releases and download one of the debug Mono packages
+that corresponds to the Unity version of your game :
+
+For example, in the log above Unity version is 5.4.0
, in which case one has to download Unity-debugging-5.x.zip
.
+Open the downloaded archive and locate mono.dll
that corresponds to your Unity game version and
+executable target (32 bit or 64 bit). Finally, locate the same DLL in your game folder and replace it with the one from dnSpy.
+Setting up dnSpy and setting breakpoints
+Download the latest version of dnSpy . You can pick any of the available versions.
+Extract the downloaded archive and run dnSpy.
+Next, drag the plugins DLLs you want to debug into dnSpy.
+
+
Note
+
You must select the DLL that is in your BepInEx
folder, and not the one in your Visual Studio solution!
+
+
+You can change the settings of dnSpy via View > Options
.
+To set a breakpoint, navigate the assembly you want to debug and right click on the piece of code you want to debug.
+Next, select Add breakpoint
to set the breakpoint:
+
+Note that some code might not be selectable. In that case you can change dnSpy to show the precise IL code from the dropdown in the top bar.
+Running the game via dnSpy
+After you have set the breakpoints, you can start debugging the game.
+Select Debug > Start Debugging
to open up the Debug Program dialog.
+Change the settings as follows:
+
+Debug Engine : Select one of the following:
+
+Unity
if you want dnSpy to start the game for you
+Unity (Connect)
if you want to start debugging when the game is on
+
+
+Executable (only in Unity
engine): Locate and select the game's executable from the game's installation directory.
+Timeout (s) (only in Unity
engine): 30. You can optionally set it to higher values if the game loads too slow.
+IP Address (only in Unity (Connect)
engine): Leave it blank
+Port (only in Unity (Connect)
engine): 55555
+
+
+Finally, press OK
to start the game (or to attach dnSpy to an already running game).
+Wait until the game loads your assembly. If everything worked correctly, the execution will stop on the breakpoint:
+
+From there, you can do same things like in the normal debugger:
+
+Inspect locals and type members
+Step into, step over, set more breakpoints (via the top bar)
+Modify values (in some cases)
+
+Note that when you step in dnSpy, it steps one IL instruction at a time (in which case one single expression can take multiple steps to move over).
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/advanced/debug/plugins_vs.html b/articles/advanced/debug/plugins_vs.html
new file mode 100644
index 00000000..348a266f
--- /dev/null
+++ b/articles/advanced/debug/plugins_vs.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+ Debugging plugins with Visual Studio Tools for Unity | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+
+
+
+
Note
+
This method is suitable for debugging only BepInEx plugins!
+To debug preloader plugins, refer to dnSpy debug guide .
+
+While debugging with dnSpy is rather simple, you might want to debug directly in
+Visual Studio while developing. It is possible to debug your plugins with the help of
+Visual Studio Tools for Unity (VSTU).
+
+First, you have to convert the game to debug build. To do that, refer to dnSpy guide on converting the game to pure debug build .
+Next, install VSTU. You can do so in Visual Studio 2019 via Visual Studio Installer.
+You can find the component behind Individual components
tab:
+
+
+
Note
+
Rider provides a similar Unity extension which allows for the same debugging functionality.
+
+Compiling your project
+Next, compile your BepInEx plugin with a Debug
build. Make sure that you generate a .pdb
file!
+Place your BepInEx plugin into BepInEx\plugins
like you normally would but with the .pdb
file accompanying it:
+
+Converting .pdb
to .mdb
+Since Unity uses Mono as its .NET runtime, it cannot directly read .pdb
files which contains the required debug symbols.
+Instead, it uses .mdb
files for the similar task. Because of this, .pdb
file needs to be converted.
+Grab pdb2mdb
converter (for example, from NuGet or from GitHub ). Put the executable in some folder except not into BepInEx plugin folder .
+Finally, simply drag-and-drop your plugin DLL file, which will generate the required debug symbols:
+
+After this, you can optionally delete the .pdb
file as it is not needed.
+Starting debugging
+Finally, put breakpoints in Visual Studio however you want and start the game.
+When the game has started, you're ready to start debugging.
+In Visual Studio, select Debug > Attach Unity Debugger
:
+
+In the opened dialog, select the game executable and press OK
:
+
+
+
Note
+
If there is no processes in the list, try pressing Refresh
-- it might be that the game hasn't loaded in yet.
+It is also may be because you didn't follow the dnSpy debug build conversion guide properly.
+In that case, please repeat the steps in that setup guide making sure you use correct Unity version and bitness.
+
+If you've done everything correctly, the debugging session starts and your breakpoints can be hit:
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/advanced/images/protontricks_select.png b/articles/advanced/images/protontricks_select.png
new file mode 100644
index 00000000..436f87c2
Binary files /dev/null and b/articles/advanced/images/protontricks_select.png differ
diff --git a/articles/advanced/images/protontricks_winecfg.png b/articles/advanced/images/protontricks_winecfg.png
new file mode 100644
index 00000000..56ebeffb
Binary files /dev/null and b/articles/advanced/images/protontricks_winecfg.png differ
diff --git a/articles/advanced/images/protontricks_wineprefix.png b/articles/advanced/images/protontricks_wineprefix.png
new file mode 100644
index 00000000..1c8606b6
Binary files /dev/null and b/articles/advanced/images/protontricks_wineprefix.png differ
diff --git a/articles/advanced/images/steam_launch_opts.png b/articles/advanced/images/steam_launch_opts.png
new file mode 100644
index 00000000..c1afde4f
Binary files /dev/null and b/articles/advanced/images/steam_launch_opts.png differ
diff --git a/articles/advanced/images/steam_local_files.png b/articles/advanced/images/steam_local_files.png
new file mode 100644
index 00000000..63006e6e
Binary files /dev/null and b/articles/advanced/images/steam_local_files.png differ
diff --git a/articles/advanced/images/steam_props.png b/articles/advanced/images/steam_props.png
new file mode 100644
index 00000000..a735677a
Binary files /dev/null and b/articles/advanced/images/steam_props.png differ
diff --git a/articles/advanced/images/winecfg_add_lib.png b/articles/advanced/images/winecfg_add_lib.png
new file mode 100644
index 00000000..fb96f562
Binary files /dev/null and b/articles/advanced/images/winecfg_add_lib.png differ
diff --git a/articles/advanced/proton_wine.html b/articles/advanced/proton_wine.html
new file mode 100644
index 00000000..1ecc90a7
--- /dev/null
+++ b/articles/advanced/proton_wine.html
@@ -0,0 +1,234 @@
+
+
+
+
+
+ Running under Proton/Wine (Linux/Mac/SteamOS/etc.) | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Proton/Wine
+
+If you are playing a Windows game on an Unix system (Linux/Mac/SteamOS/etc.) the game
+will have to run through a compatibility layer (Proton, or its predecessor Wine) which
+at the moment will likely prevent BepInEx from starting. This is because UnityDoorstop
+relies on dll files inside the game directory being loaded instead of system dlls, but
+under Proton/Wine this behavior does not happen by default. To make BepInEx work it's
+necessary to configure this DLL forwarding to work correctly.
+We strongly recommend to use Proton , but it is not an absolute requirement.
+
+
Note
+
Instructions on using BepInEx with proton are based on a guide from
+R2Wiki
+
+1. Open winecfg for the target game
+With proton the easiest way to do so is via
+protontricks
+(or similarly with winetricks
which is not covered here).
+Open the terminal and type
+protontricks --gui
+
+
+
Note
+
If you have a Steam Deck, the protontricks --gui
command most likely won't work. Instead, you need to install protontricks via discovery store, and then launch it via the Steam search bar. Launching it via discovery store won't work.
+
If you managed to make this guide work on Steam Deck please let us know of any differences, or consider submitting an edit!
+
+Next, select the game you want to configure
+
+Next, in winetricks menu select Select default wineprefix
option and press OK:
+
+Finally, select Run winecfg
and click OK:
+
+This will open winecfg.
+
+BepInEx relies on winhttp.dll
proxy DLL to inject itself into Unity games.
+On wine the proxy should be configured manually.
+In winecfg, select Libraries
tab. Under New override for library
dropbox,
+select winhttp
and Click
add:
+
+Finally click Apply
and you're done. Running the game should now run BepInEx.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/advanced/steam_interop.html b/articles/advanced/steam_interop.html
new file mode 100644
index 00000000..b0788bd5
--- /dev/null
+++ b/articles/advanced/steam_interop.html
@@ -0,0 +1,266 @@
+
+
+
+
+
+ Running native Unix games through Steam | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Running native Unix games through Steam
+
+To make a native game work with BepInEx you need to run it through a script,
+which can cause issues with Steam since it will want to run the game executable
+directly and can restart the game if you try to run it from outside of Steam,
+preventing BepInEx from being used.
+Thankfully, Steam provides a way to run launch scripts directly before running
+the original game. This guide will use this feature to fix the above issue.
+The process is similar for both Linux and macOS, but with one key difference.
+1. Download and install BepInEx
+First, download and install BepInEx binaries if you hadn't done so.
+For that, follow steps 1-2 in the [installation guide](Installing BepInEx #installing-bepinex)
+
+
Tip
+
To easily find the game folder of a Steam game, go into properties of the game:
+
+
And Select Browse local files
from Local files
tab:
+
+
+
+
Note
+
Don't run the script yet as it will run the game without Steam integration.
+You don't need to configure the script either, as it will be done by Steam.
+
+2. Set up permissions
+On Unix systems, you first need to give the run script permission to run.
+At this moment it has to be done manually.
+Open the game folder in terminal and add execution permission to run script:
+chmod u+x run_bepinex.sh
+
+This will add needed permissions to run BepInEx.
+
+Finally, configure Steam to run the script.
+Open the game's properties on Steam:
+
+Next, click Set launch options
button which will open a new window:
+
+Now, change the launch options depending on your OS:
+
+
+
+
+Set the launch option to
+./run_bepinex.sh %command%
+
+
+
+
+First, open a terminal in the game folder and run
+pwd
+
+This will print the full path to the game folder. Copy it.
+Next, set launch option to
+"<PWD>/run_bepinex.sh" %command%
+
+where <PWD>
is the full path to the game folder you got above.
+
+
+4. Run first time to generate configuration
+Finally, run the game via Steam normally.
+This will generate BepInEx config, but the game might not run.
+
+Open BepInEx/config/BepInEx.cfg
in a text editor of your choice.
+All options are documented directly in the configuration file.
+Additionally, refer to refer to the configuration guide for more information.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/dev_guide/dev_tools.html b/articles/dev_guide/dev_tools.html
new file mode 100644
index 00000000..86510519
--- /dev/null
+++ b/articles/dev_guide/dev_tools.html
@@ -0,0 +1,259 @@
+
+
+
+
+
+ List of useful development plugins | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+List of useful development plugins
+
+This page contains a list of useful plugins and tools you can use
+to make development of plugins with BepInEx easier.
+
+Link : GitHub
+Description : This is a pack of useful plugins to ease development.
+Below is a description of each debug plugin. You can find more specific
+usage guide in repository README .
+ScriptEngine
+Allows to reload plugins without restarting the game. Simply put your
+plugins into BepInEx/scripts
folder and press F6
in-game whenever you
+want to reload a plugin.
+Note that to support this your plugin needs to clean up its resources in
+your plugin by creating OnDestroy
+method and unpatching any Harmony patches along with cleaning up other resources.
+Startup profiler
+Logs load times for each of the plugins.
+Mono Profiler
+A profiler for Unity games. Logs all called methods, call counts and call times.
+Outputs all data as .csv
files.
+Demystify Exceptions
+Formats stack traces into a more human-friendly formats and attempts to properly
+resolve IEnumerable
s, lambdas and async
state machines.
+Runtime Unity Editor
+
+Link : GitHub
+Description : Brings an extensive Unity Editor -like hierarchy explorer
+directly into a game. Allows you to inspect any game object and component.
+Additionally comes with a C# REPL and support for rotation/translation gizmos
+via Vectrocity.
+Refer to the README for installation
+and usage info.
+Configuration Manager
+
+Link : GitHub
+Description : Allows to edit all configuration files via an in-game GUI.
+Default hotkey is F1
. Refer to README for more info on how to use and
+how to integrate into your plugin.
+C# Script Loader
+Link : GitHub
+Description : Allows to write C# scripts without compiling them. Useful for small (under 200 LOC)
+Harmony patches and tools. Supports live code reloading and comes with a custom
+version of MCS compiler that allows you to access private methods/fields
+without any reflection.
+Refer to the README
+for info on how to write scripts and current limitations.
+ThunderKit (make plugins in Unity Editor)
+Link : GitHub
+Description : Allows you to create plugins directly in Unity Editor. With it
+you can easily create new assets and link them to existing or new components.
+Great for integrating new items, maps and whatnot into any Unity game.
+The tool is being actively developed and documentation is being created.
+Refer to README
+for more information about the tool and how to install it.
+Runtime MonoMod.HookGen and MMHOOK stripping
+Link (HookGenPatcher) : GitHub
+Link (LighterPatcher) : GitHub
+Description : Normally using MonoMod.HookGen requires you to bundle MMHOOK.dll
with your plugins and regenerate them
+between game updates.
+This preloader patcher allows you to dynamically generate the MMHOOK.dll
file on the fly when the game starts, thus
+removing potential problems of incompatibility between game updates.
+In addition, LighterPatcher strips the generated MMHOOK.dll
down to only patches that are used by the plugins, thus
+speeding up loading of MMHOOK DLL (in cases where type resolving is triggered for all types in MMHOOK).
+Everything is done at runtime and requires no action from the end-user.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/dev_guide/plugin_tutorial/1_setup.html b/articles/dev_guide/plugin_tutorial/1_setup.html
new file mode 100644
index 00000000..f59c9dc8
--- /dev/null
+++ b/articles/dev_guide/plugin_tutorial/1_setup.html
@@ -0,0 +1,278 @@
+
+
+
+
+
+ Basic plugin: Setting up the development environment | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Setting up the development environment
+
+To start developing BepInEx, we need three components:
+
+Latest .NET SDK
+A code editor or an integrated development environment (IDE)
+BepInEx installed and configured in the game
+BepInEx plugin templates
+
+All these parts are next discussed in more detail
+.NET SDK
+
+
Note
+
If you have .NET SDK (version 6 or newer) already installed, you can continue to picking an IDE .
+
+.NET SDK is a software development kit (SDK) that allows compiling code written in C# and using different .NET libraries.
+As you may notice later, plugins use different .NET API versions and variations such as .NET Framework or .NET Standard .
+When it comes to plugin development, all those can be handled by the modern .NET SDK.
+To install .NET SDK, do the following:
+
+Head to .NET downloads page
+
+Select the latest recommended .NET SDK for your OS:
+
+
+Download and run the installer according to your OS's instructions
+You may need to restart your PC for the install to finalise.
+
+
+Once you have installed .NET SDK, verify that it works by opening a command line prompt and running
+dotnet --list-sdks
+
+If you have installed .NET SDK correctly, the command should return at least one .NET SDK version and its location.
+An example output is:
+6.0.1 [C:\Program Files\dotnet\sdk]
+
+Once you have at least one .NET SDK version installed, you can choose a code editor.
+Picking an IDE
+While plugins can be made with a simple text editor, it is recommended to use a proper editor for programming.
+Different editors exist with varying level of integration with .NET building tools.
+Proper IDEs provide more extensive features like code style suggestions, automatic completions and even debugging.
+A list of some editors that are known to be usable for BepInEx plugin development:
+
+Visual Studio Community -- free, code completions, project management, debugging support
+JetBrains Rider -- paid, great code completion, code style suggestions, C# decompiler, crossplatform (Windows, macOS, Linux)
+Visual Studio Code -- free and lightweight, crossplatform (Windows, macOS, Linux), supports .NET and C# via plugins
+
+Pick one of the code editors and ensure they work with C#.
+Installing and configuring BepInEx
+Next, make sure you have BepInEx installed in your game.
+If you don't have yet, follow the installation guide .
+Run the game with BepInEx at least once in order to generate configuration files and any additional libraries.
+To make debugging easier, it is useful to enable the BepInEx console.
+To do so, go to BepInEx/config
folder and open BepInEx.cfg
.
+Find the following configuration section/value and edit it as follows:
+[Logging.Console]
+
+## Enables showing a console for log output.
+# Setting type: Boolean
+# Default value: false
+Enabled = true
+
+Installing BepInEx plugin templates
+BepInEx provides helper templates to start off with plugin development.
+We will be using them to make our plugins.
+To install the template, run the following command:
+dotnet new -i BepInEx.Templates --nuget-source https://nuget.bepinex.dev/v3/index.json
+
+If the install is successful, you should see a listing of all .NET project templates.
+Among them should be the following BepInEx templates:
+Templates Short Name Language Tags
+-------------------------------------------- -------------------- ---------- --------------------------------------
+BepInEx 5 Plugin Template bepinex5plugin [C#] BepInEx/BepInEx 5/Plugin
+BepInEx 6 .NET Launcher Plugin Template bep6plugin_netfx [C#] BepInEx/BepInEx 6/Plugin/.NET Launcher
+BepInEx 6 Il2Cpp Plugin Template bep6plugin_il2cpp [C#] BepInEx/BepInEx 6/Plugin/Il2Cpp
+BepInEx 6 Unity Mono Plugin Template bep6plugin_unitymono [C#] BepInEx/BepInEx 6/Plugin/Unity Mono
+
+Summary
+In this part, we installed .NET SDK, a code editor, BepInEx and BepInEx plugin templates.
+With all components set up, creating a new plugin is a fairly simple process.
+Next: Writing a basic plugin
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/dev_guide/plugin_tutorial/2_plugin_start.html b/articles/dev_guide/plugin_tutorial/2_plugin_start.html
new file mode 100644
index 00000000..e0b5217b
--- /dev/null
+++ b/articles/dev_guide/plugin_tutorial/2_plugin_start.html
@@ -0,0 +1,480 @@
+
+
+
+
+
+ Basic plugin: Creating a new project | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Creating a new plugin project
+
+Once all required tools are installed, it is time to create a new project.
+BepInEx plugins require at least one C# file which is annotated with BepInPlugin .
+In addition, to make plugins code compile, we need to reference BepInEx libraries and game-specific libraries.
+To make the process easier, we will use a ready plugin template from BepInEx.Templates package that we installed in the previous part .
+The templates already include a premade C# file and BepInEx-specific libraries referenced.
+In this section, we will
+
+create a new project,
+go through the structure and metadata of a plugin, and
+reference game-specific libraries,
+build and verify that the plugin is loaded by the game.
+
+Initializing a plugin project from template
+Create a new folder for your project. As an example, we will use a project name MyFirstPlugin
.
+Open a command line prompt in the folder.
+To create a project in the folder, do the following
+
+Determine .NET target framework (TFM) for your plugin.
+You can follow this general-purpose choice process:
+
+If the game has netstandard.dll
in <Game Name>_Data/Managed
folder, your TFM is netstandard2.0
+If the game's mscorlib.dll
file version (right click the file -> Properties
-> Details
) is at least 4.0.0.0
or newer, your TFM is net46
+In any other case, or if you are unsure/unable to verify using the methods above, your TFM is net35
+
+
+
Note
+
As a general rule, you can always target net35
.
+However, the lower TFM, the less standard libraries and methods are available to you.
+
+
+Determine Unity version of your game (in format X.Y.Z
where X
, Y
and Z
are integers).
+There are a few ways of doing it:
+
+Run the game with BepInEx once. BepInEx usually outputs game's Unity version in the console.
+Check file version of the game executable (right click the file -> Properties
-> Details
)
+Open <Game Name>_Data/globalgamemanagers
in a text editor like Notepad. You will see some garbage text, but at the start there should be a clear version number readable.
+
+
+In the command line prompt, run
+dotnet new bepinex5plugin -n MyFirstPlugin -T <TFM> -U <Unity>
+
+where
+
+<TFM>
is the TFM determined in step 1
+<Unity>
is the Unity version determined in step 2
+
+
+
+This will create a new folder named MyFirstPlugin
that contains three files:
+
+Plugin.cs
: Main plugin file. You can add more C# source files (.cs
) as needed.
+MyFirstPlugin.csproj
: Plugin project configuration
+NuGet.Config
: Configuration file for NuGet package manager
+
+If you use an IDE, you can proceed to open MyFirstPlugin.csproj
or the entire folder in it.
+If the IDE has .NET development support, it should automatically pick up the project settings.
+Feel free to open the generated files in a text editor and inspect their contents.
+You don't need to know what everything means, but it is useful to note the general format of each file.
+Plugin structure
+The main plugin file is located in Plugin.cs
.
+Let's inspect the contents of a basic plugin and plugin metadata.
+Plugin's structure depends slightly on the game type you chose to target, but the overall layout is the same:
+using BepInEx;
+
+namespace MyFirstPlugin
+{
+ [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
+ public class Plugin : BaseUnityPlugin
+ {
+ private void Awake()
+ {
+ // Plugin startup logic
+ Logger.LogInfo($"Plugin {PluginInfo.PLUGIN_GUID} is loaded!");
+ }
+ }
+}
+
+
+As we can see, a BepInEx plugin contains three main parts:
+
+You are free to change main plugin code.
+
+Next, let us discuss a bit the metadata that can be specified in BepInEx.
+
+Some basic information is needed for BepInEx to know how to load the plugin and to allow plugins to interact.
+Such information is commonly plugin name , a unique identifier and plugin version .
+Additionally, plugins might need to specify constraints such as dependencies and game names on which plugin can run.
+In BepInEx, this information is by setting C# attributes to the plugin class.
+Let's go over some of the most important attributes you might want to use.
+For more attributes and detailed documentation, visit the API docs .
+
+The most crucial attribute is BepInPlugin . Without it, BepInEx will simply ignore loading of the plugin!
+Here's a simple example of the attribute:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+public class ExamplePlugin : BaseUnityPlugin
+
+The attribute consists of three string parameters that are:
+
+
+
+Parameter name
+Description
+
+
+
+
+GUID
+A unique identifier of the plugin. It absolutely must be unique as BepInEx uses it to detect duplicate plugins and sort dependencies. It is recommended (but not mandatory) to use the reverse domain name notation for GUIDs.
+
+
+Name
+A human-readable name of the plugin.
+
+
+Version
+Version of the plugin. The version format must follow semver
+
+
+
+
+
Important
+
Avoid changing plugin GUIDs after you have released your plugin.
+
GUIDs are meant to be unique and permanent for a plugin. As you will see with other metadata attributes, other plugins depend on your GUID to be the same.
+From a practical point of view, avoid changing your plugin DLL's name as well!
+
+
+
Note
+
You might have noticed that our template has the attribute defined as follows:
+
[BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
+
+
The plugin template from BepInEx.Templates contains a helper tool that automatically generates PluginInfo
from information located in the .csproj
file.
+For example, the plugin's version is automatically set from <Version>
component in the project configuration.
+You can use the helper tool or replace it with your own values at any time.
+
+Specifying dependencies on other plugins
+Sometimes you might want to load some plugins before other ones.
+Moreover, you may want to ensure that a user has installed some other plugin for yours to function.
+You can specify dependencies on other plugins with BepInDependency attribute.
+You can specify the attribute multiple times for multiple dependencies.
+Here's a simple example of the attribute:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+[BepInDependency("com.bepinex.plugin.important")]
+public class ExamplePlugin : BaseUnityPlugin
+
+The attribute consists of only two parameters:
+
+
+
+Parameter name
+Description
+
+
+
+
+DependencyGUID
+The GUID of the plugin that yours depends on. Must be in the exact same format and case as defined in the dependency.
+
+
+Flags
+Optional. Specifies a flag from BepInDependency.DependencyFlags that tells how to handle missing dependencies. A soft dependency means that the plugin can be loaded even if the dependency is missing. A hard dependency means that a plugin must be skipped if the dependency is missing.
+
+
+VersionRange
+Optional. Specifies the version range of the dependency that your plugin supports. For version ranges, use node version range syntax .
+
+
+
+You can specify the attribute multiple times for each dependency. A more involved example:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+
+// A soft dependency. Loading won't be skipped if it's missing.
+[BepInDependency("com.bepinex.plugin.somedependency", BepInDependency.DependencyFlags.SoftDependency)]
+// A hard dependency. Loading will be skipped (and an error shown) if the dependency is missing.
+[BepInDependency("com.bepinex.plugin.importantdependency", BepInDependency.DependencyFlags.HardDependency)]
+// If flags are not specified, the dependency is **hard** by default
+[BepInDependency("com.bepinex.plugin.anotherimportantone")]
+// Depends on com.bepinex.plugin.versioned version 1.2.x
+[BepInDependency("com.bepinex.plugin.versioned", "~1.2")]
+public class ExamplePlugin : BaseUnityPlugin
+
+Filtering executables
+In some cases, you may want to allow to load the plugin only in certain games.
+For instance, your plugin only works in one game, and you want to prevent users from installing a plugin into the wrong one.
+Alternatively, there might be multiple games in the same game folder, and you want to load your plugin only in one of those games.
+You can specify what games to load the plugin on with BepInProcess attribute.
+The attribute has only one parameter: ProcessName
, which is simply the name of the process that the plugin is allowed to run on (including the .exe
extension).
+Naturally, you can specify the attribute multiple times.
+An example of the attribute usage:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+[BepInProcess("Risk of Rain 2.exe")]
+[BepInProcess("AnotherGame.exe")]
+public class ExamplePlugin : BaseUnityPlugin
+
+Incompatible plugins
+In certain situations, your plugin might be incompatible with other ones.
+For example, your plugin might already implement some features that another plugin does.
+You may also desire to simply not load your plugin if another plugin is present.
+In these cases, you can use BepInIncompatibility attribute.
+Suppose a plugin mentioned in the attribute is present in the game.
+In that case, your plugin will be not loaded, and a warning message will be given to the user.
+This attribute has IncompatibilityGUID
parameter which is the GUID of the incompatible plugin.
+An example:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+// If some.undesirable.plugin is installed, this plugin is skipped
+[BepInIncompatibility("some.undesirable.plugin")]
+public class ExamplePlugin : BaseUnityPlugin
+
+Referencing game libraries
+To use and modify the game's code, you need to reference libraries that contain it.
+By default, the BepInEx plugin template includes some of the libraries you need to create a basic project.
+Such libraries are BepInEx base libraries (provide BepInEx API) and libraries for hooking and modifying game code (such as HarmonyX and MonoMod).
+Plugin template for Mono Unity also includes Unity's base libraries used to interact with the Unity engine itself.
+However, the main game libraries must be referenced manually before you start using game code.
+There are two main ways to obtain game libraries:
+Referencing via NuGet
+NuGet is an online library repository for .NET projects.
+BepInEx has its own NuGet feed which includes some game-specific libraries uploaded by the community.
+All packages with GameLibs
in the name contain game-specific libraries:
+
+To add a game-specific package from BepInEx NuGet to the BepInEx plugin template, open command line prompt in the game folder and run
+dotnet add package GameName.GameLibs -v *-*
+
+where GameName
is the name of the game available on BepInEx NuGet feed.
+Alternatively, you can use your IDE's tools to do so if possible.
+Referencing from local install
+If the game libraries you want to reference are not on NuGet or available somewhere else, you can reference directly from your game folder.
+You can oftentimes add references via your IDE or by hand by adding the following snippet to your project's .csproj
file:
+<ItemGroup>
+ <Reference Include="MyAssembly">
+ <HintPath>path\to\MyAssembly.dll</HintPath>
+ </Reference>
+</ItemGroup>
+
+where you replace MyAssembly
with the DLL's name and path\to\MyAssembly.dll
is the full path to the DLL.
+Game-specific libraries are located in game's folder under <Game Name>_Data/Managed
folder.
+Depending on your OS, the Managed
folder might be located in some other subfolder in the game folder.
+
+
Warning
+
Avoid referencing any .NET core libraries from the game folder as they can cause compilation issues!
+Specifically, make sure you don't refence anything of the following:
+
+mscorlib.dll
+netstandard.dll
+Any of DLLs that start with System.
(unless you know what you're doing)
+
+
If you get weird compilation errors related to missing types or missing methods, check first if you are referring any problematic assemblies!
+
+
+
Important
+
If possible, do not reference the assemblies directly from the game folder!
+Doing so might cause referencing issues in some versions of C# compilers.
+Instead, create a lib
folder inside your plugin project and copy any game assemblies to there that you want to reference.
+
+Compiling and testing the plugin
+Finally, let us test the default plugin template. In the template, the default code writes Plugin PluginInfo.PLUGIN_GUID is loaded!
into BepInEx console.
+To build the project using the dotnet
tool, open the command line prompt in the project folder and run
+dotnet build
+
+This will generate bin/Debug/<tfm>
folder with the plugin DLL output:
+
+Note that the image is an example of what files can be generated. The main thing is the generated plugin DLL.
+Once you have the plugin DLL, put it into game's BepInEx/plugins
folder and run the game.
+If everything was done correctly, running the game should show our plugin's message in the console:
+
+Congratulations! We now have a working plugin.
+Summary
+This is by far the largest section of the tutorial. Here, we created our project, looked through BepInEx metadata, added game assemblies, built and tested our plugin.
+You can now continue by adding code to the plugin.
+Inspect how the game works, experiment and test!
+The next sections are related primarily to helper features BepInEx provides.
+You do not have to know of them to make a plugin, but making use of BepInEx helpers can make common boilerplate more manageable.
+Remember that you can always reference BepInEx API Docs to see all available BepInEx methods.
+Next: Using loggers to simplify debugging
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/dev_guide/plugin_tutorial/3_logging.html b/articles/dev_guide/plugin_tutorial/3_logging.html
new file mode 100644
index 00000000..788b99eb
--- /dev/null
+++ b/articles/dev_guide/plugin_tutorial/3_logging.html
@@ -0,0 +1,318 @@
+
+
+
+
+
+ Basic plugin: Using loggers to simplify debugging | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Using loggers to simplify debugging
+
+One of the most essential parts of any plugin is logging messages. Be it a
+piece of information, a warning or a more significant error, BepInEx provides functionality to log it all.
+With BepInEx, you can use the following logging APIs:
+
+(Recommended) Logger APIs
+UnityEngine.Debug
APIs (for Unity Mono)
+System.Diagnostics.Trace
APIs
+System.Console
APIs
+
+Whichever API you will use, BepInEx will write the logs to the console,
+Unity's output_log.txt
and to BepInEx/LogOutput.log
file.
+
+This is the recommended way for logging in plugins.
+All plugin instances have a logger property:
+using BepInEx;
+
+namespace MyFirstPlugin
+{
+ [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
+ public class Plugin : BaseUnityPlugin
+ {
+ private void Awake()
+ {
+ Logger.LogInfo("This is information");
+ Logger.LogWarning("This is a warning");
+ Logger.LogError("This is an error");
+ }
+ }
+}
+
+
+This will print the following messages to BepInEx console:
+[Info : Logger Test] This is information
+[Warning: Logger Test] This is a warning
+[Error : Logger Test] This is an error
+
+Notice that the log reports the message type and the message source.
+When using BepInEx's own logging API, the log source (i.e. the plugin name is automatically logged).
+Check out ManualLogSource for all available logging methods.
+Advanced: Log sources and log listeners
+BepInEx's logging system mimics that of System.Diagnostics.Trace
API.
+BepInEx allows creating log sources that can generate log events (i.e. the messages) and log listeners that receive and process those log events.
+All sources are linked to listeners via Logger class.
+In most cases, you don't have to care about how the API works. However, in some cases, you may want to register your own log sources to log messages.
+In addition, sometimes, you might need to process the log events to write them somewhere. This is where you use the manual APIs.
+Registering log sources
+A log source is a class that inherits from ILogSource .
+The most basic implementation is ManualLogSource which exposes
+various convenience logging functions.
+To register a log source, add it to Sources collection:
+var myLogSource = new ManualLogSource("MyLogSource"); // The source name is shown in BepInEx log
+
+// Register the source
+BepInEx.Logging.Logger.Sources.Add(myLogSource);
+
+myLogSource.LogInfo("Test"); // Will print [Info: MyLogSource] Test
+
+// Remove the source to free resources
+BepInEx.Logging.Logger.Sources.Remove(myLogSource);
+
+Because ManualLogSource is so useful, you can use CreateLogSource(String) to automatically create and register a ManualLogSource .
+That way, the above example becomes
+var myLogSource = BepInEx.Logging.Logger.CreateLogSource("MyLogSource");
+myLogSource.LogInfo("Test");
+BepInEx.Logging.Logger.Sources.Remove(myLogSource);
+
+About log listeners
+Log listeners are used to processing messages from log sources. To create a log source, create a class that inherits ILogListener .
+After that, register a log listener by adding it to Listeners .
+By default, BepInEx itself registers the following listeners:
+
+If you need to write a custom log listener, consider using the above ones as
+examples.
+Advanced: global plugin logger
+If you have multiple classes in your plugin but only one plugin, you might want to use the same plugin logger in the other class as well.
+This can be done with with a global plugin logger pattern. To apply the pattern, do the following:
+
+Create an internal static ManualLogSource field inside the plugin class
+In plugin's startup code, assign plugin's logger to the field
+In your other classes, use the static logger field from your plugin class
+
+Example:
+using BepInEx;
+using BepInEx.Logging;
+
+namespace MyFirstPlugin
+{
+ [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
+ public class Plugin : BaseUnityPlugin
+ {
+ internal static new ManualLogSource Log;
+
+ private void Awake()
+ {
+ this.Log = base.Logger;
+ }
+ }
+}
+
+// Some other class in the plugin assembly
+class SomeOtherAssembly
+{
+ public void SomeMethod()
+ {
+ Plugin.Log.LogInfo("Plugin message!");
+ }
+}
+
+Summary
+BepInEx provides simple logging methods for plugins.
+Additionally, you are free to extend BepInEx logging facilities to suit your needs.
+Next: Reading and writing configuration files
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/dev_guide/plugin_tutorial/4_configuration.html b/articles/dev_guide/plugin_tutorial/4_configuration.html
new file mode 100644
index 00000000..d1c523f4
--- /dev/null
+++ b/articles/dev_guide/plugin_tutorial/4_configuration.html
@@ -0,0 +1,306 @@
+
+
+
+
+
+ Basic plugin: Reading and writing configuration files | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Using configuration files
+
+Usually, you may want to allow the user of the plugin to change the specifics of its behavior.
+Moreover, your plugin might need to have a permanent data store for some of its internal data.
+Whatever the reason, BepInEx provides a built-in ConfigFile class for simple configuration files.
+The format is based on INI with some syntax from TOML, which allows you to save most of the basic data types.
+
+
Note
+
Using BepInEx's configuration API is optional.
+You can always provide a custom way to serialize and deserialize data for your plugin.
+
+In this part, we will go through the core API for reading and writing configuration files.
+Using configuration files in plugins
+Inside the plugin, you get access to Config property that is a preconfigured configuration file.
+The file is saved in BepInEx\config\<GUID>.cfg
where <GUID>
is the GUID of your plugin.
+To access and create configuration values, you first need to define them with Bind<T>(String, String, T, String) .
+Configuration initialization is often done in plugin startup code.
+Example:
+using BepInEx;
+using BepInEx.Configuration;
+
+namespace MyFirstPlugin
+{
+ [BepInPlugin(PluginInfo.PLUGIN_GUID, PluginInfo.PLUGIN_NAME, PluginInfo.PLUGIN_VERSION)]
+ public class Plugin : BaseUnityPlugin
+ {
+ private ConfigEntry<string> configGreeting;
+ private ConfigEntry<bool> configDisplayGreeting;
+
+ private void Awake()
+ {
+ configGreeting = Config.Bind("General", // The section under which the option is shown
+ "GreetingText", // The key of the configuration option in the configuration file
+ "Hello, world!", // The default value
+ "A greeting text to show when the game is launched"); // Description of the option to show in the config file
+
+ configDisplayGreeting = Config.Bind("General.Toggles",
+ "DisplayGreeting",
+ true,
+ "Whether or not to show the greeting text");
+ // Test code
+ Logger.LogInfo("Hello, world!");
+ }
+ }
+}
+
+
+
Tip
+
Instead of using the plugin startup method, you can also define wrappers inside the constructor.
+Moreover, you do not need to define all options at once and instead create them on demand!
+
+After defining the values, you can use them right away with Value :
+// Instead of just Debug.Log("Hello, world!")
+if(configDisplayGreeting.Value)
+ Logger.LogInfo(configGreeting.Value);
+
+When you compile your plugin and run the game with it for the first time, the configuration file will be automatically generated.
+In the case of this example, the following configuration file is created in BepInEx\config\MyFirstPlugin.cfg
:
+[General]
+
+## A greeting text to show when the game is launched
+# Setting type: String
+# Default value: Hello, world!
+GreetingTest = Hello, world!
+
+[General.Toggles]
+
+## Whether or not to show the greeting text
+# Setting type: Boolean
+# Default value: True
+DisplayGreeting = true
+
+Notice the similarities between the calls to Bind<T>(String, String, T, String) and the generated configuration file.
+Creating configuration files manually
+In some cases (e.g. preloader patchers, non-plugin DLLs), you may want to create a configuration file manually.
+This can be done quickly by creating a new instance of ConfigFile :
+// Create a new configuration file.
+// First argument is the path to where the configuration is saved
+// Second arguments specifes whether to create the file right away or whether to wait until any values are accessed/written
+var customFile = new ConfigFile(Path.Combine(Paths.ConfigPath, "custom_config.cfg"), true);
+
+// You can now create configuration wrappers for it
+var userName = customFile.Bind("General",
+ "UserName",
+ "Deuce",
+ "Name of the user");
+
+// In plug-ins, you can still access the default configuration file
+var configGreeting = Config.Bind("General",
+ "GreetingTest",
+ "Hello, world!",
+ "A greeting text to show when the game is launched");
+
+
+
Note
+
Notice that we use Paths class to get the path to BepInEx\config
.
+In general, it is recommended to use the paths provided in Paths instead of manually trying to locate the directories.
+
+Summary
+In this part, we briefly overviewed the use of configuration files.
+Next, you should get better accustomed to the additional API provided in ConfigFile and ConfigEntry<T> if you want to use configuration files supplied by BepInEx.
+The additional API allows you to manually save and reload configuration as well.
+This part concludes the basic plugin tutorial.
+Feel free to refer to BepInEx API Docs for extensive information on all methods that BepInEx provides.
+Check through some of the advanced guides for information on how to use BepInEx:
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png b/articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png
new file mode 100644
index 00000000..36b1b0b6
Binary files /dev/null and b/articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png differ
diff --git a/articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png b/articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png
new file mode 100644
index 00000000..1229145c
Binary files /dev/null and b/articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png differ
diff --git a/articles/dev_guide/plugin_tutorial/images/dotnet_download.png b/articles/dev_guide/plugin_tutorial/images/dotnet_download.png
new file mode 100644
index 00000000..777b6858
Binary files /dev/null and b/articles/dev_guide/plugin_tutorial/images/dotnet_download.png differ
diff --git a/articles/dev_guide/plugin_tutorial/images/plugin_works_example.png b/articles/dev_guide/plugin_tutorial/images/plugin_works_example.png
new file mode 100644
index 00000000..d9ea9ef7
Binary files /dev/null and b/articles/dev_guide/plugin_tutorial/images/plugin_works_example.png differ
diff --git a/articles/dev_guide/plugin_tutorial/index.html b/articles/dev_guide/plugin_tutorial/index.html
new file mode 100644
index 00000000..87bb0457
--- /dev/null
+++ b/articles/dev_guide/plugin_tutorial/index.html
@@ -0,0 +1,222 @@
+
+
+
+
+
+ Writing a basic plugin | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Writing a basic plugin
+
+The primary purpose of BepInEx is to load user-made code into various games.
+There are a few ways of doing it, but writing plugins is the most commonly used approach.
+Plugins are classes that are annotated with BepInPlugin annotation.
+BepInEx provides a variety of helpers to facilitate logging, configuration, path management and dependency management.
+Plugins are compiled into .NET DLL files and put into BepInEx/plugins
folder for BepInEx to load.
+BepInEx provides some starter templates to make plugin development easier.
+In this guide, we will
+
+install tools necessary for plugin development,
+set up a basic C# plugin project,
+use plugin logger to write messages to the console, and
+read and write configuration files.
+
+
+
Note
+
Although this is an introductory guide, an elementary understanding of C# is required.
+If you are not familiar with C#, .NET Academy provides a simple step-by-step tutorial.
+
On the contrary, basic knowledge of using command line prompt on your OS is strongly encouraged .
+
+The following topics will be covered:
+
+Setting up the development environment
+Creating a new plugin project
+Using loggers to simplify debugging
+Reading and writing configuration files
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/dev_guide/preloader_patchers.html b/articles/dev_guide/preloader_patchers.html
new file mode 100644
index 00000000..b855a945
--- /dev/null
+++ b/articles/dev_guide/preloader_patchers.html
@@ -0,0 +1,387 @@
+
+
+
+
+
+ Using preloader patchers | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Using preloader patchers
+
+Preface
+As of version 4.0, BepInEx allows to write preload-time patchers that modify
+assemblies before the game loads them.
+While most plug-ins can use Harmony to do runtime patching, using preload-time
+patchers provides more fine control over how the assembly is patched.
+It is still recommended that you use Harmony wherever possible because
+Harmony makes sure all patches are compatible with each other. Use Mono.Cecil
+only if something cannot be done by Harmony (more info below).
+Difference from runtime patchers
+Because preload-time patchers are run before the assemblies are loaded into
+memory, the patchers have more fine-grained control over how to modify the
+assemblies.
+
+
+
+Feature
+Preload-time patcher
+Runtime patcher
+
+
+
+
+Used library
+Mono.Cecil
+Harmony
+
+
+Used contract
+Written in a separate DLL, uses a special contract
+Written in plug-in DLL, uses Harmony's API
+
+
+Application time
+Applied on raw assemblies before the game initializes
+Applied on assemblies already loaded in memory
+
+
+Can apply hooks
+Yes
+Yes, as long as the target is not inlined by JIT
+
+
+Can rewrite methods' IL
+Yes
+Yes
+
+
+Can modify field/method propeties
+Everything
+Partially
+
+
+Can add new classes, methods and fields
+Yes
+No
+
+
+Can replace assemblies
+Yes
+No
+
+
+
+Thus, use preload-time patchers only if you must modify the structure of
+the assembly. For hooking methods use Harmony.
+
+Writing a patcher
+Requirements
+Assuming you know how to use an IDE of your choice, you will need to
+
+Create an assembly (DLL) project targeting .NET 3.5
+Remove references to all unused imports
+Add a reference to Mono.Cecil 0.10 (you can get it on NuGet, for instance,
+or use the one prepackaged with BepInEx)
+Add one or more patcher classes (example below)
+
+Patcher contract
+BepInEx considers a patcher any class that has the following members:
+
+Property public static IEnumerable<string> TargetDLLs { get; }
that
+contains a list of assembly names (including the extension).
+Method public static void Patch(AssemblyDefinition assembly)
that applies
+the changes to the assembly itself.
+
+Here is an example of a valid patcher:
+using System.Collections.Generic;
+using Mono.Cecil;
+
+public static class Patcher
+{
+ // List of assemblies to patch
+ public static IEnumerable<string> TargetDLLs { get; } = new[] {"Assembly-CSharp.dll"};
+
+ // Patches the assemblies
+ public static void Patch(AssemblyDefinition assembly)
+ {
+ // Patcher code here
+ }
+}
+
+Specifying target DLLs
+To specify which assemblies are to be patched, create a
+public static IEnumerable<string> TargetDLLs
getter property.
+Note that TargetDLLs
is enumerated during patching , not before. That means
+the following enumerator is valid:
+public static IEnumerable<string> TargetDLLs => GetDLLs();
+
+public static IEnumerable<string> GetDLLs()
+{
+ // Do something before patching Assembly-CSharp.dll
+
+ yield return "Assembly-CSharp.dll";
+
+ // Do something after Assembly-CSharp has been patched, and before UnityEngine.dll has been patched
+
+ yield return "UnityEngine.dll";
+
+ // Do something after patching is done
+}
+
+Patch method
+A valid patcher method has one of the following signatures:
+public static void Patch(AssemblyDefinition assembly);
+public static void Patch(ref AssemblyDefinition assembly);
+
+In the latter case, the reference to the AssemblyDefinition is passed. That means it is possible to fully swap an assembly for a different one.
+Patcher initialiser and finaliser
+In addition, the patchers are allowed to have the following methods:
+// Called before patching occurs
+public static void Initialize();
+
+// Called after preloader has patched all assemblies and loaded them in
+// At this point it is fine to reference patched assemblies
+public static void Finish();
+
+Logging
+BepInEx allows to either use the Standard Output (provided through Console
+class) or -- more fittingly -- the methods provided by System.Diagnostics.Trace
+class.
+With BepInEx 5 you can also use CreateLogSource(String)
+to use BepInEx's own logging system.
+Deploying and using
+Build the project as a separate DLL from the plug-in. Place the DLL in
+BepInEx/patchers
and run the game.
+Notes and tips
+
+Do not reference any DLLs that you will want to patch! Doing so will
+load them into memory prematurely, which will make patching impossible!
+Do not mix plug-in DLL with patcher DLL! Plugins often reference
+assemblies that must be patched, which will cause the assemblies to be
+loaded prematurely.
+You cannot patch mscorlib.dll
. In addition,the following assemblies cannot
+be patched or replaced (BepInEx 4.0): System.dll
, System.Core.dll
. Either
+use Harmony or edit these assemblies permanently.
+Because TargetDLLs
is iterated only once, you can do initialization work
+there (i.e. reading a configuration file).
+Note that you don't have to specify the target DLLs on compile time:
+public static IEnumerable<string> TargetDLLs
+{
+ get
+ {
+ // Do whatever pre-patcher work...
+
+ string[] assemblies = // Get asseblies dynamically (i.e from configuration file);
+ return assemblies;
+ }
+}
+
+
+When you specify many target DLLs, you can change patching behaviour by
+checking the assembly's name:
+public static void Patch(AssemblyDefinition assembly)
+{
+ if (assembly.Name.Name == "Assembly-CSharp")
+ {
+ // The assembly is Assembly-CSharp.dll
+ }
+ else if (assembly.Name.Name == "UnityEngine")
+ {
+ // The assembly is UnityEngine.dll
+ }
+}
+
+
+You can use Config
class provided by BepInEx to read and save configuration
+options.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/dev_guide/runtime_patching.html b/articles/dev_guide/runtime_patching.html
new file mode 100644
index 00000000..1b126eb9
--- /dev/null
+++ b/articles/dev_guide/runtime_patching.html
@@ -0,0 +1,226 @@
+
+
+
+
+
+ Patching methods during runtime | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Patching methods during runtime
+
+
+
Note
+
This guide is still WIP.
+
+Runtime patching is the process of modifying methods without permanently
+patching them. Runtime patching happens while the game is running and on .NET
+can be done very extensively.
+BepInEx ships with HarmonyX and MonoMod.RuntimeDetour to perform runtime patching.
+You can use either or both libraries -- both of them have different API but it
+does not matter which one you use.
+HarmonyX
+BepInEx uses HarmonyX to perform runtime
+patching. HarmonyX is a fork of Harmony
+with changes to specifically allow interop with MonoMod.RuntimeDetour.
+HarmonyX is attribute-based, which means you define patches by applying attributes
+to a method.
+Refer to the following guides on how to use HarmonyX:
+
+HarmonyX wiki - gives basic examples and outlines differences from normal Harmony. Still WIP at the moment
+Original Harmony wiki - HarmonyX API is similar to that of Harmony, so you can use the official wiki without much issue
+
+MonoMod.RuntimeDetour
+MonoMod.RuntimeDetour
+is a helper library that allows to apply runtime patches as C# objects.
+Alternatively, RuntimeDetour supports defining patches as events.
+Some useful guides
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/index.html b/articles/index.html
new file mode 100644
index 00000000..f4b1dd7b
--- /dev/null
+++ b/articles/index.html
@@ -0,0 +1,228 @@
+
+
+
+
+
+ BepInEx Guide Index | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+BepInEx Guide Index
+
+Welcome to BepInEx documentation pages! Please refer to the navigation menu
+on the left for all specific guides!
+What is BepInEx
+BepInEx is a .NET plugin framework aimed at Unity games running
+on Mono runtime.
+The main goal of BepInEx is to be simple to install and use for end-users
+and to provide absolutely necessary tools for modding all while being
+small and easily portable to as many different Unity games as possible.
+While BepInEx is mainly aimed at PC games running on Windows, BepInEx can be
+installed on Linux, macOS and any other operating system that either has
+support for Mono or Windows emulation.
+What BepInEx is not
+Currently BepInEx does not aim to be the solution for modding all games
+with .NET support on all platforms. This limitation allows BepInEx to be
+small and simple to install while still working on as many games as possible.
+As of version 5.0, support for more general .NET games is being planned.
+Getting started with BepInEx
+To start with BepInEx, you should download and install it .
+Next, you might want to configure it and any of the plugins you install .
+
+
Note
+
While BepInEx should work with default configuration on the majority of Unity games,
+some games might require specific entry point configuration.
+Refer to troubleshooting information for info on
+how to set up entrypoints in exceptional cases.
+
+Developing plugins
+If you are a developer, you can check the
+plugin creation walkthrough to get acquainted
+with most of the API of BepInEx.
+Additionally, you should check out
+how to use Harmony to patch game methods and
+how to patch game assemblies with Cecil .
+For more exact documentation on each of BepInEx's feature, consult the
+API documentation
+Finally, the advanced guides contain information on how to
+debug plugins with dnSpy and elaborate on technical details of BepInEx and
+Unity modding.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/toc.html b/articles/toc.html
new file mode 100644
index 00000000..cd58503b
--- /dev/null
+++ b/articles/toc.html
@@ -0,0 +1,105 @@
+
+
\ No newline at end of file
diff --git a/articles/user_guide/configuration.html b/articles/user_guide/configuration.html
new file mode 100644
index 00000000..395c1f7f
--- /dev/null
+++ b/articles/user_guide/configuration.html
@@ -0,0 +1,211 @@
+
+
+
+
+
+ Configuration | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Configuration
+
+BepInEx 5 contains all configuration files in BepInEx/config
folder.
+All configuration files have .cfg
extension and follow
+TOML -like syntax.
+Configuring BepInEx
+The main BepInEx configuration is located in BepInEx/config/BepInEx.cfg
.
+If you don't have the file, run the game with BepInEx at least once and BepInEx
+with automatically generate the file.
+Open the file in any text editor of your choice. All configuration options
+are documented.
+Configuring plugins
+Most plugins have their configuration options in BepInEx/config
folder.
+The configuration files are named by the GUID of the plugin.
+Options are usually documented, but that depends on the plugin developer.
+It is suggested to download and use BepInEx.ConfigurationManager
+which provides a simple, in-game UI for editing the plugin configuration.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/user_guide/images/installer_1.png b/articles/user_guide/images/installer_1.png
new file mode 100644
index 00000000..e626b72a
Binary files /dev/null and b/articles/user_guide/images/installer_1.png differ
diff --git a/articles/user_guide/images/installer_2.png b/articles/user_guide/images/installer_2.png
new file mode 100644
index 00000000..e1b0721b
Binary files /dev/null and b/articles/user_guide/images/installer_2.png differ
diff --git a/articles/user_guide/images/installer_3.png b/articles/user_guide/images/installer_3.png
new file mode 100644
index 00000000..a6e06ce3
Binary files /dev/null and b/articles/user_guide/images/installer_3.png differ
diff --git a/articles/user_guide/images/manual_install_1.png b/articles/user_guide/images/manual_install_1.png
new file mode 100644
index 00000000..87b94eb6
Binary files /dev/null and b/articles/user_guide/images/manual_install_1.png differ
diff --git a/articles/user_guide/images/x64process_example.png b/articles/user_guide/images/x64process_example.png
new file mode 100644
index 00000000..db87625f
Binary files /dev/null and b/articles/user_guide/images/x64process_example.png differ
diff --git a/articles/user_guide/images/x86process_example.png b/articles/user_guide/images/x86process_example.png
new file mode 100644
index 00000000..efacb4c7
Binary files /dev/null and b/articles/user_guide/images/x86process_example.png differ
diff --git a/articles/user_guide/installation/hardpatching.html b/articles/user_guide/installation/hardpatching.html
new file mode 100644
index 00000000..9f2a1752
--- /dev/null
+++ b/articles/user_guide/installation/hardpatching.html
@@ -0,0 +1,234 @@
+
+
+
+
+
+ Hardpatching with BepInEx.Patcher | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Hardpatching with BepInEx.Patcher
+
+
+
Important
+
The hardpatcher permanently edits the game assembly to inject BepInEx into it.
+Use it only if the normal installation methods don't work !
+
+Differences between proxy and hardpatcher
+The hardpatcher provides mainly the following benefits:
+
+Works on any system with any security settings
+Works when normal proxy entrypoint doesn't
+
+Meanwhile hardpatcher comes with these downsides
+
+You'll have to reapply it on game update or reinstall
+Uninstalling requires removing and reinstalling game files
+Preloader patching is not available
+
+Installing hardpatch
+
+Download the latest hardpatcher and BepInEx core from BepisBuilds
+
+The hardpatcher archive name starts with BepInEx_Patcher
+The core archive name starts with BepInEx_x64
+
+
+Extract the core and patcher into the game folder
+Remove unnecessary core files
+
+winhttp.dll
+doorstop_config.ini
+
+
+Run the hardpatcher and wait until it finishes running
+Run the game
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/user_guide/installation/index.html b/articles/user_guide/installation/index.html
new file mode 100644
index 00000000..fb82a277
--- /dev/null
+++ b/articles/user_guide/installation/index.html
@@ -0,0 +1,339 @@
+
+
+
+
+
+ Installing BepInEx | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Installing BepInEx
+
+Requirements
+
+Supported Operating Systems
+
+Windows 7, 8, 8.1 and 10 (both x86 and x64 are supported)
+Linux distros with GCC 10 or newer, preferably GNU/Linux distro (x86_64 and x86 archs are supported)
+macOS 10.13 High Sierra or newer
+Other OSes for which usage via hardpatching is possible
+
+Any OS that has support for Wine (Linux, macOS, FreeBSD, ...)
+Any OS that has support for Mono (Windows, Linux, macOS)
+
+
+
+
+Supported Unity games
+
+
+
+
+
Important
+
Games built with IL2CPP are not supported at the moment.
+However, support for it is planned as the tooling has gotten better thanks to projects like Il2CppAssemblyUnhollower .
+
+Where to download BepInEx
+BepInEx is distributed in two builds: stable and bleeding edge .
+Stable builds are available on GitHub .
+Stable builds are released once a new iteration of BepInEx is considered feature-complete.
+They have the least bugs, but some newest features might not be available.
+It is recommended to use stable builds in most cases.
+Bleeding edge builds are available on BepisBuilds .
+Bleeding edge builds are always the latest builds of the source code. Thus they are the opposite to stable builds: they have the newest features and bugfixes available, but usually tend to be the most buggy.
+Therefore you should use bleeding edge builds only if you are asked to or if you want to preview the upcoming version of BepInEx.
+Installing BepInEx
+Currently, BepInEx can be installed manually.
+
+Download the correct version of BepInEx.
+Download BepInEx from one of the available sources.
+Pick a version depending on your OS:
+
+
+
+
+Download one of the following versions:
+
+x86
for games with 32-bit executables
+x64
for games with 64-bit executables
+
+
+
+
+Download archive with designation nix
. The archive contains everything needed
+to run BepInEx on both 32- and 64-bit executables.
+
+
+
+Extract the contents into the game root.
+After you have downloaded the correct game version, extact the contents of
+the archive into the game folder.
+
+
+
+
+The game root folder is where the game executable is located.
+
+
+
+On Linux, the game root folder is where the executable <Game>.x86
or
+<Game>.x86_64
is located.
+On macOS, the root folder is where the game <Game>.app
is located.
+
+
+
+Do a first run to generate configuration files
+
+
+
+
+Simply run the game executable. This should generate BepInEx configuration
+file into BepInEx/config
folder and an initial log file BepInEx/LogOutput.txt
.
+
+
+
+
+First, open the included run script run_bepinex.sh
in a text editor of
+your choice. Edit the line
+executable_name="";
+
+to be the name of the game executable :
+
+On Linux, this is simply the name of the game executable
+On macOS, this is the name of the game app with .app
extension, for example HuniePop.app
+
+Finally, open the terminal in the game folder and make run_bepinex.sh
script
+executable:
+chmod u+x run_bepinex.sh
+
+You can now run BepInEx by executing the run script:
+./run_bepinex.sh
+
+This should generate BepInEx configuration
+file into BepInEx/config
folder and an initial log file BepInEx/LogOutput.txt
.
+
+
+
+Configure BepInEx to suit your needs.
+Open BepInEx/config/BepInEx.cfg
in a text editor of your choice.
+All options are documented directly in the configuration file.
+Additionally, refer to refer to the configuration guide for more information.
+
+
+Further steps and troubleshooting
+Some games require some additional changes in order to work around specific
+limitations of different Unity versions.
+Please refer to the
+troubleshooting section for more information about
+additional installation steps.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/user_guide/troubleshooting.html b/articles/user_guide/troubleshooting.html
new file mode 100644
index 00000000..6f382897
--- /dev/null
+++ b/articles/user_guide/troubleshooting.html
@@ -0,0 +1,314 @@
+
+
+
+
+
+ Troubleshooting | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Troubleshooting
+
+This page outlines some specifics related to running BepInEx of various
+platforms and Unity versions.
+Whenever you have a problem starting up BepInEx, most commonly, it's either because of a missing core file or a wrong entry point.
+Common
+Enable console
+In many cases, it's suggested to enable the console. That way, you'll see load progress and potential errors live.
+Open BepInEx/config/BepInEx.cfg
, locate and change the following settings accordingly:
+[Logging.Console]
+
+Enabled = true
+
+Remove Managed
folder and verify files
+Suppose you're upgrading from an older version of BepInEx or a different modding framework.
+In that case, there might be some incompatible DLLs installed into the game's Managed
folder.
+If the game is on Steam, go to <Game Folder>\<Game Name>_Data
folder and delete Managed
folder.
+Finally, go to Steam and verify game integrity .
+This procedure will cause Steam to redownload a clean copy of Managed
folder.
+If the game is not on Steam, you can try obtaining the clean Managed
folder
+or reinstall the game altogether.
+(Windows) Check the bitness of the game
+Currently, Windows builds of BepInEx ship separately for x64 and x86 games.
+Because of that, make sure the version of BepInEx is for the correct architecture.
+To do that, run the game and check it via Task Manager.
+If you see (32 bit)
after the game process name:
+
+the game requires x86 build of BepInEx.
+If you don't see such addition:
+
+the game requires x64 build of BepInEx.
+Extremely long paths with non-ASCII characters
+Some versions of Mono bundled with Unity games cannot handle non-ASCII characters in paths or too long path names.
+Because of that, it's suggested that
+
+Your game executable path is not too long. Under 1024 will work on most systems, under 256 on all.
+Attempt to remove "exotic" characters from the game path. Make sure any of the game folders have only the following characters:
+
+A-Z, a-z or numbers 0-9
+Common punctuation (.:;,!"#%&()[]{}=?*'_-
)
+
+
+
+Unity 2017 and newer
+Change the entry point
+In some games, the default entry point is too early for BepInEx to load up properly.
+For that, try an alternative entry point:
+Open BepInEx/config/BepInEx.cfg
, locate and change the following settings accordingly:
+[Preloader.Entrypoint]
+
+Assembly = UnityEngine.CoreModule.dll
+
+Type = MonoBehaviour
+
+Method = .cctor
+
+Harmony backend
+On Unity versions 2017 and newer (especially 2018), Harmony and MonoMod.RuntimeDetour may error when trying to patch anything. Here's an example error message:
+[Error : Unity Log] NotImplementedException: Derived classes must implement it
+Stack trace:
+System.Reflection.Module.get_Assembly () (at <e1319b7195c343e79b385cd3aa43f5dc>:0)
+MonoMod.Utils._DMDEmit.Generate (MonoMod.Utils.DynamicMethodDefinition dmd, System.Reflection.MethodBase _mb, System.Reflection.Emit.ILGenerator il) (at <041d70ff506f4f089a67adab0245e45d>:0)
+MonoMod.Utils.DMDEmitMethodBuilderGenerator.GenerateMethodBuilder (MonoMod.Utils.DynamicMethodDefinition dmd, System.Reflection.Emit.TypeBuilder typeBuilder) (at <041d70ff506f4f089a67adab0245e45d>:0)
+MonoMod.Utils.DMDEmitMethodBuilderGenerator._Generate (MonoMod.Utils.DynamicMethodDefinition dmd, System.Object context) (at <041d70ff506f4f089a67adab0245e45d>:0)
+...
+
+This is due to the System.Runtime.Emit implementation in the version of Mono that is bundled with the game being incomplete. This can be fixed by setting the Preloader.HarmonyBackend
setting to cecil
, as such:
+[Preloader]
+
+## Specifies which MonoMod backend to use for Harmony patches. Auto uses the best available backend.
+## This setting should only be used for development purposes (e.g. debugging in dnSpy). Other code might override this setting.
+# Setting type: MonoModBackend
+# Default value: auto
+# Acceptable values: auto, dynamicmethod, methodbuilder, cecil
+HarmonyBackend = cecil
+
+Unity 5 and older
+Change the entry point
+In some games, the default entry point is too early for BepInEx to load up properly.
+For that, try an alternative entry point:
+Open BepInEx/config/BepInEx.cfg
, locate and change the following settings accordingly:
+[Preloader.Entrypoint]
+
+Assembly = UnityEngine.dll
+
+Type = MonoBehaviour
+
+Method = .cctor
+
+In some cases, another option works better
+[Preloader.Entrypoint]
+
+Assembly = UnityEngine.dll
+
+Type = Camera
+
+Method = .cctor
+
+Future versions of BepInEx should automate the process of setting an early enough entry point.
+Unity 4 and older
+Ensure core libraries are included
+Some older Unity games strip away unused core libraries. Specifically, BepInEx
+requires the following two libraries to be bundled
+
+System.dll
+System.Core.dll
+
+Ensure they have been included in the <Game Name>_Data/Managed
folder of your game.
+If not, you have to obtain such libraries yourself at the moment .
+
+Head to Unity download archive
+Find an old version of Unity. 5.0.0 is suggested as a fitting middle ground
+Download its Unity Editor and install it
+Go to <unity-install-dir>\Editor\Data\PlaybackEngines\windowsstandalonesupport\Variations\win32_development_mono
where <unity-install-dir>
is the directory where you installed Unity to
+In the folder, locate System.Core.dll
(should be in Data\Managed
) and copy it to your game's Managed
folder
+Try rerunning the game. BepInEx should now launch
+
+Rename winhttp.dll
to version.dll
+While winhttp.dll
proxy works best on more platforms (especially older versions of Wine on Linux), older Unity games might not work correctly with it.
+Try renaming winhttp.dll
that comes with BepInEx to version.dll
and run the game.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/articles/user_guide/upgrading.html b/articles/user_guide/upgrading.html
new file mode 100644
index 00000000..b6a967c9
--- /dev/null
+++ b/articles/user_guide/upgrading.html
@@ -0,0 +1,240 @@
+
+
+
+
+
+ Upgrading | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Upgrading
+
+Migration from previous versions of BepInEx
+Upgrading from 4.x
+
+
Important
+
pre-BepInEx 5 plugins are not compatible with BepInEx 5!
+This guide only provides a temporary upgrade solution.
+It is suggested that you do a clean install of BepInEx instead -- remove all BepInEx files and start over fresh.
+
+
+Delete BepInEx/core
folder if it exists.
+Download and install BepInEx 5 according to the installation guide .
+Download latest version of BepInEx.BepInEx4Upgrader
and place it in BepInEx/patchers
folder.
+Run the game normally.
+
+Upgrading from 3.x
+To migrate from a previous version of BepInEx, do the following:
+
+Delete UnityEngine.dll
, 0Harmony.dll
and BepInEx.dll
from the *_Data\Managed
folder for your game
+
+
+IMPORTANT: Check all game folders for their respective Managed
folders. BepInEx 3 creates the aforementioned files for each valid Unity executable it finds, which means that you may have to repeat this process multiple times.
+
+
+Rename UnityEngine.dll.bak
to UnityEngine.dll
+Delete BepInEx.Patcher.exe
from the game's root folder.
+Delete your config.ini
file in your BepInEx folder
+Follow the upgrading guide for 4.x
+
+Migrating from Sybaris 2.x
+
+Delete all occurences of the following DLLs in the game's folder:
+
+ExIni.dll
+UnityInjector.dll
+Mono.Cecil.dll
+Sybaris.Loader.dll
+COM3D2.UnityInjector.Patcher
(and other UnityInjector patchers)
+opengl32.dll
+Use Windows' search tool if you cannot find those.
+
+
+Install BepInEx 4 normally
+Download and install UnityInjectorLoader and SybarisLoader to enable UnityInjector and Sybaris compatibility
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/favicon.ico b/favicon.ico
new file mode 100644
index 00000000..390b304c
Binary files /dev/null and b/favicon.ico differ
diff --git a/fonts/fontello.eot b/fonts/fontello.eot
new file mode 100644
index 00000000..08e42c0c
Binary files /dev/null and b/fonts/fontello.eot differ
diff --git a/fonts/fontello.svg b/fonts/fontello.svg
new file mode 100644
index 00000000..d26352dd
--- /dev/null
+++ b/fonts/fontello.svg
@@ -0,0 +1,22 @@
+
+
+
+Copyright (C) 2021 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fonts/fontello.ttf b/fonts/fontello.ttf
new file mode 100644
index 00000000..ddf510ca
Binary files /dev/null and b/fonts/fontello.ttf differ
diff --git a/fonts/fontello.woff b/fonts/fontello.woff
new file mode 100644
index 00000000..273efd70
Binary files /dev/null and b/fonts/fontello.woff differ
diff --git a/fonts/fontello.woff2 b/fonts/fontello.woff2
new file mode 100644
index 00000000..7ddbf0a5
Binary files /dev/null and b/fonts/fontello.woff2 differ
diff --git a/fonts/glyphicons-halflings-regular.eot b/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 00000000..b93a4953
Binary files /dev/null and b/fonts/glyphicons-halflings-regular.eot differ
diff --git a/fonts/glyphicons-halflings-regular.svg b/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 00000000..94fb5490
--- /dev/null
+++ b/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/fonts/glyphicons-halflings-regular.ttf b/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 00000000..1413fc60
Binary files /dev/null and b/fonts/glyphicons-halflings-regular.ttf differ
diff --git a/fonts/glyphicons-halflings-regular.woff b/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 00000000..9e612858
Binary files /dev/null and b/fonts/glyphicons-halflings-regular.woff differ
diff --git a/fonts/glyphicons-halflings-regular.woff2 b/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 00000000..64539b54
Binary files /dev/null and b/fonts/glyphicons-halflings-regular.woff2 differ
diff --git a/index.html b/index.html
new file mode 100644
index 00000000..0d22d62d
--- /dev/null
+++ b/index.html
@@ -0,0 +1,93 @@
+
+
+
+
+
+ Welcome to BepinEx Docs! | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Welcome to BepInEx documentation!
+Here you can find guides on how to install, configure and develop plugins for BepInEx!
+About BepInEx
+Bep is In jector Ex tensible is a patcher/plug-in framework for Unity games that use Mono as their scripting backend.
+BepInEx provides various features, including
+
+drop-in installation ;
+built-in configuration and logging systems ;
+runtime method patching with Harmony -- includes Harmony and MonoMod to enable runtime method injection;
+in-memory assembly patching -- allows to patch game's assemblies with Mono.Cecil in memory with the help of UnityDoorstop ;
+support for other mod loaders -- load Sybaris, UnityInjector, IPA and many other mods directly via BepInEx! See out list of supported mod loaders
+
+BepInEx is fully open source under the MIT license.
+Getting started
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/logo.svg b/logo.svg
new file mode 100644
index 00000000..3c2c5d73
--- /dev/null
+++ b/logo.svg
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Created by Docfx
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 00000000..257a0073
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,1314 @@
+{
+ "homepages": [],
+ "source_base_path": "D:/a/bepinex-docs/bepinex-docs",
+ "xrefmap": "xrefmap.yml",
+ "files": [
+ {
+ "type": "Conceptual",
+ "source_relative_path": "README.md",
+ "output": {
+ ".html": {
+ "relative_path": "README.html",
+ "hash": "LjGTPsvl1cXOC4AuLty8eC3phE0Q5LdQrXVIsgPVl2I="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BaseUnityPlugin.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BaseUnityPlugin.html",
+ "hash": "9ar6E5qClWoCF5NPdLLiunhBcem9bubC2R7DFbD0Fvw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInDependency.DependencyFlags.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInDependency.DependencyFlags.html",
+ "hash": "gCADuwj2z2zvchNnLtE4hT4qiZfMMj+YplQNddIEmew="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInDependency.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInDependency.html",
+ "hash": "teN19DbojuK3NOVovpy8xZIN//ud4aQSGeInlYNCXEg="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInIncompatibility.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInIncompatibility.html",
+ "hash": "0uJCrzlqE/SK/jb6Q2elwGQC8AEAHipYK3FYRQ33VPE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInPlugin.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInPlugin.html",
+ "hash": "ghHP0HoBwB7Pna8Imp20psOcnxrFXHRy3L3e7ru3hWM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInProcess.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInProcess.html",
+ "hash": "Yh3Cp6LL0MOLrYNNA3dXyaUIyr9EndK8wAfDCCXqWGo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.CachedAssembly-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.CachedAssembly-1.html",
+ "hash": "IUrol94B0WMviISkimVe/t6tBF67DiBnT0asFMqbXl0="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.Chainloader.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.Chainloader.html",
+ "hash": "eZXZl54BszT8qXUMZsjHqXRZel6WjRQMTiN5admscKE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.ICacheable.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.ICacheable.html",
+ "hash": "mbREqbn2kSHN276FlWDQC99PZso2QKI3a43VVZmNXnY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.TypeLoader.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.TypeLoader.html",
+ "hash": "DzdJe1xIc1s8ynoMqvgMKJu/GbqYnfncascBZEw/TEE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.html",
+ "hash": "ESDBuSyvfcKIWqPO3Dz1wY13yRj7DaAvO68JDOGPsmM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.AcceptableValueBase.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.AcceptableValueBase.html",
+ "hash": "sIxK5kv2E0CpmyJd67EZAgWpmogPPmv5kxCzGYrZ9k4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.AcceptableValueList-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.AcceptableValueList-1.html",
+ "hash": "1tDekfTZVgZAYZlAk0UoYa47A4EcK+Q6X+L6hnxOAQo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.AcceptableValueRange-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.AcceptableValueRange-1.html",
+ "hash": "texDMjMptRGRBB1mdqt8Z/0v0sOkU7YGZSN13Vr2n7A="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigDefinition.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigDefinition.html",
+ "hash": "WLupL3LnrgQNXV1HjMsplIeCg/zb2jAOKK7Wt7O0QeI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigDescription.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigDescription.html",
+ "hash": "WEQFMYG1wLtO9Bd5yMlcZ13zO2SOxnBQQLrz+cHwotM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigEntry-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigEntry-1.html",
+ "hash": "wKYPljM3cRIRPN21jhCF0+QmS98vEenO9SajLwTmjC8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigEntryBase.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigEntryBase.html",
+ "hash": "aMd/WwBWioIOaOiYSmom608fekynaJ9HBjOTBIdkj7k="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigFile.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigFile.html",
+ "hash": "QqXyZJxdBmvryci4JWHmF1WNQNtoImamLUo6gl/zA6M="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigWrapper-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigWrapper-1.html",
+ "hash": "AK2wyWamwbLu7CQatd1btkik+iruTEAUkByGv2VbwQI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.KeyboardShortcut.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.KeyboardShortcut.html",
+ "hash": "UHR86n13uQY5lflolhX3VGcFcPGaMYu15SXAwuKUu6I="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.SettingChangedEventArgs.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.SettingChangedEventArgs.html",
+ "hash": "zWtbX5OgUADuQF3wX79VO5Dl90MzwBq0dpBqImss8B4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.TomlTypeConverter.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.TomlTypeConverter.html",
+ "hash": "USRzJPHLYpMTCSCQW/S5w8b223k4NBUUWVv2mis1X84="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.TypeConverter.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.TypeConverter.html",
+ "hash": "wVrFnLhnHWeBTVZgMwWmjwOsn8C/QpG30Iih/UHd2Jg="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.html",
+ "hash": "8JK6dotiZ9hiaWFAV/XlbEAi6b83tXgcxo/dDzIQlEM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.IInputSystem.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.IInputSystem.html",
+ "hash": "jlW+ScL6XxDEwv/QBr7TPG4tnHi7+5/n9bdYF1+jrCc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.ConsoleLogListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.ConsoleLogListener.html",
+ "hash": "HIX/tyEW9IhTg7v854fkUYLi5rPrWTxJi5Aryu8VOgk="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.DiskLogListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.DiskLogListener.html",
+ "hash": "VUTTkNvhivUUbBk8Lcm6o7frToymmwYe2X5QKM2a3R4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.ILogListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.ILogListener.html",
+ "hash": "J4RXc7tWvTEk4YyHWYzGWS87gaMTaOWlgNjywnc8HW4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.ILogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.ILogSource.html",
+ "hash": "XMarS3BCQuZ1WHqCfy3th38JCAtAKXK6Y2FwOErQfTY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.LogEventArgs.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.LogEventArgs.html",
+ "hash": "zIwupXBW+rXUqLfRcli1lOo0s6ntUSdVc54oaTF9tY4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.LogLevel.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.LogLevel.html",
+ "hash": "j3Op7CFxRRN3rrCjKOogi+ogjVaSGAhBfKVgJuEvBHU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.LogLevelExtensions.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.LogLevelExtensions.html",
+ "hash": "JfW7WRtlqclqLjuCj2jk/q68LZu5/cptnxttxi4PTbM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.Logger.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.Logger.html",
+ "hash": "GsSc9X1CNNplvsGjVZwPFLVm7PJd6j9PiTTtFNJUAq4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.ManualLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.ManualLogSource.html",
+ "hash": "P0YuujpDv49fH098eAovRu6lexKQJgqYTJ4rRizzRyA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.TraceLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.TraceLogSource.html",
+ "hash": "PGfySF3KMLA0erKt8xhxfbpY3LBfDU/jb26gYO+W5Ys="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.UnityLogListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.UnityLogListener.html",
+ "hash": "kxnK9xOMFmneO3td8lRaBMPAYVuvrxFiA0lWiAWQgzQ="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.UnityLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.UnityLogSource.html",
+ "hash": "DO1T+KkdRRIeCA0C7mc3/K0Mp13yXtkTIIIidufuSJM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.html",
+ "hash": "oh5fj57edCs96JAQPYD2hGTRAT9nFUSkONz41yRnsjo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.MetadataHelper.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.MetadataHelper.html",
+ "hash": "eSKB0oN8K68xlgBjHc/Gd64pDoy08cC0G4RAllIsHTM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Paths.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Paths.html",
+ "hash": "vMHLUeXj8Un418aKxlvdMvKH2qUuUEo4wc7dMnVsXMs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.PluginInfo.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.PluginInfo.html",
+ "hash": "iTjJw+eGAxOPioXgbyOmCzz5WwI/DnIn+mpI4B7Gpwk="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.ThreadingExtensions.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.ThreadingExtensions.html",
+ "hash": "NxKrFZeH3xFtmzVfjH0wx26T93fq+bz+x/e/n0IZ8Ho="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.ThreadingHelper.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.ThreadingHelper.html",
+ "hash": "p0k1kNFVbYiyXnMBHcPnjjZIUW3e/eqwJ2Wcb5uauXk="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.UnityInput.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.UnityInput.html",
+ "hash": "oVFGL0Y9A/2PkAdru/ZoXZy9UlUtTnEr/w9gAtpcOv8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Utility.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Utility.html",
+ "hash": "hNBUBHvYe/scUNGS74nkJNkfqjZlx9f9uvmTu+0mnkY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.html",
+ "hash": "sJ4fYLO2qR42YOpbS812Fi4BDDN4zE1Eui3QGzKb0q8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "api/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "api/index.html",
+ "hash": "iZqDPWPCIG0Kv9b019oEqk1Z/SP4zWZ7kPp1mEz+xf8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Toc",
+ "source_relative_path": "api/toc.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/toc.html",
+ "hash": "ORVj3N8kYmzaqr3kQjs/Cs8mchcbBoW0tHilQsNUynU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/compatibility.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/compatibility.html",
+ "hash": "3AX0SCOIZzEdVatYSycgC/znDEPDtQrZUdwUCSrlHX8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/debug/assemblies_dnSpy.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/debug/assemblies_dnSpy.html",
+ "hash": "3ZB6w3+h7F9JzhnrfBCCJQ+6uyrjgeAKsOnG/XQlVik="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/bepin_breakpoint_hit.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/bepin_breakpoint_hit.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_breakpoint_hit.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_breakpoint_hit.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_debug.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_debug.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_dragndrop.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_dragndrop.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_module_breakpoints.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_module_breakpoints.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_modules.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_modules.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_modules_view.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_modules_view.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_set_breakpoint.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_set_breakpoint.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_start_debug.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_start_debug.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_debugger_select.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_debugger_select.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_pdb2mdb.gif",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_pdb2mdb.gif"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_plugin_install.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_plugin_install.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_select.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_select.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_select_process.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_select_process.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_works.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_works.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/debug/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/debug/index.html",
+ "hash": "MS8M4J/qvnMhLX74bFXjCy2hmJ0DRsfGdKGVV2tKQKw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/debug/plugins_dnSpy.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/debug/plugins_dnSpy.html",
+ "hash": "eObwg4ppKwt5gr/KciVNjFgqVaUGI3GBDWLFPIhG8eI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/debug/plugins_vs.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/debug/plugins_vs.html",
+ "hash": "HreZ5Dwjkg4kZEUt1iY1VvWTT4a0eu+0JA90EPH6m4c="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/protontricks_select.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/protontricks_select.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/protontricks_winecfg.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/protontricks_winecfg.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/protontricks_wineprefix.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/protontricks_wineprefix.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/steam_launch_opts.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/steam_launch_opts.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/steam_local_files.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/steam_local_files.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/steam_props.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/steam_props.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/winecfg_add_lib.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/winecfg_add_lib.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/proton_wine.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/proton_wine.html",
+ "hash": "+kRmEOBAsm7lm/KaY7rRAShzNuWFcA8C5RjTNqmkjEI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/steam_interop.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/steam_interop.html",
+ "hash": "BQwND8PkL7XhybxjE6Mkd7FQd+DFHjs1xaooihFq1VM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/dev_tools.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/dev_tools.html",
+ "hash": "oHVgxtBppauyE8EhX9xtVi54WwZw1IMdMt0FasgztlA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/1_setup.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/1_setup.html",
+ "hash": "TQ8G0zcHZ8GTpkXsJrXP0dSatgCKp+Y6PRD1v3Ejve8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/2_plugin_start.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/2_plugin_start.html",
+ "hash": "AjHCcgrCYQulJA8AqPyIncbXW5BbuwxTiibWBpiDtKM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/3_logging.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/3_logging.html",
+ "hash": "s9hqGj3uJCdpN5T8Cd70YSK7VfWfgriEK6cF+slXhxE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/4_configuration.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/4_configuration.html",
+ "hash": "H7ft6hos30FfiBSOVCbBxD2iaxsaH72JmSyU9sLiDdY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/images/dotnet_download.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/images/dotnet_download.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/images/plugin_works_example.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/images/plugin_works_example.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/index.html",
+ "hash": "GWEiMSSISqViyjPxNkr5QnofeWse93M9P5ADaTzwzDs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/preloader_patchers.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/preloader_patchers.html",
+ "hash": "p/kErojinxEdcILBQnv1WRE0sWIhYg8KWJW76BySNjk="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/runtime_patching.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/runtime_patching.html",
+ "hash": "ZdSG3DTLNtX32CyU2k/CilNXhSKxeTCEwXoo5qzXXTs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/index.html",
+ "hash": "KIB9aCunirYuGs/Qb2FwcQZwy543Eo5blkHrqUoyZqg="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Toc",
+ "source_relative_path": "articles/toc.yml",
+ "output": {
+ ".html": {
+ "relative_path": "articles/toc.html",
+ "hash": "GkLffz72/JeurZc8KE6U9Me7Cg32hKMXHaidN89/KvQ="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/configuration.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/configuration.html",
+ "hash": "mPu7vQshZpRE03vQNDlPhsF0WrETv4w6T7hjT7LUs88="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/installer_1.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/installer_1.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/installer_2.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/installer_2.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/installer_3.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/installer_3.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/manual_install_1.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/manual_install_1.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/x64process_example.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/x64process_example.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/x86process_example.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/x86process_example.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/installation/hardpatching.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/installation/hardpatching.html",
+ "hash": "bpA4H+cHjIgEP5SsDII7iKDhFtZiXV4N4OD9L2o/XwU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/installation/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/installation/index.html",
+ "hash": "gJsm+TerbJV5x8QcMzz1ixNsQE17PpCORV1TToq+3A4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/troubleshooting.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/troubleshooting.html",
+ "hash": "hywryUQb09lR62i+cbdSXWe7100jg+TkdDE8d79RTbM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/upgrading.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/upgrading.html",
+ "hash": "zuHdFhk+OIFxkBMmhgVjpC7u+4/nSRAthk8sAVdr8Hc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "index.md",
+ "output": {
+ ".html": {
+ "relative_path": "index.html",
+ "hash": "l2a5TbcBhw3pOHKKt/RG5wsYv3WuMdKQvjUN24C+s0Y="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Toc",
+ "source_relative_path": "toc.yml",
+ "output": {
+ ".html": {
+ "relative_path": "toc.html",
+ "hash": "TaBeOHTbN59L/fPi2esrW+lUIrU3IanzBPpfjlLU7d4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ }
+ ],
+ "incremental_info": [
+ {
+ "status": {
+ "can_incremental": false,
+ "details": "Cannot build incrementally because last build info is missing.",
+ "incrementalPhase": "build",
+ "total_file_count": 0,
+ "skipped_file_count": 0,
+ "full_build_reason_code": "NoAvailableBuildCache"
+ },
+ "processors": {
+ "ConceptualDocumentProcessor": {
+ "can_incremental": false,
+ "incrementalPhase": "build",
+ "total_file_count": 24,
+ "skipped_file_count": 0
+ },
+ "ManagedReferenceDocumentProcessor": {
+ "can_incremental": false,
+ "incrementalPhase": "build",
+ "total_file_count": 47,
+ "skipped_file_count": 0
+ },
+ "ResourceDocumentProcessor": {
+ "can_incremental": false,
+ "details": "Processor ResourceDocumentProcessor cannot support incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.",
+ "incrementalPhase": "build",
+ "total_file_count": 0,
+ "skipped_file_count": 0
+ },
+ "TocDocumentProcessor": {
+ "can_incremental": false,
+ "details": "Processor TocDocumentProcessor cannot support incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.",
+ "incrementalPhase": "build",
+ "total_file_count": 0,
+ "skipped_file_count": 0
+ }
+ }
+ },
+ {
+ "status": {
+ "can_incremental": false,
+ "details": "Cannot support incremental post processing, the reason is: last post processor info is null.",
+ "incrementalPhase": "postProcessing",
+ "total_file_count": 0,
+ "skipped_file_count": 0
+ },
+ "processors": {}
+ }
+ ],
+ "version_info": {},
+ "groups": [
+ {
+ "xrefmap": "xrefmap.yml"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/master/README.html b/master/README.html
new file mode 100644
index 00000000..3feb631f
--- /dev/null
+++ b/master/README.html
@@ -0,0 +1,96 @@
+
+
+
+
+
+ BepInEx Documentation | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BepInEx Documentation
+
+This is the repo for storing documentation related to BepInEx .
+
+Contributing
+All contributions either via PRs or issues are welcome!
+This project uses DocFX to render the API documentation and the articles.
+Please refer to DocFX documentation for information on using DocFX-flavoured markdown .
+In general, you should be able to update pages with a simple markdown editor.
+Testing docs locally
+If you want to preview the docs locally, you need .NET 5 or newer installed.
+After that, do the following:
+
+Clone this repo with git clone
+In the cloned directory, run
+git worktree add --checkout common common
+
+A folder named common
should appear.
+Write documentation into api
or articles
folder. Refer to docfx guide and DFM syntax guide for info on writing the guides using DocFX
+Run common/build.bat --target=Build
to build the docs. The generated docs will appear in _site
folder
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.BepInDependency.DependencyFlags.html b/master/api/BepInEx.BepInDependency.DependencyFlags.html
new file mode 100644
index 00000000..cf1a09f6
--- /dev/null
+++ b/master/api/BepInEx.BepInDependency.DependencyFlags.html
@@ -0,0 +1,592 @@
+
+
+
+
+
+ Enum BepInDependency.DependencyFlags
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enum BepInDependency.DependencyFlags
+
+ Flags that are applied to a dependency
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
[Flags]
+public enum DependencyFlags
+
+
+
+
+
+
+
+
+
+
+
+
+
Fields
+
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+ HardDependency
+ The plugin has a hard dependency on the referenced plugin, and will not run without it.
+
+
+
+ SoftDependency
+ This plugin has a soft dependency on the referenced plugin, and is able to run without it.
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.BepInDependency.html b/master/api/BepInEx.BepInDependency.html
new file mode 100644
index 00000000..33d30b8f
--- /dev/null
+++ b/master/api/BepInEx.BepInDependency.html
@@ -0,0 +1,1204 @@
+
+
+
+
+
+ Class BepInDependency
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInDependency
+
+ This attribute specifies any dependencies that this plugin has on other plugins.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ BepInDependency
+
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+public class BepInDependency : Attribute, _Attribute, ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Marks this as dependent on another plugin. The other plugin will be loaded before
+this one.
+If the other plugin doesn't exist, what happens depends on the Flags parameter.
+
+
+
Declaration
+
+
+
public BepInDependency(string DependencyGUID, BepInDependency.DependencyFlags Flags = BepInDependency.DependencyFlags.HardDependency)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ DependencyGUID
+ The GUID of the referenced plugin.
+
+
+
+ BepInDependency.DependencyFlags
+ Flags
+ The flags associated with this dependency definition.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Marks this as dependent on another plugin. The other plugin will be loaded before
+this one.
+If the other plugin doesn't exist or is of a version not satisfying VersionRange , this plugin will
+not load and an error will be logged instead.
+
+
+
Declaration
+
+
+
public BepInDependency(string guid, string version)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ guid
+ The GUID of the referenced plugin.
+
+
+
+ System.String
+ version
+ The version range of the referenced plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The GUID of the referenced plugin.
+
+
+
Declaration
+
+
+
public string DependencyGUID { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The flags associated with this dependency definition.
+
+
+
Declaration
+
+
+
public BepInDependency.DependencyFlags Flags { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The version range of the referenced plugin.
+
+
+
Declaration
+
+
+
public SemanticVersioning.Range VersionRange { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ SemanticVersioning.Range
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Load(BinaryReader br)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryReader
+ br
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Save(BinaryWriter bw)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryWriter
+ bw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.BepInIncompatibility.html b/master/api/BepInEx.BepInIncompatibility.html
new file mode 100644
index 00000000..1e7495eb
--- /dev/null
+++ b/master/api/BepInEx.BepInIncompatibility.html
@@ -0,0 +1,996 @@
+
+
+
+
+
+ Class BepInIncompatibility
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInIncompatibility
+
+ This attribute specifies other plugins that are incompatible with this plugin.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ BepInIncompatibility
+
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+public class BepInIncompatibility : Attribute, _Attribute, ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Marks this as incompatible with another plugin.
+If the other plugin exists, this plugin will not be loaded and a warning will be shown.
+
+
+
Declaration
+
+
+
public BepInIncompatibility(string IncompatibilityGUID)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ IncompatibilityGUID
+ The GUID of the referenced plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The GUID of the referenced plugin.
+
+
+
Declaration
+
+
+
public string IncompatibilityGUID { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Load(BinaryReader br)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryReader
+ br
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Save(BinaryWriter bw)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryWriter
+ bw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.BepInPlugin.html b/master/api/BepInEx.BepInPlugin.html
new file mode 100644
index 00000000..cb794c4a
--- /dev/null
+++ b/master/api/BepInEx.BepInPlugin.html
@@ -0,0 +1,997 @@
+
+
+
+
+
+ Class BepInPlugin
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInPlugin
+
+ This attribute denotes that a class is a plugin, and specifies the required metadata.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ BepInPlugin
+
+
+
+
Implements
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class)]
+public class BepInPlugin : Attribute, _Attribute
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInPlugin(string GUID, string Name, string Version)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ GUID
+ The unique identifier of the plugin. Should not change between plugin versions.
+
+
+
+ System.String
+ Name
+ The user friendly name of the plugin. Is able to be changed between versions.
+
+
+
+ System.String
+ Version
+ The specific version of the plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The unique identifier of the plugin. Should not change between plugin versions.
+
+
+
Declaration
+
+
+
public string GUID { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The user friendly name of the plugin. Is able to be changed between versions.
+
+
+
Declaration
+
+
+
public string Name { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The specific version of the plugin.
+
+
+
Declaration
+
+
+
public SemanticVersioning.Version Version { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ SemanticVersioning.Version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.BepInProcess.html b/master/api/BepInEx.BepInProcess.html
new file mode 100644
index 00000000..21be195e
--- /dev/null
+++ b/master/api/BepInEx.BepInProcess.html
@@ -0,0 +1,862 @@
+
+
+
+
+
+ Class BepInProcess
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInProcess
+
+ This attribute specifies which processes this plugin should be run for. Not specifying this attribute will load the
+plugin under every process.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ BepInProcess
+
+
+
+
Implements
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class, AllowMultiple = true)]
+public class BepInProcess : Attribute, _Attribute
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInProcess(string ProcessName)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ ProcessName
+ The name of the process that this plugin will run under.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The name of the process that this plugin will run under.
+
+
+
Declaration
+
+
+
public string ProcessName { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Bootstrap.BaseChainloader-1.html b/master/api/BepInEx.Bootstrap.BaseChainloader-1.html
new file mode 100644
index 00000000..359eb313
--- /dev/null
+++ b/master/api/BepInEx.Bootstrap.BaseChainloader-1.html
@@ -0,0 +1,1863 @@
+
+
+
+
+
+ Class BaseChainloader<TPlugin>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BaseChainloader<TPlugin>
+
+
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public abstract class BaseChainloader<TPlugin>
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ TPlugin
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected static readonly string CurrentAssemblyName
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected static readonly Version CurrentAssemblyVersion
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected virtual string ConsoleTitle { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Collection of error chainloader messages that occured during plugin loading.
+Contains information about what certain plugins were not loaded.
+
+
+
Declaration
+
+
+
public List<string> DependencyErrors { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.List <System.String >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
List of all PluginInfo instances loaded via the chainloader.
+
+
+
Declaration
+
+
+
public Dictionary<string, PluginInfo> Plugins { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , PluginInfo >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Discovers plugins to load.
+
+
+
Declaration
+
+
+
protected virtual IList<PluginInfo> DiscoverPlugins()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IList <PluginInfo >
+ List of plugins to be loaded.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Discovers all plugins in the plugin directory without loading them.
+
+
+
Declaration
+
+
+
protected IList<PluginInfo> DiscoverPluginsFrom(string path, string cacheName = "chainloader")
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ path
+ Path from which to search the plugins.
+
+
+
+ System.String
+ cacheName
+ Cache name to use. If null, results are not cached.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IList <PluginInfo >
+ List of discovered plugins and their metadata.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Run the chainloader and load all plugins from the plugins folder.
+
+
+
Declaration
+
+
+
public virtual void Execute()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected static bool HasBepinPlugins(AssemblyDefinition ass)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ AssemblyDefinition
+ ass
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public virtual void Initialize(string gameExePath = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ gameExePath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected virtual void InitializeLoggers()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public abstract TPlugin LoadPlugin(PluginInfo pluginInfo, Assembly pluginAssembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ PluginInfo
+ pluginInfo
+
+
+
+ System.Reflection.Assembly
+ pluginAssembly
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ TPlugin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Detects and loads all plugins in the specified directories.
+
+
+
Declaration
+
+
+
public IList<PluginInfo> LoadPlugins(params string[] pluginsPaths)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String []
+ pluginsPaths
+ Directories to search the plugins from.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IList <PluginInfo >
+ List of loaded plugin infos.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Preprocess the plugins and modify the load order.
+
+
+
Declaration
+
+
+
protected virtual IList<PluginInfo> ModifyLoadOrder(IList<PluginInfo> plugins)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IList <PluginInfo >
+ plugins
+ Plugins to process.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IList <PluginInfo >
+ List of plugins to load in the correct load order.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected static bool PluginTargetsWrongBepin(PluginInfo pluginInfo)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ PluginInfo
+ pluginInfo
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Analyzes the given type definition and attempts to convert it to a valid PluginInfo
+
+
+
Declaration
+
+
+
public static PluginInfo ToPluginInfo(TypeDefinition type, string assemblyLocation)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ TypeDefinition
+ type
+ Type definition to analyze.
+
+
+
+ System.String
+ assemblyLocation
+ The filepath of the assembly, to keep as metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ PluginInfo
+ If the type represent a valid plugin, returns a PluginInfo instance. Otherwise, return null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Occurs after all plugins are loaded.
+
+
+
Declaration
+
+
+
public event Action Finished
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Occurs after a plugin is loaded.
+
+
+
Declaration
+
+
+
public event Action<PluginInfo> PluginLoaded
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Action <PluginInfo >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Bootstrap.CachedAssembly-1.html b/master/api/BepInEx.Bootstrap.CachedAssembly-1.html
new file mode 100644
index 00000000..10879a99
--- /dev/null
+++ b/master/api/BepInEx.Bootstrap.CachedAssembly-1.html
@@ -0,0 +1,745 @@
+
+
+
+
+
+ Class CachedAssembly<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class CachedAssembly<T>
+
+
+
+
+
+
Inheritance
+ System.Object
+ CachedAssembly<T>
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class CachedAssembly<T>
+ where T : ICacheable
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
List of cached items inside the assembly.
+
+
+
Declaration
+
+
+
public List<T> CacheItems { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.List <T>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hash of the assembly. Used to verify that the assembly hasn't been changed.
+
+
+
Declaration
+
+
+
public string Hash { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Bootstrap.ICacheable.html b/master/api/BepInEx.Bootstrap.ICacheable.html
new file mode 100644
index 00000000..6fd206ee
--- /dev/null
+++ b/master/api/BepInEx.Bootstrap.ICacheable.html
@@ -0,0 +1,705 @@
+
+
+
+
+
+ Interface ICacheable
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public interface ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Loads the object from binary format.
+
+
+
Declaration
+
+
+
void Load(BinaryReader br)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryReader
+ br
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Serialize the object into a binary format.
+
+
+
Declaration
+
+
+
void Save(BinaryWriter bw)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryWriter
+ bw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Bootstrap.TypeLoader.html b/master/api/BepInEx.Bootstrap.TypeLoader.html
new file mode 100644
index 00000000..26a80a4f
--- /dev/null
+++ b/master/api/BepInEx.Bootstrap.TypeLoader.html
@@ -0,0 +1,1328 @@
+
+
+
+
+
+ Class TypeLoader
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TypeLoader
+
+ Provides methods for loading specified types from an assembly.
+
+
+
+
+
Inheritance
+ System.Object
+ TypeLoader
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public static class TypeLoader
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
Default assembly resolved used by the TypeLoader
+
+
+
Declaration
+
+
+
public static readonly DefaultAssemblyResolver CecilResolver
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ DefaultAssemblyResolver
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static readonly ReaderParameters ReaderParameters
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ReaderParameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static HashSet<string> SearchDirectories
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.HashSet <System.String >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static AssemblyDefinition CecilResolveOnFailure(object sender, AssemblyNameReference reference)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+
+
+
+ AssemblyNameReference
+ reference
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ AssemblyDefinition
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Looks up assemblies in the given directory and locates all types that can be loaded and collects their metadata.
+
+
+
Declaration
+
+
+
public static Dictionary<string, List<T>> FindPluginTypes<T>(string directory, Func<TypeDefinition, string, T> typeSelector, Func<AssemblyDefinition, bool> assemblyFilter = null, string cacheName = null)
+ where T : ICacheable, new()
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ directory
+ The directory to search for assemblies.
+
+
+
+ System.Func <TypeDefinition , System.String , T>
+ typeSelector
+ A function to check if a type should be selected and to build the type metadata.
+
+
+
+ System.Func <AssemblyDefinition , System.Boolean >
+ assemblyFilter
+ A filter function to quickly determine if the assembly can be loaded.
+
+
+
+ System.String
+ cacheName
+ The name of the cache to get cached types from.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , System.Collections.Generic.List <T>>
+ A dictionary of all assemblies in the directory and the list of type metadatas of types that match the
+selector.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ The specific base type to search for.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Loads an index of type metadatas from a cache.
+
+
+
Declaration
+
+
+
public static Dictionary<string, CachedAssembly<T>> LoadAssemblyCache<T>(string cacheName)
+ where T : ICacheable, new()
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ cacheName
+ Name of the cache
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , CachedAssembly <T>>
+ Cached type metadatas indexed by the path of the assembly that defines the type. If no cache is defined,
+return null.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Cacheable item
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Saves indexed type metadata into a cache.
+
+
+
Declaration
+
+
+
public static void SaveAssemblyCache<T>(string cacheName, Dictionary<string, List<T>> entries, Dictionary<string, string> hashes)
+ where T : ICacheable
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ cacheName
+ Name of the cache
+
+
+
+ System.Collections.Generic.Dictionary <System.String , System.Collections.Generic.List <T>>
+ entries
+ List of plugin metadatas indexed by the path to the assembly that contains the types
+
+
+
+ System.Collections.Generic.Dictionary <System.String , System.String >
+ hashes
+ Hash values that can be used for checking similarity between cached and live assembly
+
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Cacheable item
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Converts TypeLoadException to a readable string.
+
+
+
Declaration
+
+
+
public static string TypeLoadExceptionToString(ReflectionTypeLoadException ex)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.ReflectionTypeLoadException
+ ex
+ TypeLoadException
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ Readable representation of the exception
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Event fired when TypeLoader fails to resolve a type during type loading.
+
+
+
Declaration
+
+
+
public static event AssemblyResolveEventHandler AssemblyResolve
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ AssemblyResolveEventHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Bootstrap.html b/master/api/BepInEx.Bootstrap.html
new file mode 100644
index 00000000..a8ed8df0
--- /dev/null
+++ b/master/api/BepInEx.Bootstrap.html
@@ -0,0 +1,550 @@
+
+
+
+
+
+ Namespace BepInEx.Bootstrap
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Bootstrap
+
+
+
+
+ Classes
+
+
+
+
+
+
+ Provides methods for loading specified types from an assembly.
+
+ Interfaces
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.AcceptableValueBase.html b/master/api/BepInEx.Configuration.AcceptableValueBase.html
new file mode 100644
index 00000000..993014b8
--- /dev/null
+++ b/master/api/BepInEx.Configuration.AcceptableValueBase.html
@@ -0,0 +1,959 @@
+
+
+
+
+
+ Class AcceptableValueBase
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class AcceptableValueBase
+
+ Base type of all classes representing and enforcing acceptable values of config settings.
+
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public abstract class AcceptableValueBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected AcceptableValueBase(Type valueType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ valueType
+ Type of values that this class can Clamp.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Type of the supported values.
+
+
+
Declaration
+
+
+
public Type ValueType { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Change the value to be acceptable, if it's not already.
+
+
+
Declaration
+
+
+
public abstract object Clamp(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the value is an acceptable value.
+
+
+
Declaration
+
+
+
public abstract bool IsValid(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get the string for use in config files.
+
+
+
Declaration
+
+
+
public abstract string ToDescriptionString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.AcceptableValueList-1.html b/master/api/BepInEx.Configuration.AcceptableValueList-1.html
new file mode 100644
index 00000000..cedb1e78
--- /dev/null
+++ b/master/api/BepInEx.Configuration.AcceptableValueList-1.html
@@ -0,0 +1,983 @@
+
+
+
+
+
+ Class AcceptableValueList<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class AcceptableValueList<T>
+
+ Specify the list of acceptable values for a setting.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class AcceptableValueList<T> : AcceptableValueBase where T : IEquatable<T>
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Specify the list of acceptable values for a setting.
+If the setting does not equal any of the values, it will be set to the first one.
+
+
+
Declaration
+
+
+
public AcceptableValueList(params T[] acceptableValues)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ T[]
+ acceptableValues
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
List of values that a setting can take.
+
+
+
Declaration
+
+
+
public virtual T[] AcceptableValues { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T[]
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Change the value to be acceptable, if it's not already.
+
+
+
Declaration
+
+
+
public override object Clamp(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the value is an acceptable value.
+
+
+
Declaration
+
+
+
public override bool IsValid(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get the string for use in config files.
+
+
+
Declaration
+
+
+
public override string ToDescriptionString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.AcceptableValueRange-1.html b/master/api/BepInEx.Configuration.AcceptableValueRange-1.html
new file mode 100644
index 00000000..1217f0ea
--- /dev/null
+++ b/master/api/BepInEx.Configuration.AcceptableValueRange-1.html
@@ -0,0 +1,1050 @@
+
+
+
+
+
+ Class AcceptableValueRange<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class AcceptableValueRange<T>
+
+ Specify the range of acceptable values for a setting.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class AcceptableValueRange<T> : AcceptableValueBase where T : IComparable
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public AcceptableValueRange(T minValue, T maxValue)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ T
+ minValue
+ Lowest acceptable value
+
+
+
+ T
+ maxValue
+ Highest acceptable value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Highest acceptable value
+
+
+
Declaration
+
+
+
public virtual T MaxValue { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Lowest acceptable value
+
+
+
Declaration
+
+
+
public virtual T MinValue { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Change the value to be acceptable, if it's not already.
+
+
+
Declaration
+
+
+
public override object Clamp(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the value is an acceptable value.
+
+
+
Declaration
+
+
+
public override bool IsValid(object value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get the string for use in config files.
+
+
+
Declaration
+
+
+
public override string ToDescriptionString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.ConfigDefinition.html b/master/api/BepInEx.Configuration.ConfigDefinition.html
new file mode 100644
index 00000000..5f2f1321
--- /dev/null
+++ b/master/api/BepInEx.Configuration.ConfigDefinition.html
@@ -0,0 +1,1338 @@
+
+
+
+
+
+ Class ConfigDefinition
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigDefinition
+
+ Section and key of a setting. Used as a unique key for identification within a
+ConfigFile .
+The same definition can be used in multiple config files, it will point to different settings then.
+
+
+
+
+
Inheritance
+ System.Object
+ ConfigDefinition
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class ConfigDefinition : IEquatable<ConfigDefinition>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Create a new definition. Definitions with same section and key are equal.
+
+
+
Declaration
+
+
+
public ConfigDefinition(string section, string key)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Group of the setting, case sensitive.
+
+
+
+ System.String
+ key
+ Name of the setting, case sensitive.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
[Obsolete("description argument is no longer used, put it in a ConfigDescription instead")]
+public ConfigDefinition(string section, string key, string description)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+
+
+
+ System.String
+ key
+
+
+
+ System.String
+ description
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string Key { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Group of the setting. All settings within a config file are grouped by this.
+
+
+
Declaration
+
+
+
public string Section { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Check if the definitions are the same.
+
+
+
Declaration
+
+
+
public bool Equals(ConfigDefinition other)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the definitions are the same.
+
+
+
Declaration
+
+
+
public override bool Equals(object obj)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ obj
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.Equals(System.Object)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override int GetHashCode()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Int32
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.GetHashCode()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Operators
+
+
+
+
+
+
+
Check if the definitions are the same.
+
+
+
Declaration
+
+
+
public static bool operator ==(ConfigDefinition left, ConfigDefinition right)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the definitions are the same.
+
+
+
Declaration
+
+
+
public static bool operator !=(ConfigDefinition left, ConfigDefinition right)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.IEquatable<T>
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.ConfigDescription.html b/master/api/BepInEx.Configuration.ConfigDescription.html
new file mode 100644
index 00000000..5b8a99b2
--- /dev/null
+++ b/master/api/BepInEx.Configuration.ConfigDescription.html
@@ -0,0 +1,934 @@
+
+
+
+
+
+ Class ConfigDescription
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigDescription
+
+
+
+
+
+
Inheritance
+ System.Object
+ ConfigDescription
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class ConfigDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Create a new description.
+
+
+
Declaration
+
+
+
public ConfigDescription(string description, AcceptableValueBase acceptableValues = null, params object[] tags)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ description
+ Text describing the function of the setting and any notes or warnings.
+
+
+
+ AcceptableValueBase
+ acceptableValues
+ Range of values that this setting can take. The setting's value will be automatically
+clamped.
+
+
+
+ System.Object []
+ tags
+ Objects that can be used by user-made classes to add functionality.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Range of acceptable values for a setting.
+
+
+
Declaration
+
+
+
public AcceptableValueBase AcceptableValues { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Text describing the function of the setting and any notes or warnings.
+
+
+
Declaration
+
+
+
public string Description { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static ConfigDescription Empty { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Objects that can be used by user-made classes to add functionality.
+
+
+
Declaration
+
+
+
public object[] Tags { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object []
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.ConfigEntry-1.html b/master/api/BepInEx.Configuration.ConfigEntry-1.html
new file mode 100644
index 00000000..5a735799
--- /dev/null
+++ b/master/api/BepInEx.Configuration.ConfigEntry-1.html
@@ -0,0 +1,842 @@
+
+
+
+
+
+ Class ConfigEntry<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigEntry<T>
+
+ Provides access to a single setting inside of a ConfigFile .
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public sealed class ConfigEntry<T> : ConfigEntryBase
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+ Type of the setting.
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Get or set the value of the setting.
+
+
+
Declaration
+
+
+
public override object BoxedValue { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
Overrides
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public T Value { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Fired when the setting is changed. Does not detect changes made outside from this object.
+
+
+
Declaration
+
+
+
public event EventHandler SettingChanged
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.ConfigEntryBase.html b/master/api/BepInEx.Configuration.ConfigEntryBase.html
new file mode 100644
index 00000000..153d9807
--- /dev/null
+++ b/master/api/BepInEx.Configuration.ConfigEntryBase.html
@@ -0,0 +1,1418 @@
+
+
+
+
+
+ Class ConfigEntryBase
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigEntryBase
+
+ Container for a single setting of a ConfigFile .
+Each config entry is linked to one config file.
+
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public abstract class ConfigEntryBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Types of defaultValue and definition.AcceptableValues have to be the same as settingType.
+
+
+
Declaration
+
+
+
protected ConfigEntryBase(ConfigFile configFile, ConfigDefinition definition, Type settingType, object defaultValue, ConfigDescription configDescription)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigFile
+ configFile
+
+
+
+ ConfigDefinition
+ definition
+
+
+
+ System.Type
+ settingType
+
+
+
+ System.Object
+ defaultValue
+
+
+
+ ConfigDescription
+ configDescription
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Get or set the value of the setting.
+
+
+
Declaration
+
+
+
public abstract object BoxedValue { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Config file this entry is a part of.
+
+
+
Declaration
+
+
+
public ConfigFile ConfigFile { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Default value of this setting (set only if the setting was not changed before).
+
+
+
Declaration
+
+
+
public object DefaultValue { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Category and name of this setting. Used as a unique key for identification within a
+ConfigFile .
+
+
+
Declaration
+
+
+
public ConfigDefinition Definition { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Description / metadata of this setting.
+
+
+
Declaration
+
+
+
public ConfigDescription Description { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Type SettingType { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
If necessary, clamp the value to acceptable value range. T has to be equal to settingType.
+
+
+
Declaration
+
+
+
protected T ClampValue<T>(T value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ T
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get the serialized representation of the value.
+
+
+
Declaration
+
+
+
public string GetSerializedValue()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Trigger setting changed event.
+
+
+
Declaration
+
+
+
protected void OnSettingChanged(object sender)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Set the value by using its serialized form.
+
+
+
Declaration
+
+
+
public void SetSerializedValue(string value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Write a description of this setting using all available metadata.
+
+
+
Declaration
+
+
+
public void WriteDescription(StreamWriter writer)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.StreamWriter
+ writer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.ConfigFile.html b/master/api/BepInEx.Configuration.ConfigFile.html
new file mode 100644
index 00000000..29ccfc95
--- /dev/null
+++ b/master/api/BepInEx.Configuration.ConfigFile.html
@@ -0,0 +1,4006 @@
+
+
+
+
+
+ Class ConfigFile
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigFile
+
+ A helper class to handle persistent data. All public methods are thread-safe.
+
+
+
+
+
Inheritance
+ System.Object
+ ConfigFile
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class ConfigFile : IDictionary<ConfigDefinition, ConfigEntryBase>, ICollection<KeyValuePair<ConfigDefinition, ConfigEntryBase>>, IEnumerable<KeyValuePair<ConfigDefinition, ConfigEntryBase>>, IEnumerable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigFile(string configPath, bool saveOnInit)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ configPath
+
+
+
+ System.Boolean
+ saveOnInit
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new config file at the specified config path.
+
+
+
Declaration
+
+
+
public ConfigFile(string configPath, bool saveOnInit, BepInPlugin ownerMetadata)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ configPath
+ Full path to a file that contains settings. The file will be created as needed.
+
+
+
+ System.Boolean
+ saveOnInit
+ If the config file/directory doesn't exist, create it immediately.
+
+
+
+ BepInPlugin
+ ownerMetadata
+ Information about the plugin that owns this setting file.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Create a list with all config entries inside of this config file.
+
+
+
Declaration
+
+
+
[Obsolete("Use Keys instead")]
+public ReadOnlyCollection<ConfigDefinition> ConfigDefinitions { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.ObjectModel.ReadOnlyCollection <ConfigDefinition >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Full path to the config file. The file might not exist until a setting is added and changed, or Save()
+is called.
+
+
+
Declaration
+
+
+
public string ConfigFilePath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static ConfigFile CoreConfig { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public int Count { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Int32
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
All config entries inside
+
+
+
Declaration
+
+
+
protected Dictionary<ConfigDefinition, ConfigEntryBase> Entries { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Generate user-readable comments for each of the settings in the saved .cfg file.
+
+
+
Declaration
+
+
+
public bool GenerateSettingDescriptions { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool IsReadOnly { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigEntryBase this[ConfigDefinition key] { get; }
+
+
+
Parameters
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigEntryBase this[string section, string key] { get; }
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+
+
+
+ System.String
+ key
+
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the ConfigDefinitions that the ConfigFile contains.
+
Creates a new array when the property is accessed. Thread-safe.
+
+
+
Declaration
+
+
+
public ICollection<ConfigDefinition> Keys { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.ICollection <ConfigDefinition >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
If enabled, writes the config to disk every time a value is set.
+If disabled, you have to manually use Save() or the changes will be lost!
+
+
+
Declaration
+
+
+
public bool SaveOnConfigSet { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the ConfigEntryBase values that the ConfigFile contains.
+
Creates a new array when the property is accessed. Thread-safe.
+
+
+
Declaration
+
+
+
public ICollection<ConfigEntryBase> Values { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.ICollection <ConfigEntryBase >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Add(ConfigDefinition key, ConfigEntryBase value)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each definition can be used to add only one setting, trying to add a second setting will throw an exception.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigEntry<T> AddSetting<T>(ConfigDefinition configDefinition, T defaultValue, ConfigDescription configDescription = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+ Section and Key of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ ConfigDescription
+ configDescription
+ Description of the setting shown to the user and other metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each section and key pair can be used to add only one setting, trying to add a second setting will throw an
+exception.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigEntry<T> AddSetting<T>(string section, string key, T defaultValue, ConfigDescription configDescription = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ ConfigDescription
+ configDescription
+ Description of the setting shown to the user and other metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each section and key pair can be used to add only one setting, trying to add a second setting will throw an
+exception.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigEntry<T> AddSetting<T>(string section, string key, T defaultValue, string description)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ System.String
+ description
+ Simple description of the setting shown to the user.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each definition can be used to add only one setting, trying to add a second setting will throw an exception.
+
+
+
Declaration
+
+
+
public ConfigEntry<T> Bind<T>(ConfigDefinition configDefinition, T defaultValue, ConfigDescription configDescription = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+ Section and Key of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ ConfigDescription
+ configDescription
+ Description of the setting shown to the user and other metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each section and key pair can be used to add only one setting, trying to add a second setting will throw an
+exception.
+
+
+
Declaration
+
+
+
public ConfigEntry<T> Bind<T>(string section, string key, T defaultValue, ConfigDescription configDescription = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ ConfigDescription
+ configDescription
+ Description of the setting shown to the user and other metadata.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Create a new setting. The setting is saved to drive and loaded automatically.
+Each section and key pair can be used to add only one setting, trying to add a second setting will throw an
+exception.
+
+
+
Declaration
+
+
+
public ConfigEntry<T> Bind<T>(string section, string key, T defaultValue, string description)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ T
+ defaultValue
+ Value of the setting if the setting was not created yet.
+
+
+
+ System.String
+ description
+ Simple description of the setting shown to the user.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool Contains(KeyValuePair<ConfigDefinition, ConfigEntryBase> item)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool ContainsKey(ConfigDefinition key)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
[Obsolete("Use Values instead")]
+public ConfigEntryBase[] GetConfigEntries()
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public IEnumerator<KeyValuePair<ConfigDefinition, ConfigEntryBase>> GetEnumerator()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerator <System.Collections.Generic.KeyValuePair <ConfigDefinition , ConfigEntryBase >>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access one of the existing settings. If the setting has not been added yet, null is returned.
+If the setting exists but has a different type than T, an exception is thrown.
+New settings should be added with AddSetting<T>(ConfigDefinition, T, ConfigDescription) .
+
+
+
Declaration
+
+
+
[Obsolete("Use ConfigFile[key] or TryGetEntry instead")]
+public ConfigEntry<T> GetSetting<T>(ConfigDefinition configDefinition)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+ Section and Key of the setting.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access one of the existing settings. If the setting has not been added yet, null is returned.
+If the setting exists but has a different type than T, an exception is thrown.
+New settings should be added with AddSetting<T>(ConfigDefinition, T, ConfigDescription) .
+
+
+
Declaration
+
+
+
[Obsolete("Use ConfigFile[key] or TryGetEntry instead")]
+public ConfigEntry<T> GetSetting<T>(string section, string key)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Reloads the config from disk. Unsaved changes are lost.
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool Remove(ConfigDefinition key)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writes the config to disk.
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access one of the existing settings. If the setting has not been added yet, false is returned. Otherwise, true.
+If the setting exists but has a different type than T, an exception is thrown.
+New settings should be added with
+Bind<T>(ConfigDefinition, T, ConfigDescription) .
+
+
+
Declaration
+
+
+
public bool TryGetEntry<T>(ConfigDefinition configDefinition, out ConfigEntry<T> entry)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+ Section and Key of the setting.
+
+
+
+ ConfigEntry <T>
+ entry
+ The ConfigEntry value to return.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access one of the existing settings. If the setting has not been added yet, null is returned.
+If the setting exists but has a different type than T, an exception is thrown.
+New settings should be added with
+Bind<T>(ConfigDefinition, T, ConfigDescription) .
+
+
+
Declaration
+
+
+
public bool TryGetEntry<T>(string section, string key, out ConfigEntry<T> entry)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+ Section/category/group of the setting. Settings are grouped by this.
+
+
+
+ System.String
+ key
+ Name of the setting.
+
+
+
+ ConfigEntry <T>
+ entry
+ The ConfigEntry value to return.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value contained in this setting.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access a setting. Use Bind instead.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigWrapper<T> Wrap<T>(ConfigDefinition configDefinition, T defaultValue = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigDefinition
+ configDefinition
+
+
+
+ T
+ defaultValue
+
+
+
+
+
+
+
Returns
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Access a setting. Use Bind instead.
+
+
+
Declaration
+
+
+
[Obsolete("Use Bind instead")]
+public ConfigWrapper<T> Wrap<T>(string section, string key, string description = null, T defaultValue = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ section
+
+
+
+ System.String
+ key
+
+
+
+ System.String
+ description
+
+
+
+ T
+ defaultValue
+
+
+
+
+
+
+
Returns
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
An event that is fired every time the config is reloaded.
+
+
+
Declaration
+
+
+
public event EventHandler ConfigReloaded
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Fired when one of the settings is changed.
+
+
+
Declaration
+
+
+
public event EventHandler<SettingChangedEventArgs> SettingChanged
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICollection<KeyValuePair<ConfigDefinition, ConfigEntryBase>>.Add(KeyValuePair<ConfigDefinition, ConfigEntryBase> item)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICollection<KeyValuePair<ConfigDefinition, ConfigEntryBase>>.CopyTo(KeyValuePair<ConfigDefinition, ConfigEntryBase>[] array, int arrayIndex)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.KeyValuePair <ConfigDefinition , ConfigEntryBase >[]
+ array
+
+
+
+ System.Int32
+ arrayIndex
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool ICollection<KeyValuePair<ConfigDefinition, ConfigEntryBase>>.Remove(KeyValuePair<ConfigDefinition, ConfigEntryBase> item)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
ConfigEntryBase IDictionary<ConfigDefinition, ConfigEntryBase>.this[ConfigDefinition key] { get; set; }
+
+
+
Parameters
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
bool IDictionary<ConfigDefinition, ConfigEntryBase>.TryGetValue(ConfigDefinition key, out ConfigEntryBase value)
+
+
+
Parameters
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
IEnumerator IEnumerable.GetEnumerator()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.IEnumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Collections.Generic.IDictionary<TKey, TValue>
+
+
+ System.Collections.Generic.ICollection<T>
+
+
+ System.Collections.Generic.IEnumerable<T>
+
+
+ System.Collections.IEnumerable
+
+
+ Extension Methods
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.ConfigWrapper-1.html b/master/api/BepInEx.Configuration.ConfigWrapper-1.html
new file mode 100644
index 00000000..263e38a6
--- /dev/null
+++ b/master/api/BepInEx.Configuration.ConfigWrapper-1.html
@@ -0,0 +1,934 @@
+
+
+
+
+
+ Class ConfigWrapper<T>
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConfigWrapper<T>
+
+ Provides access to a single setting inside of a ConfigFile .
+
+
+
+
+
Inheritance
+ System.Object
+ ConfigWrapper<T>
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
[Obsolete("Use ConfigFile from new Bind overloads instead")]
+public sealed class ConfigWrapper<T>
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+ T
+ Type of the setting.
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigEntry<T> ConfigEntry { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <T>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Config file this setting is inside of.
+
+
+
Declaration
+
+
+
public ConfigFile ConfigFile { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Unique definition of this setting.
+
+
+
Declaration
+
+
+
public ConfigDefinition Definition { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public T Value { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Fired when the setting is changed. Does not detect changes made outside from this object.
+
+
+
Declaration
+
+
+
public event EventHandler SettingChanged
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.SettingChangedEventArgs.html b/master/api/BepInEx.Configuration.SettingChangedEventArgs.html
new file mode 100644
index 00000000..c9f4de53
--- /dev/null
+++ b/master/api/BepInEx.Configuration.SettingChangedEventArgs.html
@@ -0,0 +1,737 @@
+
+
+
+
+
+ Class SettingChangedEventArgs
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class SettingChangedEventArgs
+
+ Arguments for events concerning a change of a setting.
+
+
+
+
+
Inheritance
+ System.Object
+ System.EventArgs
+ SettingChangedEventArgs
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.EventArgs.Empty
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public sealed class SettingChangedEventArgs : EventArgs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public SettingChangedEventArgs(ConfigEntryBase changedSetting)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ConfigEntryBase
+ changedSetting
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Setting that was changed
+
+
+
Declaration
+
+
+
public ConfigEntryBase ChangedSetting { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.TomlTypeConverter.html b/master/api/BepInEx.Configuration.TomlTypeConverter.html
new file mode 100644
index 00000000..4a740d73
--- /dev/null
+++ b/master/api/BepInEx.Configuration.TomlTypeConverter.html
@@ -0,0 +1,1172 @@
+
+
+
+
+
+ Class TomlTypeConverter
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TomlTypeConverter
+
+ Serializer/deserializer used by the config system.
+
+
+
+
+
Inheritance
+ System.Object
+ TomlTypeConverter
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public static class TomlTypeConverter
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Add a new type converter for a given type.
+If a different converter is already added, this call is ignored and false is returned.
+
+
+
Declaration
+
+
+
public static bool AddConverter(Type type, TypeConverter converter)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ type
+
+
+
+ TypeConverter
+ converter
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if a given type can be converted to and from string.
+
+
+
Declaration
+
+
+
public static bool CanConvert(Type type)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ type
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Convert object of a given type to a string using available converters.
+
+
+
Declaration
+
+
+
public static string ConvertToString(object value, Type valueType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ value
+
+
+
+ System.Type
+ valueType
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Convert string to an object of a given type using available converters.
+
+
+
Declaration
+
+
+
public static object ConvertToValue(string value, Type valueType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ value
+
+
+
+ System.Type
+ valueType
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Convert string to an object of a given type using available converters.
+
+
+
Declaration
+
+
+
public static T ConvertToValue<T>(string value)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ value
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get a converter for a given type if there is any.
+
+
+
Declaration
+
+
+
public static TypeConverter GetConverter(Type valueType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ valueType
+
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Give a list of types with registered converters.
+
+
+
Declaration
+
+
+
public static IEnumerable<Type> GetSupportedTypes()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <System.Type >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.TypeConverter.html b/master/api/BepInEx.Configuration.TypeConverter.html
new file mode 100644
index 00000000..d3659ed4
--- /dev/null
+++ b/master/api/BepInEx.Configuration.TypeConverter.html
@@ -0,0 +1,731 @@
+
+
+
+
+
+ Class TypeConverter
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TypeConverter
+
+ A serializer/deserializer combo for some type(s). Used by the config system.
+
+
+
+
+
Inheritance
+ System.Object
+ TypeConverter
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class TypeConverter
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Used to deserialize the type from a string.
+String is the data to deserialize, Type is the object's type, should return instance to an object of Type.
+
+
+
Declaration
+
+
+
public Func<string, Type, object> ConvertToObject { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Func <System.String , System.Type , System.Object >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Used to serialize the type into a (hopefully) human-readable string.
+Object is the instance to serialize, Type is the object's type.
+
+
+
Declaration
+
+
+
public Func<object, Type, string> ConvertToString { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Func <System.Object , System.Type , System.String >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Configuration.html b/master/api/BepInEx.Configuration.html
new file mode 100644
index 00000000..10daf13d
--- /dev/null
+++ b/master/api/BepInEx.Configuration.html
@@ -0,0 +1,575 @@
+
+
+
+
+
+ Namespace BepInEx.Configuration
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Configuration
+
+
+
+
+ Classes
+
+
+ Base type of all classes representing and enforcing acceptable values of config settings.
+
+
+ Specify the list of acceptable values for a setting.
+
+
+ Specify the range of acceptable values for a setting.
+
+
+ Section and key of a setting. Used as a unique key for identification within a
+ConfigFile .
+The same definition can be used in multiple config files, it will point to different settings then.
+
+
+
+
+ Provides access to a single setting inside of a ConfigFile .
+
+
+ Container for a single setting of a ConfigFile .
+Each config entry is linked to one config file.
+
+
+ A helper class to handle persistent data. All public methods are thread-safe.
+
+
+ Provides access to a single setting inside of a ConfigFile .
+
+
+ Arguments for events concerning a change of a setting.
+
+
+ Serializer/deserializer used by the config system.
+
+
+ A serializer/deserializer combo for some type(s). Used by the config system.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.ConsoleManager.ConsoleOutRedirectType.html b/master/api/BepInEx.ConsoleManager.ConsoleOutRedirectType.html
new file mode 100644
index 00000000..5e1476cc
--- /dev/null
+++ b/master/api/BepInEx.ConsoleManager.ConsoleOutRedirectType.html
@@ -0,0 +1,592 @@
+
+
+
+
+
+ Enum ConsoleManager.ConsoleOutRedirectType
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enum ConsoleManager.ConsoleOutRedirectType
+
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public enum ConsoleOutRedirectType
+
+
+
+
+
+
+
+
+
+
+
+
+
Fields
+
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+ Auto
+
+
+
+ ConsoleOut
+
+
+
+ StandardOut
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.ConsoleManager.html b/master/api/BepInEx.ConsoleManager.html
new file mode 100644
index 00000000..5d907c0c
--- /dev/null
+++ b/master/api/BepInEx.ConsoleManager.html
@@ -0,0 +1,1383 @@
+
+
+
+
+
+ Class ConsoleManager
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConsoleManager
+
+
+
+
+
+
Inheritance
+ System.Object
+ ConsoleManager
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public static class ConsoleManager
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static readonly ConfigEntry<bool> ConfigConsoleEnabled
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <System.Boolean >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static readonly ConfigEntry<ConsoleManager.ConsoleOutRedirectType> ConfigConsoleOutRedirectType
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static readonly ConfigEntry<bool> ConfigConsoleShiftJis
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <System.Boolean >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static readonly ConfigEntry<bool> ConfigPreventClose
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigEntry <System.Boolean >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
True if an external console has been started, false otherwise.
+
+
+
Declaration
+
+
+
public static bool ConsoleActive { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static bool ConsoleEnabled { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The stream that writes to an external console. Null if no such console exists
+
+
+
Declaration
+
+
+
public static TextWriter ConsoleStream { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IO.TextWriter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The stream that writes to the standard out stream of the process. Should never be null.
+
+
+
Declaration
+
+
+
public static TextWriter StandardOutStream { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IO.TextWriter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void CreateConsole()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void DetachConsole()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void Initialize(bool alreadyActive, bool useManagedEncoder)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Boolean
+ alreadyActive
+
+
+
+ System.Boolean
+ useManagedEncoder
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void SetConsoleColor(ConsoleColor color)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.ConsoleColor
+ color
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void SetConsoleTitle(string title)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ title
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Core.Logging.Interpolation.BepInExDebugLogInterpolatedStringHandler.html b/master/api/BepInEx.Core.Logging.Interpolation.BepInExDebugLogInterpolatedStringHandler.html
new file mode 100644
index 00000000..4a15d637
--- /dev/null
+++ b/master/api/BepInEx.Core.Logging.Interpolation.BepInExDebugLogInterpolatedStringHandler.html
@@ -0,0 +1,700 @@
+
+
+
+
+
+ Class BepInExDebugLogInterpolatedStringHandler
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInExDebugLogInterpolatedStringHandler
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class BepInExDebugLogInterpolatedStringHandler : BepInExLogInterpolatedStringHandler
+
+
+
+
+
+
+
+
Remarks
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInExDebugLogInterpolatedStringHandler(int literalLength, int formattedCount, out bool isEnabled)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ literalLength
+
+
+
+ System.Int32
+ formattedCount
+
+
+
+ System.Boolean
+ isEnabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Core.Logging.Interpolation.BepInExErrorLogInterpolatedStringHandler.html b/master/api/BepInEx.Core.Logging.Interpolation.BepInExErrorLogInterpolatedStringHandler.html
new file mode 100644
index 00000000..9c51ddce
--- /dev/null
+++ b/master/api/BepInEx.Core.Logging.Interpolation.BepInExErrorLogInterpolatedStringHandler.html
@@ -0,0 +1,700 @@
+
+
+
+
+
+ Class BepInExErrorLogInterpolatedStringHandler
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInExErrorLogInterpolatedStringHandler
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class BepInExErrorLogInterpolatedStringHandler : BepInExLogInterpolatedStringHandler
+
+
+
+
+
+
+
+
Remarks
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInExErrorLogInterpolatedStringHandler(int literalLength, int formattedCount, out bool isEnabled)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ literalLength
+
+
+
+ System.Int32
+ formattedCount
+
+
+
+ System.Boolean
+ isEnabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Core.Logging.Interpolation.BepInExFatalLogInterpolatedStringHandler.html b/master/api/BepInEx.Core.Logging.Interpolation.BepInExFatalLogInterpolatedStringHandler.html
new file mode 100644
index 00000000..2f1c849d
--- /dev/null
+++ b/master/api/BepInEx.Core.Logging.Interpolation.BepInExFatalLogInterpolatedStringHandler.html
@@ -0,0 +1,700 @@
+
+
+
+
+
+ Class BepInExFatalLogInterpolatedStringHandler
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInExFatalLogInterpolatedStringHandler
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class BepInExFatalLogInterpolatedStringHandler : BepInExLogInterpolatedStringHandler
+
+
+
+
+
+
+
+
Remarks
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInExFatalLogInterpolatedStringHandler(int literalLength, int formattedCount, out bool isEnabled)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ literalLength
+
+
+
+ System.Int32
+ formattedCount
+
+
+
+ System.Boolean
+ isEnabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Core.Logging.Interpolation.BepInExInfoLogInterpolatedStringHandler.html b/master/api/BepInEx.Core.Logging.Interpolation.BepInExInfoLogInterpolatedStringHandler.html
new file mode 100644
index 00000000..c45074fc
--- /dev/null
+++ b/master/api/BepInEx.Core.Logging.Interpolation.BepInExInfoLogInterpolatedStringHandler.html
@@ -0,0 +1,700 @@
+
+
+
+
+
+ Class BepInExInfoLogInterpolatedStringHandler
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInExInfoLogInterpolatedStringHandler
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class BepInExInfoLogInterpolatedStringHandler : BepInExLogInterpolatedStringHandler
+
+
+
+
+
+
+
+
Remarks
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInExInfoLogInterpolatedStringHandler(int literalLength, int formattedCount, out bool isEnabled)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ literalLength
+
+
+
+ System.Int32
+ formattedCount
+
+
+
+ System.Boolean
+ isEnabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Core.Logging.Interpolation.BepInExLogInterpolatedStringHandler.html b/master/api/BepInEx.Core.Logging.Interpolation.BepInExLogInterpolatedStringHandler.html
new file mode 100644
index 00000000..bdc745ad
--- /dev/null
+++ b/master/api/BepInEx.Core.Logging.Interpolation.BepInExLogInterpolatedStringHandler.html
@@ -0,0 +1,1133 @@
+
+
+
+
+
+ Class BepInExLogInterpolatedStringHandler
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInExLogInterpolatedStringHandler
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class BepInExLogInterpolatedStringHandler
+
+
+
+
+
+
+
+
Remarks
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Constructs a log handler.
+
+
+
Declaration
+
+
+
public BepInExLogInterpolatedStringHandler(int literalLength, int formattedCount, LogLevel logLevel, out bool isEnabled)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ literalLength
+ Length of the literal string.
+
+
+
+ System.Int32
+ formattedCount
+ Number for formatted items.
+
+
+
+ LogLevel
+ logLevel
+ Log level the message belongs to.
+
+
+
+ System.Boolean
+ isEnabled
+ Whether this string should be logged.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Whether the interpolation is enabled and string will be logged.
+
+
+
Declaration
+
+
+
public bool Enabled { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void AppendFormatted(IntPtr t, string format)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IntPtr
+ t
+ Item to append.
+
+
+
+ System.String
+ format
+ Format to append with.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Appends a value to the interpolation.
+
+
+
Declaration
+
+
+
public void AppendFormatted<T>(T t)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ T
+ t
+ Value to append.
+
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the value to append.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Append a formattable item.
+
+
+
Declaration
+
+
+
public void AppendFormatted<T>(T t, string format)
+ where T : IFormattable
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ T
+ t
+ Item to append.
+
+
+
+ System.String
+ format
+ Format to append with.
+
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Item type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Appends a literal string to the interpolation.
+
+
+
Declaration
+
+
+
public void AppendLiteral(string s)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ s
+ String to append.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Core.Logging.Interpolation.BepInExMessageLogInterpolatedStringHandler.html b/master/api/BepInEx.Core.Logging.Interpolation.BepInExMessageLogInterpolatedStringHandler.html
new file mode 100644
index 00000000..4e575f3e
--- /dev/null
+++ b/master/api/BepInEx.Core.Logging.Interpolation.BepInExMessageLogInterpolatedStringHandler.html
@@ -0,0 +1,700 @@
+
+
+
+
+
+ Class BepInExMessageLogInterpolatedStringHandler
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInExMessageLogInterpolatedStringHandler
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class BepInExMessageLogInterpolatedStringHandler : BepInExLogInterpolatedStringHandler
+
+
+
+
+
+
+
+
Remarks
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInExMessageLogInterpolatedStringHandler(int literalLength, int formattedCount, out bool isEnabled)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ literalLength
+
+
+
+ System.Int32
+ formattedCount
+
+
+
+ System.Boolean
+ isEnabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Core.Logging.Interpolation.BepInExWarningLogInterpolatedStringHandler.html b/master/api/BepInEx.Core.Logging.Interpolation.BepInExWarningLogInterpolatedStringHandler.html
new file mode 100644
index 00000000..b306d2f9
--- /dev/null
+++ b/master/api/BepInEx.Core.Logging.Interpolation.BepInExWarningLogInterpolatedStringHandler.html
@@ -0,0 +1,700 @@
+
+
+
+
+
+ Class BepInExWarningLogInterpolatedStringHandler
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInExWarningLogInterpolatedStringHandler
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class BepInExWarningLogInterpolatedStringHandler : BepInExLogInterpolatedStringHandler
+
+
+
+
+
+
+
+
Remarks
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BepInExWarningLogInterpolatedStringHandler(int literalLength, int formattedCount, out bool isEnabled)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Int32
+ literalLength
+
+
+
+ System.Int32
+ formattedCount
+
+
+
+ System.Boolean
+ isEnabled
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Core.Logging.Interpolation.html b/master/api/BepInEx.Core.Logging.Interpolation.html
new file mode 100644
index 00000000..b19f72ca
--- /dev/null
+++ b/master/api/BepInEx.Core.Logging.Interpolation.html
@@ -0,0 +1,564 @@
+
+
+
+
+
+ Namespace BepInEx.Core.Logging.Interpolation
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Core.Logging.Interpolation
+
+
+
+
+ Classes
+
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+ Interpolated string handler for BepInEx Logger . This allows to conditionally skip logging certain
+messages and speed up logging in certain places.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.ConsoleLogListener.html b/master/api/BepInEx.Logging.ConsoleLogListener.html
new file mode 100644
index 00000000..cb1600db
--- /dev/null
+++ b/master/api/BepInEx.Logging.ConsoleLogListener.html
@@ -0,0 +1,868 @@
+
+
+
+
+
+ Class ConsoleLogListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConsoleLogListener
+
+ Logs entries using a console spawned by BepInEx.
+
+
+
+
+
Inheritance
+ System.Object
+ ConsoleLogListener
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class ConsoleLogListener : ILogListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected static readonly ConfigEntry<LogLevel> ConfigConsoleDisplayedLevel
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
What log levels the listener preliminarily wants.
+
+
+
Declaration
+
+
+
public LogLevel LogLevelFilter { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
public void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.DiskLogListener.html b/master/api/BepInEx.Logging.DiskLogListener.html
new file mode 100644
index 00000000..ebac460d
--- /dev/null
+++ b/master/api/BepInEx.Logging.DiskLogListener.html
@@ -0,0 +1,1131 @@
+
+
+
+
+
+ Class DiskLogListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class DiskLogListener
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+
Inheritance
+ System.Object
+ DiskLogListener
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class DiskLogListener : ILogListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates a new disk log listener.
+
+
+
Declaration
+
+
+
public DiskLogListener(string localPath, LogLevel displayedLogLevel = LogLevel.Info, bool appendLog = false, bool delayedFlushing = true, int fileLimit = 5)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ localPath
+ Path to the log.
+
+
+
+ LogLevel
+ displayedLogLevel
+ Log levels to display.
+
+
+
+ System.Boolean
+ appendLog
+ Whether to append logs to an already existing log file.
+
+
+
+ System.Boolean
+ delayedFlushing
+ Whether to delay flushing to disk to improve performance. Useful to set this to false
+when debugging crashes.
+
+
+
+ System.Int32
+ fileLimit
+ Maximum amount of concurrently opened log files. Can help with infinite game boot loops.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static HashSet<string> BlacklistedSources
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.HashSet <System.String >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public LogLevel DisplayedLogLevel { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
What log levels the listener preliminarily wants.
+
+
+
Declaration
+
+
+
public LogLevel LogLevelFilter { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writer for the disk log.
+
+
+
Declaration
+
+
+
public TextWriter LogWriter { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IO.TextWriter
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected void Finalize()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
public void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.HarmonyLogSource.html b/master/api/BepInEx.Logging.HarmonyLogSource.html
new file mode 100644
index 00000000..c46cae35
--- /dev/null
+++ b/master/api/BepInEx.Logging.HarmonyLogSource.html
@@ -0,0 +1,838 @@
+
+
+
+
+
+ Class HarmonyLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class HarmonyLogSource
+
+
+
+
+
+
Inheritance
+ System.Object
+ HarmonyLogSource
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class HarmonyLogSource : ILogSource, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public HarmonyLogSource()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.ILogListener.html b/master/api/BepInEx.Logging.ILogListener.html
new file mode 100644
index 00000000..6a032dbc
--- /dev/null
+++ b/master/api/BepInEx.Logging.ILogListener.html
@@ -0,0 +1,724 @@
+
+
+
+
+
+ Interface ILogListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface ILogListener
+
+ A generic log listener that receives log events and can route them to some output (e.g. file, console, socket).
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.IDisposable.Dispose()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public interface ILogListener : IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
What log levels the listener preliminarily wants.
+
+
+
Declaration
+
+
+
LogLevel LogLevelFilter { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.ILogSource.html b/master/api/BepInEx.Logging.ILogSource.html
new file mode 100644
index 00000000..c1b933be
--- /dev/null
+++ b/master/api/BepInEx.Logging.ILogSource.html
@@ -0,0 +1,708 @@
+
+
+
+
+
+ Interface ILogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface ILogSource
+
+ Log source that can output log messages.
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.IDisposable.Dispose()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public interface ILogSource : IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Name of the log source.
+
+
+
Declaration
+
+
+
string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Event that sends the log message. Call System.EventHandler.Invoke(System.Object,System.EventArgs) to send a log message.
+
+
+
Declaration
+
+
+
event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.LogEventArgs.html b/master/api/BepInEx.Logging.LogEventArgs.html
new file mode 100644
index 00000000..471ba54b
--- /dev/null
+++ b/master/api/BepInEx.Logging.LogEventArgs.html
@@ -0,0 +1,1001 @@
+
+
+
+
+
+ Class LogEventArgs
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class LogEventArgs
+
+ Log event arguments. Contains info about the log message.
+
+
+
+
+
Inheritance
+ System.Object
+ System.EventArgs
+ LogEventArgs
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.EventArgs.Empty
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class LogEventArgs : EventArgs
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates the log event args-
+
+
+
Declaration
+
+
+
public LogEventArgs(object data, LogLevel level, ILogSource source)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Logged data.
+
+
+
+ LogLevel
+ level
+ Log level of the data.
+
+
+
+ ILogSource
+ source
+ Log source that emits these args.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public object Data { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Log levels for the data.
+
+
+
Declaration
+
+
+
public LogLevel Level { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Log source that emitted the log event.
+
+
+
Declaration
+
+
+
public ILogSource Source { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ILogSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string ToStringLine()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ Same output as ToString() but with new line.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.LogLevel.html b/master/api/BepInEx.Logging.LogLevel.html
new file mode 100644
index 00000000..8b6a7d31
--- /dev/null
+++ b/master/api/BepInEx.Logging.LogLevel.html
@@ -0,0 +1,629 @@
+
+
+
+
+
+ Enum LogLevel
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enum LogLevel
+
+ The level, or severity of a log entry.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
[Flags]
+public enum LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
Fields
+
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+ All
+ All log levels.
+
+
+
+ Debug
+ A message that would likely only interest a developer.
+
+
+
+ Error
+ An error has occured, but can be recovered from.
+
+
+
+ Fatal
+ A fatal error has occurred, which cannot be recovered from.
+
+
+
+ Info
+ A message of low importance.
+
+
+
+ Message
+ An important message that should be displayed to the user.
+
+
+
+ None
+ No level selected.
+
+
+
+ Warning
+ A warning has been produced, but does not necessarily mean that something wrong has happened.
+
+
+
+
+
+ Extension Methods
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.LogLevelExtensions.html b/master/api/BepInEx.Logging.LogLevelExtensions.html
new file mode 100644
index 00000000..bd67526c
--- /dev/null
+++ b/master/api/BepInEx.Logging.LogLevelExtensions.html
@@ -0,0 +1,767 @@
+
+
+
+
+
+ Class LogLevelExtensions
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class LogLevelExtensions
+
+ Helper methods for log level handling.
+
+
+
+
+
Inheritance
+ System.Object
+ LogLevelExtensions
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public static class LogLevelExtensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Returns a translation of a log level to it's associated console colour.
+
+
+
Declaration
+
+
+
public static ConsoleColor GetConsoleColor(this LogLevel level)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ LogLevel
+ level
+ The log level(s).
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.ConsoleColor
+ A console color associated with the highest log level supplied.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gets the highest log level when there could potentially be multiple levels provided.
+
+
+
Declaration
+
+
+
public static LogLevel GetHighestLevel(this LogLevel levels)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ LogLevel
+ levels
+ The log level(s).
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+ The highest log level supplied.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.Logger.html b/master/api/BepInEx.Logging.Logger.html
new file mode 100644
index 00000000..a4363ba3
--- /dev/null
+++ b/master/api/BepInEx.Logging.Logger.html
@@ -0,0 +1,875 @@
+
+
+
+
+
+ Class Logger
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Logger
+
+ Handles pub-sub event marshalling across all log listeners and sources.
+
+
+
+
+
Inheritance
+ System.Object
+ Logger
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public static class Logger
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Log levels that are currently listened to by at least one listener.
+
+
+
Declaration
+
+
+
public static LogLevel ListenedLogLevels { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Collection of all log listeners that receive log events.
+
+
+
Declaration
+
+
+
public static ICollection<ILogListener> Listeners { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.ICollection <ILogListener >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Collection of all log source that output log events.
+
+
+
Declaration
+
+
+
public static ICollection<ILogSource> Sources { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.ICollection <ILogSource >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Creates a new log source with a name and attaches it to Sources .
+
+
+
Declaration
+
+
+
public static ManualLogSource CreateLogSource(string sourceName)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ sourceName
+ Name of the log source to create.
+
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.ManualLogSource.html b/master/api/BepInEx.Logging.ManualLogSource.html
new file mode 100644
index 00000000..cf4353f0
--- /dev/null
+++ b/master/api/BepInEx.Logging.ManualLogSource.html
@@ -0,0 +1,1782 @@
+
+
+
+
+
+ Class ManualLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ManualLogSource
+
+ A generic, multi-purpose log source. Exposes simple API to manually emit logs.
+
+
+
+
+
Inheritance
+ System.Object
+ ManualLogSource
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class ManualLogSource : ILogSource, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates a manual log source.
+
+
+
Declaration
+
+
+
public ManualLogSource(string sourceName)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ sourceName
+ Name of the log source.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Name of the log source.
+
+
+
Declaration
+
+
+
public string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs an interpolated string with the specified log level.
+
+
+
Declaration
+
+
+
public void Log(LogLevel level, BepInExLogInterpolatedStringHandler logHandler)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ LogLevel
+ level
+ Log levels to attach to the message. Multiple can be used with bitwise ORing.
+
+
+
+ BepInExLogInterpolatedStringHandler
+ logHandler
+ Handler for the interpolated string.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with the specified log level.
+
+
+
Declaration
+
+
+
public void Log(LogLevel level, object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ LogLevel
+ level
+ Log levels to attach to the message. Multiple can be used with bitwise ORing.
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs an interpolated string with Debug level.
+
+
+
Declaration
+
+
+
public void LogDebug(BepInExDebugLogInterpolatedStringHandler logHandler)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Debug level.
+
+
+
Declaration
+
+
+
public void LogDebug(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs an interpolated string with Error level.
+
+
+
Declaration
+
+
+
public void LogError(BepInExErrorLogInterpolatedStringHandler logHandler)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Error level.
+
+
+
Declaration
+
+
+
public void LogError(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs an interpolated string with Fatal level.
+
+
+
Declaration
+
+
+
public void LogFatal(BepInExFatalLogInterpolatedStringHandler logHandler)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Fatal level.
+
+
+
Declaration
+
+
+
public void LogFatal(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs an interpolated string with Info level.
+
+
+
Declaration
+
+
+
public void LogInfo(BepInExInfoLogInterpolatedStringHandler logHandler)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Info level.
+
+
+
Declaration
+
+
+
public void LogInfo(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs an interpolated string with Message level.
+
+
+
Declaration
+
+
+
public void LogMessage(BepInExMessageLogInterpolatedStringHandler logHandler)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Message level.
+
+
+
Declaration
+
+
+
public void LogMessage(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs an interpolated string with Warning level.
+
+
+
Declaration
+
+
+
public void LogWarning(BepInExWarningLogInterpolatedStringHandler logHandler)
+
+
+
Parameters
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logs a message with Warning level.
+
+
+
Declaration
+
+
+
public void LogWarning(object data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ data
+ Data to log.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Event that sends the log message. Call System.EventHandler.Invoke(System.Object,System.EventArgs) to send a log message.
+
+
+
Declaration
+
+
+
public event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.TraceLogSource.html b/master/api/BepInEx.Logging.TraceLogSource.html
new file mode 100644
index 00000000..8ffc9dfd
--- /dev/null
+++ b/master/api/BepInEx.Logging.TraceLogSource.html
@@ -0,0 +1,1254 @@
+
+
+
+
+
+ Class TraceLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TraceLogSource
+
+ A source that routes all logs from the inbuilt .NET System.Diagnostics.Trace API to the BepInEx logging system.
+
+
+
+
+
Inheritance
+ System.Object
+ System.MarshalByRefObject
+ System.Diagnostics.TraceListener
+ TraceLogSource
+
+
+
+
Implements
+
+ System.IDisposable
+
+
+
+
+
Inherited Members
+
+
+ System.Diagnostics.TraceListener.Dispose()
+
+
+ System.Diagnostics.TraceListener.Dispose(System.Boolean)
+
+
+ System.Diagnostics.TraceListener.Close()
+
+
+ System.Diagnostics.TraceListener.Flush()
+
+
+ System.Diagnostics.TraceListener.Fail(System.String)
+
+
+ System.Diagnostics.TraceListener.Fail(System.String, System.String)
+
+
+ System.Diagnostics.TraceListener.GetSupportedAttributes()
+
+
+ System.Diagnostics.TraceListener.Write(System.Object)
+
+
+ System.Diagnostics.TraceListener.Write(System.String, System.String)
+
+
+ System.Diagnostics.TraceListener.Write(System.Object, System.String)
+
+
+ System.Diagnostics.TraceListener.WriteIndent()
+
+
+ System.Diagnostics.TraceListener.WriteLine(System.Object)
+
+
+ System.Diagnostics.TraceListener.WriteLine(System.String, System.String)
+
+
+ System.Diagnostics.TraceListener.WriteLine(System.Object, System.String)
+
+
+ System.Diagnostics.TraceListener.TraceData(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32, System.Object)
+
+
+ System.Diagnostics.TraceListener.TraceData(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32, System.Object[])
+
+
+ System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32)
+
+
+ System.Diagnostics.TraceListener.TraceTransfer(System.Diagnostics.TraceEventCache, System.String, System.Int32, System.String, System.Guid)
+
+
+ System.Diagnostics.TraceListener.Attributes
+
+
+ System.Diagnostics.TraceListener.Name
+
+
+ System.Diagnostics.TraceListener.IsThreadSafe
+
+
+ System.Diagnostics.TraceListener.IndentLevel
+
+
+ System.Diagnostics.TraceListener.IndentSize
+
+
+ System.Diagnostics.TraceListener.Filter
+
+
+ System.Diagnostics.TraceListener.NeedIndent
+
+
+ System.Diagnostics.TraceListener.TraceOutputOptions
+
+
+ System.MarshalByRefObject.MemberwiseClone(System.Boolean)
+
+
+ System.MarshalByRefObject.GetLifetimeService()
+
+
+ System.MarshalByRefObject.InitializeLifetimeService()
+
+
+ System.MarshalByRefObject.CreateObjRef(System.Type)
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class TraceLogSource : TraceListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates a new trace log source.
+
+
+
Declaration
+
+
+
protected TraceLogSource()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Whether Trace logs are currently being rerouted.
+
+
+
Declaration
+
+
+
public static bool IsListening { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected ManualLogSource LogSource { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Creates a new trace log source.
+
+
+
Declaration
+
+
+
public static ILogSource CreateSource()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ ILogSource
+ New log source (or already existing one).
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string message)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Diagnostics.TraceEventCache
+ eventCache
+
+
+
+ System.String
+ source
+
+
+
+ System.Diagnostics.TraceEventType
+ eventType
+
+
+
+ System.Int32
+ id
+
+
+
+ System.String
+ message
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32, System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void TraceEvent(TraceEventCache eventCache, string source, TraceEventType eventType, int id, string format, params object[] args)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Diagnostics.TraceEventCache
+ eventCache
+
+
+
+ System.String
+ source
+
+
+
+ System.Diagnostics.TraceEventType
+ eventType
+
+
+
+ System.Int32
+ id
+
+
+
+ System.String
+ format
+
+
+
+ System.Object []
+ args
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Diagnostics.TraceListener.TraceEvent(System.Diagnostics.TraceEventCache, System.String, System.Diagnostics.TraceEventType, System.Int32, System.String, System.Object[])
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void Write(string message)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ message
+ The message to write.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Diagnostics.TraceListener.Write(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Writes a message and a newline to the underlying ManualLogSource instance.
+
+
+
Declaration
+
+
+
public override void WriteLine(string message)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ message
+ The message to write.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Diagnostics.TraceListener.WriteLine(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Logging.html b/master/api/BepInEx.Logging.html
new file mode 100644
index 00000000..d7ab536e
--- /dev/null
+++ b/master/api/BepInEx.Logging.html
@@ -0,0 +1,572 @@
+
+
+
+
+
+ Namespace BepInEx.Logging
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Logging
+
+
+
+
+ Classes
+
+
+ Logs entries using a console spawned by BepInEx.
+
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+ Log event arguments. Contains info about the log message.
+
+
+ Handles pub-sub event marshalling across all log listeners and sources.
+
+
+ Helper methods for log level handling.
+
+
+ A generic, multi-purpose log source. Exposes simple API to manually emit logs.
+
+
+ A source that routes all logs from the inbuilt .NET System.Diagnostics.Trace API to the BepInEx logging system.
+
+ Interfaces
+
+
+ A generic log listener that receives log events and can route them to some output (e.g. file, console, socket).
+
+
+ Log source that can output log messages.
+
+ Enums
+
+
+ The level, or severity of a log entry.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.MetadataHelper.html b/master/api/BepInEx.MetadataHelper.html
new file mode 100644
index 00000000..cb20a95f
--- /dev/null
+++ b/master/api/BepInEx.MetadataHelper.html
@@ -0,0 +1,1240 @@
+
+
+
+
+
+ Class MetadataHelper
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Helper class to use for retrieving metadata about a plugin, defined as attributes.
+
+
+
+
+
Inheritance
+ System.Object
+ MetadataHelper
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
+
+
public static class MetadataHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Gets the specified attributes of an instance, if they exist.
+
+
+
Declaration
+
+
+
public static IEnumerable<T> GetAttributes<T>(object plugin)
+ where T : Attribute
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ plugin
+ The plugin instance.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <T>
+ The attributes of the instance, if existing.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ The attribute type to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gets the specified attributes of an assembly, if they exist.
+
+
+
Declaration
+
+
+
public static T[] GetAttributes<T>(Assembly assembly)
+ where T : Attribute
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.Assembly
+ assembly
+ The assembly.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T[]
+ The attributes of the type, if existing.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ The attribute type to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gets the specified attributes of a reflection metadata type, if they exist.
+
+
+
Declaration
+
+
+
public static T[] GetAttributes<T>(MemberInfo member)
+ where T : Attribute
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.MemberInfo
+ member
+ The reflection metadata instance.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T[]
+ The attributes of the instance, if existing.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ The attribute type to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gets the specified attributes of a type, if they exist.
+
+
+
Declaration
+
+
+
public static T[] GetAttributes<T>(Type pluginType)
+ where T : Attribute
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ pluginType
+ The plugin type.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T[]
+ The attributes of the type, if existing.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ The attribute type to retrieve.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves the dependencies of the specified plugin type.
+
+
+
Declaration
+
+
+
public static IEnumerable<BepInDependency> GetDependencies(Type plugin)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ plugin
+ The plugin type.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <BepInDependency >
+ A list of all plugin types that the specified plugin type depends upon.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves the BepInPlugin metadata from a plugin instance.
+
+
+
Declaration
+
+
+
public static BepInPlugin GetMetadata(object plugin)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ plugin
+ The plugin instance.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ BepInPlugin
+ The BepInPlugin metadata of the plugin instance.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Retrieves the BepInPlugin metadata from a plugin type.
+
+
+
Declaration
+
+
+
public static BepInPlugin GetMetadata(Type pluginType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ pluginType
+ The plugin type.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ BepInPlugin
+ The BepInPlugin metadata of the plugin type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.NET.Common.BasePlugin.html b/master/api/BepInEx.NET.Common.BasePlugin.html
new file mode 100644
index 00000000..23c5fb37
--- /dev/null
+++ b/master/api/BepInEx.NET.Common.BasePlugin.html
@@ -0,0 +1,946 @@
+
+
+
+
+
+ Class BasePlugin
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BasePlugin
+
+
+
+
+
+
Inheritance
+ System.Object
+ BasePlugin
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.NET.Common.dll
+
+
+
Syntax
+
+
public abstract class BasePlugin
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected BasePlugin()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigFile Config { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Harmony HarmonyInstance { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ Harmony
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ManualLogSource Log { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public abstract void Load()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public virtual bool Unload()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.NET.Common.NetChainloader.html b/master/api/BepInEx.NET.Common.NetChainloader.html
new file mode 100644
index 00000000..e725c643
--- /dev/null
+++ b/master/api/BepInEx.NET.Common.NetChainloader.html
@@ -0,0 +1,890 @@
+
+
+
+
+
+ Class NetChainloader
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class NetChainloader
+
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.NET.Common.dll
+
+
+
Syntax
+
+
public class NetChainloader : BaseChainloader<BasePlugin>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static NetChainloader Instance { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void Initialize(string gameExePath = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ gameExePath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected override void InitializeLoggers()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
BepInEx.Bootstrap.BaseChainloader<BepInEx.NET.Common.BasePlugin>.InitializeLoggers()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override BasePlugin LoadPlugin(PluginInfo pluginInfo, Assembly pluginAssembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ PluginInfo
+ pluginInfo
+
+
+
+ System.Reflection.Assembly
+ pluginAssembly
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ BasePlugin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.NET.Common.html b/master/api/BepInEx.NET.Common.html
new file mode 100644
index 00000000..2415bfe4
--- /dev/null
+++ b/master/api/BepInEx.NET.Common.html
@@ -0,0 +1,540 @@
+
+
+
+
+
+ Namespace BepInEx.NET.Common
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.NET.Common
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.NET.Framework.Launcher.NetPreloader.html b/master/api/BepInEx.NET.Framework.Launcher.NetPreloader.html
new file mode 100644
index 00000000..2401bd77
--- /dev/null
+++ b/master/api/BepInEx.NET.Framework.Launcher.NetPreloader.html
@@ -0,0 +1,667 @@
+
+
+
+
+
+ Class NetPreloader
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class NetPreloader
+
+
+
+
+
+
Inheritance
+ System.Object
+ NetPreloader
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.NET.Framework.Launcher.dll
+
+
+
Syntax
+
+
public static class NetPreloader
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void Start(string[] args)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String []
+ args
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.NET.Framework.Launcher.html b/master/api/BepInEx.NET.Framework.Launcher.html
new file mode 100644
index 00000000..6f33b97c
--- /dev/null
+++ b/master/api/BepInEx.NET.Framework.Launcher.html
@@ -0,0 +1,538 @@
+
+
+
+
+
+ Namespace BepInEx.NET.Framework.Launcher
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.NET.Framework.Launcher
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Paths.html b/master/api/BepInEx.Paths.html
new file mode 100644
index 00000000..3246ad8a
--- /dev/null
+++ b/master/api/BepInEx.Paths.html
@@ -0,0 +1,1625 @@
+
+
+
+
+
+ Class Paths
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Paths
+
+
+
+
+
+
Inheritance
+ System.Object
+ Paths
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public static class Paths
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The directory that the core BepInEx DLLs reside in.
+
+
+
Declaration
+
+
+
public static string BepInExAssemblyDirectory { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the core BepInEx DLL.
+
+
+
Declaration
+
+
+
public static string BepInExAssemblyPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the global BepInEx configuration file.
+
+
+
Declaration
+
+
+
public static string BepInExConfigPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the main BepInEx folder.
+
+
+
Declaration
+
+
+
public static string BepInExRootPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static Version BepInExVersion { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ Version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to temporary cache files.
+
+
+
Declaration
+
+
+
public static string CachePath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the config directory.
+
+
+
Declaration
+
+
+
public static string ConfigPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
List of directories from where Mono will search assemblies before assembly resolving is invoked.
+
+
+
Declaration
+
+
+
public static string[] DllSearchPaths { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String []
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path of the currently executing program BepInEx is encapsulated in.
+
+
+
Declaration
+
+
+
public static string ExecutablePath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the game data folder of the currently running Unity game.
+
+
+
Declaration
+
+
+
public static string GameDataPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The directory that the currently executing process resides in.
+
On OSX however, this is the parent directory of the game.app folder.
+
+
+
Declaration
+
+
+
public static string GameRootPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the Managed folder that contains the main managed assemblies.
+
+
+
Declaration
+
+
+
public static string ManagedPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the patcher plugin folder which resides in the BepInEx folder.
+
+
+
Declaration
+
+
+
public static string PatcherPluginPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The path to the plugin folder which resides in the BepInEx folder.
+
+ This is ONLY guaranteed to be set correctly when Chainloader has been initialized.
+
+
+
+
Declaration
+
+
+
public static string PluginPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The name of the currently executing process.
+
+
+
Declaration
+
+
+
public static string ProcessName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void SetExecutablePath(string executablePath, string bepinRootPath = null, string managedPath = null, bool gameDataRelativeToManaged = false, string[] dllSearchPath = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ executablePath
+
+
+
+ System.String
+ bepinRootPath
+
+
+
+ System.String
+ managedPath
+
+
+
+ System.Boolean
+ gameDataRelativeToManaged
+
+
+
+ System.String []
+ dllSearchPath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.PluginInfo.html b/master/api/BepInEx.PluginInfo.html
new file mode 100644
index 00000000..cb6f60ca
--- /dev/null
+++ b/master/api/BepInEx.PluginInfo.html
@@ -0,0 +1,1240 @@
+
+
+
+
+
+ Class PluginInfo
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class PluginInfo
+
+ Data class that represents information about a loadable BepInEx plugin.
+Contains all metadata and additional info required for plugin loading by .
+
+
+
+
+
Inheritance
+ System.Object
+ PluginInfo
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public class PluginInfo : ICacheable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Collection of BepInDependency attributes that describe what plugins this plugin depends on.
+
+
+
Declaration
+
+
+
public IEnumerable<BepInDependency> Dependencies { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <BepInDependency >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Collection of BepInIncompatibility attributes that describe what plugins this plugin
+is incompatible with.
+
+
+
Declaration
+
+
+
public IEnumerable<BepInIncompatibility> Incompatibilities { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <BepInIncompatibility >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Instance of the plugin that represents this info. NULL if no plugin is instantiated from info (yet)
+
+
+
Declaration
+
+
+
public object Instance { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
File path to the plugin DLL
+
+
+
Declaration
+
+
+
public string Location { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
General metadata about a plugin.
+
+
+
Declaration
+
+
+
public BepInPlugin Metadata { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Collection of BepInProcess attributes that describe what processes the plugin can run on.
+
+
+
Declaration
+
+
+
public IEnumerable<BepInProcess> Processes { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <BepInProcess >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string TypeName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Load(BinaryReader br)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryReader
+ br
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
void ICacheable.Save(BinaryWriter bw)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.BinaryWriter
+ bw
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.AssemblyBuildInfo.FrameworkType.html b/master/api/BepInEx.Preloader.Core.AssemblyBuildInfo.FrameworkType.html
new file mode 100644
index 00000000..45a05a72
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.AssemblyBuildInfo.FrameworkType.html
@@ -0,0 +1,596 @@
+
+
+
+
+
+ Enum AssemblyBuildInfo.FrameworkType
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enum AssemblyBuildInfo.FrameworkType
+
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public enum FrameworkType
+
+
+
+
+
+
+
+
+
+
+
+
+
Fields
+
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+ NetCore
+
+
+
+ NetFramework
+
+
+
+ NetStandard
+
+
+
+ Unknown
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.AssemblyBuildInfo.html b/master/api/BepInEx.Preloader.Core.AssemblyBuildInfo.html
new file mode 100644
index 00000000..5d574822
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.AssemblyBuildInfo.html
@@ -0,0 +1,989 @@
+
+
+
+
+
+ Class AssemblyBuildInfo
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class AssemblyBuildInfo
+
+
+
+
+
+
Inheritance
+ System.Object
+ AssemblyBuildInfo
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public class AssemblyBuildInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public AssemblyBuildInfo.FrameworkType AssemblyFrameworkType { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool Is64Bit { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool IsAnyCpu { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Version NetFrameworkVersion { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static AssemblyBuildInfo DetermineInfo(AssemblyDefinition assemblyDefinition)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ AssemblyDefinition
+ assemblyDefinition
+
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.Object.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.EnvVars.html b/master/api/BepInEx.Preloader.Core.EnvVars.html
new file mode 100644
index 00000000..6ae9426d
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.EnvVars.html
@@ -0,0 +1,917 @@
+
+
+
+
+
+ Class EnvVars
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class EnvVars
+
+ Doorstop environment variables, passed into the BepInEx preloader.
+
https://github.com/NeighTools/UnityDoorstop/wiki#environment-variables
+
+
+
+
+
Inheritance
+ System.Object
+ EnvVars
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public static class EnvVars
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Array of paths where Mono searches DLLs from before assembly resolvers are invoked.
+
+
+
Declaration
+
+
+
public static string[] DOORSTOP_DLL_SEARCH_DIRS { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String []
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Path to the assembly that was invoked via Doorstop. Contains the same value as in "targetAssembly" configuration
+option in the config file.
+
+
+
Declaration
+
+
+
public static string DOORSTOP_INVOKE_DLL_PATH { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Full path to the game's "Managed" folder that contains all the game's managed assemblies
+
+
+
Declaration
+
+
+
public static string DOORSTOP_MANAGED_FOLDER_DIR { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Path of the DLL that contains mono imports.
+
+
+
Declaration
+
+
+
public static string DOORSTOP_MONO_LIB_PATH { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Full path to the game executable currently running.
+
+
+
Declaration
+
+
+
public static string DOORSTOP_PROCESS_PATH { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Logging.ChainloaderLogHelper.html b/master/api/BepInEx.Preloader.Core.Logging.ChainloaderLogHelper.html
new file mode 100644
index 00000000..5bc783a6
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Logging.ChainloaderLogHelper.html
@@ -0,0 +1,713 @@
+
+
+
+
+
+ Class ChainloaderLogHelper
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ChainloaderLogHelper
+
+
+
+
+
+
Inheritance
+ System.Object
+ ChainloaderLogHelper
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public static class ChainloaderLogHelper
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void PrintLogInfo(ManualLogSource log)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ ManualLogSource
+ log
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void RewritePreloaderLogs()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Logging.PreloaderConsoleListener.html b/master/api/BepInEx.Preloader.Core.Logging.PreloaderConsoleListener.html
new file mode 100644
index 00000000..d70e1cc0
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Logging.PreloaderConsoleListener.html
@@ -0,0 +1,867 @@
+
+
+
+
+
+ Class PreloaderConsoleListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class PreloaderConsoleListener
+
+ Log listener that listens to logs during preloading time and buffers messages for output in Unity logs later.
+
+
+
+
+
Inheritance
+ System.Object
+ PreloaderConsoleListener
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public class PreloaderConsoleListener : ILogListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
A list of all LogEventArgs objects that this listener has received.
+
+
+
Declaration
+
+
+
public static List<LogEventArgs> LogEvents { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.List <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
What log levels the listener preliminarily wants.
+
+
+
Declaration
+
+
+
public LogLevel LogLevelFilter { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
public void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Logging.html b/master/api/BepInEx.Preloader.Core.Logging.html
new file mode 100644
index 00000000..9b5b8995
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Logging.html
@@ -0,0 +1,541 @@
+
+
+
+
+
+ Namespace BepInEx.Preloader.Core.Logging
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Preloader.Core.Logging
+
+
+
+
+ Classes
+
+
+
+
+ Log listener that listens to logs during preloading time and buffers messages for output in Unity logs later.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Patching.AssemblyPatcher.html b/master/api/BepInEx.Preloader.Core.Patching.AssemblyPatcher.html
new file mode 100644
index 00000000..72a4485f
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Patching.AssemblyPatcher.html
@@ -0,0 +1,1130 @@
+
+
+
+
+
+ Class AssemblyPatcher
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class AssemblyPatcher
+
+ Worker class which is used for loading and patching entire folders of assemblies, or alternatively patching and
+loading assemblies one at a time.
+
+
+
+
+
Inheritance
+ System.Object
+ AssemblyPatcher
+
+
+
+
Implements
+
+ System.IDisposable
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public class AssemblyPatcher : IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public AssemblyPatcher(Func<byte[], string, Assembly> assemblyLoader)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Func <System.Byte [], System.String , System.Reflection.Assembly >
+ assemblyLoader
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The context of this assembly patcher instance that is passed to all patcher plugins.
+
+
+
Declaration
+
+
+
public PatcherContext PatcherContext { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Adds all patchers from all managed assemblies specified in a directory.
+
+
+
Declaration
+
+
+
public void AddPatchersFromDirectory(string directory)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ directory
+ Directory to search patcher DLLs from.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Performs work to dispose collection objects.
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Adds all assemblies in given directories to be patched and loaded by this patcher instance. Non-managed assemblies
+are
+skipped.
+
+
+
Declaration
+
+
+
public void LoadAssemblyDirectories(IEnumerable<string> directories, IEnumerable<string> assemblyExtensions)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IEnumerable <System.String >
+ directories
+ The directory to search.
+
+
+
+ System.Collections.Generic.IEnumerable <System.String >
+ assemblyExtensions
+ The file extensions to attempt to load.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Adds all .dll assemblies in given directories to be patched and loaded by this patcher instance. Non-managed
+assemblies
+are skipped.
+
+
+
Declaration
+
+
+
public void LoadAssemblyDirectories(params string[] directories)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String []
+ directories
+ The directories to search.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Applies patchers to all assemblies loaded into this assembly patcher and then loads patched assemblies into memory.
+
+
+
Declaration
+
+
+
public void PatchAndLoad()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Attempts to load a managed assembly as an . Returns true if successful.
+
+
+
Declaration
+
+
+
public static bool TryLoadAssembly(string path, out AssemblyDefinition assembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ path
+ The path of the assembly.
+
+
+
+ AssemblyDefinition
+ assembly
+ The loaded assembly. Null if not successful in loading.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Patching.BasePatcher.html b/master/api/BepInEx.Preloader.Core.Patching.BasePatcher.html
new file mode 100644
index 00000000..52a6c68a
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Patching.BasePatcher.html
@@ -0,0 +1,1000 @@
+
+
+
+
+
+ Class BasePatcher
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BasePatcher
+
+ A patcher that can contain multiple methods for patching assemblies.
+
+
+
+
+
Inheritance
+ System.Object
+ BasePatcher
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public abstract class BasePatcher
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected BasePatcher()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
A configuration file binding created with the GUID of this plugin as the
+filename.
+
+
+
Declaration
+
+
+
public ConfigFile Config { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public PatcherContext Context { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Metadata associated with this patcher plugin.
+
+
+
Declaration
+
+
+
public PatcherPluginInfoAttribute Info { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A ILogSource instance created for use by this patcher plugin.
+
+
+
Declaration
+
+
+
public ManualLogSource Log { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Executed after all patches from all plugins have been applied.
+
+
+
Declaration
+
+
+
public virtual void Finalizer()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Executed before any patches from any plugin are applied.
+
+
+
Declaration
+
+
+
public virtual void Initialize()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Patching.PatchDefinition.html b/master/api/BepInEx.Preloader.Core.Patching.PatchDefinition.html
new file mode 100644
index 00000000..c9c64cb9
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Patching.PatchDefinition.html
@@ -0,0 +1,1064 @@
+
+
+
+
+
+ Class PatchDefinition
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class PatchDefinition
+
+
+
+
+
+
Inheritance
+ System.Object
+ PatchDefinition
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public class PatchDefinition
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public PatchDefinition(TargetAssemblyAttribute targetAssembly, BasePatcher instance, MethodInfo methodInfo)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ TargetAssemblyAttribute
+ targetAssembly
+
+
+
+ BasePatcher
+ instance
+
+
+
+ System.Reflection.MethodInfo
+ methodInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public PatchDefinition(TargetTypeAttribute targetType, BasePatcher instance, MethodInfo methodInfo)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ TargetTypeAttribute
+ targetType
+
+
+
+ BasePatcher
+ instance
+
+
+
+ System.Reflection.MethodInfo
+ methodInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
A friendly name for this patch definition, for use in logging and error tracking.
+
+
+
Declaration
+
+
+
public string FullName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public BasePatcher Instance { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The method that will perform the patching logic defined by this PatchDefinition instance.
+
+
+
Declaration
+
+
+
public MethodInfo MethodInfo { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Reflection.MethodInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The assembly / assemblies this patch will target, if there any.
+
+
+
Declaration
+
+
+
public TargetAssemblyAttribute TargetAssembly { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The type / types this patch will target, if there are any.
+
+
+
Declaration
+
+
+
public TargetTypeAttribute TargetType { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Patching.PatcherContext.html b/master/api/BepInEx.Preloader.Core.Patching.PatcherContext.html
new file mode 100644
index 00000000..9449a931
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Patching.PatcherContext.html
@@ -0,0 +1,987 @@
+
+
+
+
+
+ Class PatcherContext
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class PatcherContext
+
+ Context provided to patcher plugins from the associated patcher engine.
+
+
+
+
+
Inheritance
+ System.Object
+ PatcherContext
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public class PatcherContext
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Contains a list of assemblies that will be patched and loaded into the runtime.
+
+ The dictionary has the name of the file, without any directories. These are used by the dumping
+ functionality, and as such, these are also required to be unique. They do not have to be exactly the same as
+ the real filename, however they have to be mapped deterministically.
+
+
Order is not respected, as it will be sorted by dependencies.
+
+
+
Declaration
+
+
+
public Dictionary<string, AssemblyDefinition> AvailableAssemblies { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , AssemblyDefinition >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Contains a mapping of available assembly name to their original filenames.
+
+
+
Declaration
+
+
+
public Dictionary<string, string> AvailableAssembliesPaths { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , System.String >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string DumpedAssembliesPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Contains a dictionary of assemblies that have been loaded as part of executing this assembly patcher.
+
+ The key is the same key as used in LoadedAssemblies , while the value is the actual assembly
+ itself.
+
+
+
+
Declaration
+
+
+
public Dictionary<string, Assembly> LoadedAssemblies { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.Dictionary <System.String , System.Reflection.Assembly >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public List<PatchDefinition> PatchDefinitions { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.List <PatchDefinition >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
A list of plugins that will be initialized and executed, in the order of the list.
+
+
+
Declaration
+
+
+
public List<BasePatcher> PatcherPlugins { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.List <BasePatcher >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Patching.PatcherPluginInfoAttribute.html b/master/api/BepInEx.Preloader.Core.Patching.PatcherPluginInfoAttribute.html
new file mode 100644
index 00000000..1c6a56a6
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Patching.PatcherPluginInfoAttribute.html
@@ -0,0 +1,997 @@
+
+
+
+
+
+ Class PatcherPluginInfoAttribute
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class PatcherPluginInfoAttribute
+
+ This attribute denotes that a class is a patcher plugin, and specifies the required metadata.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ PatcherPluginInfoAttribute
+
+
+
+
Implements
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Class)]
+public class PatcherPluginInfoAttribute : Attribute, _Attribute
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public PatcherPluginInfoAttribute(string GUID, string Name, string Version)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ GUID
+ The unique identifier of the plugin. Should not change between plugin versions.
+
+
+
+ System.String
+ Name
+ The user friendly name of the plugin. Is able to be changed between versions.
+
+
+
+ System.String
+ Version
+ The specific version of the plugin.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The unique identifier of the plugin. Should not change between plugin versions.
+
+
+
Declaration
+
+
+
public string GUID { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The user friendly name of the plugin. Is able to be changed between versions.
+
+
+
Declaration
+
+
+
public string Name { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The specific version of the plugin.
+
+
+
Declaration
+
+
+
public SemanticVersioning.Version Version { get; protected set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ SemanticVersioning.Version
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Patching.TargetAssemblyAttribute.html b/master/api/BepInEx.Preloader.Core.Patching.TargetAssemblyAttribute.html
new file mode 100644
index 00000000..cf8d5d66
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Patching.TargetAssemblyAttribute.html
@@ -0,0 +1,926 @@
+
+
+
+
+
+ Class TargetAssemblyAttribute
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TargetAssemblyAttribute
+
+ Defines an assembly that a patch method will target.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ TargetAssemblyAttribute
+
+
+
+
Implements
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Method)]
+public class TargetAssemblyAttribute : Attribute, _Attribute
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public TargetAssemblyAttribute(string targetAssembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ targetAssembly
+ The short filename of the assembly. Use AllAssemblies to mark all possible
+assemblies as targets.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
Marker used to indicate all possible assemblies to be targeted by a patch method.
+
+
+
Declaration
+
+
+
public const string AllAssemblies = "_all"
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The short filename of the assembly to target.
+
+
+
Declaration
+
+
+
public string TargetAssembly { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Patching.TargetTypeAttribute.html b/master/api/BepInEx.Preloader.Core.Patching.TargetTypeAttribute.html
new file mode 100644
index 00000000..ca3e1015
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Patching.TargetTypeAttribute.html
@@ -0,0 +1,929 @@
+
+
+
+
+
+ Class TargetTypeAttribute
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class TargetTypeAttribute
+
+ Defines a type that a patch method will target.
+
+
+
+
+
Inheritance
+ System.Object
+ System.Attribute
+ TargetTypeAttribute
+
+
+
+
Implements
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
Inherited Members
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.MemberInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.MemberInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.ParameterInfo, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.ParameterInfo, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Module, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly)
+
+
+ System.Attribute.GetCustomAttributes(System.Reflection.Assembly, System.Boolean)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.IsDefined(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type)
+
+
+ System.Attribute.GetCustomAttribute(System.Reflection.Assembly, System.Type, System.Boolean)
+
+
+ System.Attribute.Equals(System.Object)
+
+
+ System.Attribute.GetHashCode()
+
+
+ System.Attribute.Match(System.Object)
+
+
+ System.Attribute.IsDefaultAttribute()
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfoCount(System.UInt32)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetTypeInfo(System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.GetIDsOfNames(System.Guid, System.IntPtr, System.UInt32, System.UInt32, System.IntPtr)
+
+
+ System.Attribute.System.Runtime.InteropServices._Attribute.Invoke(System.UInt32, System.Guid, System.UInt32, System.Int16, System.IntPtr, System.IntPtr, System.IntPtr, System.IntPtr)
+
+
+ System.Attribute.TypeId
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
[AttributeUsage(AttributeTargets.Method)]
+public class TargetTypeAttribute : Attribute, _Attribute
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public TargetTypeAttribute(string targetAssembly, string targetType)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ targetAssembly
+ The short filename of the assembly of which targetType
belongs to.
+
+
+
+ System.String
+ targetType
+ The full name of the type to target for patching.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
The short filename of the assembly to target.
+
+
+
Declaration
+
+
+
public string TargetAssembly { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The full name of the type to target for patching.
+
+
+
Declaration
+
+
+
public string TargetType { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Runtime.InteropServices._Attribute
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.Patching.html b/master/api/BepInEx.Preloader.Core.Patching.html
new file mode 100644
index 00000000..99de408e
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.Patching.html
@@ -0,0 +1,558 @@
+
+
+
+
+
+ Namespace BepInEx.Preloader.Core.Patching
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Preloader.Core.Patching
+
+
+
+
+ Classes
+
+
+ Worker class which is used for loading and patching entire folders of assemblies, or alternatively patching and
+loading assemblies one at a time.
+
+
+ A patcher that can contain multiple methods for patching assemblies.
+
+
+
+
+ Context provided to patcher plugins from the associated patcher engine.
+
+
+ This attribute denotes that a class is a patcher plugin, and specifies the required metadata.
+
+
+ Defines an assembly that a patch method will target.
+
+
+ Defines a type that a patch method will target.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.PreloaderLogger.html b/master/api/BepInEx.Preloader.Core.PreloaderLogger.html
new file mode 100644
index 00000000..86fec86d
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.PreloaderLogger.html
@@ -0,0 +1,665 @@
+
+
+
+
+
+ Class PreloaderLogger
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class PreloaderLogger
+
+
+
+
+
+
Inheritance
+ System.Object
+ PreloaderLogger
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public static class PreloaderLogger
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static ManualLogSource Log { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.Core.html b/master/api/BepInEx.Preloader.Core.html
new file mode 100644
index 00000000..7bebb218
--- /dev/null
+++ b/master/api/BepInEx.Preloader.Core.html
@@ -0,0 +1,548 @@
+
+
+
+
+
+ Namespace BepInEx.Preloader.Core
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Preloader.Core
+
+
+
+
+ Classes
+
+
+
+
+ Doorstop environment variables, passed into the BepInEx preloader.
+https://github.com/NeighTools/UnityDoorstop/wiki#environment-variables
+
+
+
+ Enums
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.RuntimeFixes.ConsoleSetOutFix.html b/master/api/BepInEx.Preloader.RuntimeFixes.ConsoleSetOutFix.html
new file mode 100644
index 00000000..1e0024f3
--- /dev/null
+++ b/master/api/BepInEx.Preloader.RuntimeFixes.ConsoleSetOutFix.html
@@ -0,0 +1,650 @@
+
+
+
+
+
+ Class ConsoleSetOutFix
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ConsoleSetOutFix
+
+
+
+
+
+
Inheritance
+ System.Object
+ ConsoleSetOutFix
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public static class ConsoleSetOutFix
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void Apply()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.RuntimeFixes.HarmonyBackendFix.html b/master/api/BepInEx.Preloader.RuntimeFixes.HarmonyBackendFix.html
new file mode 100644
index 00000000..a9a180e0
--- /dev/null
+++ b/master/api/BepInEx.Preloader.RuntimeFixes.HarmonyBackendFix.html
@@ -0,0 +1,650 @@
+
+
+
+
+
+ Class HarmonyBackendFix
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class HarmonyBackendFix
+
+
+
+
+
+
Inheritance
+ System.Object
+ HarmonyBackendFix
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Preloader.Core.dll
+
+
+
Syntax
+
+
public static class HarmonyBackendFix
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void Initialize()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Preloader.RuntimeFixes.html b/master/api/BepInEx.Preloader.RuntimeFixes.html
new file mode 100644
index 00000000..6e5d5788
--- /dev/null
+++ b/master/api/BepInEx.Preloader.RuntimeFixes.html
@@ -0,0 +1,540 @@
+
+
+
+
+
+ Namespace BepInEx.Preloader.RuntimeFixes
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Preloader.RuntimeFixes
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Common.UnityInfo.html b/master/api/BepInEx.Unity.Common.UnityInfo.html
new file mode 100644
index 00000000..239aaf80
--- /dev/null
+++ b/master/api/BepInEx.Unity.Common.UnityInfo.html
@@ -0,0 +1,795 @@
+
+
+
+
+
+ Class UnityInfo
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class UnityInfo
+
+ Various information about the currently executing Unity player.
+
+
+
+
+
Inheritance
+ System.Object
+ UnityInfo
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Unity.Common.dll
+
+
+
Syntax
+
+
public static class UnityInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Path to the game data directory (directory that contains the game assets).
+
+
+
Declaration
+
+
+
public static string GameDataPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Path to the player executable.
+
+
+
Declaration
+
+
+
public static string PlayerPath { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Version of the Unity player
+
+
+
Declaration
+
+
+
public static UnityVersion Version { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ UnityVersion
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Common.html b/master/api/BepInEx.Unity.Common.html
new file mode 100644
index 00000000..1dcb9c92
--- /dev/null
+++ b/master/api/BepInEx.Unity.Common.html
@@ -0,0 +1,539 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.Common
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.Common
+
+
+
+
+ Classes
+
+
+ Various information about the currently executing Unity player.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.BasePlugin.html b/master/api/BepInEx.Unity.IL2CPP.BasePlugin.html
new file mode 100644
index 00000000..93faefab
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.BasePlugin.html
@@ -0,0 +1,965 @@
+
+
+
+
+
+ Class BasePlugin
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BasePlugin
+
+
+
+
+
+
Inheritance
+ System.Object
+ BasePlugin
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public abstract class BasePlugin
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected BasePlugin()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ConfigFile Config { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ManualLogSource Log { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Add a Component (e.g. MonoBehaviour) into Unity scene.
+Automatically registers the type with Il2Cpp Type system if it isn't already.
+
+
+
Declaration
+
+
+
public T AddComponent<T>()
+ where T : Il2CppObjectBase
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the component to add.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public abstract void Load()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public virtual bool Unload()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Hook.INativeDetour.html b/master/api/BepInEx.Unity.IL2CPP.Hook.INativeDetour.html
new file mode 100644
index 00000000..577b8e34
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Hook.INativeDetour.html
@@ -0,0 +1,964 @@
+
+
+
+
+
+ Interface INativeDetour
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Interface INativeDetour
+
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public interface INativeDetour
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
nint DetourMethodPtr { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IntPtr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
nint OriginalMethodPtr { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IntPtr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
nint TrampolinePtr { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IntPtr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
static INativeDetour Create<T>(nint original, T target)
+ where T : Delegate
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IntPtr
+ original
+
+
+
+ T
+ target
+
+
+
+
+
+
+
Returns
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
static INativeDetour CreateAndApply<T>(nint from, T to, out T original)
+ where T : Delegate
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IntPtr
+ from
+
+
+
+ T
+ to
+
+
+
+ T
+ original
+
+
+
+
+
+
+
Returns
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Hook.html b/master/api/BepInEx.Unity.IL2CPP.Hook.html
new file mode 100644
index 00000000..9e9efaa9
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Hook.html
@@ -0,0 +1,538 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.Hook
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.Hook
+
+
+
+
+ Interfaces
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.IL2CPPChainloader.html b/master/api/BepInEx.Unity.IL2CPP.IL2CPPChainloader.html
new file mode 100644
index 00000000..337c3228
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.IL2CPPChainloader.html
@@ -0,0 +1,1115 @@
+
+
+
+
+
+ Class IL2CPPChainloader
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class IL2CPPChainloader
+
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public class IL2CPPChainloader : BaseChainloader<BasePlugin>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static IL2CPPChainloader Instance { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Register and add a Unity Component (for example MonoBehaviour) into BepInEx global manager.
+Automatically registers the type with Il2Cpp type system if it isn't initialised already.
+
+
+
Declaration
+
+
+
public static Il2CppObjectBase AddUnityComponent(Type t)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Type
+ t
+ Type of the component to add
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ Il2CppObjectBase
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Register and add a Unity Component (for example MonoBehaviour) into BepInEx global manager.
+Automatically registers the type with Il2Cpp type system if it isn't initialised already.
+
+
+
Declaration
+
+
+
public static T AddUnityComponent<T>()
+ where T : Il2CppObjectBase
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ T
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the component to add.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void Initialize(string gameExePath = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ gameExePath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected override void InitializeLoggers()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
BepInEx.Bootstrap.BaseChainloader<BepInEx.Unity.IL2CPP.BasePlugin>.InitializeLoggers()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override BasePlugin LoadPlugin(PluginInfo pluginInfo, Assembly pluginAssembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ PluginInfo
+ pluginInfo
+
+
+
+ System.Reflection.Assembly
+ pluginAssembly
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ BasePlugin
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Occurs after a plugin is instantiated and just before Load() is called.
+
+
+
Declaration
+
+
+
public event Action<PluginInfo, Assembly, BasePlugin> PluginLoad
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Action <PluginInfo , System.Reflection.Assembly , BasePlugin >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Logging.IL2CPPLogSource.html b/master/api/BepInEx.Unity.IL2CPP.Logging.IL2CPPLogSource.html
new file mode 100644
index 00000000..3d367555
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Logging.IL2CPPLogSource.html
@@ -0,0 +1,838 @@
+
+
+
+
+
+ Class IL2CPPLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class IL2CPPLogSource
+
+
+
+
+
+
Inheritance
+ System.Object
+ IL2CPPLogSource
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public class IL2CPPLogSource : ILogSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public IL2CPPLogSource()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Logging.IL2CPPUnityLogSource.html b/master/api/BepInEx.Unity.IL2CPP.Logging.IL2CPPUnityLogSource.html
new file mode 100644
index 00000000..0ee76870
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Logging.IL2CPPUnityLogSource.html
@@ -0,0 +1,911 @@
+
+
+
+
+
+ Class IL2CPPUnityLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class IL2CPPUnityLogSource
+
+
+
+
+
+
Inheritance
+ System.Object
+ IL2CPPUnityLogSource
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public class IL2CPPUnityLogSource : ILogSource
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public IL2CPPUnityLogSource()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void UnityLogCallback(string logLine, string exception, LogType type)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ logLine
+
+
+
+ System.String
+ exception
+
+
+
+ LogType
+ type
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Logging.html b/master/api/BepInEx.Unity.IL2CPP.Logging.html
new file mode 100644
index 00000000..2695bf4c
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Logging.html
@@ -0,0 +1,540 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.Logging
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.Logging
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Preloader.html b/master/api/BepInEx.Unity.IL2CPP.Preloader.html
new file mode 100644
index 00000000..0e8a41b2
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Preloader.html
@@ -0,0 +1,650 @@
+
+
+
+
+
+ Class Preloader
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Preloader
+
+
+
+
+
+
Inheritance
+ System.Object
+ Preloader
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public static class Preloader
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static void Run()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.UnityEngine.Input.html b/master/api/BepInEx.Unity.IL2CPP.UnityEngine.Input.html
new file mode 100644
index 00000000..d801760c
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.UnityEngine.Input.html
@@ -0,0 +1,682 @@
+
+
+
+
+
+ Class Input
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Inheritance
+ System.Object
+ Input
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
+
+
public static class Input
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static bool GetKeyInt(KeyCode key)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ KeyCode
+ key
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.UnityEngine.KeyCode.html b/master/api/BepInEx.Unity.IL2CPP.UnityEngine.KeyCode.html
new file mode 100644
index 00000000..50c2af2b
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.UnityEngine.KeyCode.html
@@ -0,0 +1,1884 @@
+
+
+
+
+
+ Enum KeyCode
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Enum KeyCode
+
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
+
+
+
+
+
+
+
+
+
+
+
Fields
+
+
+
+
+
+
+ Name
+ Description
+
+
+
+
+ A
+
+
+
+ Alpha0
+
+
+
+ Alpha1
+
+
+
+ Alpha2
+
+
+
+ Alpha3
+
+
+
+ Alpha4
+
+
+
+ Alpha5
+
+
+
+ Alpha6
+
+
+
+ Alpha7
+
+
+
+ Alpha8
+
+
+
+ Alpha9
+
+
+
+ AltGr
+
+
+
+ Ampersand
+
+
+
+ Asterisk
+
+
+
+ At
+
+
+
+ B
+
+
+
+ BackQuote
+
+
+
+ Backslash
+
+
+
+ Backspace
+
+
+
+ Break
+
+
+
+ C
+
+
+
+ CapsLock
+
+
+
+ Caret
+
+
+
+ Clear
+
+
+
+ Colon
+
+
+
+ Comma
+
+
+
+ D
+
+
+
+ Delete
+
+
+
+ Dollar
+
+
+
+ DoubleQuote
+
+
+
+ DownArrow
+
+
+
+ E
+
+
+
+ End
+
+
+
+ Equals
+
+
+
+ Escape
+
+
+
+ Exclaim
+
+
+
+ F
+
+
+
+ F1
+
+
+
+ F10
+
+
+
+ F11
+
+
+
+ F12
+
+
+
+ F13
+
+
+
+ F14
+
+
+
+ F15
+
+
+
+ F2
+
+
+
+ F3
+
+
+
+ F4
+
+
+
+ F5
+
+
+
+ F6
+
+
+
+ F7
+
+
+
+ F8
+
+
+
+ F9
+
+
+
+ G
+
+
+
+ Greater
+
+
+
+ H
+
+
+
+ Hash
+
+
+
+ Help
+
+
+
+ Home
+
+
+
+ I
+
+
+
+ Insert
+
+
+
+ J
+
+
+
+ Joystick1Button0
+
+
+
+ Joystick1Button1
+
+
+
+ Joystick1Button10
+
+
+
+ Joystick1Button11
+
+
+
+ Joystick1Button12
+
+
+
+ Joystick1Button13
+
+
+
+ Joystick1Button14
+
+
+
+ Joystick1Button15
+
+
+
+ Joystick1Button16
+
+
+
+ Joystick1Button17
+
+
+
+ Joystick1Button18
+
+
+
+ Joystick1Button19
+
+
+
+ Joystick1Button2
+
+
+
+ Joystick1Button3
+
+
+
+ Joystick1Button4
+
+
+
+ Joystick1Button5
+
+
+
+ Joystick1Button6
+
+
+
+ Joystick1Button7
+
+
+
+ Joystick1Button8
+
+
+
+ Joystick1Button9
+
+
+
+ Joystick2Button0
+
+
+
+ Joystick2Button1
+
+
+
+ Joystick2Button10
+
+
+
+ Joystick2Button11
+
+
+
+ Joystick2Button12
+
+
+
+ Joystick2Button13
+
+
+
+ Joystick2Button14
+
+
+
+ Joystick2Button15
+
+
+
+ Joystick2Button16
+
+
+
+ Joystick2Button17
+
+
+
+ Joystick2Button18
+
+
+
+ Joystick2Button19
+
+
+
+ Joystick2Button2
+
+
+
+ Joystick2Button3
+
+
+
+ Joystick2Button4
+
+
+
+ Joystick2Button5
+
+
+
+ Joystick2Button6
+
+
+
+ Joystick2Button7
+
+
+
+ Joystick2Button8
+
+
+
+ Joystick2Button9
+
+
+
+ Joystick3Button0
+
+
+
+ Joystick3Button1
+
+
+
+ Joystick3Button10
+
+
+
+ Joystick3Button11
+
+
+
+ Joystick3Button12
+
+
+
+ Joystick3Button13
+
+
+
+ Joystick3Button14
+
+
+
+ Joystick3Button15
+
+
+
+ Joystick3Button16
+
+
+
+ Joystick3Button17
+
+
+
+ Joystick3Button18
+
+
+
+ Joystick3Button19
+
+
+
+ Joystick3Button2
+
+
+
+ Joystick3Button3
+
+
+
+ Joystick3Button4
+
+
+
+ Joystick3Button5
+
+
+
+ Joystick3Button6
+
+
+
+ Joystick3Button7
+
+
+
+ Joystick3Button8
+
+
+
+ Joystick3Button9
+
+
+
+ Joystick4Button0
+
+
+
+ Joystick4Button1
+
+
+
+ Joystick4Button10
+
+
+
+ Joystick4Button11
+
+
+
+ Joystick4Button12
+
+
+
+ Joystick4Button13
+
+
+
+ Joystick4Button14
+
+
+
+ Joystick4Button15
+
+
+
+ Joystick4Button16
+
+
+
+ Joystick4Button17
+
+
+
+ Joystick4Button18
+
+
+
+ Joystick4Button19
+
+
+
+ Joystick4Button2
+
+
+
+ Joystick4Button3
+
+
+
+ Joystick4Button4
+
+
+
+ Joystick4Button5
+
+
+
+ Joystick4Button6
+
+
+
+ Joystick4Button7
+
+
+
+ Joystick4Button8
+
+
+
+ Joystick4Button9
+
+
+
+ Joystick5Button0
+
+
+
+ Joystick5Button1
+
+
+
+ Joystick5Button10
+
+
+
+ Joystick5Button11
+
+
+
+ Joystick5Button12
+
+
+
+ Joystick5Button13
+
+
+
+ Joystick5Button14
+
+
+
+ Joystick5Button15
+
+
+
+ Joystick5Button16
+
+
+
+ Joystick5Button17
+
+
+
+ Joystick5Button18
+
+
+
+ Joystick5Button19
+
+
+
+ Joystick5Button2
+
+
+
+ Joystick5Button3
+
+
+
+ Joystick5Button4
+
+
+
+ Joystick5Button5
+
+
+
+ Joystick5Button6
+
+
+
+ Joystick5Button7
+
+
+
+ Joystick5Button8
+
+
+
+ Joystick5Button9
+
+
+
+ Joystick6Button0
+
+
+
+ Joystick6Button1
+
+
+
+ Joystick6Button10
+
+
+
+ Joystick6Button11
+
+
+
+ Joystick6Button12
+
+
+
+ Joystick6Button13
+
+
+
+ Joystick6Button14
+
+
+
+ Joystick6Button15
+
+
+
+ Joystick6Button16
+
+
+
+ Joystick6Button17
+
+
+
+ Joystick6Button18
+
+
+
+ Joystick6Button19
+
+
+
+ Joystick6Button2
+
+
+
+ Joystick6Button3
+
+
+
+ Joystick6Button4
+
+
+
+ Joystick6Button5
+
+
+
+ Joystick6Button6
+
+
+
+ Joystick6Button7
+
+
+
+ Joystick6Button8
+
+
+
+ Joystick6Button9
+
+
+
+ Joystick7Button0
+
+
+
+ Joystick7Button1
+
+
+
+ Joystick7Button10
+
+
+
+ Joystick7Button11
+
+
+
+ Joystick7Button12
+
+
+
+ Joystick7Button13
+
+
+
+ Joystick7Button14
+
+
+
+ Joystick7Button15
+
+
+
+ Joystick7Button16
+
+
+
+ Joystick7Button17
+
+
+
+ Joystick7Button18
+
+
+
+ Joystick7Button19
+
+
+
+ Joystick7Button2
+
+
+
+ Joystick7Button3
+
+
+
+ Joystick7Button4
+
+
+
+ Joystick7Button5
+
+
+
+ Joystick7Button6
+
+
+
+ Joystick7Button7
+
+
+
+ Joystick7Button8
+
+
+
+ Joystick7Button9
+
+
+
+ Joystick8Button0
+
+
+
+ Joystick8Button1
+
+
+
+ Joystick8Button10
+
+
+
+ Joystick8Button11
+
+
+
+ Joystick8Button12
+
+
+
+ Joystick8Button13
+
+
+
+ Joystick8Button14
+
+
+
+ Joystick8Button15
+
+
+
+ Joystick8Button16
+
+
+
+ Joystick8Button17
+
+
+
+ Joystick8Button18
+
+
+
+ Joystick8Button19
+
+
+
+ Joystick8Button2
+
+
+
+ Joystick8Button3
+
+
+
+ Joystick8Button4
+
+
+
+ Joystick8Button5
+
+
+
+ Joystick8Button6
+
+
+
+ Joystick8Button7
+
+
+
+ Joystick8Button8
+
+
+
+ Joystick8Button9
+
+
+
+ JoystickButton0
+
+
+
+ JoystickButton1
+
+
+
+ JoystickButton10
+
+
+
+ JoystickButton11
+
+
+
+ JoystickButton12
+
+
+
+ JoystickButton13
+
+
+
+ JoystickButton14
+
+
+
+ JoystickButton15
+
+
+
+ JoystickButton16
+
+
+
+ JoystickButton17
+
+
+
+ JoystickButton18
+
+
+
+ JoystickButton19
+
+
+
+ JoystickButton2
+
+
+
+ JoystickButton3
+
+
+
+ JoystickButton4
+
+
+
+ JoystickButton5
+
+
+
+ JoystickButton6
+
+
+
+ JoystickButton7
+
+
+
+ JoystickButton8
+
+
+
+ JoystickButton9
+
+
+
+ K
+
+
+
+ Keypad0
+
+
+
+ Keypad1
+
+
+
+ Keypad2
+
+
+
+ Keypad3
+
+
+
+ Keypad4
+
+
+
+ Keypad5
+
+
+
+ Keypad6
+
+
+
+ Keypad7
+
+
+
+ Keypad8
+
+
+
+ Keypad9
+
+
+
+ KeypadDivide
+
+
+
+ KeypadEnter
+
+
+
+ KeypadEquals
+
+
+
+ KeypadMinus
+
+
+
+ KeypadMultiply
+
+
+
+ KeypadPeriod
+
+
+
+ KeypadPlus
+
+
+
+ L
+
+
+
+ LeftAlt
+
+
+
+ LeftApple
+
+
+
+ LeftArrow
+
+
+
+ LeftBracket
+
+
+
+ LeftCommand
+
+
+
+ LeftControl
+
+
+
+ LeftCurlyBracket
+
+
+
+ LeftParen
+
+
+
+ LeftShift
+
+
+
+ LeftWindows
+
+
+
+ Less
+
+
+
+ M
+
+
+
+
+
+
+
+ Minus
+
+
+
+ Mouse0
+
+
+
+ Mouse1
+
+
+
+ Mouse2
+
+
+
+ Mouse3
+
+
+
+ Mouse4
+
+
+
+ Mouse5
+
+
+
+ Mouse6
+
+
+
+ N
+
+
+
+ None
+
+
+
+ Numlock
+
+
+
+ O
+
+
+
+ P
+
+
+
+ PageDown
+
+
+
+ PageUp
+
+
+
+ Pause
+
+
+
+ Percent
+
+
+
+ Period
+
+
+
+ Pipe
+
+
+
+ Plus
+
+
+
+ Print
+
+
+
+ Q
+
+
+
+ Question
+
+
+
+ Quote
+
+
+
+ R
+
+
+
+ Return
+
+
+
+ RightAlt
+
+
+
+ RightApple
+
+
+
+ RightArrow
+
+
+
+ RightBracket
+
+
+
+ RightCommand
+
+
+
+ RightControl
+
+
+
+ RightCurlyBracket
+
+
+
+ RightParen
+
+
+
+ RightShift
+
+
+
+ RightWindows
+
+
+
+ S
+
+
+
+ ScrollLock
+
+
+
+ Semicolon
+
+
+
+ Slash
+
+
+
+ Space
+
+
+
+ SysReq
+
+
+
+ T
+
+
+
+ Tab
+
+
+
+ Tilde
+
+
+
+ U
+
+
+
+ Underscore
+
+
+
+ UpArrow
+
+
+
+ V
+
+
+
+ W
+
+
+
+ X
+
+
+
+ Y
+
+
+
+ Z
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.UnityEngine.html b/master/api/BepInEx.Unity.IL2CPP.UnityEngine.html
new file mode 100644
index 00000000..d8854ceb
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.UnityEngine.html
@@ -0,0 +1,542 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.UnityEngine
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.UnityEngine
+
+
+
+
+ Classes
+
+
+
+ Enums
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.CollectionExtensions.html b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.CollectionExtensions.html
new file mode 100644
index 00000000..e2d07187
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.CollectionExtensions.html
@@ -0,0 +1,916 @@
+
+
+
+
+
+ Class CollectionExtensions
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class CollectionExtensions
+
+
+
+
+
+
Inheritance
+ System.Object
+ CollectionExtensions
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public static class CollectionExtensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static IEnumerable WrapToIl2Cpp(this IEnumerable self)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.IEnumerable
+ self
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ IEnumerable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static IEnumerator WrapToIl2Cpp(this IEnumerator self)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.IEnumerator
+ self
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ IEnumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static IEnumerable WrapToManaged(this IEnumerable self)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ IEnumerable
+ self
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.IEnumerable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static IEnumerator WrapToManaged(this IEnumerator self)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ IEnumerator
+ self
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.IEnumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerable.html b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerable.html
new file mode 100644
index 00000000..89efb9ad
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerable.html
@@ -0,0 +1,770 @@
+
+
+
+
+
+ Class Il2CppManagedEnumerable
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Il2CppManagedEnumerable
+
+
+
+
+
+
Inheritance
+ System.Object
+ Il2CppManagedEnumerable
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public class Il2CppManagedEnumerable : Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Il2CppManagedEnumerable(IEnumerable enumerable)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.IEnumerable
+ enumerable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Il2CppManagedEnumerable(IntPtr ptr)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IntPtr
+ ptr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Il2CppSystem.Collections.IEnumerator GetEnumerator()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ Il2CppSystem.Collections.IEnumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerator.html b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerator.html
new file mode 100644
index 00000000..e5456d4c
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerator.html
@@ -0,0 +1,880 @@
+
+
+
+
+
+ Class Il2CppManagedEnumerator
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Il2CppManagedEnumerator
+
+
+
+
+
+
Inheritance
+ System.Object
+ Il2CppManagedEnumerator
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public class Il2CppManagedEnumerator : Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Il2CppManagedEnumerator(IEnumerator enumerator)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.IEnumerator
+ enumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Il2CppManagedEnumerator(IntPtr ptr)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IntPtr
+ ptr
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public Object Current { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool MoveNext()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerable.html b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerable.html
new file mode 100644
index 00000000..b7860dd7
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerable.html
@@ -0,0 +1,743 @@
+
+
+
+
+
+ Class ManagedIl2CppEnumerable
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ManagedIl2CppEnumerable
+
+
+
+
+
+
Inheritance
+ System.Object
+ ManagedIl2CppEnumerable
+
+
+
+
Implements
+
+ System.Collections.IEnumerable
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public class ManagedIl2CppEnumerable : IEnumerable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ManagedIl2CppEnumerable(Il2CppSystem.Collections.IEnumerable enumerable)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ Il2CppSystem.Collections.IEnumerable
+ enumerable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public IEnumerator GetEnumerator()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.IEnumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Collections.IEnumerable
+
+
+ Extension Methods
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerator.html b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerator.html
new file mode 100644
index 00000000..aaf9237a
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerator.html
@@ -0,0 +1,853 @@
+
+
+
+
+
+ Class ManagedIl2CppEnumerator
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ManagedIl2CppEnumerator
+
+
+
+
+
+
Inheritance
+ System.Object
+ ManagedIl2CppEnumerator
+
+
+
+
Implements
+
+ System.Collections.IEnumerator
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public class ManagedIl2CppEnumerator : IEnumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public ManagedIl2CppEnumerator(Il2CppSystem.Collections.IEnumerator enumerator)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ Il2CppSystem.Collections.IEnumerator
+ enumerator
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public object Current { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public bool MoveNext()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.Collections.IEnumerator
+
+
+ Extension Methods
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.html b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.html
new file mode 100644
index 00000000..ac57c613
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Utils.Collections.html
@@ -0,0 +1,546 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.Utils.Collections
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.Utils.Collections
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Utils.MonoBehaviourExtensions.html b/master/api/BepInEx.Unity.IL2CPP.Utils.MonoBehaviourExtensions.html
new file mode 100644
index 00000000..7d4db90f
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Utils.MonoBehaviourExtensions.html
@@ -0,0 +1,687 @@
+
+
+
+
+
+ Class MonoBehaviourExtensions
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class MonoBehaviourExtensions
+
+
+
+
+
+
Inheritance
+ System.Object
+ MonoBehaviourExtensions
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.ToString()
+
+
+
+
+
+ Assembly : BepInEx.Unity.IL2CPP.dll
+
+
+
Syntax
+
+
public static class MonoBehaviourExtensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static Coroutine StartCoroutine(this MonoBehaviour self, IEnumerator coroutine)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ MonoBehaviour
+ self
+
+
+
+ System.Collections.IEnumerator
+ coroutine
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ Coroutine
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.Utils.html b/master/api/BepInEx.Unity.IL2CPP.Utils.html
new file mode 100644
index 00000000..e7b960b3
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.Utils.html
@@ -0,0 +1,538 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.Utils
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP.Utils
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.IL2CPP.html b/master/api/BepInEx.Unity.IL2CPP.html
new file mode 100644
index 00000000..490d8997
--- /dev/null
+++ b/master/api/BepInEx.Unity.IL2CPP.html
@@ -0,0 +1,542 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.IL2CPP
+
+
+
+
+ Classes
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.BaseUnityPlugin.html b/master/api/BepInEx.Unity.Mono.BaseUnityPlugin.html
new file mode 100644
index 00000000..f3960c51
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.BaseUnityPlugin.html
@@ -0,0 +1,834 @@
+
+
+
+
+
+ Class BaseUnityPlugin
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BaseUnityPlugin
+
+ The base plugin type that is used by the BepInEx plugin loader.
+
+
+
+
+
Inheritance
+ System.Object
+ BaseUnityPlugin
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Unity.Mono.dll
+
+
+
Syntax
+
+
public abstract class BaseUnityPlugin : MonoBehaviour
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Create a new instance of a plugin and all of its tied in objects.
+
+
+
Declaration
+
+
+
protected BaseUnityPlugin()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.InvalidOperationException
+ BepInPlugin attribute is missing.
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Default config file tied to this plugin. The config file will not be created until
+any settings are added and changed, or Save() is called.
+
+
+
Declaration
+
+
+
public ConfigFile Config { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ ConfigFile
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Information about this plugin as it was loaded.
+
+
+
Declaration
+
+
+
public PluginInfo Info { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ PluginInfo
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Logger instance tied to this plugin.
+
+
+
Declaration
+
+
+
protected ManualLogSource Logger { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.BepInExInstance.html b/master/api/BepInEx.Unity.Mono.BepInExInstance.html
new file mode 100644
index 00000000..62b39bc8
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.BepInExInstance.html
@@ -0,0 +1,665 @@
+
+
+
+
+
+ Class BepInExInstance
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class BepInExInstance
+
+
+
+
+
+
Inheritance
+ System.Object
+ BepInExInstance
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Unity.Mono.dll
+
+
+
Syntax
+
+
public static class BepInExInstance
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static UnityChainloader Chainloader { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.Bootstrap.UnityChainloader.html b/master/api/BepInEx.Unity.Mono.Bootstrap.UnityChainloader.html
new file mode 100644
index 00000000..de916981
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.Bootstrap.UnityChainloader.html
@@ -0,0 +1,1099 @@
+
+
+
+
+
+ Class UnityChainloader
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class UnityChainloader
+
+ The manager and loader for all plugins, and the entry point for BepInEx plugin system.
+
+
+
+
+
+
+
+
+
+
+
+ Assembly : BepInEx.Unity.Mono.dll
+
+
+
Syntax
+
+
public class UnityChainloader : BaseChainloader<BaseUnityPlugin>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected override string ConsoleTitle { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
Overrides
+
BepInEx.Bootstrap.BaseChainloader<BepInEx.Unity.Mono.BaseUnityPlugin>.ConsoleTitle
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static UnityChainloader Instance { get; set; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
The GameObject that all plugins are attached to as components.
+
+
+
Declaration
+
+
+
public static GameObject ManagerObject { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ GameObject
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override void Initialize(string gameExePath = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ gameExePath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
BepInEx.Bootstrap.BaseChainloader<BepInEx.Unity.Mono.BaseUnityPlugin>.Initialize(System.String)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected override void InitializeLoggers()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
BepInEx.Bootstrap.BaseChainloader<BepInEx.Unity.Mono.BaseUnityPlugin>.InitializeLoggers()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override BaseUnityPlugin LoadPlugin(PluginInfo pluginInfo, Assembly pluginAssembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ PluginInfo
+ pluginInfo
+
+
+
+ System.Reflection.Assembly
+ pluginAssembly
+
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
Overrides
+
BepInEx.Bootstrap.BaseChainloader<BepInEx.Unity.Mono.BaseUnityPlugin>.LoadPlugin(BepInEx.PluginInfo, System.Reflection.Assembly)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
[Obsolete("This method is public due to a limitation with Unity 4.x. DO NOT CALL", true)]
+public static void StaticStart(string gameExePath = null)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ gameExePath
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.Bootstrap.html b/master/api/BepInEx.Unity.Mono.Bootstrap.html
new file mode 100644
index 00000000..1e3bc19a
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.Bootstrap.html
@@ -0,0 +1,539 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.Mono.Bootstrap
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.Mono.Bootstrap
+
+
+
+
+ Classes
+
+
+ The manager and loader for all plugins, and the entry point for BepInEx plugin system.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.Configuration.KeyboardShortcut.html b/master/api/BepInEx.Unity.Mono.Configuration.KeyboardShortcut.html
new file mode 100644
index 00000000..46602edf
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.Configuration.KeyboardShortcut.html
@@ -0,0 +1,1454 @@
+
+
+
+
+
+ Struct KeyboardShortcut
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Struct KeyboardShortcut
+
+ A keyboard shortcut that can be used in Update method to check if user presses a key combo. The shortcut is only
+triggered when the user presses the exact combination. For example, F + LeftCtrl
will trigger only if user
+presses and holds only LeftCtrl, and then presses F. If any other keys are pressed, the shortcut will not trigger.
+Can be used as a value of a setting in Bind<T>(ConfigDefinition, T, ConfigDescription)
+to allow user to change this shortcut and have the changes saved.
+How to use: Use IsDown() in this class instead of in the
+Update loop.
+
+
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetType()
+
+
+
+
+
+ Assembly : BepInEx.Unity.Mono.dll
+
+
+
Syntax
+
+
public struct KeyboardShortcut
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Create a new keyboard shortcut.
+
+
+
Declaration
+
+
+
public KeyboardShortcut(KeyCode mainKey, params KeyCode[] modifiers)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ KeyCode
+ mainKey
+ Main key to press
+
+
+
+ KeyCode []
+ modifiers
+ Keys that should be held down before main key is registered
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
All KeyCode values that can be used in a keyboard shortcut.
+
+
+
Declaration
+
+
+
public static readonly IEnumerable<KeyCode> AllKeyCodes
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <KeyCode >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Shortcut that never triggers.
+
+
+
Declaration
+
+
+
public static readonly KeyboardShortcut Empty
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Main key of the key combination. It has to be pressed / let go last for the combination to be triggered.
+If the combination is empty, is returned.
+
+
+
Declaration
+
+
+
public readonly KeyCode MainKey { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ KeyCode
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Modifiers of the key combination, if any.
+
+
+
Declaration
+
+
+
public readonly IEnumerable<KeyCode> Modifiers { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <KeyCode >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Attempt to deserialize key combination from the string.
+
+
+
Declaration
+
+
+
public static KeyboardShortcut Deserialize(string str)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ str
+
+
+
+
+
+
+
Returns
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override bool Equals(object obj)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ obj
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.ValueType.Equals(System.Object)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override int GetHashCode()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Int32
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.ValueType.GetHashCode()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the main key was just pressed (Input.GetKeyDown), and specified modifier keys are all pressed
+
+
+
Declaration
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the main key is currently held down (Input.GetKey), and specified modifier keys are all pressed
+
+
+
Declaration
+
+
+
public bool IsPressed()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Check if the main key was just lifted (Input.GetKeyUp), and specified modifier keys are all pressed.
+
+
+
Declaration
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Serialize the key combination into a user readable string.
+
+
+
Declaration
+
+
+
public string Serialize()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public override string ToString()
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
Overrides
+
System.ValueType.ToString()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.Configuration.html b/master/api/BepInEx.Unity.Mono.Configuration.html
new file mode 100644
index 00000000..585c05d4
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.Configuration.html
@@ -0,0 +1,545 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.Mono.Configuration
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.Mono.Configuration
+
+
+
+
+ Structs
+
+
+ A keyboard shortcut that can be used in Update method to check if user presses a key combo. The shortcut is only
+triggered when the user presses the exact combination. For example, F + LeftCtrl
will trigger only if user
+presses and holds only LeftCtrl, and then presses F. If any other keys are pressed, the shortcut will not trigger.
+Can be used as a value of a setting in Bind<T>(ConfigDefinition, T, ConfigDescription)
+to allow user to change this shortcut and have the changes saved.
+How to use: Use IsDown() in this class instead of in the
+Update loop.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.Logging.UnityLogListener.html b/master/api/BepInEx.Unity.Mono.Logging.UnityLogListener.html
new file mode 100644
index 00000000..1fd43649
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.Logging.UnityLogListener.html
@@ -0,0 +1,868 @@
+
+
+
+
+
+ Class UnityLogListener
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class UnityLogListener
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+
Inheritance
+ System.Object
+ UnityLogListener
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Unity.Mono.dll
+
+
+
Syntax
+
+
public class UnityLogListener : ILogListener, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Fields
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
protected static readonly ConfigEntry<LogLevel> ConfigUnityLogLevel
+
+
+
+
+
+
+
+
+
+
Field Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
What log levels the listener preliminarily wants.
+
+
+
Declaration
+
+
+
public LogLevel LogLevelFilter { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ LogLevel
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Handle an incoming log event.
+
+
+
Declaration
+
+
+
public void LogEvent(object sender, LogEventArgs eventArgs)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Object
+ sender
+ Log source that sent the event. Don't use; instead use Source
+
+
+
+ LogEventArgs
+ eventArgs
+ Information about the log message.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.Logging.UnityLogSource.html b/master/api/BepInEx.Unity.Mono.Logging.UnityLogSource.html
new file mode 100644
index 00000000..df93a465
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.Logging.UnityLogSource.html
@@ -0,0 +1,842 @@
+
+
+
+
+
+ Class UnityLogSource
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class UnityLogSource
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+
Inheritance
+ System.Object
+ UnityLogSource
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Unity.Mono.dll
+
+
+
Syntax
+
+
public class UnityLogSource : ILogSource, IDisposable
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Constructors
+
+
+
+
+
+
+
Creates a new Unity log source.
+
+
+
Declaration
+
+
+
public UnityLogSource()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Name of the log source.
+
+
+
Declaration
+
+
+
public string SourceName { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public void Dispose()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Events
+
+
+
+
+
+
+
Event that sends the log message. Call System.EventHandler.Invoke(System.Object,System.EventArgs) to send a log message.
+
+
+
Declaration
+
+
+
public event EventHandler<LogEventArgs> LogEvent
+
+
+
+
+
+
+
+
+
+
+
+
Event Type
+
+
+
+ Type
+ Description
+
+
+
+
+ System.EventHandler <LogEventArgs >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+
+ System.IDisposable
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.Logging.html b/master/api/BepInEx.Unity.Mono.Logging.html
new file mode 100644
index 00000000..6fc3d357
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.Logging.html
@@ -0,0 +1,542 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.Mono.Logging
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.Mono.Logging
+
+
+
+
+ Classes
+
+
+ Logs entries using Unity specific outputs.
+
+
+ Logs entries using Unity specific outputs.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.ThreadingExtensions.html b/master/api/BepInEx.Unity.Mono.ThreadingExtensions.html
new file mode 100644
index 00000000..63e8ea68
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.ThreadingExtensions.html
@@ -0,0 +1,991 @@
+
+
+
+
+
+ Class ThreadingExtensions
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ThreadingExtensions
+
+ Convenience extensions for utilizing multiple threads and using the ThreadingHelper .
+
+
+
+
+
Inheritance
+ System.Object
+ ThreadingExtensions
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Unity.Mono.dll
+
+
+
Syntax
+
+
public static class ThreadingExtensions
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Apply a function to a collection of data by spreading the work on multiple threads.
+Lower overhead than RunParallel but it blocks the main thread until all work is completed or an exception has been thrown.
+
+
+
Declaration
+
+
+
public static void ForEachParallel<T>(this IList<T> data, Action<T> work, int workerCount = -1)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IList <T>
+ data
+ Input values for the work function.
+
+
+
+ System.Action <T>
+ work
+ Function to apply to the data on multiple threads at once.
+
+
+
+ System.Int32
+ workerCount
+ Number of worker threads. By default Environment.ProcessorCount is used.
+
+
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+ Type of the input values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.Reflection.TargetInvocationException
+ An exception was thrown inside one of the threads, and the operation was aborted.
+
+
+
+ System.ArgumentException
+ Need at least 1 workerCount.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Apply a function to a collection of data by spreading the work on multiple threads.
+Outputs of the functions are returned to the current thread and yielded one by one.
+
+
+
Declaration
+
+
+
public static IEnumerable<TOut> RunParallel<TIn, TOut>(this IEnumerable<TIn> data, Func<TIn, TOut> work, int workerCount = -1)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IEnumerable <TIn>
+ data
+
+
+
+ System.Func <TIn, TOut>
+ work
+ Function to apply to the data on multiple threads at once.
+
+
+
+ System.Int32
+ workerCount
+ Number of worker threads. By default Environment.ProcessorCount is used.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <TOut>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ TIn
+ Type of the input values.
+
+
+
+ TOut
+ Type of the output values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.Reflection.TargetInvocationException
+ An exception was thrown inside one of the threads, and the operation was
+aborted.
+
+
+
+ System.ArgumentException
+ Need at least 1 workerCount.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Apply a function to a collection of data by spreading the work on multiple threads.
+Outputs of the functions are returned to the current thread and yielded one by one.
+
+
+
Declaration
+
+
+
public static IEnumerable<TOut> RunParallel<TIn, TOut>(this IList<TIn> data, Func<TIn, TOut> work, int workerCount = -1)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IList <TIn>
+ data
+ Input values for the work function.
+
+
+
+ System.Func <TIn, TOut>
+ work
+ Function to apply to the data on multiple threads at once.
+
+
+
+ System.Int32
+ workerCount
+ Number of worker threads. By default Environment.ProcessorCount is used.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <TOut>
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ TIn
+ Type of the input values.
+
+
+
+ TOut
+ Type of the output values.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.Reflection.TargetInvocationException
+ An exception was thrown inside one of the threads, and the operation was
+aborted.
+
+
+
+ System.ArgumentException
+ Need at least 1 workerCount.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.ThreadingHelper.html b/master/api/BepInEx.Unity.Mono.ThreadingHelper.html
new file mode 100644
index 00000000..683c3fa6
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.ThreadingHelper.html
@@ -0,0 +1,1160 @@
+
+
+
+
+
+ Class ThreadingHelper
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class ThreadingHelper
+
+ Provides methods for running code on other threads and synchronizing with the main thread.
+
+
+
+
+
Inheritance
+ System.Object
+ ThreadingHelper
+
+
+
+
Implements
+
+ System.ComponentModel.ISynchronizeInvoke
+
+
+
+
+
+
+
+ Assembly : BepInEx.Unity.Mono.dll
+
+
+
Syntax
+
+
public sealed class ThreadingHelper : MonoBehaviour, ISynchronizeInvoke
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Current instance of the helper.
+
+
+
Declaration
+
+
+
public static ThreadingHelper Instance { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
False if current code is executing on the main unity thread, otherwise True.
+Warning: Will return true before the first frame finishes (i.e. inside plugin Awake and Start methods).
+
+
+
Declaration
+
+
+
public bool InvokeRequired { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gives methods for invoking delegates on the main unity thread, both synchronously and asynchronously.
+Can be used in many built-in framework types, for example
+System.IO.FileSystemWatcher.SynchronizingObject
+and System.Timers.Timer.SynchronizingObject to make their events fire on the main unity thread.
+
+
+
Declaration
+
+
+
public static ISynchronizeInvoke SynchronizingObject { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.ComponentModel.ISynchronizeInvoke
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Queue the delegate to be invoked on a background thread. Use this to run slow tasks without affecting the game.
+NOTE: Most of Unity API can not be accessed while running on another thread!
+
+
+
Declaration
+
+
+
public void StartAsyncInvoke(Func<Action> action)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Func <System.Action >
+ action
+ Task to be executed on another thread. Can optionally return an Action that will be executed on the main thread.
+You can use this action to return results of your work safely. Return null if this is not needed.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Queue the delegate to be invoked on the main unity thread. Use to synchronize your threads.
+
+
+
Declaration
+
+
+
public void StartSyncInvoke(Action action)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Action
+ action
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Explicit Interface Implementations
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
IAsyncResult ISynchronizeInvoke.BeginInvoke(Delegate method, object[] args)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Delegate
+ method
+
+
+
+ System.Object []
+ args
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.IAsyncResult
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
object ISynchronizeInvoke.EndInvoke(IAsyncResult result)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IAsyncResult
+ result
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
object ISynchronizeInvoke.Invoke(Delegate method, object[] args)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Delegate
+ method
+
+
+
+ System.Object []
+ args
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Object
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Implements
+
+
+ System.ComponentModel.ISynchronizeInvoke
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Unity.Mono.html b/master/api/BepInEx.Unity.Mono.html
new file mode 100644
index 00000000..fce350fa
--- /dev/null
+++ b/master/api/BepInEx.Unity.Mono.html
@@ -0,0 +1,547 @@
+
+
+
+
+
+ Namespace BepInEx.Unity.Mono
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx.Unity.Mono
+
+
+
+
+ Classes
+
+
+ The base plugin type that is used by the BepInEx plugin loader.
+
+
+
+
+ Convenience extensions for utilizing multiple threads and using the ThreadingHelper .
+
+
+ Provides methods for running code on other threads and synchronizing with the main thread.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.Utility.html b/master/api/BepInEx.Utility.html
new file mode 100644
index 00000000..a6676f40
--- /dev/null
+++ b/master/api/BepInEx.Utility.html
@@ -0,0 +1,2435 @@
+
+
+
+
+
+ Class Utility
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Class Utility
+
+ Generic helper properties and methods.
+
+
+
+
+
Inheritance
+ System.Object
+ Utility
+
+
+
+
+
+
+
Inherited Members
+
+
+ System.Object.ToString()
+
+
+ System.Object.Equals(System.Object)
+
+
+ System.Object.Equals(System.Object, System.Object)
+
+
+ System.Object.ReferenceEquals(System.Object, System.Object)
+
+
+ System.Object.GetHashCode()
+
+
+ System.Object.GetType()
+
+
+ System.Object.MemberwiseClone()
+
+
+
+
+
+ Assembly : BepInEx.Core.dll
+
+
+
Syntax
+
+
public static class Utility
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Properties
+
+
+
+
+
+
+
Whether current Common Language Runtime supports dynamic method generation using
+System.Reflection.Emit namespace.
+
+
+
Declaration
+
+
+
public static bool CLRSupportsDynamicAssemblies { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
An encoding for UTF-8 which does not emit a byte order mark (BOM).
+
+
+
Declaration
+
+
+
public static Encoding UTF8NoBom { get; }
+
+
+
+
+
+
+
+
+
+
+
Property Value
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Text.Encoding
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Methods
+
+
+
+
+
+
+
Convert the given array to a hex string.
+
+
+
Declaration
+
+
+
public static string ByteArrayToString(byte[] data)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Byte []
+ data
+ Bytes to convert.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ Bytes reinterpreted as a hex number.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Combines multiple paths together, as the specific method is not available in .NET 3.5.
+
+
+
Declaration
+
+
+
public static string CombinePaths(params string[] parts)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String []
+ parts
+ The multiple paths to combine together.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ A combined path.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Converts a file path into a UnityEngine.WWW format.
+
+
+
Declaration
+
+
+
public static string ConvertToWWWFormat(string path)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ path
+ The file path to convert.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ A converted file path.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Declaration
+
+
+
public static IEnumerable<MethodDefinition> EnumerateAllMethods(this TypeDefinition type)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ TypeDefinition
+ type
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <MethodDefinition >
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Get a value of a command line argument
+
+
+
Declaration
+
+
+
public static string GetCommandLineArgValue(string arg)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ arg
+ Argument name
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ Next argument after the given argument name. If not found, returns null.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Gets unique files in all given directories. If the file with the same name exists in multiple directories,
+only the first occurrence is returned.
+
+
+
Declaration
+
+
+
public static IEnumerable<string> GetUniqueFilesInDirectories(IEnumerable<string> directories, string pattern = "*")
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IEnumerable <System.String >
+ directories
+ Directories to search from.
+
+
+
+ System.String
+ pattern
+ File pattern to search.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <System.String >
+ Collection of all files in the directories.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Compute a MD5 hash of the given stream.
+
+
+
Declaration
+
+
+
public static string HashStream(Stream stream)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.IO.Stream
+ stream
+ Stream to hash
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ MD5 hash as a hex string
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Hash a list of strings using MD5
+
+
+
Declaration
+
+
+
public static string HashStrings(params string[] strings)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String []
+ strings
+ Strings to hash
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ MD5 of the strings
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Indicates whether a specified string is null, empty, or consists only of white-space characters.
+
+
+
Declaration
+
+
+
public static bool IsNullOrWhiteSpace(this string self)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ self
+ The string to test.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True if the value parameter is null or empty, or if value consists exclusively of white-space characters.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Checks whether a given cecil type definition is a subtype of a provided type.
+
+
+
Declaration
+
+
+
public static bool IsSubtypeOf(this TypeDefinition self, Type td)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ TypeDefinition
+ self
+ Cecil type definition
+
+
+
+ System.Type
+ td
+ Type to check against
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ Whether the given cecil type is a subtype of the type.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Returns the parent directory of a path, optionally specifying the amount of levels.
+
+
+
Declaration
+
+
+
public static string ParentDirectory(string path, int levels = 1)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ path
+ The path to get the parent directory of.
+
+
+
+ System.Int32
+ levels
+ The amount of levels to traverse. Defaults to 1
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.String
+ The parent directory.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tries to parse a bool, with a default value if unable to parse.
+
+
+
Declaration
+
+
+
public static bool SafeParseBool(string input, bool defaultValue = false)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ input
+ The string to parse
+
+
+
+ System.Boolean
+ defaultValue
+ The value to return if parsing is unsuccessful.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ Boolean value of input if able to be parsed, otherwise default value.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Sorts a given dependency graph using a direct toposort, reporting possible cyclic dependencies.
+
+
+
Declaration
+
+
+
public static IEnumerable<TNode> TopologicalSort<TNode>(IEnumerable<TNode> nodes, Func<TNode, IEnumerable<TNode>> dependencySelector)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Collections.Generic.IEnumerable <TNode>
+ nodes
+ Nodes to sort
+
+
+
+ System.Func <TNode, System.Collections.Generic.IEnumerable <TNode>>
+ dependencySelector
+ Function that maps a node to a collection of its dependencies.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Collections.Generic.IEnumerable <TNode>
+ Collection of nodes sorted in the order of least dependencies to the most.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ TNode
+ Type of the node in a dependency graph.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Exceptions
+
+
+
+ Type
+ Condition
+
+
+
+
+
+ System.Exception
+ Thrown when a cyclic dependency occurs.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to perform an action.
+
+
+
Declaration
+
+
+
public static bool TryDo(Action action, out Exception exception)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Action
+ action
+ Action to perform.
+
+
+
+ System.Exception
+ exception
+ Possible exception that gets returned.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True, if action succeeded, false if an exception occured.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Tries to create a file with the given name
+
+
+
Declaration
+
+
+
public static bool TryOpenFileStream(string path, FileMode mode, out FileStream fileStream, FileAccess access = FileAccess.ReadWrite, FileShare share = FileShare.Read)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ path
+ Path of the file to create
+
+
+
+ System.IO.FileMode
+ mode
+ File open mode
+
+
+
+ System.IO.FileStream
+ fileStream
+ Resulting filestream
+
+
+
+ System.IO.FileAccess
+ access
+ File access options
+
+
+
+ System.IO.FileShare
+ share
+ File share options
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to parse given string as an assembly name
+
+
+
Declaration
+
+
+
public static bool TryParseAssemblyName(string fullName, out AssemblyName assemblyName)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.String
+ fullName
+ Fully qualified assembly name
+
+
+
+ System.Reflection.AssemblyName
+ assemblyName
+ Resulting System.Reflection.AssemblyName instance
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ true
, if parsing was successful, otherwise false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to resolve and load the given assembly DLL.
+
+
+
Declaration
+
+
+
public static bool TryResolveDllAssembly(AssemblyName assemblyName, string directory, ReaderParameters readerParameters, out AssemblyDefinition assembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.AssemblyName
+ assemblyName
+ Name of the assembly, of the type System.Reflection.AssemblyName .
+
+
+
+ System.String
+ directory
+ Directory to search the assembly from.
+
+
+
+ ReaderParameters
+ readerParameters
+ Reader parameters that contain possible custom assembly resolver.
+
+
+
+ AssemblyDefinition
+ assembly
+ The loaded assembly.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True, if the assembly was found and loaded. Otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to resolve and load the given assembly DLL.
+
+
+
Declaration
+
+
+
public static bool TryResolveDllAssembly(AssemblyName assemblyName, string directory, out Assembly assembly)
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.AssemblyName
+ assemblyName
+ Name of the assembly, of the type System.Reflection.AssemblyName .
+
+
+
+ System.String
+ directory
+ Directory to search the assembly from.
+
+
+
+ System.Reflection.Assembly
+ assembly
+ The loaded assembly.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True, if the assembly was found and loaded. Otherwise, false.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Try to resolve and load the given assembly DLL.
+
+
+
Declaration
+
+
+
public static bool TryResolveDllAssembly<T>(AssemblyName assemblyName, string directory, Func<string, T> loader, out T assembly)
+ where T : class
+
+
+
Parameters
+
+
+
+ Type
+ Name
+ Description
+
+
+
+
+
+ System.Reflection.AssemblyName
+ assemblyName
+ Name of the assembly, of the type System.Reflection.AssemblyName .
+
+
+
+ System.String
+ directory
+ Directory to search the assembly from.
+
+
+
+ System.Func <System.String , T>
+ loader
+
+
+
+ T
+ assembly
+ The loaded assembly.
+
+
+
+
+
+
+
Returns
+
+
+
+ Type
+ Description
+
+
+
+
+ System.Boolean
+ True, if the assembly was found and loaded. Otherwise, false.
+
+
+
+
+
+
Type Parameters
+
+
+
+ Name
+ Description
+
+
+
+
+
+ T
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/BepInEx.html b/master/api/BepInEx.html
new file mode 100644
index 00000000..c868676d
--- /dev/null
+++ b/master/api/BepInEx.html
@@ -0,0 +1,571 @@
+
+
+
+
+
+ Namespace BepInEx
+ | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Namespace BepInEx
+
+
+
+
+ Classes
+
+
+ This attribute specifies any dependencies that this plugin has on other plugins.
+
+
+ This attribute specifies other plugins that are incompatible with this plugin.
+
+
+ This attribute denotes that a class is a plugin, and specifies the required metadata.
+
+
+ This attribute specifies which processes this plugin should be run for. Not specifying this attribute will load the
+plugin under every process.
+
+
+
+
+ Helper class to use for retrieving metadata about a plugin, defined as attributes.
+
+
+
+
+ Data class that represents information about a loadable BepInEx plugin.
+Contains all metadata and additional info required for plugin loading by .
+
+
+ Generic helper properties and methods.
+
+ Enums
+
+
+ Flags that are applied to a dependency
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/index.html b/master/api/index.html
new file mode 100644
index 00000000..f0e48ad4
--- /dev/null
+++ b/master/api/index.html
@@ -0,0 +1,548 @@
+
+
+
+
+
+ BepInEx API documentation | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+BepInEx API documentation
+
+This page contains documentation for BepInEx API.
+Structure of BepInEx
+BepInEx is divided into subassemblies that provide game-specific support.
+Main assemblies are:
+
+BepInEx.Core.dll
-- contains common utilities of BepInEx namespace and base classes for engine-specific loaders
+BepInEx.Unity.dll
-- contains @BepInEx.Unity namespace responsible for Mono Unity support
+BepInEx.IL2CPP.dll
-- contains @BepInEx.IL2CPP namespace responsible for Il2Cpp Unity support
+BepInEx.NetLauncher.exe
-- contains @BepInEx.NetLauncher namespace and code responsible for .NET Framework modding support
+
+Support assembly structure
+Each assembly exports at least two classes
+
+A class that every plugin must inherit to be counted as a plugin (e.g. @BepInEx.BaseUnityPlugin for Mono or @BepInEx.IL2CPP.BasePlugin for Il2Cpp)
+An implementation of BaseChainloader<TPlugin> that is responsible for loading the plugins
+
+Additionally, there are some general useful classes and namespaces:
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/api/toc.html b/master/api/toc.html
new file mode 100644
index 00000000..cc00d036
--- /dev/null
+++ b/master/api/toc.html
@@ -0,0 +1,408 @@
+
+
\ No newline at end of file
diff --git a/master/articles/advanced/compatibility.html b/master/articles/advanced/compatibility.html
new file mode 100644
index 00000000..c7869ee9
--- /dev/null
+++ b/master/articles/advanced/compatibility.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+ Compatibility | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+
+
+BepInEx allows for easy integration of other Unity modding frameworks. That way
+you can get the benefit of installing only one framework without worrying about
+potential compatibility issues. Moreover, by using BepInEx to power plugins
+from other frameworks you get the benefits of
+
+Easy installation: BepInEx installation is as simple as a drag-and-drop
+Support: BepInEx is actively maintained and supported while being fully open-source
+High compatibility: BepInEx strives to support as many platforms as it can as stable as it can
+
+As of right now, BepInEx has loaders for the following frameworks and tools:
+
+
+
+Framework/Loader
+BepInEx Loader
+Status
+
+
+
+
+IPA (Illusion Plugin Architecture)
+IPALoaderX
+Stable, Maintained, Full interop
+
+
+BSIPA (Beat Saber IPA)
+BepInEx.BSIPA.Loader
+Stable, Maintained, Supports most features
+
+
+Sybaris 2
+SybarisLoader
+Stable, Maintained, Full interop
+
+
+UnityInjector
+UnityInjectorLoader
+Stable, Maintained, Full interop
+
+
+MonoMod Patches
+MonoModLoader
+Stable, Maintained, Supports most featues
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/advanced/debug/assemblies_dnSpy.html b/master/articles/advanced/debug/assemblies_dnSpy.html
new file mode 100644
index 00000000..84799caf
--- /dev/null
+++ b/master/articles/advanced/debug/assemblies_dnSpy.html
@@ -0,0 +1,236 @@
+
+
+
+
+
+ Debugging all assemblies with dnSpy | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Debugging patched assemblies
+
+In some cases it is useful to be able to also debug assemblies that have been patched via BepInEx's preloader.
+However, this is very difficult, as the preloader patches and loads assemblies directly in memory, which makes debugging with dnSpy impossible without additional tinkering.
+Using BepInEx LoadDumpedAssemblies
option
+BepInEx includes two new configuration options: LoadDumpedAssemblies
and BreakBeforeLoadAssemblies
. With these, it is possible to debug assemblies loaded via the preloader (i.e. Assembly-CSharp).
+First install debug version of mono and download dnSpy if you haven't done so yet.
+Run the game once in order for BepInEx to generate its full configuration file.
+Then, open to BepInEx/config/BepInEx.cfg
and edit the the two configuration options to have the following values:
+LoadDumpedAssemblies = true
+
+BreakBeforeLoadAssemblies = true
+
+After that [run the game via dnSpy](Debugging with dnSpy #running-the-game-via-dnspy).
+
+
Warning
+
The assemblies in DumpedAssemblies
must not be opened before debugging!
+This is because otherwise BepInEx will not be able to write to the folder!
+
+If everything worked, BepInEx will launch, patch assemblies and automatically break the execution and display a message in console:
+
+Now go to BepInEx/DumpedAssemblies
(as specified in the console), open patched assemblies you want to debug and set breakpoints.
+When you're done, click Continue
in the top bar to continue execution.
+BepInEx will continue loading the patched assemblies. If everything worked, you will eventually hit a breakpoint in the patched assembly:
+
+Using dnSpy's module view
+In Debug mode, dnSpy provides the ability to access all assemblies that are loaded in memory.
+That way you are able to access all
+assemblies that were loaded in memory -- even dynamic assemblies (ones generated by Harmony, for example).
+When in debug mode, open the modules window by selecting Debug > Windows > Modules
+
+The opened tab shows all modules already loaded into memory:
+
+You can open modules by double-clicking them. This opens them in dnSpy, after which you can
+put breakpoints like you normally would.
+Finally, it's possible to put breakpoints for when an assembly has been loaded.
+For that, select Debug > Windows > Module Breakpoints
. This will open a window into which
+you can put the names of the modules to break on.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/advanced/debug/images/bepin_breakpoint_hit.png b/master/articles/advanced/debug/images/bepin_breakpoint_hit.png
new file mode 100644
index 00000000..4421dd0e
Binary files /dev/null and b/master/articles/advanced/debug/images/bepin_breakpoint_hit.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png b/master/articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png
new file mode 100644
index 00000000..da43f4a3
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_breakpoint_hit.png b/master/articles/advanced/debug/images/dnSpy_breakpoint_hit.png
new file mode 100644
index 00000000..bd886b49
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_breakpoint_hit.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_debug.png b/master/articles/advanced/debug/images/dnSpy_debug.png
new file mode 100644
index 00000000..5f845678
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_debug.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_dragndrop.png b/master/articles/advanced/debug/images/dnSpy_dragndrop.png
new file mode 100644
index 00000000..43423698
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_dragndrop.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_module_breakpoints.png b/master/articles/advanced/debug/images/dnSpy_module_breakpoints.png
new file mode 100644
index 00000000..3f7b6206
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_module_breakpoints.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_modules.png b/master/articles/advanced/debug/images/dnSpy_modules.png
new file mode 100644
index 00000000..11755fcb
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_modules.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_modules_view.png b/master/articles/advanced/debug/images/dnSpy_modules_view.png
new file mode 100644
index 00000000..15e4af2d
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_modules_view.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_set_breakpoint.png b/master/articles/advanced/debug/images/dnSpy_set_breakpoint.png
new file mode 100644
index 00000000..f7eff294
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_set_breakpoint.png differ
diff --git a/master/articles/advanced/debug/images/dnSpy_start_debug.png b/master/articles/advanced/debug/images/dnSpy_start_debug.png
new file mode 100644
index 00000000..261a9578
Binary files /dev/null and b/master/articles/advanced/debug/images/dnSpy_start_debug.png differ
diff --git a/master/articles/advanced/debug/images/vstu_debugger_select.png b/master/articles/advanced/debug/images/vstu_debugger_select.png
new file mode 100644
index 00000000..89512169
Binary files /dev/null and b/master/articles/advanced/debug/images/vstu_debugger_select.png differ
diff --git a/master/articles/advanced/debug/images/vstu_pdb2mdb.gif b/master/articles/advanced/debug/images/vstu_pdb2mdb.gif
new file mode 100644
index 00000000..0c0ee13b
Binary files /dev/null and b/master/articles/advanced/debug/images/vstu_pdb2mdb.gif differ
diff --git a/master/articles/advanced/debug/images/vstu_plugin_install.png b/master/articles/advanced/debug/images/vstu_plugin_install.png
new file mode 100644
index 00000000..cabdd08f
Binary files /dev/null and b/master/articles/advanced/debug/images/vstu_plugin_install.png differ
diff --git a/master/articles/advanced/debug/images/vstu_select.png b/master/articles/advanced/debug/images/vstu_select.png
new file mode 100644
index 00000000..fbdc838b
Binary files /dev/null and b/master/articles/advanced/debug/images/vstu_select.png differ
diff --git a/master/articles/advanced/debug/images/vstu_select_process.png b/master/articles/advanced/debug/images/vstu_select_process.png
new file mode 100644
index 00000000..e38126d3
Binary files /dev/null and b/master/articles/advanced/debug/images/vstu_select_process.png differ
diff --git a/master/articles/advanced/debug/images/vstu_works.png b/master/articles/advanced/debug/images/vstu_works.png
new file mode 100644
index 00000000..b47e4b59
Binary files /dev/null and b/master/articles/advanced/debug/images/vstu_works.png differ
diff --git a/master/articles/advanced/debug/index.html b/master/articles/advanced/debug/index.html
new file mode 100644
index 00000000..0d34b19a
--- /dev/null
+++ b/master/articles/advanced/debug/index.html
@@ -0,0 +1,206 @@
+
+
+
+
+
+ Debugging plugins | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Debugging plugins
+
+Debugging BepInEx plugins can pose a challenge depending on the game and the plugin.
+Currently there are two ways to debug plugins and Unity games
+
+Using dnSpy and its debug builds of the Mono runtime
+Converting the game to debug build and using Visual Studio Tools for Unity (or Rider's Unity extension)
+
+Depending on your needs an tooling, you might need to use different approaches
+to debugging Unity games. If you are unsure which way to use, we suggest
+first trying out debugging with dnSpy.
+Please refer to specific debugging guides on the subpages.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/advanced/debug/plugins_dnSpy.html b/master/articles/advanced/debug/plugins_dnSpy.html
new file mode 100644
index 00000000..4854ac4c
--- /dev/null
+++ b/master/articles/advanced/debug/plugins_dnSpy.html
@@ -0,0 +1,261 @@
+
+
+
+
+
+ Debugging with dnSpy | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Debugging with dnSpy
+
+Turning the game into a debug build
+
+First, the game's mono runtime has to be swapped to one that supports debugging with dnSpy.
+For that, you need to know the Unity version your game has been built against.
+You can do that by checking file properties of the game EXE or by running BepInEx,
+which will log the Unity version of the game in the console (or into BepInEx/LogOutput.txt
):
+[Message: BepInEx] BepInEx 5.0.1.0 - <Game Name>
+[Info : BepInEx] Running under Unity v5.4.0.6710170
+[Info : BepInEx] CLR runtime version: 2.0.50727.1433
+...
+
+Next, head to dnSpy releases and download one of the debug Mono packages
+that corresponds to the Unity version of your game :
+
+For example, in the log above Unity version is 5.4.0
, in which case one has to download Unity-debugging-5.x.zip
.
+Open the downloaded archive and locate mono.dll
that corresponds to your Unity game version and
+executable target (32 bit or 64 bit). Finally, locate the same DLL in your game folder and replace it with the one from dnSpy.
+Setting up dnSpy and setting breakpoints
+Download the latest version of dnSpy . You can pick any of the available versions.
+Extract the downloaded archive and run dnSpy.
+Next, drag the plugins DLLs you want to debug into dnSpy.
+
+
Note
+
You must select the DLL that is in your BepInEx
folder, and not the one in your Visual Studio solution!
+
+
+You can change the settings of dnSpy via View > Options
.
+To set a breakpoint, navigate the assembly you want to debug and right click on the piece of code you want to debug.
+Next, select Add breakpoint
to set the breakpoint:
+
+Note that some code might not be selectable. In that case you can change dnSpy to show the precise IL code from the dropdown in the top bar.
+Running the game via dnSpy
+After you have set the breakpoints, you can start debugging the game.
+Select Debug > Start Debugging
to open up the Debug Program dialog.
+Change the settings as follows:
+
+Debug Engine : Select one of the following:
+
+Unity
if you want dnSpy to start the game for you
+Unity (Connect)
if you want to start debugging when the game is on
+
+
+Executable (only in Unity
engine): Locate and select the game's executable from the game's installation directory.
+Timeout (s) (only in Unity
engine): 30. You can optionally set it to higher values if the game loads too slow.
+IP Address (only in Unity (Connect)
engine): Leave it blank
+Port (only in Unity (Connect)
engine): 55555
+
+
+Finally, press OK
to start the game (or to attach dnSpy to an already running game).
+Wait until the game loads your assembly. If everything worked correctly, the execution will stop on the breakpoint:
+
+From there, you can do same things like in the normal debugger:
+
+Inspect locals and type members
+Step into, step over, set more breakpoints (via the top bar)
+Modify values (in some cases)
+
+Note that when you step in dnSpy, it steps one IL instruction at a time (in which case one single expression can take multiple steps to move over).
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/advanced/debug/plugins_vs.html b/master/articles/advanced/debug/plugins_vs.html
new file mode 100644
index 00000000..5817c833
--- /dev/null
+++ b/master/articles/advanced/debug/plugins_vs.html
@@ -0,0 +1,242 @@
+
+
+
+
+
+ Debugging plugins with Visual Studio Tools for Unity | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+
+
+
+
Note
+
This method is suitable for debugging only BepInEx plugins!
+To debug preloader plugins, refer to dnSpy debug guide .
+
+While debugging with dnSpy is rather simple, you might want to debug directly in
+Visual Studio while developing. It is possible to debug your plugins with the help of
+Visual Studio Tools for Unity (VSTU).
+
+First, you have to convert the game to debug build. To do that, refer to dnSpy guide on converting the game to pure debug build .
+Next, install VSTU. You can do so in Visual Studio 2019 via Visual Studio Installer.
+You can find the component behind Individual components
tab:
+
+
+
Note
+
Rider provides a similar Unity extension which allows for the same debugging functionality.
+
+Compiling your project
+Next, compile your BepInEx plugin with a Debug
build. Make sure that you generate a .pdb
file!
+Place your BepInEx plugin into BepInEx\plugins
like you normally would but with the .pdb
file accompanying it:
+
+Converting .pdb
to .mdb
+Since Unity uses Mono as its .NET runtime, it cannot directly read .pdb
files which contains the required debug symbols.
+Instead, it uses .mdb
files for the similar task. Because of this, .pdb
file needs to be converted.
+Grab pdb2mdb
converter (for example, from NuGet or from GitHub ). Put the executable in some folder except not into BepInEx plugin folder .
+Finally, simply drag-and-drop your plugin DLL file, which will generate the required debug symbols:
+
+After this, you can optionally delete the .pdb
file as it is not needed.
+Starting debugging
+Finally, put breakpoints in Visual Studio however you want and start the game.
+When the game has started, you're ready to start debugging.
+In Visual Studio, select Debug > Attach Unity Debugger
:
+
+In the opened dialog, select the game executable and press OK
:
+
+
+
Note
+
If there is no processes in the list, try pressing Refresh
-- it might be that the game hasn't loaded in yet.
+It is also may be because you didn't follow the dnSpy debug build conversion guide properly.
+In that case, please repeat the steps in that setup guide making sure you use correct Unity version and bitness.
+
+If you've done everything correctly, the debugging session starts and your breakpoints can be hit:
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/advanced/images/protontricks_select.png b/master/articles/advanced/images/protontricks_select.png
new file mode 100644
index 00000000..436f87c2
Binary files /dev/null and b/master/articles/advanced/images/protontricks_select.png differ
diff --git a/master/articles/advanced/images/protontricks_winecfg.png b/master/articles/advanced/images/protontricks_winecfg.png
new file mode 100644
index 00000000..56ebeffb
Binary files /dev/null and b/master/articles/advanced/images/protontricks_winecfg.png differ
diff --git a/master/articles/advanced/images/protontricks_wineprefix.png b/master/articles/advanced/images/protontricks_wineprefix.png
new file mode 100644
index 00000000..1c8606b6
Binary files /dev/null and b/master/articles/advanced/images/protontricks_wineprefix.png differ
diff --git a/master/articles/advanced/images/steam_launch_opts.png b/master/articles/advanced/images/steam_launch_opts.png
new file mode 100644
index 00000000..c1afde4f
Binary files /dev/null and b/master/articles/advanced/images/steam_launch_opts.png differ
diff --git a/master/articles/advanced/images/steam_local_files.png b/master/articles/advanced/images/steam_local_files.png
new file mode 100644
index 00000000..63006e6e
Binary files /dev/null and b/master/articles/advanced/images/steam_local_files.png differ
diff --git a/master/articles/advanced/images/steam_props.png b/master/articles/advanced/images/steam_props.png
new file mode 100644
index 00000000..a735677a
Binary files /dev/null and b/master/articles/advanced/images/steam_props.png differ
diff --git a/master/articles/advanced/images/winecfg_add_lib.png b/master/articles/advanced/images/winecfg_add_lib.png
new file mode 100644
index 00000000..fb96f562
Binary files /dev/null and b/master/articles/advanced/images/winecfg_add_lib.png differ
diff --git a/master/articles/advanced/steam_interop.html b/master/articles/advanced/steam_interop.html
new file mode 100644
index 00000000..9c8ebec1
--- /dev/null
+++ b/master/articles/advanced/steam_interop.html
@@ -0,0 +1,301 @@
+
+
+
+
+
+ Running games on Steam | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+
+
+On Unix platforms, Steam provides a way to run launch scripts directly
+before running the original game. The process is similar for both
+Linux and macOS, but with one key difference.
+1. Download and install BepInEx
+First, download and install BepInEx binaries if you hadn't done so.
+For that, follow steps 1-2 in the [installation guide](Installing BepInEx #installing-bepinex)
+
+
Tip
+
To easily find the game folder of a Steam game, go into properties of the game:
+
+
And Select Browse local files
from Local files
tab:
+
+
+
+
Note
+
Don't run the script yet as it will run the game without Steam integration.
+You don't need to configure the script either, as it will be done by Steam.
+
+2. Set up permissions
+On Unix systems, you first need to give the run script permission to run.
+At this moment it has to be done manually.
+Open the game folder in terminal and add execution permission to run script:
+chmod u+x run_bepinex.sh
+
+This will add needed permissions to run BepInEx.
+
+Finally, configure Steam to run the script.
+Open the game's properties on Steam:
+
+Next, click Set launch options
button which will open a new window:
+
+Now, change the launch options depending on your OS:
+
+
+
+
+Set the launch option to
+./run_bepinex.sh %command%
+
+
+
+
+First, open a terminal in the game folder and run
+pwd
+
+This will print the full path to the game folder. Copy it.
+Next, set launch option to
+"<PWD>/run_bepinex.sh" %command%
+
+where <PWD>
is the full path to the game folder you got above.
+
+
+4. Run first time to generate configuration
+Finally, run the game via Steam normally.
+This will generate BepInEx config, but the game might not run.
+
+Open BepInEx/config/BepInEx.cfg
in a text editor of your choice.
+All options are documented directly in the configuration file.
+Additionally, refer to refer to the configuration guide for more information.
+Proton/Wine
+
+
Note
+
Instructions on using BepInEx with proton are based on a guide from
+R2Wiki
+
+Setting up BepInEx with Wine requires primarily configuring the DLL forwarding
+to work correctly. We strongly recommend to use Proton , but it is not an
+absolute requirement.
+Adding the DLL override
+Using the Steam launch options
+If you are using proton with steam, you can specify the DLL override in the launch options:
+WINEDLLOVERRIDES="winhttp.dll=n,b" %command%
+With this method you can ignore the last steps since you are not using winecfg. (Thanks to the comments on ProtonDB for this method!)
+Using protontricks to open winecfg
+With proton the easiest way to do so is via
+protontricks
+(or similarly with winetricks
which is not covered here).
+Open the terminal and type
+protontricks --gui
+
+Next, select the game you want to configure
+
+Next, in winetricks menu select Select default wineprefix
option and press OK:
+
+Finally, select Run winecfg
and click OK:
+
+This will open winecfg. Proceed to the last step to configure the proxy to run.
+Using the command line to open winecfg
+To open winecfg from the command line for your games prefix use the following command:
+env WINEPREFIX="<steamapps folder>/compatdata/<appid>/pfx" WINEPATH="<steamapps folder>/common/<proton folder>/files/bin/wine64" winecfg
+Replace <steamapps folder> with the path to your steamapps folder, <appid> with the appid of the game and <proton folder> with the folder name of the proton version to use.
+
+BepInEx relies on winhttp.dll
proxy DLL to inject itself into Unity games.
+On wine the proxy should be configured manually.
+In winecfg, select Libraries
tab. Under New override for library
dropbox,
+select winhttp
and Click
add:
+
+Finally click Apply
and you're done. Running the game should now run BepInEx.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/dev_guide/dev_tools.html b/master/articles/dev_guide/dev_tools.html
new file mode 100644
index 00000000..652d76a6
--- /dev/null
+++ b/master/articles/dev_guide/dev_tools.html
@@ -0,0 +1,207 @@
+
+
+
+
+
+ List of useful development plugins | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+List of useful development plugins
+
+This page contains a list of useful plugins and tools you can use to develop plugins with BepInEx easier.
+UnityExplorer
+
+Link : GitHub
+Description : An in-game UI for exploring, debugging and modifying Unity games.
+Allows you to inspect any game object and component.
+BepInExConfigManager
+
+Link : GitHub
+Description : In-game UI for managing BepInEx Configurations, for IL2CPP and Mono Unity games.
+Allows viewing and interactively editing plugin configurations. Provides UI components for colors, vectors, key bindings, enumerations and more!
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/dev_guide/plugin_tutorial/1_setup.html b/master/articles/dev_guide/plugin_tutorial/1_setup.html
new file mode 100644
index 00000000..0873c1e9
--- /dev/null
+++ b/master/articles/dev_guide/plugin_tutorial/1_setup.html
@@ -0,0 +1,279 @@
+
+
+
+
+
+ Basic plugin: Setting up the development environment | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Setting up the development environment
+
+To start developing BepInEx, we need three components:
+
+Latest .NET SDK
+A code editor or an integrated development environment (IDE)
+BepInEx installed and configured in the game
+BepInEx plugin templates
+
+All these parts are next discussed in more detail
+.NET SDK
+
+
Note
+
If you have .NET SDK (version 6 or newer) already installed, you can continue to picking an IDE .
+
+.NET SDK is a software development kit (SDK) that allows compiling code written in C# and using different .NET libraries.
+As you may notice later, plugins use different .NET API versions and variations such as .NET Framework or .NET Standard .
+When it comes to plugin development, all those can be handled by the modern .NET SDK.
+To install .NET SDK, do the following:
+
+Head to .NET downloads page
+
+Select the latest recommended .NET SDK for your OS:
+
+
+Download and run the installer according to your OS's instructions
+You may need to restart your PC for the install to finalise.
+
+
+Once you have installed .NET SDK, verify that it works by opening a command line prompt and running
+dotnet --list-sdks
+
+If you have installed .NET SDK correctly, the command should return at least one .NET SDK version and its location.
+An example output is:
+6.0.1 [C:\Program Files\dotnet\sdk]
+
+Once you have at least one .NET SDK version installed, you can choose a code editor.
+Picking an IDE
+While plugins can be made with a simple text editor, it is recommended to use a proper editor for programming.
+Different editors exist with varying level of integration with .NET building tools.
+Proper IDEs provide more extensive features like code style suggestions, automatic completions and even debugging.
+A list of some editors that are known to be usable for BepInEx plugin development:
+
+Visual Studio Community -- free, code completions, project management, debugging support
+JetBrains Rider -- paid, great code completion, code style suggestions, C# decompiler, crossplatform (Windows, macOS, Linux)
+Visual Studio Code -- free and lightweight, crossplatform (Windows, macOS, Linux), supports .NET and C# via plugins
+
+Pick one of the code editors and ensure they work with C#.
+Installing and configuring BepInEx
+Next, make sure you have BepInEx installed in your game.
+If you don't have yet, follow the installation guide .
+Run the game with BepInEx at least once in order to generate configuration files and any additional libraries.
+To make debugging easier, it is useful to enable the BepInEx console.
+To do so, go to BepInEx/config
folder and open BepInEx.cfg
.
+Find the following configuration section/value and edit it as follows:
+[Logging.Console]
+
+## Enables showing a console for log output.
+# Setting type: Boolean
+# Default value: false
+Enabled = true
+
+Installing BepInEx plugin templates
+BepInEx provides helper templates to start off with plugin development.
+We will be using them to make our plugins.
+To install the template, run the following command:
+dotnet new -i BepInEx.Templates::2.0.0-be.2 --nuget-source https://nuget.bepinex.dev/v3/index.json
+
+If the install is successful, you should see a listing of all .NET project templates.
+Among them should be the following BepInEx templates:
+Template Name Short Name Language Tags
+------------------------------- ----------------------- -------- ------------------------------------------
+BepInEx 5 Plugin bepinex5plugin [C#] BepInEx/BepInEx 5/Plugin
+BepInEx 6 .NET Core Plugin bep6plugin_coreclr [C#] BepInEx/BepInEx 6/Plugin/CoreCLR/.NET Core
+BepInEx 6 .NET Framework Plugin bep6plugin_netfx [C#] BepInEx/BepInEx 6/Plugin/.NET Framework
+BepInEx 6 Unity Il2Cpp Plugin bep6plugin_unity_il2cpp [C#] BepInEx/BepInEx 6/Plugin/Unity/Il2Cpp
+BepInEx 6 Unity Mono Plugin bep6plugin_unity_mono [C#] BepInEx/BepInEx 6/Plugin/Unity/Mono
+
+Summary
+In this part, we installed .NET SDK, a code editor, BepInEx and BepInEx plugin templates.
+With all components set up, creating a new plugin is a fairly simple process.
+Next: Writing a basic plugin
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/dev_guide/plugin_tutorial/2_plugin_start.html b/master/articles/dev_guide/plugin_tutorial/2_plugin_start.html
new file mode 100644
index 00000000..4196238f
--- /dev/null
+++ b/master/articles/dev_guide/plugin_tutorial/2_plugin_start.html
@@ -0,0 +1,629 @@
+
+
+
+
+
+ Basic plugin: Creating a new project | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Creating a new plugin project
+
+Once all required tools are installed, it is time to create a new project.
+BepInEx plugins require at least one C# file which is annotated with BepInPlugin .
+In addition, to make plugins code compile, we need to reference BepInEx libraries and game-specific libraries.
+To make the process easier, we will use a ready plugin template from BepInEx.Templates package.
+The templates already include a premade C# file and BepInEx-specific libraries referenced.
+In this section, we will
+
+create a new project,
+go through the structure and metadata of a plugin, and
+reference game-specific libraries,
+build and verify that the plugin is loaded by the game.
+
+Initializing a plugin project from template
+Create a new folder for your project. As an example, we will use a project name MyFirstPlugin
.
+Open a command line prompt in the folder.
+To create a project in the folder, do the following depending on the game type you're modding:
+
+
+
+
+
+Determine .NET target framework (TFM) for your plugin.
+You can follow this general-purpose choice process:
+
+If the game has netstandard.dll
in <Game Name>_Data/Managed
folder, your TFM is netstandard2.0
. If you run into reference errors, target net472
.
+OR
+If the game's mscorlib.dll
file version (right click the file -> Properties
-> Details
) is at least 4.0.0.0
or newer, your TFM is net46
+OR
+In any other case, or if you are unsure/unable to verify using the methods above, your TFM is net35
+
+
+
Note
+
As a general rule, you can always target net35
.
+However, the lower TFM, the less standard libraries and methods are available to you.
+
+
+Determine Unity version of your game (in format X.Y.Z
where X
, Y
and Z
are integers. e.g. 2020.3.24
).
+There are a few ways of doing it:
+
+Run the game with BepInEx once. BepInEx usually outputs game's Unity version in the console.
+Check file version of the game executable (right click the file -> Properties
-> Details
)
+Open <Game Name>_Data/globalgamemanagers
in a text editor like Notepad. You will see some garbage text, but at the start there should be a clear version number readable.
+
+
+In the command line prompt, run
+dotnet new bep6plugin_unity_mono -n MyFirstPlugin -T <TFM> -U <Unity>
+dotnet restore MyFirstPlugin
+
+where
+
+<TFM>
is the TFM determined in step 1
+<Unity>
is the Unity version determined in step 2
+
+
+
+
+
+
+In the command line prompt, run
+dotnet new bep6plugin_unity_il2cpp -n MyFirstPlugin
+dotnet restore MyFirstPlugin
+
+
+
+
+In the command line prompt, run
+dotnet new bep6plugin_netfx -n MyFirstPlugin
+dotnet restore MyFirstPlugin
+
+
+
+
+In the command line prompt, run
+dotnet new bep6plugin_coreclr -n MyFirstPlugin
+dotnet restore MyFirstPlugin
+
+
+
+
+This will create a new folder named MyFirstPlugin
that contains three files:
+
+Plugin.cs
: Main plugin file. You can add more C# source files (.cs
) as needed.
+MyFirstPlugin.csproj
: Plugin project configuration
+
+If you use an IDE, you can proceed to open MyFirstPlugin.csproj
or the entire folder in it.
+If the IDE has .NET development support, it should automatically pick up the project settings.
+Feel free to open the generated files in a text editor and inspect their contents.
+You don't need to know what everything means, but it is useful to note the general format of each file.
+Plugin structure
+The main plugin file is located in Plugin.cs
.
+Let's inspect the contents of a basic plugin and plugin metadata.
+Plugin's structure depends slightly on the game type you chose to target, but the overall layout is the same:
+
+
+
+
+using BepInEx;
+using BepInEx.Unity.Mono;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BaseUnityPlugin
+{
+ private void Awake()
+ {
+ // Plugin startup logic
+ Logger.LogInfo($"Plugin {MyPluginInfo.PLUGIN_GUID} is loaded!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.Unity.IL2CPP;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ public override void Load()
+ {
+ // Plugin startup logic
+ Log.LogInfo($"Plugin {MyPluginInfo.PLUGIN_GUID} is loaded!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.NET.Common;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ public override void Load()
+ {
+ // Plugin startup logic
+ Log.LogInfo($"Plugin {MyPluginInfo.PLUGIN_GUID} is loaded!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.NET.Common;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ public override void Load()
+ {
+ // Plugin startup logic
+ Log.LogInfo($"Plugin {MyPluginInfo.PLUGIN_GUID} is loaded!");
+ }
+}
+
+
+
+
+As we can see, a BepInEx plugin contains three main parts:
+
+You are free to change main plugin code.
+
+Next, let us discuss a bit the metadata that can be specified in BepInEx.
+
+Some basic information is needed for BepInEx to know how to load the plugin and to allow plugins to interact.
+Such information is commonly plugin name , a unique identifier and plugin version .
+Additionally, plugins might need to specify constraints such as dependencies and game names on which plugin can run.
+In BepInEx, this information is by setting C# attributes to the plugin class.
+Let's go over some of the most important attributes you might want to use.
+For more attributes and detailed documentation, visit the API docs .
+
+The most crucial attribute is BepInPlugin . Without it, BepInEx will simply ignore loading of the plugin!
+Here's a simple example of the attribute:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+public class ExamplePlugin : BaseUnityPlugin
+
+The attribute consists of three string parameters that are:
+
+
+
+Parameter name
+Description
+
+
+
+
+GUID
+A unique identifier of the plugin. It absolutely must be unique as BepInEx uses it to detect duplicate plugins and sort dependencies. It is recommended (but not mandatory) to use the reverse domain name notation for GUIDs.
+
+
+Name
+A human-readable name of the plugin.
+
+
+Version
+Version of the plugin. The version format must follow semver
+
+
+
+
+
Important
+
Avoid changing plugin GUIDs after you have released your plugin.
+
GUIDs are meant to be unique and permanent for a plugin. As you will see with other metadata attributes, other plugins depend on your GUID to be the same.
+From a practical point of view, avoid changing your plugin DLL's name as well!
+
+
+
Note
+
You might have noticed that our template has the attribute defined as follows:
+
[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+
+
The plugin template from BepInEx.Templates contains a helper tool that automatically generates PluginInfo
from information located in the .csproj
file.
+For example, the plugin's version is automatically set from <Version>
component in the project configuration.
+You can use the helper tool or replace it with your own values at any time.
+
+Specifying dependencies on other plugins
+Sometimes you might want to load some plugins before other ones.
+Moreover, you may want to ensure that a user has installed some other plugin for yours to function.
+You can specify dependencies on other plugins with BepInDependency attribute.
+You can specify the attribute multiple times for multiple dependencies.
+Here's a simple example of the attribute:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+[BepInDependency("com.bepinex.plugin.important")]
+public class ExamplePlugin : BaseUnityPlugin
+
+The attribute consists of only two parameters:
+
+
+
+Parameter name
+Description
+
+
+
+
+DependencyGUID
+The GUID of the plugin that yours depends on. Must be in the exact same format and case as defined in the dependency.
+
+
+Flags
+Optional. Specifies a flag from BepInDependency.DependencyFlags that tells how to handle missing dependencies. A soft dependency means that the plugin can be loaded even if the dependency is missing. A hard dependency means that a plugin must be skipped if the dependency is missing.
+
+
+VersionRange
+Optional. Specifies the version range of the dependency that your plugin supports. For version ranges, use node version range syntax .
+
+
+
+You can specify the attribute multiple times for each dependency. A more involved example:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+
+// A soft dependency. Loading won't be skipped if it's missing.
+[BepInDependency("com.bepinex.plugin.somedependency", BepInDependency.DependencyFlags.SoftDependency)]
+// A hard dependency. Loading will be skipped (and an error shown) if the dependency is missing.
+[BepInDependency("com.bepinex.plugin.importantdependency", BepInDependency.DependencyFlags.HardDependency)]
+// If flags are not specified, the dependency is **hard** by default
+[BepInDependency("com.bepinex.plugin.anotherimportantone")]
+// Depends on com.bepinex.plugin.versioned version 1.2.x
+[BepInDependency("com.bepinex.plugin.versioned", "~1.2")]
+public class ExamplePlugin : BaseUnityPlugin
+
+Filtering executables
+In some cases, you may want to allow to load the plugin only in certain games.
+For instance, your plugin only works in one game, and you want to prevent users from installing a plugin into the wrong one.
+Alternatively, there might be multiple games in the same game folder, and you want to load your plugin only in one of those games.
+You can specify what games to load the plugin on with BepInProcess attribute.
+The attribute has only one parameter: ProcessName
, which is simply the name of the process that the plugin is allowed to run on (including the .exe
extension).
+Naturally, you can specify the attribute multiple times.
+An example of the attribute usage:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+[BepInProcess("Risk of Rain 2.exe")]
+[BepInProcess("AnotherGame.exe")]
+public class ExamplePlugin : BaseUnityPlugin
+
+Incompatible plugins
+In certain situations, your plugin might be incompatible with other ones.
+For example, your plugin might already implement some features that another plugin does.
+You may also desire to simply not load your plugin if another plugin is present.
+In these cases, you can use BepInIncompatibility attribute.
+Suppose a plugin mentioned in the attribute is present in the game.
+In that case, your plugin will be not loaded, and a warning message will be given to the user.
+This attribute has IncompatibilityGUID
parameter which is the GUID of the incompatible plugin.
+An example:
+[BepInPlugin("org.bepinex.plugins.exampleplugin", "Example Plug-In", "1.0.0.0")]
+// If some.undesirable.plugin is installed, this plugin is skipped
+[BepInIncompatibility("some.undesirable.plugin")]
+public class ExamplePlugin : BaseUnityPlugin
+
+Referencing game libraries
+To use and modify the game's code, you need to reference libraries that contain it.
+By default, the BepInEx plugin template includes some of the libraries you need to create a basic project.
+Such libraries are BepInEx base libraries (provide BepInEx API) and libraries for hooking and modifying game code (such as HarmonyX and MonoMod).
+Plugin template for Mono Unity also includes Unity's base libraries used to interact with the Unity engine itself.
+However, the main game libraries must be referenced manually before you start using game code.
+There are two main ways to obtain game libraries:
+Referencing via NuGet
+NuGet is an online library repository for .NET projects.
+BepInEx has its own NuGet feed which includes some game-specific libraries uploaded by the community.
+All packages with GameLibs
in the name contain game-specific libraries:
+
+To add a game-specific package from BepInEx NuGet to the BepInEx plugin template, open command line prompt in the game folder and run
+dotnet add package GameName.GameLibs -v *-*
+
+where GameName
is the name of the game available on BepInEx NuGet feed.
+Alternatively, you can use your IDE's tools to do so if possible.
+Referencing from local install
+If the game libraries you want to reference are not on NuGet or available somewhere else, you can reference directly from your game folder.
+You can oftentimes add references via your IDE or by hand by adding the following snippet to your project's .csproj
file:
+<ItemGroup>
+ <Reference Include="MyAssembly">
+ <HintPath>path\to\MyAssembly.dll</HintPath>
+ </Reference>
+</ItemGroup>
+
+where you replace MyAssembly
with the DLL's name and path\to\MyAssembly.dll
is the full path to the DLL.
+Depending on the game you're modding, the game-specific libraries are located in the following directories:
+
+
+
+
+Game-specific libraries are located in game's folder under <Game Name>_Data/Managed
folder.
+Depending on your OS, the Managed
folder might be located in some other subfolder in the game folder.
+
+
+
+Game-specific libraries are located in BepInEx/interop
.
+
+
+
+Game-specific libraries depend on the game. In most cases you want to reference the game executable itself as it often has the actual game code.
+
+
+
+Game-specific libraries depend on the game. In most cases you want to reference the game executable itself as it often has the actual game code.
+
+
+
+
+
Warning
+
Avoid referencing any .NET core libraries from the game folder as they can cause compilation issues!
+Specifically, make sure you don't refence anything of the following:
+
+mscorlib.dll
+netstandard.dll
+Any of DLLs that start with System.
(unless you know what you're doing)
+
+
If you get weird compilation errors related to missing types or missing methods, check first if you are referring any problematic assemblies!
+
+
+
Important
+
If possible, do not reference the assemblies directly from the game folder!
+Doing so might cause referencing issues in some versions of C# compilers.
+Instead, create a lib
folder inside your plugin project and copy any game assemblies to there that you want to reference.
+
+Compiling and testing the plugin
+Finally, let us test the default plugin template. In the template, the default code writes Plugin PluginInfo.PLUGIN_GUID is loaded!
into BepInEx console.
+To build the project using the dotnet
tool, open the command line prompt in the project folder and run
+dotnet build
+
+This will generate bin/Debug/<tfm>
folder with the plugin DLL output:
+
+Note that the image is an example of what files can be generated. The main thing is the generated plugin DLL.
+Once you have the plugin DLL, put it into game's BepInEx/plugins
folder and run the game.
+If everything was done correctly, running the game should show our plugin's message in the console:
+
+Congratulations! We now have a working plugin.
+Summary
+This is by far the largest section of the tutorial. Here, we created our project, looked through BepInEx metadata, added game assemblies, built and tested our plugin.
+You can now continue by adding code to the plugin.
+Inspect how the game works, experiment and test!
+The next sections are related primarily to helper features BepInEx provides.
+You do not have to know of them to make a plugin, but making use of BepInEx helpers can make common boilerplate more manageable.
+Remember that you can always reference BepInEx API Docs to see all available BepInEx methods.
+Next: Using loggers to simplify debugging
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/dev_guide/plugin_tutorial/3_logging.html b/master/articles/dev_guide/plugin_tutorial/3_logging.html
new file mode 100644
index 00000000..0922fdb4
--- /dev/null
+++ b/master/articles/dev_guide/plugin_tutorial/3_logging.html
@@ -0,0 +1,498 @@
+
+
+
+
+
+ Basic plugin: Using loggers to simplify debugging | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Using loggers to simplify debugging
+
+One of the most essential parts of any plugin is logging messages. Be it a
+piece of information, a warning or a more significant error, BepInEx provides functionality to log it all.
+With BepInEx, you can use the following logging APIs:
+
+(Recommended) Logger APIs
+UnityEngine.Debug
APIs (for Unity Mono)
+System.Diagnostics.Trace
APIs
+System.Console
APIs
+
+Whichever API you will use, BepInEx will write the logs to the console,
+Unity's output_log.txt
and to BepInEx/LogOutput.log
file.
+
+This is the recommended way for logging in plugins.
+All plugin instances have a logger property:
+
+
+
+
+using BepInEx;
+using BepInEx.Unity.Mono;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BaseUnityPlugin
+{
+ private void Awake()
+ {
+ Logger.LogInfo("This is information");
+ Logger.LogWarning("This is a warning");
+ Logger.LogError("This is an error");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.Unity.IL2CPP;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ public override void Load()
+ {
+ Log.LogInfo("This is information");
+ Log.LogWarning("This is a warning");
+ Log.LogError("This is an error");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.NET.Common;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ public override void Load()
+ {
+ Log.LogInfo("This is information");
+ Log.LogWarning("This is a warning");
+ Log.LogError("This is an error");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.NET.Common;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ public override void Load()
+ {
+ Log.LogInfo("This is information");
+ Log.LogWarning("This is a warning");
+ Log.LogError("This is an error");
+ }
+}
+
+
+
+
+This will print the following messages to BepInEx console:
+[Info : Logger Test] This is information
+[Warning: Logger Test] This is a warning
+[Error : Logger Test] This is an error
+
+Notice that the log reports the message type and the message source.
+When using BepInEx's own logging API, the log source (i.e. the plugin name is automatically logged).
+Check out ManualLogSource for all available logging methods.
+Advanced: Log sources and log listeners
+BepInEx's logging system mimics that of System.Diagnostics.Trace
API.
+BepInEx allows creating log sources that can generate log events (i.e. the messages) and log listeners that receive and process those log events.
+All sources are linked to listeners via Logger class.
+In most cases, you don't have to care about how the API works. However, in some cases, you may want to register your own log sources to log messages.
+In addition, sometimes, you might need to process the log events to write them somewhere. This is where you use the manual APIs.
+Registering log sources
+A log source is a class that inherits from ILogSource .
+The most basic implementation is ManualLogSource which exposes
+various convenience logging functions.
+To register a log source, add it to Sources collection:
+var myLogSource = new ManualLogSource("MyLogSource"); // The source name is shown in BepInEx log
+
+// Register the source
+BepInEx.Logging.Logger.Sources.Add(myLogSource);
+
+myLogSource.LogInfo("Test"); // Will print [Info: MyLogSource] Test
+
+// Remove the source to free resources
+BepInEx.Logging.Logger.Sources.Remove(myLogSource);
+
+Because ManualLogSource is so useful, you can use CreateLogSource(String) to automatically create and register a ManualLogSource .
+That way, the above example becomes
+var myLogSource = BepInEx.Logging.Logger.CreateLogSource("MyLogSource");
+myLogSource.LogInfo("Test");
+BepInEx.Logging.Logger.Sources.Remove(myLogSource);
+
+About log listeners
+Log listeners are used to processing messages from log sources. To create a log source, create a class that inherits ILogListener .
+After that, register a log listener by adding it to Listeners .
+By default, BepInEx itself registers the following listeners:
+
+If you need to write a custom log listener, consider using the above ones as
+examples.
+Advanced: global plugin logger
+If you have multiple classes in your plugin but only one plugin, you might want to use the same plugin logger in the other class as well.
+This can be done with with a global plugin logger pattern. To apply the pattern, do the following:
+
+Create an internal static ManualLogSource field inside the plugin class
+In plugin's startup code, assign plugin's logger to the field
+In your other classes, use the static logger field from your plugin class
+
+Example:
+
+
+
+
+using BepInEx;
+using BepInEx.Unity.Mono;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BaseUnityPlugin
+{
+ internal static new ManualLogSource Log;
+
+ private void Awake()
+ {
+ Plugin.Log = base.Logger;
+ }
+}
+
+// Some other class in the plugin assembly
+class SomeOtherAssembly
+{
+ public void SomeMethod()
+ {
+ Plugin.Log.LogInfo("Plugin message!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.Unity.IL2CPP;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ internal static new ManualLogSource Log;
+
+ public override void Load()
+ {
+ Plugin.Log = base.Log;
+ }
+}
+
+// Some other class in the plugin assembly
+class SomeOtherAssembly
+{
+ public void SomeMethod()
+ {
+ Plugin.Log.LogInfo("Plugin message!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.NET.Common;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ internal static new ManualLogSource Log;
+
+ public override void Load()
+ {
+ Plugin.Log = base.Log;
+ }
+}
+
+// Some other class in the plugin assembly
+class SomeOtherAssembly
+{
+ public void SomeMethod()
+ {
+ Plugin.Log.LogInfo("Plugin message!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.NET.Common;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ internal static new ManualLogSource Log;
+
+ public override void Load()
+ {
+ Plugin.Log = base.Log;
+ }
+}
+
+// Some other class in the plugin assembly
+class SomeOtherAssembly
+{
+ public void SomeMethod()
+ {
+ Plugin.Log.LogInfo("Plugin message!");
+ }
+}
+
+
+
+Summary
+BepInEx provides simple logging methods for plugins.
+Additionally, you are free to extend BepInEx logging facilities to suit your needs.
+Next: Reading and writing configuration files
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/dev_guide/plugin_tutorial/4_configuration.html b/master/articles/dev_guide/plugin_tutorial/4_configuration.html
new file mode 100644
index 00000000..e991429a
--- /dev/null
+++ b/master/articles/dev_guide/plugin_tutorial/4_configuration.html
@@ -0,0 +1,458 @@
+
+
+
+
+
+ Basic plugin: Reading and writing configuration files | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Using configuration files
+
+Usually, you may want to allow the user of the plugin to change the specifics of its behavior.
+Moreover, your plugin might need to have a permanent data store for some of its internal data.
+Whatever the reason, BepInEx provides a built-in ConfigFile class for simple configuration files.
+The format is based on INI with some syntax from TOML, which allows you to save most of the basic data types.
+
+
Important
+
The configuration parser is undergoing changes in BepInEx 6.
+As such, expect the syntax to change in the near future.
+
+
+
Note
+
Using BepInEx's configuration API is optional.
+You can always provide a custom way to serialize and deserialize data for your plugin.
+
+In this part, we will go through the core API for reading and writing configuration files.
+Using configuration files in plugins
+Inside the plugin, you get access to @BepInEx.BaseUnityPlugin.Config property that is a preconfigured configuration file.
+The file is saved in BepInEx\config\<GUID>.cfg
where <GUID>
is the GUID of your plugin.
+To access and create configuration values, you first need to define them with Bind<T>(String, String, T, String) .
+Configuration initialization is often done in plugin startup code.
+Example:
+
+
+
+
+using BepInEx;
+using BepInEx.Unity.Mono;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BaseUnityPlugin
+{
+ private ConfigEntry<string> configGreeting;
+ private ConfigEntry<bool> configDisplayGreeting;
+
+ private void Awake()
+ {
+ configGreeting = Config.Bind("General", // The section under which the option is shown
+ "GreetingText", // The key of the configuration option in the configuration file
+ "Hello, world!", // The default value
+ "A greeting text to show when the game is launched"); // Description of the option to show in the config file
+
+ configDisplayGreeting = Config.Bind("General.Toggles",
+ "DisplayGreeting",
+ true,
+ "Whether or not to show the greeting text");
+ // Test code
+ Logger.LogInfo("Hello, world!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.Unity.IL2CPP;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ private ConfigEntry<string> configGreeting;
+ private ConfigEntry<bool> configDisplayGreeting;
+
+ public override void Load()
+ {
+ configGreeting = Config.Bind("General", // The section under which the option is shown
+ "GreetingText", // The key of the configuration option in the configuration file
+ "Hello, world!", // The default value
+ "A greeting text to show when the game is launched"); // Description of the option to show in the config file
+
+ configDisplayGreeting = Config.Bind("General.Toggles",
+ "DisplayGreeting",
+ true,
+ "Whether or not to show the greeting text");
+ // Test code
+ Log.LogInfo("Hello, world!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.NET.Common;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ private ConfigEntry<string> configGreeting;
+ private ConfigEntry<bool> configDisplayGreeting;
+
+ public override void Load()
+ {
+ configGreeting = Config.Bind("General", // The section under which the option is shown
+ "GreetingText", // The key of the configuration option in the configuration file
+ "Hello, world!", // The default value
+ "A greeting text to show when the game is launched"); // Description of the option to show in the config file
+
+ configDisplayGreeting = Config.Bind("General.Toggles",
+ "DisplayGreeting",
+ true,
+ "Whether or not to show the greeting text");
+ // Test code
+ Log.LogInfo("Hello, world!");
+ }
+}
+
+
+
+
+using BepInEx;
+using BepInEx.NET.Common;
+
+namespace MyFirstPlugin;
+
+[BepInPlugin(MyPluginInfo.PLUGIN_GUID, MyPluginInfo.PLUGIN_NAME, MyPluginInfo.PLUGIN_VERSION)]
+public class Plugin : BasePlugin
+{
+ private ConfigEntry<string> configGreeting;
+ private ConfigEntry<bool> configDisplayGreeting;
+
+ public override void Load()
+ {
+ configGreeting = Config.Bind("General", // The section under which the option is shown
+ "GreetingText", // The key of the configuration option in the configuration file
+ "Hello, world!", // The default value
+ "A greeting text to show when the game is launched"); // Description of the option to show in the config file
+
+ configDisplayGreeting = Config.Bind("General.Toggles",
+ "DisplayGreeting",
+ true,
+ "Whether or not to show the greeting text");
+ // Test code
+ Log.LogInfo("Hello, world!");
+ }
+}
+
+
+
+
+
+
Tip
+
Instead of using the plugin startup method, you can also define wrappers inside the constructor.
+Moreover, you do not need to define all options at once and instead create them on demand!
+
+After defining the values, you can use them right away with Value :
+
+
+
+
+// Instead of just Debug.Log("Hello, world!")
+if(configDisplayGreeting.Value)
+ Logger.LogInfo(configGreeting.Value);
+
+
+
+
+// Instead of just Debug.Log("Hello, world!")
+if(configDisplayGreeting.Value)
+ Log.LogInfo(configGreeting.Value);
+
+
+
+
+if(configDisplayGreeting.Value)
+ Log.LogInfo(configGreeting.Value);
+
+
+
+
+if(configDisplayGreeting.Value)
+ Log.LogInfo(configGreeting.Value);
+
+
+
+
+When you compile your plugin and run the game with it for the first time, the configuration file will be automatically generated.
+In the case of this example, the following configuration file is created in BepInEx\config\MyFirstPlugin.cfg
:
+[General]
+
+## A greeting text to show when the game is launched
+# Setting type: String
+# Default value: Hello, world!
+GreetingTest = Hello, world!
+
+[General.Toggles]
+
+## Whether or not to show the greeting text
+# Setting type: Boolean
+# Default value: True
+DisplayGreeting = true
+
+Notice the similarities between the calls to Bind<T>(String, String, T, String) and the generated configuration file.
+Creating configuration files manually
+In some cases (e.g. preloader patchers, non-plugin DLLs), you may want to create a configuration file manually.
+This can be done quickly by creating a new instance of ConfigFile :
+// Create a new configuration file.
+// First argument is the path to where the configuration is saved
+// Second arguments specifes whether to create the file right away or whether to wait until any values are accessed/written
+var customFile = new ConfigFile(Path.Combine(Paths.ConfigPath, "custom_config.cfg"), true);
+
+// You can now create configuration wrappers for it
+var userName = customFile.Bind("General",
+ "UserName",
+ "Deuce",
+ "Name of the user");
+
+// In plug-ins, you can still access the default configuration file
+var configGreeting = Config.Bind("General",
+ "GreetingTest",
+ "Hello, world!",
+ "A greeting text to show when the game is launched");
+
+
+
Note
+
Notice that we use Paths class to get the path to BepInEx\config
.
+In general, it is recommended to use the paths provided in Paths instead of manually trying to locate the directories.
+
+Summary
+In this part, we briefly overviewed the use of configuration files.
+Next, you should get better accustomed to the additional API provided in ConfigFile and ConfigEntry<T> if you want to use configuration files supplied by BepInEx.
+The additional API allows you to manually save and reload configuration as well.
+This part concludes the basic plugin tutorial.
+Feel free to refer to BepInEx API Docs for extensive information on all methods that BepInEx provides.
+Check through some of the advanced guides for information on how to use BepInEx:
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png b/master/articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png
new file mode 100644
index 00000000..36b1b0b6
Binary files /dev/null and b/master/articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png differ
diff --git a/master/articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png b/master/articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png
new file mode 100644
index 00000000..1229145c
Binary files /dev/null and b/master/articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png differ
diff --git a/master/articles/dev_guide/plugin_tutorial/images/dotnet_download.png b/master/articles/dev_guide/plugin_tutorial/images/dotnet_download.png
new file mode 100644
index 00000000..777b6858
Binary files /dev/null and b/master/articles/dev_guide/plugin_tutorial/images/dotnet_download.png differ
diff --git a/master/articles/dev_guide/plugin_tutorial/images/plugin_works_example.png b/master/articles/dev_guide/plugin_tutorial/images/plugin_works_example.png
new file mode 100644
index 00000000..d9ea9ef7
Binary files /dev/null and b/master/articles/dev_guide/plugin_tutorial/images/plugin_works_example.png differ
diff --git a/master/articles/dev_guide/plugin_tutorial/index.html b/master/articles/dev_guide/plugin_tutorial/index.html
new file mode 100644
index 00000000..73a9b6e9
--- /dev/null
+++ b/master/articles/dev_guide/plugin_tutorial/index.html
@@ -0,0 +1,222 @@
+
+
+
+
+
+ Writing a basic plugin | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Writing a basic plugin
+
+The primary purpose of BepInEx is to load user-made code into various games.
+There are a few ways of doing it, but writing plugins is the most commonly used approach.
+Plugins are classes that are annotated with BepInPlugin annotation.
+BepInEx provides a variety of helpers to facilitate logging, configuration, path management and dependency management.
+Plugins are compiled into .NET DLL files and put into BepInEx/plugins
folder for BepInEx to load.
+BepInEx provides some starter templates to make plugin development easier.
+In this guide, we will
+
+install tools necessary for plugin development,
+set up a basic C# plugin project,
+use plugin logger to write messages to the console, and
+read and write configuration files.
+
+
+
Note
+
Although this is an introductory guide, an elementary understanding of C# is required.
+If you are not familiar with C#, .NET Academy provides a simple step-by-step tutorial.
+
On the contrary, basic knowledge of using command line prompt on your OS is strongly encouraged .
+
+The following topics will be covered:
+
+Setting up the development environment
+Creating a new plugin project
+Using loggers to simplify debugging
+Reading and writing configuration files
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/dev_guide/preloader_patchers.html b/master/articles/dev_guide/preloader_patchers.html
new file mode 100644
index 00000000..23ecc200
--- /dev/null
+++ b/master/articles/dev_guide/preloader_patchers.html
@@ -0,0 +1,366 @@
+
+
+
+
+
+ Using preloader patchers | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Using preloader patchers
+
+Preface
+As of version 4.0, BepInEx allows to write preload-time patchers that modify
+assemblies before the game loads them.
+While most plug-ins can use Harmony to do runtime patching, using preload-time
+patchers provides more fine control over how the assembly is patched.
+It is still recommended that you use Harmony wherever possible because
+Harmony makes sure all patches are compatible with each other. Use Mono.Cecil
+only if something cannot be done by Harmony (more info below).
+Note: The contract for preloader patchers has changed between BepInEx v5 and v6.
+Difference from runtime patchers
+Because preload-time patchers are run before the assemblies are loaded into
+memory, the patchers have more fine-grained control over how to modify the
+assemblies.
+
+
+
+Feature
+Preload-time patcher
+Runtime patcher
+
+
+
+
+Used library
+Mono.Cecil
+Harmony
+
+
+Used contract
+Written in a separate DLL, uses a special contract
+Written in plug-in DLL, uses Harmony's API
+
+
+Application time
+Applied on raw assemblies before the game initializes
+Applied on assemblies already loaded in memory
+
+
+Can apply hooks
+Yes
+Yes, as long as the target is not inlined by JIT
+
+
+Can reference game assembly directly
+No
+Yes
+
+
+Can rewrite methods' IL
+Yes
+Yes
+
+
+Can modify field/method propeties
+Everything
+Partially
+
+
+Can add new classes, methods and fields
+Yes
+No
+
+
+Can replace assemblies
+Yes
+No
+
+
+
+Thus, use preload-time patchers only if you must modify the structure of
+the assembly. For hooking methods use Harmony.
+
+Writing a patcher
+Requirements
+Assuming you know how to use an IDE of your choice, you will need to
+
+Create an assembly (DLL) project targeting the same .NET version as regular plugins for your game
+Remove references to all unused imports
+Add a reference to Mono.Cecil (use 0.10.3 for Unity Mono, otherwise the latest version). You can get it on NuGet, for instance,
+or use the one prepackaged with BepInEx
+Add one or more patcher classes (example below)
+
+Patcher plugin
+A patcher plugin's skeleton is similar to a regular plugin:
+[PatcherPluginInfo("io.bepis.mytestplugin", "My Test Plugin", "1.0")]
+class EntrypointPatcher : BasePatcher
+{
+ public override void Initialize() { }
+
+ public override void Finalizer() { }
+
+ ...
+}
+
+Notable things:
+
+Instead of using [BepInPlugin]
, you use [PatcherPluginInfo]
instead.
+The base class is BasePatcher
.
+There are two methods you can override related to the patching engine lifecycle.
+There is no constructor (or if there is, it has no parameters).
+Patches are declared as additional methods (see below).
+
+You have access to the same base properties that regular plugins do; i.e. Log
, Config
and and Info
. You also have access to Context
, which is an object that contains the current information that the assembly patcher engine within BepInEx is currently using. For example, you can use it to find out which other patcher plugins are loaded, which assemblies can be patched, which patches have already been applied etc.
+Note that your patcher plugin GUID must be unique, even against regular plugins! Because patcher plugins have their own configuration files now, they must also have a unique GUID so that there aren't any conflicts when loading / saving configuration settings.
+Lifecycle
+This is the lifecycle of the patcher engine within BepInEx:
+
+All .dll
files within BepInEx/patchers
are examined to see if they contain any patcher plugins. The ones that do are loaded as assemblies.
+Every discovered patcher plugin is instantiated once (by calling the constructor).
+All patcher plugins have their Initialize()
function called.
+Every patching method within each patcher plugin is executed, against the targeted type / assembly. Any unhandled exceptions are logged.
+All patcher plugins have their Finalizer()
function called.
+Patcher engine unloads all loaded AssemblyDefinition
and TypeDefinition
objects.
+
+Use your Initialize
method for code that needs to run first exactly once, and your Finalizer
method for code that needs to run last exactly once.
+Patch methods
+Patch methods are much more declarative now, very similar to declaring Harmony patches. Here is an example declaration:
+[TargetAssembly("Assembly-CSharp.dll")]
+public void PatchAssembly(AssemblyDefinition assembly)
+{
+ ...
+}
+
+You can target assemblies, or specific types (detailed below).
+Patch methods must not be static or abstract. They can be any visibility, however.
+They can have void
or bool
as a return type. In the case of bool
, the return value specifies if the targeted assembly or type has been modified by the patcher. This is important, because if you tell BepInEx that the patch method hasn't actually patched anything, then it won't mark the assembly / types you've requested as modified. With a void
return type, BepInEx will always assume that you have performed modifications.
+If you have an AssemblyDefinition
as the first parameter, then you can also define it as ref
if you wish to replace it with another definition entirely. This is useful if you want to replace an assembly with another one you have shipped yourself, for example.
+You can also provide a second string
parameter, which will contain the (relative) filename of the assembly. If you are targeting a type, then it will return the filename of the assembly that the type belongs to.
+For patch methods that target assemblies, you can specify multiple assemblies:
+[TargetAssembly("Assembly-CSharp.dll")]
+[TargetAssembly("UnityEngine.dll")]
+public void PatchAssembly(AssemblyDefinition assembly, string filename)
+{
+ ...
+}
+
+Which will then run that patch method twice, once for each assembly. There is also the option of specifying all available assemblies:
+[TargetAssembly(TargetAssemblyAttribute.AllAssemblies)]
+public void PatchAssembly(AssemblyDefinition assembly, string filename)
+{
+ ...
+}
+
+As stated above you also have the option of specifying specific types. For example:
+[TargetType("Assembly-CSharp.dll", "GameNamespace.GameClass")]
+public void PatchAssembly(TypeDefinition type)
+{
+ ...
+}
+
+The first parameter of the attribute is the filename of the assembly where the type belongs, and the second parameter is the full name of the type you wish to patch (including namespaces).
+
+You're able to specify additional [TargetType]
attributes to specify more types to run the patcher for, however you cannot mix-and-match [TargetType]
and [TargetAssembly]
.
+You're also able to specify an additional string
parameter for the assembly filename, however you cannot specify the first parameter as ref
.
+
+Notes and tips
+
+Do not reference any DLLs that you will want to patch! Doing so will
+load them into memory prematurely, which will make patching impossible!
+Do not mix plug-in DLL with patcher DLL! Plugins often reference
+assemblies that must be patched, which will cause the assemblies to be
+loaded prematurely.
+You cannot patch some assemblies, as they are required for the assembly patcher to execute.
+The list of assemblies that cannot be patched are (BepInEx 6.0): mscorlib.dll
, System.dll
, System.Core.dll
.
+Either use Harmony or edit these assemblies permanently.
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/dev_guide/runtime_patching.html b/master/articles/dev_guide/runtime_patching.html
new file mode 100644
index 00000000..3915ba76
--- /dev/null
+++ b/master/articles/dev_guide/runtime_patching.html
@@ -0,0 +1,225 @@
+
+
+
+
+
+ Patching methods at runtime | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Patching methods during runtime
+
+
+
Note
+
This guide is still WIP.
+
+Runtime patching is the process of modifying methods without permanently
+patching them. Runtime patching happens while the game is running and on .NET
+can be done very extensively.
+BepInEx ships with HarmonyX and MonoMod.RuntimeDetour to perform runtime patching.
+You can use either or both libraries -- both of them have different API but it
+does not matter which one you use.
+HarmonyX
+BepInEx uses HarmonyX to perform runtime
+patching. HarmonyX is a fork of Harmony
+with changes to specifically allow interop with MonoMod.RuntimeDetour.
+HarmonyX is attribute-based, which means you define patches by applying attributes
+to a method.
+Refer to the following guides on how to use HarmonyX:
+
+HarmonyX wiki - gives basic examples and outlines differences from normal Harmony. Still WIP at the moment
+Original Harmony wiki - HarmonyX API is similar to that of Harmony, so you can use the official wiki without much issue
+
+MonoMod.RuntimeDetour
+MonoMod.RuntimeDetour is a helper library that allows to apply runtime patches as C# objects.
+Alternatively, RuntimeDetour supports defining patches as events.
+Some useful guides
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/index.html b/master/articles/index.html
new file mode 100644
index 00000000..ae8148e0
--- /dev/null
+++ b/master/articles/index.html
@@ -0,0 +1,224 @@
+
+
+
+
+
+ BepInEx Guide Index | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+BepInEx Guide Index
+
+Welcome to BepInEx documentation pages! Please refer to the navigation menu on the left for all specific guides!
+What is BepInEx
+BepInEx (Bepis Injector Extendable) is a plugin framework aimed at Unity and .NET Framework games.
+The main goal of BepInEx is
+
+to be simple to install and use for end-users;
+provide necessary tools for modding;
+be small and easily portable to as many different Unity games as possible.
+
+While BepInEx is mainly aimed at PC games running on Windows, BepInEx can be installed on Linux, macOS, and any other operating system that either supports Mono or Windows emulation.
+What BepInEx is not
+Currently, BepInEx does not aim to be the solution for modding all games with .NET support on all platforms.
+This limitation allows BepInEx to be small and simple to install while still working on as many games as possible.
+BepInEx is also not an all-in-one tool that caters to every single user.
+Instead, BepInEx provides only the necessary base to develop game-specific support.
+BepInEx is made to be extendable : you can modify and add parts of BepInEx to make it work best for you.
+Getting started with BepInEx
+To start with BepInEx, you should download and install it .
+Next, you might want to configure it and any of the plugins you install .
+
+
Note
+
While BepInEx should work with default configuration on most Unity games, some games might require a specific entry point configuration.
+Refer to troubleshooting information for info on how to set up entry points in exceptional cases.
+
+Developing plugins
+
+
Important
+
BepInEx 6 documentation is in development. At the moment, most developer documentation refers to BepInEx 5.
+Always refer to the API documentation for up-to-date BepInEx API.
+
+If you are a developer, you can check the plugin creation walkthrough to get acquainted with most of the API of BepInEx.
+Additionally, you should check out how to use Harmony to patch game methods .
+For more exact documentation on each of BepInEx's feature, consult the API documentation
+Finally, the advanced guides contain information on how to debug plugins with dnSpy and elaborate on technical details of BepInEx and Unity modding.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/toc.html b/master/articles/toc.html
new file mode 100644
index 00000000..0624eb52
--- /dev/null
+++ b/master/articles/toc.html
@@ -0,0 +1,105 @@
+
+
\ No newline at end of file
diff --git a/master/articles/user_guide/configuration.html b/master/articles/user_guide/configuration.html
new file mode 100644
index 00000000..cf520f9d
--- /dev/null
+++ b/master/articles/user_guide/configuration.html
@@ -0,0 +1,208 @@
+
+
+
+
+
+ Configuration | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Configuration
+
+BepInEx 6 contains all configuration files in BepInEx/config
folder.
+All configuration files have .cfg
extension and follow TOML -like syntax.
+Configuring BepInEx
+The main BepInEx configuration is located in BepInEx/config/BepInEx.cfg
.
+If you don't have the file, run the game with BepInEx at least once, and BepInEx automatically generates the file.
+Open the file in any text editor of your choice. All configuration options are documented.
+Configuring plugins
+Most plugins have their configuration options in BepInEx/config
folder.
+The configuration files are named by the GUID of the plugin.
+Options are usually documented, but that depends on the plugin developer.
+It is suggested to download and use BepInEx.ConfigurationManager
+which provides a simple, in-game UI for editing the plugin configuration.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/user_guide/images/installer_1.png b/master/articles/user_guide/images/installer_1.png
new file mode 100644
index 00000000..e626b72a
Binary files /dev/null and b/master/articles/user_guide/images/installer_1.png differ
diff --git a/master/articles/user_guide/images/installer_2.png b/master/articles/user_guide/images/installer_2.png
new file mode 100644
index 00000000..e1b0721b
Binary files /dev/null and b/master/articles/user_guide/images/installer_2.png differ
diff --git a/master/articles/user_guide/images/installer_3.png b/master/articles/user_guide/images/installer_3.png
new file mode 100644
index 00000000..a6e06ce3
Binary files /dev/null and b/master/articles/user_guide/images/installer_3.png differ
diff --git a/master/articles/user_guide/images/manual_install_1.png b/master/articles/user_guide/images/manual_install_1.png
new file mode 100644
index 00000000..87b94eb6
Binary files /dev/null and b/master/articles/user_guide/images/manual_install_1.png differ
diff --git a/master/articles/user_guide/images/x64process_example.png b/master/articles/user_guide/images/x64process_example.png
new file mode 100644
index 00000000..db87625f
Binary files /dev/null and b/master/articles/user_guide/images/x64process_example.png differ
diff --git a/master/articles/user_guide/images/x86process_example.png b/master/articles/user_guide/images/x86process_example.png
new file mode 100644
index 00000000..efacb4c7
Binary files /dev/null and b/master/articles/user_guide/images/x86process_example.png differ
diff --git a/master/articles/user_guide/installation/index.html b/master/articles/user_guide/installation/index.html
new file mode 100644
index 00000000..fde6435a
--- /dev/null
+++ b/master/articles/user_guide/installation/index.html
@@ -0,0 +1,245 @@
+
+
+
+
+
+ Installing BepInEx | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Installing BepInEx
+
+Requirements
+
+Supported Operating Systems
+
+Windows 7, 8, 8.1, and 10 (both x86 and x64 are supported)
+Linux distros with GCC 10 or newer, preferably GNU/Linux distro (x86_64 and x86 archs are supported)
+macOS 10.13 High Sierra or newer
+
+
+Supported game engines
+
+Unity 3 or newer
+XNA, FNA, MonoGame, and other engines running on .NET Framework
+
+
+
+Where to download BepInEx
+Official BepInEx binaries are distributed in two variations: stable builds and bleeding edge (BE) builds .
+Stable builds are available on GitHub .
+Stable builds are released once a new iteration of BepInEx is considered feature-complete.
+They may have only minor bugs, but some newest features might not be available.
+It is recommended to use stable builds in most cases.
+Bleeding edge builds are available on BepInBuilds .
+Bleeding edge builds are always the latest builds of the source code. Thus they are the opposite of stable builds: they have the newest features and bugfixes available but usually tend to be the most buggy.
+Therefore you should only use bleeding edge builds if you are asked to or if you want to preview the upcoming version of BepInEx.
+There also exist unofficial 3rd party distributions often preconfigured and set up to work with specific games.
+Installing BepInEx
+Currently, BepInEx can be installed manually.
+BepInEx has separate binaries for different game engines. Refer to separate installation guides for the specific engine your game is using:
+
+Unity games using mono runtime: these games usually have a folder named Managed
somewhere in their install
+
+
+Unity games using Il2Cpp runtime: these games usually have a folder named il2cpp_data
somewhere in their install
+
+
+.NET Framework games
+
+
+
+Further steps and troubleshooting
+Some games require some additional changes to work around specific limitations of different Unity versions.
+Please refer to the troubleshooting section for more information about additional installation steps.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/user_guide/installation/net_fw.html b/master/articles/user_guide/installation/net_fw.html
new file mode 100644
index 00000000..58122c2a
--- /dev/null
+++ b/master/articles/user_guide/installation/net_fw.html
@@ -0,0 +1,199 @@
+
+
+
+
+
+ Installing BepInEx on .NET Framework | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Installing BepInEx on .NET Framework
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/user_guide/installation/unity_il2cpp.html b/master/articles/user_guide/installation/unity_il2cpp.html
new file mode 100644
index 00000000..6aaa0c97
--- /dev/null
+++ b/master/articles/user_guide/installation/unity_il2cpp.html
@@ -0,0 +1,331 @@
+
+
+
+
+
+ Installing BepInEx on Il2Cpp Unity | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Installing BepInEx on Il2Cpp Unity
+
+
+
Important
+
Builds for this guide are only available via Bleeding Edge builds!
+
+
+Download the correct version of BepInEx.
+Download BepInEx from one of the available sources.
+Pick a version depending on your OS:
+
+
+
+
+Download one of the following versions:
+
+Unity.IL2CPP-win-x86
for games with 32-bit executables
+Unity.IL2CPP-win-x64
for games with 64-bit executables
+
+
+
+
+Download archive with designation Unity.IL2CPP-linux-x64
.
+
+
+
+Download archive with designation Unity.IL2CPP-macos-x64
.
+
+
+
+Extract the contents into the game root.
+After you have downloaded the correct game version, extract the archive contents into the game folder.
+
+
+
+
+The game root folder is where the game executable is located.
+
+
+
+On Linux, the game root folder is where the executable <Game>.x86
or
+<Game>.x86_64
is located.
+
+
+
+On macOS, the root folder is where the game <Game>.app
is located.
+
+
+
+Do the first-time run to generate configuration files
+
+
Note
+
First run in Il2Cpp games may take some time as it requires generating files necessary for modding.
+
+
+
+
+
+Run the game executable. This step should generate the BepInEx configuration file into the BepInEx/config
folder and an initial log file BepInEx/LogOutput.txt
.
+
+
+
+
+First, open the included run script run_bepinex.sh
in a text editor of your choice. Edit the line
+executable_name="";
+
+to be the name of the game executable . On Linux, this is simply the name of the game executable.
+Finally, open the terminal in the game folder and make the run_bepinex.sh
script executable:
+chmod u+x run_bepinex.sh
+
+You can now run BepInEx by executing the run script:
+./run_bepinex.sh
+
+This command should generate a BepInEx configuration file into the BepInEx/config
folder and an initial log file BepInEx/LogOutput.txt
.
+
+
+
+
+First, open the included run script run_bepinex.sh
in a text editor of your choice. Edit the line
+executable_name="";
+
+to be the name of the game executable . On macOS, this is the name of the game app with .app
extension, for example, HuniePop.app
.
+Finally, open the terminal in the game folder and make the run_bepinex.sh
script executable:
+chmod u+x run_bepinex.sh
+
+You can now run BepInEx by executing the run script:
+./run_bepinex.sh
+
+This command should generate a BepInEx configuration file into the BepInEx/config
folder and an initial log file BepInEx/LogOutput.txt
.
+
+
+
+Configure BepInEx to suit your needs.
+Open BepInEx/config/BepInEx.cfg
in a text editor of your choice.
+All options are documented directly in the configuration file.
+Additionally, refer to refer to the configuration guide for more information.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/user_guide/installation/unity_mono.html b/master/articles/user_guide/installation/unity_mono.html
new file mode 100644
index 00000000..e9147660
--- /dev/null
+++ b/master/articles/user_guide/installation/unity_mono.html
@@ -0,0 +1,331 @@
+
+
+
+
+
+ Installing BepInEx on Mono Unity | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Installing BepInEx on Mono Unity
+
+
+
Important
+
Builds for this guide are only available via Bleeding Edge builds!
+
+
+Download the correct version of BepInEx.
+Download BepInEx from one of the available sources.
+Pick a version depending on your OS:
+
+
+
+
+Download one of the following versions:
+
+Unity.Mono-win-x86
for games with 32-bit executables
+Unity.Mono-win-x64
for games with 64-bit executables
+
+
+
+
+Download one of the following versions:
+
+Unity.Mono-linux-x86
for games with 32-bit executables
+Unity.Mono-linux-x64
for games with 64-bit executables
+
+
+
+
+Download Unity.Mono-macos-x64
. Only builds for 64-bit games are supported at the moment.
+
+
+
+Extract the contents into the game root.
+After you have downloaded the correct game version, extract the archive contents into the game folder.
+
+
+
+
+The game root folder is where the game executable is located.
+
+
+
+On Linux, the game root folder is where the executable <Game>.x86
or
+<Game>.x86_64
is located.
+
+
+
+On macOS, the root folder is where the game <Game>.app
is located.
+
+
+
+Do the first-time run to generate configuration files
+
+
+
+
+Run the game executable. This step should generate the BepInEx configuration file into the BepInEx/config
folder and an initial log file BepInEx/LogOutput.txt
.
+
+
+
+
+First, open the included run script run_bepinex.sh
in a text editor of your choice. Edit the line
+executable_name="";
+
+to be the name of the game executable . On Linux, this is simply the name of the game executable.
+Finally, open the terminal in the game folder and make the run_bepinex.sh
script executable:
+chmod u+x run_bepinex.sh
+
+You can now run BepInEx by executing the run script:
+./run_bepinex.sh
+
+This command should generate a BepInEx configuration file into the BepInEx/config
folder and an initial log file BepInEx/LogOutput.txt
.
+
+
+
+
+First, open the included run script run_bepinex.sh
in a text editor of your choice. Edit the line
+executable_name="";
+
+to be the name of the game executable . On macOS, this is the name of the game app with .app
extension, for example, HuniePop.app
.
+Finally, open the terminal in the game folder and make the run_bepinex.sh
script executable:
+chmod u+x run_bepinex.sh
+
+You can now run BepInEx by executing the run script:
+./run_bepinex.sh
+
+This command should generate a BepInEx configuration file into the BepInEx/config
folder and an initial log file BepInEx/LogOutput.txt
.
+
+
+
+Configure BepInEx to suit your needs.
+Open BepInEx/config/BepInEx.cfg
in a text editor of your choice.
+All options are documented directly in the configuration file.
+Additionally, refer to refer to the configuration guide for more information.
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/articles/user_guide/troubleshooting.html b/master/articles/user_guide/troubleshooting.html
new file mode 100644
index 00000000..3b233176
--- /dev/null
+++ b/master/articles/user_guide/troubleshooting.html
@@ -0,0 +1,314 @@
+
+
+
+
+
+ Troubleshooting | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Using BepInEx
+
+
+
+
+
+
+ Plugin development
+
+
+
+
+
+
+ Advanced topics
+
+
+
+
+
+
+Troubleshooting
+
+This page outlines some specifics related to running BepInEx of various
+platforms and Unity versions.
+Whenever you have a problem starting up BepInEx, most commonly, it's either because of a missing core file or a wrong entry point.
+Common
+Enable console
+In many cases, it's suggested to enable the console. That way, you'll see load progress and potential errors live.
+Open BepInEx/config/BepInEx.cfg
, locate and change the following settings accordingly:
+[Logging.Console]
+
+Enabled = true
+
+Remove Managed
folder and verify files
+Suppose you're upgrading from an older version of BepInEx or a different modding framework.
+In that case, there might be some incompatible DLLs installed into the game's Managed
folder.
+If the game is on Steam, go to <Game Folder>\<Game Name>_Data
folder and delete Managed
folder.
+Finally, go to Steam and verify game integrity .
+This procedure will cause Steam to redownload a clean copy of Managed
folder.
+If the game is not on Steam, you can try obtaining the clean Managed
folder
+or reinstall the game altogether.
+(Windows) Check the bitness of the game
+Currently, Windows builds of BepInEx ship separately for x64 and x86 games.
+Because of that, make sure the version of BepInEx is for the correct architecture.
+To do that, run the game and check it via Task Manager.
+If you see (32 bit)
after the game process name:
+
+the game requires x86 build of BepInEx.
+If you don't see such addition:
+
+the game requires x64 build of BepInEx.
+Extremely long paths with non-ASCII characters
+Some versions of Mono bundled with Unity games cannot handle non-ASCII characters in paths or too long path names.
+Because of that, it's suggested that
+
+Your game executable path is not too long. Under 1024 will work on most systems, under 256 on all.
+Attempt to remove "exotic" characters from the game path. Make sure any of the game folders have only the following characters:
+
+A-Z, a-z or numbers 0-9
+Common punctuation (.:;,!"#%&()[]{}=?*'_-
)
+
+
+
+Unity 2017 and newer
+Change the entry point
+In some games, the default entry point is too early for BepInEx to load up properly.
+For that, try an alternative entry point:
+Open BepInEx/config/BepInEx.cfg
, locate and change the following settings accordingly:
+[Preloader.Entrypoint]
+
+Assembly = UnityEngine.CoreModule.dll
+
+Type = MonoBehaviour
+
+Method = .cctor
+
+Harmony backend
+On Unity versions 2017 and newer (especially 2018), Harmony and MonoMod.RuntimeDetour may error when trying to patch anything. Here's an example error message:
+[Error : Unity Log] NotImplementedException: Derived classes must implement it
+Stack trace:
+System.Reflection.Module.get_Assembly () (at <e1319b7195c343e79b385cd3aa43f5dc>:0)
+MonoMod.Utils._DMDEmit.Generate (MonoMod.Utils.DynamicMethodDefinition dmd, System.Reflection.MethodBase _mb, System.Reflection.Emit.ILGenerator il) (at <041d70ff506f4f089a67adab0245e45d>:0)
+MonoMod.Utils.DMDEmitMethodBuilderGenerator.GenerateMethodBuilder (MonoMod.Utils.DynamicMethodDefinition dmd, System.Reflection.Emit.TypeBuilder typeBuilder) (at <041d70ff506f4f089a67adab0245e45d>:0)
+MonoMod.Utils.DMDEmitMethodBuilderGenerator._Generate (MonoMod.Utils.DynamicMethodDefinition dmd, System.Object context) (at <041d70ff506f4f089a67adab0245e45d>:0)
+...
+
+This is due to the System.Runtime.Emit implementation in the version of Mono that is bundled with the game being incomplete. This can be fixed by setting the Preloader.HarmonyBackend
setting to cecil
, as such:
+[Preloader]
+
+## Specifies which MonoMod backend to use for Harmony patches. Auto uses the best available backend.
+## This setting should only be used for development purposes (e.g. debugging in dnSpy). Other code might override this setting.
+# Setting type: MonoModBackend
+# Default value: auto
+# Acceptable values: auto, dynamicmethod, methodbuilder, cecil
+HarmonyBackend = cecil
+
+Unity 5 and older
+Change the entry point
+In some games, the default entry point is too early for BepInEx to load up properly.
+For that, try an alternative entry point:
+Open BepInEx/config/BepInEx.cfg
, locate and change the following settings accordingly:
+[Preloader.Entrypoint]
+
+Assembly = UnityEngine.dll
+
+Type = MonoBehaviour
+
+Method = .cctor
+
+In some cases, another option works better
+[Preloader.Entrypoint]
+
+Assembly = UnityEngine.dll
+
+Type = Camera
+
+Method = .cctor
+
+Future versions of BepInEx should automate the process of setting an early enough entry point.
+Unity 4 and older
+Ensure core libraries are included
+Some older Unity games strip away unused core libraries. Specifically, BepInEx
+requires the following two libraries to be bundled
+
+System.dll
+System.Core.dll
+
+Ensure they have been included in the <Game Name>_Data/Managed
folder of your game.
+If not, you have to obtain such libraries yourself at the moment .
+
+Head to Unity download archive
+Find an old version of Unity. 5.0.0 is suggested as a fitting middle ground
+Download its Unity Editor and install it
+Go to <unity-install-dir>\Editor\Data\PlaybackEngines\windowsstandalonesupport\Variations\win32_development_mono
where <unity-install-dir>
is the directory where you installed Unity to
+In the folder, locate System.Core.dll
(should be in Data\Managed
) and copy it to your game's Managed
folder
+Try rerunning the game. BepInEx should now launch
+
+Rename winhttp.dll
to version.dll
+While winhttp.dll
proxy works best on more platforms (especially older versions of Wine on Linux), older Unity games might not work correctly with it.
+Try renaming winhttp.dll
that comes with BepInEx to version.dll
and run the game.
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/favicon.ico b/master/favicon.ico
new file mode 100644
index 00000000..390b304c
Binary files /dev/null and b/master/favicon.ico differ
diff --git a/master/fonts/fontello.eot b/master/fonts/fontello.eot
new file mode 100644
index 00000000..08e42c0c
Binary files /dev/null and b/master/fonts/fontello.eot differ
diff --git a/master/fonts/fontello.svg b/master/fonts/fontello.svg
new file mode 100644
index 00000000..d26352dd
--- /dev/null
+++ b/master/fonts/fontello.svg
@@ -0,0 +1,22 @@
+
+
+
+Copyright (C) 2021 by original authors @ fontello.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/fonts/fontello.ttf b/master/fonts/fontello.ttf
new file mode 100644
index 00000000..ddf510ca
Binary files /dev/null and b/master/fonts/fontello.ttf differ
diff --git a/master/fonts/fontello.woff b/master/fonts/fontello.woff
new file mode 100644
index 00000000..273efd70
Binary files /dev/null and b/master/fonts/fontello.woff differ
diff --git a/master/fonts/fontello.woff2 b/master/fonts/fontello.woff2
new file mode 100644
index 00000000..7ddbf0a5
Binary files /dev/null and b/master/fonts/fontello.woff2 differ
diff --git a/master/fonts/glyphicons-halflings-regular.eot b/master/fonts/glyphicons-halflings-regular.eot
new file mode 100644
index 00000000..b93a4953
Binary files /dev/null and b/master/fonts/glyphicons-halflings-regular.eot differ
diff --git a/master/fonts/glyphicons-halflings-regular.svg b/master/fonts/glyphicons-halflings-regular.svg
new file mode 100644
index 00000000..94fb5490
--- /dev/null
+++ b/master/fonts/glyphicons-halflings-regular.svg
@@ -0,0 +1,288 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/fonts/glyphicons-halflings-regular.ttf b/master/fonts/glyphicons-halflings-regular.ttf
new file mode 100644
index 00000000..1413fc60
Binary files /dev/null and b/master/fonts/glyphicons-halflings-regular.ttf differ
diff --git a/master/fonts/glyphicons-halflings-regular.woff b/master/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 00000000..9e612858
Binary files /dev/null and b/master/fonts/glyphicons-halflings-regular.woff differ
diff --git a/master/fonts/glyphicons-halflings-regular.woff2 b/master/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 00000000..64539b54
Binary files /dev/null and b/master/fonts/glyphicons-halflings-regular.woff2 differ
diff --git a/master/index.html b/master/index.html
new file mode 100644
index 00000000..d2a4b6e1
--- /dev/null
+++ b/master/index.html
@@ -0,0 +1,97 @@
+
+
+
+
+
+ Welcome to BepinEx Docs! | BepInEx Docs
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Note
+
Please note that documentation for BepInEx 6 is WIP.
+If you would like to help with writing guides for BepInEx 6, consider
+contributing by writing guides !
+
+Welcome to BepInEx documentation!
+Here you can find guides on how to install, configure and develop plugins for BepInEx!
+About BepInEx
+Bep is In jector Ex tensible is a patcher and plug-in framework for Unity and .NET Framework games.
+BepInEx provides various features, including
+
+drop-in installation ;
+built-in configuration and logging systems ;
+runtime method patching with Harmony -- includes HarmonyX and MonoMod to enable runtime method injection;
+in-memory assembly patching -- allows to patch game's assemblies with Mono.Cecil in memory with the help of UnityDoorstop .
+
+BepInEx is fully open source under the LGPL 2.1 license .
+Getting started
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/master/logo.svg b/master/logo.svg
new file mode 100644
index 00000000..3c2c5d73
--- /dev/null
+++ b/master/logo.svg
@@ -0,0 +1,217 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Created by Docfx
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/master/manifest.json b/master/manifest.json
new file mode 100644
index 00000000..25a27bab
--- /dev/null
+++ b/master/manifest.json
@@ -0,0 +1,2046 @@
+{
+ "homepages": [],
+ "source_base_path": "D:/a/bepinex-docs/bepinex-docs",
+ "xrefmap": "xrefmap.yml",
+ "files": [
+ {
+ "type": "Conceptual",
+ "source_relative_path": "README.md",
+ "output": {
+ ".html": {
+ "relative_path": "README.html",
+ "hash": "QFgV4fSFq9Ic87R/WV3sgHHdS4DIUH5iqIEaApd0FCE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInDependency.DependencyFlags.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInDependency.DependencyFlags.html",
+ "hash": "8E1cInrRhOeYRKaGruMxThyeiuwbuCRJcs5P4INo/KI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInDependency.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInDependency.html",
+ "hash": "dUBYd3JMBBBJS0vEGxBVOwTjz0TXSRyN7OD/5xdWugw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInIncompatibility.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInIncompatibility.html",
+ "hash": "uAMDefZIDdo3RPcHYU5+KWrDedh3ZsaWTPJ6OjiBruQ="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInPlugin.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInPlugin.html",
+ "hash": "w4gKo8/ZobedqpLzw7v2evGbuVCTXzrLiJtQdDgIWLY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.BepInProcess.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.BepInProcess.html",
+ "hash": "Zs1T4ytU/hjLXZET6YOo0iBX4vfhTFDT6ZDaLXuMCwU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.BaseChainloader-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.BaseChainloader-1.html",
+ "hash": "mk7acPLxh4JR9YlPGrwOcD8DrcH73Rs0NJH2JFooEsc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.CachedAssembly-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.CachedAssembly-1.html",
+ "hash": "rS30kYbOXmHkO0M8H5N0GSzHqIO9ng7cFNvpC4M72IY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.ICacheable.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.ICacheable.html",
+ "hash": "gTz0kkO+WQ+EYnSsWtUotf7l1nP/zbjocR8IgzK43Uc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.TypeLoader.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.TypeLoader.html",
+ "hash": "mpJ2vZyPoxyW47PjDPbnX0DiG545tGOz+/JASen5Hng="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Bootstrap.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Bootstrap.html",
+ "hash": "FOwUXZXJ6JXl1e+Ir6cJXDsrgqY0jlWqinz2Qa9Rrag="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.AcceptableValueBase.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.AcceptableValueBase.html",
+ "hash": "XNaONcHtdHEAZJjIaWfc8hnxRBANkwN5KSUeSObCumE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.AcceptableValueList-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.AcceptableValueList-1.html",
+ "hash": "VfOZgT18ySgFq0X5ZNYGlrL4OK1zdwqibAukqdNkvJs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.AcceptableValueRange-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.AcceptableValueRange-1.html",
+ "hash": "GpkFSQZ2P4syh3TT+wCoZh1Xzm9c50fZnI8b0jrByPY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigDefinition.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigDefinition.html",
+ "hash": "+QBAJ1BXCCuHTFv3yGoemcPUIFcMYXW7T3F2oc40GWA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigDescription.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigDescription.html",
+ "hash": "1BoAaN9ZnppT7+VZZpHkQbMb7Msvgutda0rmkNJ8Xp8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigEntry-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigEntry-1.html",
+ "hash": "zNdpr0m34r1CmjfVXcLUCv2iF/LpwQFR+xU/IwFvAIM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigEntryBase.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigEntryBase.html",
+ "hash": "JuwUmSoKo9xyTLbobwq70GE8rGMp6eEVTkA2QVnEpiw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigFile.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigFile.html",
+ "hash": "Aal6pPHtGAYH/Z5S20hDiPb7nIlLSAgbnPk2b2jyihc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.ConfigWrapper-1.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.ConfigWrapper-1.html",
+ "hash": "yDaf+1YimML9WLJv3OV+eQOw3hW/8OSnKW6ifD9HWKg="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.SettingChangedEventArgs.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.SettingChangedEventArgs.html",
+ "hash": "qemJD/Rpn0Rf06yiTmjbE8OdSDbpYK6ua3wkbkq7wL8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.TomlTypeConverter.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.TomlTypeConverter.html",
+ "hash": "XTsbaLH2TRN4pr58K6jWF/dzKFvIbylpcdX1FLu1Llw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.TypeConverter.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.TypeConverter.html",
+ "hash": "Jao8kEFENHm2XnZnwP4OqFBPM6Dg1Dpd27KJvLVzUnw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Configuration.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Configuration.html",
+ "hash": "UfpLBkZmzyPkH470LDwc+OMKh+UhDlMrGy/z2gIPjxI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.ConsoleManager.ConsoleOutRedirectType.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.ConsoleManager.ConsoleOutRedirectType.html",
+ "hash": "twcor+NZI1oV0dze4mdJxE3R1B9qfwlAfgt4MRnEqLo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.ConsoleManager.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.ConsoleManager.html",
+ "hash": "qXTfDVASJ7fntNYLq3RClNVL4FqgXEkfMd2rfZ/bDrc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExDebugLogInterpolatedStringHandler.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExDebugLogInterpolatedStringHandler.html",
+ "hash": "GFaOsBRfwjLFzbj9MWlFPaOwXwim+p1CSfVFWgSz8ws="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExErrorLogInterpolatedStringHandler.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExErrorLogInterpolatedStringHandler.html",
+ "hash": "hdYRKYDISpPBxI9sf71hTCfFv1JX9G9bbzFdf9OGkpU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExFatalLogInterpolatedStringHandler.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExFatalLogInterpolatedStringHandler.html",
+ "hash": "iU45Vwg8PUiERTZjILjOhM80HIoafcs2NY9m4KNBKrw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExInfoLogInterpolatedStringHandler.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExInfoLogInterpolatedStringHandler.html",
+ "hash": "tDx+ojBBp/JRQc06aTi/DyBWBocMXInlsgHnzXvIIeg="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExLogInterpolatedStringHandler.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExLogInterpolatedStringHandler.html",
+ "hash": "w/eF0uUuWU3beDXv814TiyHhz8fdNV3anuHS6ednmAM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExMessageLogInterpolatedStringHandler.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExMessageLogInterpolatedStringHandler.html",
+ "hash": "DgI5ibWKmvttA6GxKe5UMryKlSJK45ATwb64tFybWiA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExWarningLogInterpolatedStringHandler.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Core.Logging.Interpolation.BepInExWarningLogInterpolatedStringHandler.html",
+ "hash": "+5Os4L5eNsAK9dLJl7hj0AZ4QOuZc4BLBOxZS6kI6yo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Core.Logging.Interpolation.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Core.Logging.Interpolation.html",
+ "hash": "SP7EwIg1F9zNrKeexG90gzpq9+0+k6Y8guE2Z/GsfPs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.ConsoleLogListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.ConsoleLogListener.html",
+ "hash": "tdWzgjN0FaAorpabkcGHlhb2iAMzCMkM04QW/eo8l2Y="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.DiskLogListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.DiskLogListener.html",
+ "hash": "NpQQ0QH5VfiDI437MYy5AXt10c9J7FA8LD3FoJIUF/I="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.HarmonyLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.HarmonyLogSource.html",
+ "hash": "cioYpP/YWeoXxj2C+V1GimsVZlNP/AFjYFmBq3ey1aA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.ILogListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.ILogListener.html",
+ "hash": "MtCo9qAaHsBR/OQtHinlTo20TAPCkX1J0iKrMcdJdnY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.ILogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.ILogSource.html",
+ "hash": "3Z0vVu6n5SBSPb1IR6bj+dHp9RpOWnKjKPNSVeLIXZs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.LogEventArgs.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.LogEventArgs.html",
+ "hash": "XZ5uP9lcyKE2i3BlVqCbyhBA73BBfLBlwF9Y8UCFnA0="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.LogLevel.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.LogLevel.html",
+ "hash": "zWRL+Fd/ROS5LVe+Ade3jxR2FUeVw3Dl7SPByE3cCRU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.LogLevelExtensions.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.LogLevelExtensions.html",
+ "hash": "Kd2I2rMm1IPw/2B197Hv+k4cGFd2VwGZP8xZyGJRNaI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.Logger.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.Logger.html",
+ "hash": "UzIzo8lIpw7wog6ygVbTADtaMGrMlnOsWT52kmhT97I="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.ManualLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.ManualLogSource.html",
+ "hash": "BXrvDfyO9rseD0swqOVKXy5DJLcTh3Kb5djw/nhEH1g="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.TraceLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.TraceLogSource.html",
+ "hash": "0pBmEYF/MB5VwLRwtR+0hJhZRb/9XcB9FZjSrd+YoBE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Logging.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Logging.html",
+ "hash": "wUpbhSDv8gLBTxaPHSqbzAS4sWpnf11VxvOtgdz32hA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.MetadataHelper.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.MetadataHelper.html",
+ "hash": "iKCi01OSqGkin3IWZAB8bfOL6ciqY7hGEGz3yUFCqk8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.NET.Common.BasePlugin.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.NET.Common.BasePlugin.html",
+ "hash": "5ZpiF+TSisv2Rh5owBEvyd35gIhEVpOVZsnuug4409U="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.NET.Common.NetChainloader.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.NET.Common.NetChainloader.html",
+ "hash": "RvKQ8gk2VI3fmv5KdXPCBM1ECaA3M0Gh84VxYR6SuS8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.NET.Common.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.NET.Common.html",
+ "hash": "ULU/aewjouJ0ZTkuF+fwMVZ3Wy4g+DK5XcobkLCoy9M="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.NET.Framework.Launcher.NetPreloader.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.NET.Framework.Launcher.NetPreloader.html",
+ "hash": "GmWSQGQOi9hGhBrFvNu+6cAL276qyVyszmOmYEWYwE0="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.NET.Framework.Launcher.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.NET.Framework.Launcher.html",
+ "hash": "PuU2qWW2EwykTFedRd6J8D/gJBf90zv8dR1cCLB7hZc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Paths.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Paths.html",
+ "hash": "4Nxwj0n8lwLm9tsptk2a83/yDa7NHIWA+KorNB0mYac="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.PluginInfo.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.PluginInfo.html",
+ "hash": "aVaIs0rrZ40tiQODnrtTjYpVIsMpdISZyhoWsuHP33w="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.AssemblyBuildInfo.FrameworkType.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.AssemblyBuildInfo.FrameworkType.html",
+ "hash": "jdksuScu4Z7H7cmBhrGsjc8cSnVWi4fpRM+D39Dc6OE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.AssemblyBuildInfo.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.AssemblyBuildInfo.html",
+ "hash": "TWr87Ku3F1QcpRnlJg6BOzJqb/m2o3Kr+NmnGs8CGKw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.EnvVars.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.EnvVars.html",
+ "hash": "AkUjQMbGi6MTkeHIs5pcHNnLWgM5ouDEO5Ei1k5EVfY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Logging.ChainloaderLogHelper.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Logging.ChainloaderLogHelper.html",
+ "hash": "73dYn2VK85eAP3WWVhm39sYmo1YYQaUhomVGZ9AY0no="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Logging.PreloaderConsoleListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Logging.PreloaderConsoleListener.html",
+ "hash": "lUHyzU5RjVPjiB0IxBCTE81AHmQLj+RyphtQnS7JBL4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Logging.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Logging.html",
+ "hash": "CDYcCZ2uYCKOXVlogeAB/QUQsaap1Gc08LYWVC3zS0o="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Patching.AssemblyPatcher.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Patching.AssemblyPatcher.html",
+ "hash": "9akATNjrVc41ZQOBAxHhS363IFzLlAeSI+wZ2tBIZLE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Patching.BasePatcher.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Patching.BasePatcher.html",
+ "hash": "nnm6L1BS0SlD7maqoFGePz6BDjD0gAhpDTojWVMjxhQ="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Patching.PatchDefinition.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Patching.PatchDefinition.html",
+ "hash": "OzBnQBH9nKYEQKYcKUInJ5jRqhH2WvYf1Yta0wetdsU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Patching.PatcherContext.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Patching.PatcherContext.html",
+ "hash": "lbsMlbk+vWs5ByL5r7RY+RVuVhMjOhdkbkXqETCZ4Fw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Patching.PatcherPluginInfoAttribute.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Patching.PatcherPluginInfoAttribute.html",
+ "hash": "00AlKosEmI2AVaNex8Z3r1hN1WxBrxfEmpMDMqb7J3k="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Patching.TargetAssemblyAttribute.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Patching.TargetAssemblyAttribute.html",
+ "hash": "YBuLrE/hDSxgjqkNgW2S72KF46CCunBNnf8TyAnf6W8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Patching.TargetTypeAttribute.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Patching.TargetTypeAttribute.html",
+ "hash": "rq+MZFNnsh92vWHHMNrMyErfLgGz8r3ocQJTzqr097k="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.Patching.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.Patching.html",
+ "hash": "bj7pJ5zTRaA7WfXJMa9NLy/J9nXkgNaw7Y5Wp6MRuPo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.PreloaderLogger.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.PreloaderLogger.html",
+ "hash": "dfVexcysEkKxOn8pIS9eNgwUxiN2NIRKuHCepHHvqNU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.Core.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.Core.html",
+ "hash": "9utMpyySsiJdjtOTd3LWpkMInZTf+4Sq129rUAUBuy8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.RuntimeFixes.ConsoleSetOutFix.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.RuntimeFixes.ConsoleSetOutFix.html",
+ "hash": "srYWujIVZFK46xObTHHvpKTPTsAgMf4JUQ3Mh00YDgM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.RuntimeFixes.HarmonyBackendFix.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.RuntimeFixes.HarmonyBackendFix.html",
+ "hash": "KSyH4ROxJz7MHDiVHMqWE1jjNOEedfXNcBeuSdKzdBk="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Preloader.RuntimeFixes.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Preloader.RuntimeFixes.html",
+ "hash": "9I7H9L6Zh2wFkT1CTu2Avhvy1xyeh4UWzQ+rZuXBsJM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Common.UnityInfo.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Common.UnityInfo.html",
+ "hash": "SGvB8CWX+k8QJVA8MjJx2GHXDqAZ6dLKtkfh1aVOssE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Common.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Common.html",
+ "hash": "rxZRHED2JAadyt/wsdW46c2eiP2ronw2WEHUHxFeoKw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.BasePlugin.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.BasePlugin.html",
+ "hash": "lmnvbQNgJcNA7nH5A50077/4pl4vqHzTDL22YlLXtp4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Hook.INativeDetour.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Hook.INativeDetour.html",
+ "hash": "Jstg6bDfCkSncTwGkq5KgmWJcIR7iSaU5yA72H2GzSw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Hook.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Hook.html",
+ "hash": "+lLMiKatNZrFTnt5YRf/2G4icDmy5XxEzcUm8orTngo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.IL2CPPChainloader.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.IL2CPPChainloader.html",
+ "hash": "OzU2VkQPUS0f0N7Ia107VJWIgwTuLieg0AFfDfiDV7I="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Logging.IL2CPPLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Logging.IL2CPPLogSource.html",
+ "hash": "DInHXQlG0j7mpuBEOWmAoaRB6VZgfWpMfGmDGSrSaXI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Logging.IL2CPPUnityLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Logging.IL2CPPUnityLogSource.html",
+ "hash": "Xz1sgou7DNZsCdIHVujZ+unNZPs6hxqf963lKfjAXqU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Logging.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Logging.html",
+ "hash": "5Fa6zaMhiahOJIgwAQFSc5mHxva+3DUEpp5wfisAnmI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Preloader.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Preloader.html",
+ "hash": "h3r1Eq059G2z55nB80enILZ/Rl48HE3dER3u4a1qqI0="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.UnityEngine.Input.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.UnityEngine.Input.html",
+ "hash": "3tJyEaqCulWVBBQhrRkNBTcnZ/JDn8r0v81v1kggaus="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.UnityEngine.KeyCode.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.UnityEngine.KeyCode.html",
+ "hash": "ZJ9tS/ecybtU8vuQbnGCmfuA+Y6682xe5tCGvqS5KiM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.UnityEngine.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.UnityEngine.html",
+ "hash": "n6UhKJQzt4EgQ8/lWTiB03ye+hJglrMLZYYE0Jm8MNo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.CollectionExtensions.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.CollectionExtensions.html",
+ "hash": "3ZAjaUfXlDetLi+18VGEJjPhbxVDx2Sld0xKuk1tiBk="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerable.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerable.html",
+ "hash": "GljO5Yg6NFgtoym+PTntp6v6aewfFvD+6Tg1NS+HyWU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerator.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.Il2CppManagedEnumerator.html",
+ "hash": "MQqhWcWwhyidO4SgfhcgwclM0pba17kKNZEePtEEPNM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerable.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerable.html",
+ "hash": "stp0PUtSl0uYTWxL8o8RdMAciMRsd1p1nC8ZZClL3xA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerator.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.ManagedIl2CppEnumerator.html",
+ "hash": "GZkp1sw45CuSUW8+6urctx4JDOxhZxAWmDxagR+qR+o="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Utils.Collections.html",
+ "hash": "7gL8xhzlQm2bjsigcscLLP1K8aB5fMUU6htcwZcFkzg="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Utils.MonoBehaviourExtensions.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Utils.MonoBehaviourExtensions.html",
+ "hash": "3YTXTOingwvf56dtWEk+8i3yEWKi8rP6SCqlwKm+rRQ="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.Utils.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.Utils.html",
+ "hash": "bBl8pYbjBLtMQNUO8kBG/O6MsO0nrCHwTrDlVWdjCE4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.IL2CPP.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.IL2CPP.html",
+ "hash": "t/PkZ5US4Slau3o3EaBNCAddSGadfIj3zeNeASSppjc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.BaseUnityPlugin.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.BaseUnityPlugin.html",
+ "hash": "RuzpAlZV/SASAq9QqeX4JFUi/UQK/vEgi/M/Gh/DtfA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.BepInExInstance.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.BepInExInstance.html",
+ "hash": "WjLPrfXOpspWOvAcV/0KfMMFQ+bzFdwqVKjICZeOe3w="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.Bootstrap.UnityChainloader.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.Bootstrap.UnityChainloader.html",
+ "hash": "fN2ZK1mjFmRflaAfASsLY/GCCu+n0c7mHnFZZjR3xBY="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.Bootstrap.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.Bootstrap.html",
+ "hash": "/ABkCzH4aDZkuOrFl4/42/UvpZ347FpVqtOKO6wwkW8="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.Configuration.KeyboardShortcut.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.Configuration.KeyboardShortcut.html",
+ "hash": "LkZF7RWPUx5OwWum1aa0IJ9F2U1zwW4+40BDJv/3k8s="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.Configuration.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.Configuration.html",
+ "hash": "E7Zt3JYws+DU97AwNeZb7s4jtLkT1qk3MT4OMT52+zQ="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.Logging.UnityLogListener.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.Logging.UnityLogListener.html",
+ "hash": "NjKGy0zBQfKQACHQN1H1gPQyYFUz6SYsUSnGfdk1h44="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.Logging.UnityLogSource.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.Logging.UnityLogSource.html",
+ "hash": "0WbukreSOjiWzWGhtleEorgUcnfYEzrwamLkwWhHfm4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.Logging.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.Logging.html",
+ "hash": "kzcNJZ7iO5sphP0wOlpcEeANUpqWGH3x3/j7+L0eYdI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.ThreadingExtensions.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.ThreadingExtensions.html",
+ "hash": "iUWS8IhDLb9eS6zNAPC6uiu9obp74rA4AxXB2dmDOHs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.ThreadingHelper.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.ThreadingHelper.html",
+ "hash": "jOxAwff5+wWcp7qQlX1oA/WFrSsed0P9bscW905waxs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Unity.Mono.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Unity.Mono.html",
+ "hash": "vEfPJwaO2tIGg6nsBmRtoNmRLKa/B3nRgVHOkj1K5MM="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.Utility.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.Utility.html",
+ "hash": "9mosvxaFML5GTdf89oz9A8Zsd7lHqgWlfcWNTOPgdoc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "ManagedReference",
+ "source_relative_path": "api/BepInEx.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/BepInEx.html",
+ "hash": "Io7JzR83ht5L/4KZDJ4oUtq8QUszqEPAS/kzW1morAA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "api/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "api/index.html",
+ "hash": "UmKf/+FbWaX4d+vOGZEuIhlggVwgVe7GgSMhv7zj044="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Toc",
+ "source_relative_path": "api/toc.yml",
+ "output": {
+ ".html": {
+ "relative_path": "api/toc.html",
+ "hash": "rA8bqu1wpQvx/4IbFgXA5In9EgRKsWqbm/1RX8QJiSI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/compatibility.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/compatibility.html",
+ "hash": "Da5C5VRnllw2+om9/VbZdAhKxGTXXtS5LfXorcqN440="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/debug/assemblies_dnSpy.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/debug/assemblies_dnSpy.html",
+ "hash": "V/1x1lqLws4MIdWPzKZSjNuh2MCyM7VVqGW0fZ7wJ7o="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/bepin_breakpoint_hit.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/bepin_breakpoint_hit.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_asscsharp_beakpoint_hit.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_breakpoint_hit.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_breakpoint_hit.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_debug.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_debug.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_dragndrop.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_dragndrop.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_module_breakpoints.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_module_breakpoints.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_modules.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_modules.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_modules_view.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_modules_view.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_set_breakpoint.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_set_breakpoint.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/dnSpy_start_debug.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/dnSpy_start_debug.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_debugger_select.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_debugger_select.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_pdb2mdb.gif",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_pdb2mdb.gif"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_plugin_install.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_plugin_install.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_select.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_select.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_select_process.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_select_process.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/debug/images/vstu_works.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/debug/images/vstu_works.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/debug/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/debug/index.html",
+ "hash": "bFb6XZk3+r9QwJErxqeBft0C0/WCVNSkPA9KC90V2rA="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/debug/plugins_dnSpy.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/debug/plugins_dnSpy.html",
+ "hash": "zj0hCnsoz/5TMsNvIrylc0mdgSnstIw+Fcr0GU/w79c="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/debug/plugins_vs.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/debug/plugins_vs.html",
+ "hash": "TXDjJN/LJO8lgRDEr4qTJIIrWBjGj6sJJqB4kO0ODLs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/protontricks_select.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/protontricks_select.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/protontricks_winecfg.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/protontricks_winecfg.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/protontricks_wineprefix.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/protontricks_wineprefix.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/steam_launch_opts.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/steam_launch_opts.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/steam_local_files.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/steam_local_files.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/steam_props.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/steam_props.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/advanced/images/winecfg_add_lib.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/advanced/images/winecfg_add_lib.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/advanced/steam_interop.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/advanced/steam_interop.html",
+ "hash": "GhiWRIkqMfyYXhfNFzBsfwZDG5zDo8lgiD9u2Cemlqg="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/dev_tools.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/dev_tools.html",
+ "hash": "7DYTVvzbbeE7vdgDc015elyr9A9S1oUzxT+XwB6oZRs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/1_setup.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/1_setup.html",
+ "hash": "LoxI+TkpITgTvj2WGS+NX20jKdx+2t4638ZyJ/+TmZE="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/2_plugin_start.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/2_plugin_start.html",
+ "hash": "Hj3NDSqrINnbjB3+fqFyV7UFkY9tpTpc0xsDYtA8Z+s="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/3_logging.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/3_logging.html",
+ "hash": "gFU1DAJfib4CdqfryiiDum8gMKerF7OdujhFRXgmVg0="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/4_configuration.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/4_configuration.html",
+ "hash": "Hq9bU6kt1bHSBy56IvkPT7zMDp8dFMO8xMhAUIgzvNU="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/images/bepin_nuget_listing.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/images/bepin_plugin_folder.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/images/dotnet_download.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/images/dotnet_download.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/images/plugin_works_example.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/images/plugin_works_example.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/plugin_tutorial/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/plugin_tutorial/index.html",
+ "hash": "j3XmUjCNDLZeyKnJw2mZ7DGelX7hjZ5G+In/8oyZAIc="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/preloader_patchers.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/preloader_patchers.html",
+ "hash": "KrDtXRUfjVSauKaj7s2wqavL1d7HrJxYXYCsFaHOZLk="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/dev_guide/runtime_patching.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/dev_guide/runtime_patching.html",
+ "hash": "0+BfjLxP0hN+wpsJmb0s4eVU0Nm7cdnOiB1MWIDMBzI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/index.html",
+ "hash": "AlsbOFjYTAnBK+dqZ2L8/FTdwiFOIeCsSUGmL8u3cl0="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Toc",
+ "source_relative_path": "articles/toc.yml",
+ "output": {
+ ".html": {
+ "relative_path": "articles/toc.html",
+ "hash": "F59cusQd21Qdo/NwRXMgwZb5TdtJqukqtV7+ljaycwo="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/configuration.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/configuration.html",
+ "hash": "ZQkaO9wpeLCkbdj0ZOte5Ocbn7EGgqqZXZwYC3NOehI="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/installer_1.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/installer_1.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/installer_2.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/installer_2.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/installer_3.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/installer_3.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/manual_install_1.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/manual_install_1.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/x64process_example.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/x64process_example.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Resource",
+ "source_relative_path": "articles/user_guide/images/x86process_example.png",
+ "output": {
+ "resource": {
+ "relative_path": "articles/user_guide/images/x86process_example.png"
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/installation/index.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/installation/index.html",
+ "hash": "1a6H2T68hG6YxaMptB7+M5sdNQs8aZjsdiGrajELUaw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/installation/net_fw.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/installation/net_fw.html",
+ "hash": "TPJYvadUheSgmDSjinGFrLmFfAeYs3QHb+vGu8feQcQ="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/installation/unity_il2cpp.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/installation/unity_il2cpp.html",
+ "hash": "MVVZGQ7bxbXCAi6dJxb2y6cqAx30Fd1KY/Q5Ijo6bXs="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/installation/unity_mono.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/installation/unity_mono.html",
+ "hash": "HBSRU2wwuJ6ijfQl7uS8Xi7t5qAzYUInl0CaXttL97k="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "articles/user_guide/troubleshooting.md",
+ "output": {
+ ".html": {
+ "relative_path": "articles/user_guide/troubleshooting.html",
+ "hash": "WKGM/5sHXmU9sdnOfyL6Bl/v4MDqpaS0vG+iKAGtdqw="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Conceptual",
+ "source_relative_path": "index.md",
+ "output": {
+ ".html": {
+ "relative_path": "index.html",
+ "hash": "7TqTzUQ25yGHzX3bn4oOy0XHIg/2l2jvtNk/hah9xb0="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ },
+ {
+ "type": "Toc",
+ "source_relative_path": "toc.yml",
+ "output": {
+ ".html": {
+ "relative_path": "toc.html",
+ "hash": "TaBeOHTbN59L/fPi2esrW+lUIrU3IanzBPpfjlLU7d4="
+ }
+ },
+ "is_incremental": false,
+ "version": ""
+ }
+ ],
+ "incremental_info": [
+ {
+ "status": {
+ "can_incremental": false,
+ "details": "Cannot build incrementally because last build info is missing.",
+ "incrementalPhase": "build",
+ "total_file_count": 0,
+ "skipped_file_count": 0,
+ "full_build_reason_code": "NoAvailableBuildCache"
+ },
+ "processors": {
+ "ConceptualDocumentProcessor": {
+ "can_incremental": false,
+ "incrementalPhase": "build",
+ "total_file_count": 24,
+ "skipped_file_count": 0
+ },
+ "ManagedReferenceDocumentProcessor": {
+ "can_incremental": false,
+ "incrementalPhase": "build",
+ "total_file_count": 108,
+ "skipped_file_count": 0
+ },
+ "ResourceDocumentProcessor": {
+ "can_incremental": false,
+ "details": "Processor ResourceDocumentProcessor cannot support incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.",
+ "incrementalPhase": "build",
+ "total_file_count": 0,
+ "skipped_file_count": 0
+ },
+ "TocDocumentProcessor": {
+ "can_incremental": false,
+ "details": "Processor TocDocumentProcessor cannot support incremental build because the processor doesn't implement ISupportIncrementalDocumentProcessor interface.",
+ "incrementalPhase": "build",
+ "total_file_count": 0,
+ "skipped_file_count": 0
+ }
+ }
+ },
+ {
+ "status": {
+ "can_incremental": false,
+ "details": "Cannot support incremental post processing, the reason is: last post processor info is null.",
+ "incrementalPhase": "postProcessing",
+ "total_file_count": 0,
+ "skipped_file_count": 0
+ },
+ "processors": {}
+ }
+ ],
+ "version_info": {},
+ "groups": [
+ {
+ "xrefmap": "xrefmap.yml"
+ }
+ ]
+}
\ No newline at end of file
diff --git a/master/search-stopwords.json b/master/search-stopwords.json
new file mode 100644
index 00000000..0bdcc2c0
--- /dev/null
+++ b/master/search-stopwords.json
@@ -0,0 +1,121 @@
+[
+ "a",
+ "able",
+ "about",
+ "across",
+ "after",
+ "all",
+ "almost",
+ "also",
+ "am",
+ "among",
+ "an",
+ "and",
+ "any",
+ "are",
+ "as",
+ "at",
+ "be",
+ "because",
+ "been",
+ "but",
+ "by",
+ "can",
+ "cannot",
+ "could",
+ "dear",
+ "did",
+ "do",
+ "does",
+ "either",
+ "else",
+ "ever",
+ "every",
+ "for",
+ "from",
+ "get",
+ "got",
+ "had",
+ "has",
+ "have",
+ "he",
+ "her",
+ "hers",
+ "him",
+ "his",
+ "how",
+ "however",
+ "i",
+ "if",
+ "in",
+ "into",
+ "is",
+ "it",
+ "its",
+ "just",
+ "least",
+ "let",
+ "like",
+ "likely",
+ "may",
+ "me",
+ "might",
+ "most",
+ "must",
+ "my",
+ "neither",
+ "no",
+ "nor",
+ "not",
+ "of",
+ "off",
+ "often",
+ "on",
+ "only",
+ "or",
+ "other",
+ "our",
+ "own",
+ "rather",
+ "said",
+ "say",
+ "says",
+ "she",
+ "should",
+ "since",
+ "so",
+ "some",
+ "than",
+ "that",
+ "the",
+ "their",
+ "them",
+ "then",
+ "there",
+ "these",
+ "they",
+ "this",
+ "tis",
+ "to",
+ "too",
+ "twas",
+ "us",
+ "wants",
+ "was",
+ "we",
+ "were",
+ "what",
+ "when",
+ "where",
+ "which",
+ "while",
+ "who",
+ "whom",
+ "why",
+ "will",
+ "with",
+ "would",
+ "yet",
+ "you",
+ "your"
+]
diff --git a/master/static/scripts/main.js b/master/static/scripts/main.js
new file mode 100644
index 00000000..e69de29b
diff --git a/master/static/scripts/template.js b/master/static/scripts/template.js
new file mode 100644
index 00000000..cfd31938
--- /dev/null
+++ b/master/static/scripts/template.js
@@ -0,0 +1 @@
+"use strict";var Affix,Theme,TabGroup,TOC;!function(e){let t;function n(e){return null===e||void 0===e?void 0:e.replace(/[^\w. ]/gi,e=>`${e.charCodeAt(0)};`)}!function(e){e[e.None=0]="None",e[e.Small=1]="Small",e[e.Large=2]="Large"}(t||(t={})),e.init=function(){const e=function(){const e=document.querySelector("main"),t={level:0,items:[]};if(!e)return t;const n=e.querySelectorAll("h1[id],h2[id],h3[id],h4[id],h5[id],h6[id]"),i=(e,t)=>{let n=!1;return t.levele.level&&t.parent?(t.parent.items=[e],e.parent=t.parent,t.parent=e,!0):n};for(const e of n)i({level:+e.tagName.substring(1),el:e,items:[]},t);return t}(),i=document.querySelector("aside.affix > div > .affix-toc");if(!i)return;if(0==e.items.length)return;const o=[],r=(e,t=0)=>{if(0==e.items.length)return"";if(0e.items.length>0&&t<2,s=e=>{var s,a,l,c,d,u;return e.el&&o.push(e.el),i(e)?`\n \n \n ${n(null===(l=e.el)||void 0===l?void 0:l.textContent)} \n \n \n \n `:`${n(null===(u=e.el)||void 0===u?void 0:u.textContent)} `};return e.items.map(e=>`${s(e)} `).join("")}return e.items.map(e=>r(e,t+1)).join("")},s=r(e);if(0==s.trim().length)return;i.innerHTML=`\n Contents \n \n `;let a=void 0;const l=()=>{let e=function(e,t){if(0==e.length)return;if(1==e.length)return e[0];const n=(i,o)=>{const r=Math.floor((i+o)/2);if(r==i||r==o)return e[r];const s=t(e[r]);return 0==s?e[r]:s<0?n(i,r):n(r,o)};return n(0,e.length-1)}(o,e=>{const t=e.getBoundingClientRect().y;return t<.5?1:t>.5?-1:0});if(!e)return;if(e==o[0]&&e.getBoundingClientRect().y>0&&(e=void 0),e==a)return;const t=(e,t)=>{if(!a)return;const n=o=>{o!=i&&(o instanceof HTMLDetailsElement&&e(o),o instanceof HTMLAnchorElement&&t(o),o.parentElement&&n(o.parentElement))},o=document.querySelector(`aside.affix a#toc-affix-${a.id}`);o&&n(o)},n=(e,t)=>{e instanceof HTMLLIElement?t(e):e.parentElement&&n(e.parentElement,t)};t(e=>e.removeAttribute("open"),e=>n(e,e=>e.classList.remove("active"))),a=e,t(e=>e.setAttribute("open","open"),e=>n(e,e=>e.classList.add("active")))};l();let c=t.None;const d=()=>{const e=Math.max(document.documentElement.clientWidth||0,window.innerWidth||0);e<1280&&(c==t.None||c==t.Large)?(document.removeEventListener("scroll",l),c=t.Small):e>=1280&&(c==t.None||c==t.Small)&&(document.addEventListener("scroll",l),c=t.Large)};d(),window.addEventListener("resize",d)}}(Affix||(Affix={})),function(e){e.init=function(){const e=document.querySelector("#theme-switch");e&&e.addEventListener("click",e=>{e.preventDefault();const t=document.documentElement;t.classList.contains("dark")?(t.classList.remove("dark"),localStorage.theme="light",setScrollbarTheme("light")):(t.classList.add("dark"),localStorage.theme="dark",setScrollbarTheme("dark"))})}}(Theme||(Theme={})),function(e){const t=[];function n(e,n=!0){const i=new Set;i.add(e);for(const n of t){const t=n.map(([e,t])=>e.dataset.tab).findIndex(t=>e==t);if(t<0){const e=n.find(([e,t])=>!t.hidden);e&&e[0].dataset.tab&&i.add(e[0].dataset.tab)}else for(const[e,[i,o]]of n.entries())o.hidden=e!=t,o.setAttribute("aria-hidden",(e!=t).toString()),i.setAttribute("aria-selected",(e==t).toString()),i.setAttribute("tabindex",e==t?"0":"-1")}if(n){const e=new URLSearchParams(window.location.search);e.set("tabs",[...i].join(",")),history.pushState(null,"",`${window.location.pathname}?${e.toString()}`)}}e.init=function(){var e;const i=document.querySelectorAll(".tabGroup");for(const e of i){const i=[...e.querySelectorAll("ul[role='tablist'] a")],o=i.map(e=>[e,document.getElementById(e.getAttribute("href").substring(1))]);i.forEach(e=>e.addEventListener("click",t=>{t.preventDefault();const i=e.getBoundingClientRect();n(e.dataset.tab);const o=e.getBoundingClientRect();window.scrollBy(0,o.top-i.top)})),t.push(o)}const o=new URLSearchParams(window.location.search),r=new Set(null===(e=o.get("tabs"))||void 0===e?void 0:e.split(","));for(const e of r)n(e,!1)}}(TabGroup||(TabGroup={})),function(e){e.init=function(){const e=document.querySelector(".toc-menu-button"),t=document.querySelector(".toc-items");e&&t&&e.addEventListener("click",()=>{t.classList.contains("open")?t.classList.remove("open"):t.classList.add("open")})}}(TOC||(TOC={}));var Versioning,MainMenu,__awaiter=this&&this.__awaiter||function(e,t,n,i){return new(n||(n=Promise))(function(o,r){function s(e){try{l(i.next(e))}catch(e){r(e)}}function a(e){try{l(i.throw(e))}catch(e){r(e)}}function l(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n(function(e){e(t)})).then(s,a)}l((i=i.apply(e,t||[])).next())})};function main(){hljs.initHighlighting(),Versioning.init(),Theme.init(),Affix.init(),TabGroup.init(),TOC.init(),MainMenu.init()}!function(e){const t=/^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/;function n(e){const n=e.match(t);return n?{major:parseInt(n[1]),minor:parseInt(n[2]),patch:parseInt(n[3]),prerelease:n[4],build:n[5]}:null}function i(e,t){const i=n(e),o=n(t);if(!i||!o)return 0;if(e==t)return 0;const r=[i.major,i.minor,i.patch],s=[o.major,o.minor,o.patch];for(let e=0;e<3;e++){if(r[e]s[e])return 1}if(i.prerelease&&!o.prerelease)return-1;if(i.prerelease&&o.prerelease){return((e,t)=>{const n=Math.min(e.length,t.length);let i=0;for(let o=0;o"master"==e.tag?-1:"master"==t.tag?1:(console.log(e.version,t.version,i(e.version,t.version)),-i(e.version,t.version)));const r=e.versions.map(e=>({v:e,semVer:n(e.version)})),s=r.filter(e=>!e.semVer).map(e=>e.v),a=r.filter(e=>e.semVer&&e.semVer.prerelease).map(e=>e.v),l=r.filter(e=>e.semVer&&!e.semVer.prerelease).map(e=>e.v),c=(e,t,n)=>{for(const n of e){const e=document.createElement("option");e.value=n.tag,e.textContent=t(n),o.appendChild(e)}if(n&&e.length>0){const e=document.createElement("option");e.disabled=!0,e.textContent="──────────",o.appendChild(e)}};c(s,e=>e.version,!0),c(a,e=>e.version,!0),c(l,t=>t.version+(t.tag==e.latestTag?" (latest)":""),!1),o.value=docsVersion,t.appendChild(o),o.addEventListener("change",()=>{const e=o.value;window.location.href=`/${e}`});const d=document.getElementById("global-messages");if(d)if("master"==docsVersion){const t=document.createElement("div");t.classList.add("message"),t.innerHTML=`You are viewing documentation for a yet unreleased BepInEx version. View latest stable docs (${e.latestTag}). `,t.style.backgroundColor="#CA8423",d.appendChild(t)}else if(a.some(e=>e.tag==docsVersion)){const t=document.createElement("div");t.classList.add("message"),t.innerHTML=`You are viewing documentation for a prerelease BepInEx version. View latest stable docs (${e.latestTag}). `,t.style.backgroundColor="#CA8423",d.appendChild(t)}else if(docsVersion!=e.latestTag){const t=document.createElement("div");t.classList.add("message"),t.innerHTML=`You are viewing old documentation. View latest stable docs (${e.latestTag}). `,t.style.backgroundColor="#CA3423",d.appendChild(t)}})}}(Versioning||(Versioning={})),function(e){e.init=function(){let e=document.getElementById("menu-switch"),t=document.querySelector("header > nav");e&&e.addEventListener("click",e=>{e.preventDefault(),t&&(t.classList.contains("open")?t.classList.remove("open"):t.classList.add("open"))})}}(MainMenu||(MainMenu={})),main();
\ No newline at end of file
diff --git a/master/static/styles/main.css b/master/static/styles/main.css
new file mode 100644
index 00000000..e69de29b
diff --git a/master/static/styles/template.css b/master/static/styles/template.css
new file mode 100644
index 00000000..a4ec47e1
--- /dev/null
+++ b/master/static/styles/template.css
@@ -0,0 +1 @@
+/*! modern-normalize v1.0.0 | MIT License | https://github.com/sindresorhus/modern-normalize */*,::after,::before{box-sizing:border-box}:root{-moz-tab-size:4;-o-tab-size:4;tab-size:4}html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,'Segoe UI',Roboto,Helvetica,Arial,sans-serif,'Apple Color Emoji','Segoe UI Emoji'}hr{height:0;color:inherit}abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Consolas,'Liberation Mono',Menlo,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,select{text-transform:none}[type=button],button{-webkit-appearance:button}legend{padding:0}progress{vertical-align:baseline}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}button{background-color:transparent;background-image:none}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}fieldset{margin:0;padding:0}ol,ul{list-style:none;margin:0;padding:0}html{font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";line-height:1.5}body{font-family:inherit;line-height:inherit}*,::after,::before{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e7e5e4}hr{border-top-width:1px}img{border-style:solid}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{color:#a8a29e}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#a8a29e}input::placeholder,textarea::placeholder{color:#a8a29e}button{cursor:pointer}table{border-collapse:collapse}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}button,input,optgroup,select,textarea{padding:0;line-height:inherit;color:inherit}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}.table{display:table}*{--tw-shadow:0 0 rgba(0,0,0,0)}*{--tw-ring-inset:var(--tw-empty, );/*!*//*!*/--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59, 130, 246, 0.5);--tw-ring-offset-shadow:0 0 rgba(0,0,0,0);--tw-ring-shadow:0 0 rgba(0,0,0,0)}@-webkit-keyframes spin{to{transform:rotate(360deg)}}@keyframes spin{to{transform:rotate(360deg)}}@-webkit-keyframes ping{100%,75%{transform:scale(2);opacity:0}}@keyframes ping{100%,75%{transform:scale(2);opacity:0}}@-webkit-keyframes pulse{50%{opacity:.5}}@keyframes pulse{50%{opacity:.5}}@-webkit-keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes bounce{0%,100%{transform:translateY(-25%);-webkit-animation-timing-function:cubic-bezier(.8,0,1,1);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;-webkit-animation-timing-function:cubic-bezier(0,0,.2,1);animation-timing-function:cubic-bezier(0,0,.2,1)}}@font-face{font-family:fontello;src:url(../../fonts/fontello.eot?20513952);src:url(../../fonts/fontello.eot?20513952#iefix) format('embedded-opentype'),url(../../fonts/fontello.woff2?20513952) format('woff2'),url(../../fonts/fontello.woff?20513952) format('woff'),url(../../fonts/fontello.ttf?20513952) format('truetype'),url(../../fonts/fontello.svg?20513952#fontello) format('svg');font-weight:400;font-style:normal}[class*=" icon-"]:before,[class^=icon-]:before{font-family:fontello;font-style:normal;font-weight:400;speak:never;display:inline-block;text-decoration:inherit;width:1em;margin-right:.2em;text-align:center;font-feature-settings:normal;font-variant:normal;text-transform:none;line-height:1em;margin-left:.2em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.inheritance>span::before,aside.affix summary::before,aside.toc summary::after{cursor:pointer;font-family:fontello;font-style:normal;font-weight:400;speak:never;display:inline-block;text-decoration:inherit;text-align:center;font-feature-settings:normal;font-variant:normal;text-transform:none;width:1em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.icon-lightbulb:before{content:'\f0eb'}.icon-angle-right:before{content:'\f105'}.icon-angle-down:before{content:'\f107'}.icon-angle-up:before{content:'\f106'}.icon-level-up:before{content:'\f148'}.icon-menu:before{content:'\f0c9'}.dark body{--tw-bg-opacity:1;background-color:rgba(68,64,60,var(--tw-bg-opacity))}body{display:grid;font-weight:400;min-height:100vh;font-family:Roboto,sans-serif;grid-template-rows:auto auto auto auto 1fr auto;grid-template-columns:-webkit-max-content minmax(auto,2fr) 1fr;grid-template-columns:max-content minmax(auto,2fr) 1fr;grid-template-areas:"header header header" "messages messages messages" "breadcrumb breadcrumb breadcrumb" "toc toc toc" "affix . ." "main main main" "footer footer footer"}header{--tw-bg-opacity:1;background-color:rgba(250,250,249,var(--tw-bg-opacity));--tw-border-opacity:1;border-color:rgba(231,229,228,var(--tw-border-opacity));border-bottom-width:2px;grid-area:header}section#global-messages{display:flex;flex-direction:column;font-size:.875rem;line-height:1.25rem;grid-area:messages}section#global-messages>div.message{padding-left:.5rem;padding-right:.5rem;padding-top:.75rem;padding-bottom:.75rem;text-align:center;--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity));width:100%}section#global-messages>div.message a{font-weight:500}section.breadcrumb{--tw-bg-opacity:1;background-color:rgba(245,245,244,var(--tw-bg-opacity));--tw-border-opacity:1;border-color:rgba(231,229,228,var(--tw-border-opacity));border-bottom-width:2px;font-weight:300;font-size:.75rem;line-height:1rem;padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;padding-right:1rem;--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity));grid-area:breadcrumb}section.breadcrumb>span:not(:last-child)::after{--tw-text-opacity:1;color:rgba(168,162,158,var(--tw-text-opacity));content:'/'}section.breadcrumb a{--tw-text-opacity:1;color:rgba(113,63,18,var(--tw-text-opacity))}section.breadcrumb a:hover{--tw-text-opacity:1;color:rgba(202,138,4,var(--tw-text-opacity))}nav{display:grid;align-items:center;grid-template-rows:auto auto auto;grid-template-columns:-webkit-max-content 1fr auto auto;grid-template-columns:max-content 1fr auto auto;grid-template-areas:"logo . light menu-icon" "menu menu menu menu" "versions versions versions versions"}nav>.navbar-brand{grid-area:logo}nav>#version-picker{--tw-bg-opacity:1;background-color:rgba(245,245,244,var(--tw-bg-opacity));display:none;padding-top:.5rem;padding-bottom:.5rem;width:100%;grid-area:versions}nav>#version-picker>select{display:block;margin:auto}nav>#theme-switch{grid-area:light}nav>#menu-switch{grid-area:menu-icon}nav>div.nav{--tw-bg-opacity:1;background-color:rgba(245,245,244,var(--tw-bg-opacity));display:none;flex-direction:column;grid-area:menu}nav>div.nav>.nav-item>a{display:block;font-weight:300;padding-top:.75rem;padding-bottom:.75rem;padding-left:.75rem;padding-right:.75rem;--tw-text-opacity:1;color:rgba(113,63,18,var(--tw-text-opacity))}nav>div.nav>.nav-item>a:hover{--tw-bg-opacity:1;background-color:rgba(231,229,228,var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(161,98,7,var(--tw-text-opacity))}nav.open>#version-picker{display:block}nav.open>div.nav{display:flex}.navbar-brand>img{height:6rem;margin-left:.5rem;margin-right:.5rem}a#menu-switch,a#theme-switch{cursor:pointer;font-size:1.875rem;line-height:2.25rem;--tw-text-opacity:1;color:rgba(0,0,0,var(--tw-text-opacity))}main{color:#44403c;max-width:65ch}main [class~=lead]{color:#57534e;font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}main a{color:#1c1917;text-decoration:underline;font-weight:500}main strong{color:#1c1917;font-weight:600}main ol{counter-reset:list-counter;margin-top:1.25em;margin-bottom:1.25em}main ol>li{position:relative;counter-increment:list-counter;padding-left:1.75em}main ol>li::before{content:counter(list-counter) ".";position:absolute;font-weight:400;color:#78716c;left:0}main ul>li{position:relative;padding-left:1.75em}main ul>li::before{content:"";position:absolute;background-color:#d6d3d1;border-radius:50%;width:.375em;height:.375em;top:calc(.875em - .1875em);left:.25em}main hr{border-color:#e7e5e4;border-top-width:1px;margin-top:3em;margin-bottom:3em}main blockquote{font-weight:500;font-style:italic;color:#1c1917;border-left-width:.25rem;border-left-color:#e7e5e4;quotes:"\201C""\201D""\2018""\2019";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}main blockquote p:first-of-type::before{content:open-quote}main blockquote p:last-of-type::after{content:close-quote}main h1{color:#1c1917;font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}main h2{color:#1c1917;font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}main h3{color:#1c1917;font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}main h4{color:#1c1917;font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}main figure figcaption{color:#78716c;font-size:.875em;line-height:1.4285714;margin-top:.8571429em}main code{color:#1c1917;font-weight:600;font-size:.875em}main code::before{content:"`"}main code::after{content:"`"}main a code{color:#1c1917}main pre{color:#e7e5e4;background-color:#292524;overflow-x:auto;font-size:.875em;line-height:1.7142857;margin-top:1.7142857em;margin-bottom:1.7142857em;border-radius:.375rem;padding-top:.8571429em;padding-right:1.1428571em;padding-bottom:.8571429em;padding-left:1.1428571em}main pre code{background-color:transparent;border-width:0;border-radius:0;padding:0;font-weight:400;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}main pre code::before{content:""}main pre code::after{content:""}main table{width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}main thead{color:#1c1917;font-weight:600;border-bottom-width:1px;border-bottom-color:#d6d3d1}main thead th{vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}main tbody tr{border-bottom-width:1px;border-bottom-color:#e7e5e4}main tbody tr:last-child{border-bottom-width:0}main tbody td{vertical-align:top;padding-top:.5714286em;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}main{font-size:1rem;line-height:1.75}main p{margin-top:1.25em;margin-bottom:1.25em}main img{margin-top:2em;margin-bottom:2em}main video{margin-top:2em;margin-bottom:2em}main figure{margin-top:2em;margin-bottom:2em}main figure>*{margin-top:0;margin-bottom:0}main h2 code{font-size:.875em}main h3 code{font-size:.9em}main ul{margin-top:1.25em;margin-bottom:1.25em}main li{margin-top:.5em;margin-bottom:.5em}main>ul>li p{margin-top:.75em;margin-bottom:.75em}main>ul>li>:first-child{margin-top:1.25em}main>ul>li>:last-child{margin-bottom:1.25em}main>ol>li>:first-child{margin-top:1.25em}main>ol>li>:last-child{margin-bottom:1.25em}main ol ol,main ol ul,main ul ol,main ul ul{margin-top:.75em;margin-bottom:.75em}.prose ol ol,.prose ol ul,.prose ul ol,.prose ul ul{margin-top:.75em;margin-bottom:.75em;margin-top:.75em;margin-bottom:.75em;margin-top:.75em;margin-bottom:.75em}main hr+*{margin-top:0}main h2+*{margin-top:0}main h3+*{margin-top:0}main h4+*{margin-top:0}main thead th:first-child{padding-left:0}main thead th:last-child{padding-right:0}main tbody td:first-child{padding-left:0}main tbody td:last-child{padding-right:0}main>:first-child{margin-top:0}main>:last-child{margin-bottom:0}.dark main{color:#e7e5e4}.dark main h1{color:#e7e5e4}.dark main h2{color:#e7e5e4}.dark main h3{color:#e7e5e4}.dark main h4{color:#e7e5e4}.dark main h5{color:#e7e5e4}.dark main h6{color:#e7e5e4}.dark main strong{color:#e7e5e4}.dark main code{color:#e7e5e4}.dark main figcaption{color:#78716c}main{max-width:64rem;padding:1.25rem;grid-area:main}main.center{justify-self:center}main section[role=tabpanel]{padding-top:.75rem;padding-bottom:.75rem}footer{--tw-bg-opacity:1;background-color:rgba(245,245,244,var(--tw-bg-opacity));display:flex;flex-direction:column;align-items:flex-end;font-size:.875rem;line-height:1.25rem;padding-left:1rem;padding-right:1rem;padding-top:2.5rem;padding-bottom:2.5rem;--tw-text-opacity:1;color:rgba(68,64,60,var(--tw-text-opacity));grid-area:footer}aside.toc{font-weight:300;--tw-text-opacity:1;color:rgba(28,25,23,var(--tw-text-opacity));grid-area:toc}aside.toc>span.toc-menu-button{display:flex;flex-direction:row;align-items:center;justify-content:center;font-weight:300;padding-top:.5rem;padding-bottom:.5rem;text-transform:uppercase}aside.toc>div.toc-items{display:none;padding-top:.75rem;padding-bottom:.75rem}aside.toc>div.toc-items.open{display:block}aside.toc span{cursor:pointer}aside.toc ul ul{font-size:.875rem;line-height:1.25rem}aside.toc ul ul>li>:first-child{padding-left:1rem}aside.toc ul ul ul{font-size:.75rem;line-height:1rem}aside.toc ul ul ul>li>:first-child{padding-left:1.25rem}aside.toc summary{display:flex;align-items:center;list-style:none}aside.toc summary::-webkit-details-marker{display:none}aside.toc summary>*{flex-grow:1}aside.toc details>summary::after{font-size:1.125rem;line-height:1.75rem;content:'\f107'}aside.toc details[open]>summary::after{content:'\f106'}aside.toc details:focus,aside.toc summary:focus{outline:2px solid transparent;outline-offset:2px}aside.toc a,aside.toc span{display:block;padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;padding-right:.5rem}aside.toc a.active,aside.toc span.active{font-weight:400;--tw-text-opacity:1;color:rgba(113,63,18,var(--tw-text-opacity))}aside.toc details>summary{padding-left:1rem;margin-left:calc(-2 * .5rem)}aside.toc details>summary>a{padding-left:0}aside.toc a:hover,aside.toc span:hover,aside.toc summary:hover{--tw-bg-opacity:1;background-color:rgba(245,245,244,var(--tw-bg-opacity))}aside.affix{font-size:.875rem;line-height:1.25rem;padding-left:1.25rem;padding-right:1.25rem;padding-top:1.25rem;grid-area:affix}aside.affix .source-links a{font-weight:700;font-size:.75rem;line-height:1rem}aside.affix li{--tw-border-opacity:1;border-color:rgba(133,77,14,var(--tw-border-opacity));border-style:solid;border-left-width:4px;padding-left:.5rem}aside.affix h1{font-weight:700;margin-top:.5rem;margin-bottom:.5rem;--tw-text-opacity:1;color:rgba(87,83,78,var(--tw-text-opacity))}aside.affix ul ul li{margin-left:-.75rem;padding-left:2rem}aside.affix li.active{--tw-border-opacity:1;border-color:rgba(202,138,4,var(--tw-border-opacity))}aside.affix li.active>a,aside.affix li.active>details>summary>a{font-weight:700}aside.affix summary{display:flex;align-items:center;list-style:none}aside.affix summary::-webkit-details-marker{display:none}aside.affix details summary::before{content:'\f107'}aside.affix details[open] summary::before{content:'\f106'}aside.affix details:focus,aside.affix summary:focus{outline:2px solid transparent;outline-offset:2px}@media (min-width:768px){body{grid-template-areas:"header header header" "messages messages messages" "breadcrumb breadcrumb breadcrumb" ". . ." "toc affix ." "toc main main" "footer footer footer"}nav{grid-template-rows:auto;grid-template-columns:-webkit-max-content 1fr auto auto;grid-template-columns:max-content 1fr auto auto;grid-template-areas:"logo menu versions light"}nav>#menu-switch{display:none}nav>#version-picker{--tw-bg-opacity:1;background-color:rgba(250,250,249,var(--tw-bg-opacity));display:block}nav>div.nav{--tw-bg-opacity:1;background-color:rgba(250,250,249,var(--tw-bg-opacity));display:flex;flex-direction:row}nav>div.nav>.nav-item>a:hover{--tw-bg-opacity:1;background-color:rgba(250,250,249,var(--tw-bg-opacity))}aside.toc{padding-left:1.25rem;padding-right:1.25rem;min-width:15rem}aside.toc>span.toc-menu-button{display:none}aside.toc>div.toc-items{display:block;max-height:100vh;overflow-y:auto;position:-webkit-sticky;position:sticky;top:0}}@media (min-width:1280px){body{grid-template-areas:"header header header" "messages messages messages" "breadcrumb breadcrumb breadcrumb" "toc main affix" "toc main affix" "toc main affix" "footer footer footer"}aside.affix{padding-top:1.25rem;padding-bottom:1.25rem}aside.affix>div{position:-webkit-sticky;position:sticky;top:.75rem}main.to-affix{grid-column-end:affix}main.from-toc{grid-column-start:toc}}::-webkit-scrollbar{width:8px;height:8px}:root{--scrollbar-track-light:#f5f5f4;--scrollbar-track-thumb-light:#d6d3d1;--scrollbar-thumb-hover-light:#a8a29e}::-webkit-scrollbar-track{background-color:var(--scrollbar-track)}::-webkit-scrollbar-thumb{background-color:var(--scrollbar-track-thumb)}::-webkit-scrollbar-thumb:hover{background-color:var(--scrollbar-thumb-hover)}main .tabGroup{--unselected-color:#000;--selected-color:#854d0e;--link-color:#000;--tab-border-color:#f5f5f4}main .tabGroup>ul{margin-bottom:0}main .tabGroup>ul>li{display:inline-block;padding-left:0}main .tabGroup>ul>li a:focus,main .tabGroup>ul>li:focus{outline-color:var(--selected-color);outline-width:1px}main .tabGroup>ul>li::before{display:none}main .tabGroup>ul>li a{border-style:solid;border-bottom-width:2px;padding-left:.75rem;padding-right:.75rem;padding-bottom:.25rem;text-decoration:none;color:var(--link-color);border-color:var(--unselected-color)}main .tabGroup>ul>li a:hover,main .tabGroup>ul>li a[tabindex="0"]{color:var(--selected-color);border-color:var(--selected-color)}main .tabGroup>section{border-width:1px;padding-left:1rem;padding-right:1rem;border-color:var(--tab-border-color)}.dark main .tabGroup{--unselected-color:#fff;--selected-color:#fef9c3;--link-color:#f5f5f4;--tab-border-color:#57534e}main div.CAUTION,main div.IMPORTANT,main div.NOTE,main div.TIP,main div.WARNING{--tw-bg-opacity:1;background-color:rgba(245,245,244,var(--tw-bg-opacity));border-style:solid;border-left-width:8px;margin-top:.75rem;margin-bottom:.75rem;padding-top:.75rem;padding-bottom:.75rem;padding-right:.75rem;padding-left:2.5rem}main div.CAUTION,main div.IMPORTANT,main div.NOTE,main div.TIP,main div.WARNING{border-left-color:var(--alert-color)}main div.CAUTION>h5,main div.IMPORTANT>h5,main div.NOTE>h5,main div.TIP>h5,main div.WARNING>h5{font-weight:600;font-size:1.125rem;line-height:1.75rem;text-transform:uppercase;color:var(--alert-color)}main div.CAUTION>:nth-child(2),main div.IMPORTANT>:nth-child(2),main div.NOTE>:nth-child(2),main div.TIP>:nth-child(2),main div.WARNING>:nth-child(2){margin-top:.5rem}main div.CAUTION>:last-child,main div.IMPORTANT>:last-child,main div.NOTE>:last-child,main div.TIP>:last-child,main div.WARNING>:last-child{margin-bottom:.5rem}main div.NOTE{--alert-color:#3b82f6}main div.TIP{--alert-color:#3b82f6}main div.WARNING{--alert-color:#eab308}main div.IMPORTANT{--alert-color:#ef4444}main div.CAUTION{--alert-color:#ef4444}.dark main div.CAUTION,.dark main div.IMPORTANT,.dark main div.NOTE,.dark main div.TIP,.dark main div.WARNING{--tw-bg-opacity:1;background-color:rgba(28,25,23,var(--tw-bg-opacity))}.class-metadata{font-size:.75rem;line-height:1rem;margin-top:.5rem;margin-bottom:.5rem}.class-metadata>h5{font-weight:500;font-size:.875rem;line-height:1.25rem}.class-metadata>span{display:block}.inheritance>span{display:block;padding-left:calc(var(--inheritance-level) * 1rem + .25rem)}.inheritance>span::before{cursor:default;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;transform:translate3d(var(--tw-translate-x),var(--tw-translate-y),0) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));--tw-rotate:90deg;--tw-translate-x:-0.25rem;content:'\f148'}.class-summary{font-weight:300;font-size:1.125rem;line-height:1.75rem}.member-desc{margin-top:.5rem;margin-bottom:2rem}.member-desc h5{font-weight:500;font-size:.875rem;line-height:1.25rem}.member-desc table td p{margin-top:0;margin-bottom:0}.member-desc pre,.member-desc table{margin-top:.25rem;margin-bottom:1.5rem}.member-desc table code{font-size:.875rem;line-height:1.25rem}.member-desc table code::after,.member-desc table code::before{content:""}.member-desc::after{--tw-border-opacity:1;border-color:rgba(231,229,228,var(--tw-border-opacity));border-style:solid;border-bottom-width:1px;display:block;width:100%;content:""}.member-desc .summary{font-weight:300}.member-header{display:flex;flex-direction:row;align-items:center}.member-header>*{margin-top:0;margin-bottom:0}.member-header h4{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1.125rem;line-height:1.75rem}.member-header .contribution-info{display:none;font-size:.75rem;line-height:1rem;margin-left:auto}@media (min-width:768px){.member-header .contribution-info{display:block}}main pre{--tw-bg-opacity:1;background-color:rgba(250,250,249,var(--tw-bg-opacity))}.hljs{--tw-bg-opacity:1;background-color:rgba(250,250,249,var(--tw-bg-opacity));display:block;overflow-x:auto;color:#000}.hljs-comment,.hljs-quote,.hljs-variable{color:green}.hljs-built_in,.hljs-keyword,.hljs-name,.hljs-selector-tag,.hljs-tag{color:#00f}.hljs-addition,.hljs-attribute,.hljs-literal,.hljs-section,.hljs-string,.hljs-template-tag,.hljs-template-variable,.hljs-title,.hljs-type{color:#a31515}.hljs-deletion,.hljs-meta,.hljs-selector-attr,.hljs-selector-pseudo{color:#2b91af}.hljs-doctag{color:grey}.hljs-attr{color:red}.hljs-bullet,.hljs-link,.hljs-symbol{color:#00b0e8}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.dark main pre{background:#1e1e1e}.dark .hljs{display:block;overflow-x:auto;background:#1e1e1e;color:#dcdcdc}.dark .hljs-keyword,.dark .hljs-literal,.dark .hljs-name,.dark .hljs-symbol{color:#569cd6}.dark .hljs-link{color:#569cd6;text-decoration:underline}.dark .hljs-built_in,.dark .hljs-type{color:#4ec9b0}.dark .hljs-class,.dark .hljs-number{color:#b8d7a3}.dark .hljs-meta-string,.dark .hljs-string{color:#d69d85}.dark .hljs-regexp,.dark .hljs-template-tag{color:#9a5334}.dark .hljs-formula,.dark .hljs-function,.dark .hljs-params,.dark .hljs-subst,.dark .hljs-title{color:#dcdcdc}.dark .hljs-comment,.dark .hljs-quote{color:#57a64a;font-style:italic}.dark .hljs-doctag{color:#608b4e}.dark .hljs-meta,.dark .hljs-meta-keyword,.dark .hljs-tag{color:#9b9b9b}.dark .hljs-template-variable,.dark .hljs-variable{color:#bd63c5}.dark .hljs-attr,.dark .hljs-attribute,.dark .hljs-builtin-name{color:#9cdcfe}.dark .hljs-section{color:gold}.dark .hljs-emphasis{font-style:italic}.dark .hljs-strong{font-weight:700}.dark .hljs-bullet,.dark .hljs-selector-attr,.dark .hljs-selector-class,.dark .hljs-selector-id,.dark .hljs-selector-pseudo,.dark .hljs-selector-tag{color:#d7ba7d}.dark .hljs-addition{background-color:#144212;display:inline-block;width:100%}.dark .hljs-deletion{background-color:#600;display:inline-block;width:100%}.dark body{--tw-bg-opacity:1;background-color:rgba(41,37,36,var(--tw-bg-opacity))}.dark header{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity));--tw-border-opacity:1;border-color:rgba(87,83,78,var(--tw-border-opacity))}.dark section.breadcrumb{--tw-bg-opacity:1;background-color:rgba(28,25,23,var(--tw-bg-opacity));--tw-border-opacity:1;border-color:rgba(0,0,0,var(--tw-border-opacity));--tw-text-opacity:1;color:rgba(214,211,209,var(--tw-text-opacity))}.dark aside.toc{--tw-text-opacity:1;color:rgba(245,245,244,var(--tw-text-opacity))}.dark aside.toc a.active,.dark aside.toc span.active{--tw-text-opacity:1;color:rgba(254,249,195,var(--tw-text-opacity))}.dark aside.toc a:hover,.dark aside.toc span:hover,.dark aside.toc summary:hover{--tw-bg-opacity:1;background-color:rgba(28,25,23,var(--tw-bg-opacity))}.dark section.breadcrumb a{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark section.breadcrumb a:hover{--tw-text-opacity:1;color:rgba(254,252,232,var(--tw-text-opacity))}.dark div.nav>.nav-item>a{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark div.nav>.nav-item>a:hover{--tw-text-opacity:1;color:rgba(254,249,195,var(--tw-text-opacity))}.dark a#menu-switch,.dark a#theme-switch{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark aside.affix{--tw-text-opacity:1;color:rgba(255,255,255,var(--tw-text-opacity))}.dark aside.affix .source-links a{--tw-text-opacity:1;color:rgba(254,240,138,var(--tw-text-opacity))}.dark aside.affix li{--tw-border-opacity:1;border-color:rgba(214,211,209,var(--tw-border-opacity))}.dark aside.affix h1{--tw-text-opacity:1;color:rgba(214,211,209,var(--tw-text-opacity))}.dark aside.affix li.active{--tw-border-opacity:1;border-color:rgba(168,162,158,var(--tw-border-opacity))}.dark main a{--tw-text-opacity:1;color:rgba(254,240,138,var(--tw-text-opacity))}.dark main a:hover{--tw-text-opacity:1;color:rgba(254,240,138,var(--tw-text-opacity))}.dark main thead{--tw-text-opacity:1;color:rgba(231,229,228,var(--tw-text-opacity))}.dark main ol>li::before{--tw-text-opacity:1;color:rgba(214,211,209,var(--tw-text-opacity))}.dark footer{--tw-bg-opacity:1;background-color:rgba(28,25,23,var(--tw-bg-opacity));--tw-text-opacity:1;color:rgba(214,211,209,var(--tw-text-opacity))}.dark nav>#version-picker{--tw-bg-opacity:1;background-color:rgba(28,25,23,var(--tw-bg-opacity))}.dark nav>div.nav{--tw-bg-opacity:1;background-color:rgba(28,25,23,var(--tw-bg-opacity))}.dark nav>div.nav>.nav-item>a:hover{--tw-bg-opacity:1;background-color:rgba(68,64,60,var(--tw-bg-opacity))}@media (min-width:768px){.dark nav>#version-picker{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark nav>div.nav{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}.dark nav>div.nav>.nav-item>a:hover{--tw-bg-opacity:1;background-color:rgba(0,0,0,var(--tw-bg-opacity))}}:root{--scrollbar-track-dark:#1c1917;--scrollbar-track-thumb-dark:#44403c;--scrollbar-thumb-hover-dark:#57534e}
\ No newline at end of file
diff --git a/master/toc.html b/master/toc.html
new file mode 100644
index 00000000..ef104556
--- /dev/null
+++ b/master/toc.html
@@ -0,0 +1,24 @@
+
+
\ No newline at end of file
diff --git a/master/xrefmap.yml b/master/xrefmap.yml
new file mode 100644
index 00000000..6daed62f
--- /dev/null
+++ b/master/xrefmap.yml
@@ -0,0 +1,8618 @@
+### YamlMime:XRefMap
+sorted: true
+references:
+- uid: api
+ name: BepInEx API documentation
+ href: api/index.html
+- uid: BepInEx
+ name: BepInEx
+ href: api/BepInEx.html
+ commentId: N:BepInEx
+ fullName: BepInEx
+ nameWithType: BepInEx
+- uid: BepInEx.BepInDependency
+ name: BepInDependency
+ href: api/BepInEx.BepInDependency.html
+ commentId: T:BepInEx.BepInDependency
+ fullName: BepInEx.BepInDependency
+ nameWithType: BepInDependency
+- uid: BepInEx.BepInDependency.#ctor(System.String,BepInEx.BepInDependency.DependencyFlags)
+ name: BepInDependency(String, BepInDependency.DependencyFlags)
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency__ctor_System_String_BepInEx_BepInDependency_DependencyFlags_
+ commentId: M:BepInEx.BepInDependency.#ctor(System.String,BepInEx.BepInDependency.DependencyFlags)
+ fullName: BepInEx.BepInDependency.BepInDependency(System.String, BepInEx.BepInDependency.DependencyFlags)
+ nameWithType: BepInDependency.BepInDependency(String, BepInDependency.DependencyFlags)
+- uid: BepInEx.BepInDependency.#ctor(System.String,System.String)
+ name: BepInDependency(String, String)
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency__ctor_System_String_System_String_
+ commentId: M:BepInEx.BepInDependency.#ctor(System.String,System.String)
+ fullName: BepInEx.BepInDependency.BepInDependency(System.String, System.String)
+ nameWithType: BepInDependency.BepInDependency(String, String)
+- uid: BepInEx.BepInDependency.#ctor*
+ name: BepInDependency
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency__ctor_
+ commentId: Overload:BepInEx.BepInDependency.#ctor
+ isSpec: "True"
+ fullName: BepInEx.BepInDependency.BepInDependency
+ nameWithType: BepInDependency.BepInDependency
+- uid: BepInEx.BepInDependency.BepInEx#Bootstrap#ICacheable#Load(System.IO.BinaryReader)
+ name: ICacheable.Load(BinaryReader)
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_BepInEx_Bootstrap_ICacheable_Load_System_IO_BinaryReader_
+ commentId: M:BepInEx.BepInDependency.BepInEx#Bootstrap#ICacheable#Load(System.IO.BinaryReader)
+ name.vb: BepInEx.Bootstrap.ICacheable.Load(BinaryReader)
+ fullName: BepInEx.BepInDependency.BepInEx.Bootstrap.ICacheable.Load(System.IO.BinaryReader)
+ nameWithType: BepInDependency.ICacheable.Load(BinaryReader)
+ nameWithType.vb: BepInDependency.BepInEx.Bootstrap.ICacheable.Load(BinaryReader)
+- uid: BepInEx.BepInDependency.BepInEx#Bootstrap#ICacheable#Load*
+ name: ICacheable.Load
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_BepInEx_Bootstrap_ICacheable_Load_
+ commentId: Overload:BepInEx.BepInDependency.BepInEx#Bootstrap#ICacheable#Load
+ isSpec: "True"
+ name.vb: BepInEx.Bootstrap.ICacheable.Load
+ fullName: BepInEx.BepInDependency.BepInEx.Bootstrap.ICacheable.Load
+ nameWithType: BepInDependency.ICacheable.Load
+ nameWithType.vb: BepInDependency.BepInEx.Bootstrap.ICacheable.Load
+- uid: BepInEx.BepInDependency.BepInEx#Bootstrap#ICacheable#Save(System.IO.BinaryWriter)
+ name: ICacheable.Save(BinaryWriter)
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_BepInEx_Bootstrap_ICacheable_Save_System_IO_BinaryWriter_
+ commentId: M:BepInEx.BepInDependency.BepInEx#Bootstrap#ICacheable#Save(System.IO.BinaryWriter)
+ name.vb: BepInEx.Bootstrap.ICacheable.Save(BinaryWriter)
+ fullName: BepInEx.BepInDependency.BepInEx.Bootstrap.ICacheable.Save(System.IO.BinaryWriter)
+ nameWithType: BepInDependency.ICacheable.Save(BinaryWriter)
+ nameWithType.vb: BepInDependency.BepInEx.Bootstrap.ICacheable.Save(BinaryWriter)
+- uid: BepInEx.BepInDependency.BepInEx#Bootstrap#ICacheable#Save*
+ name: ICacheable.Save
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_BepInEx_Bootstrap_ICacheable_Save_
+ commentId: Overload:BepInEx.BepInDependency.BepInEx#Bootstrap#ICacheable#Save
+ isSpec: "True"
+ name.vb: BepInEx.Bootstrap.ICacheable.Save
+ fullName: BepInEx.BepInDependency.BepInEx.Bootstrap.ICacheable.Save
+ nameWithType: BepInDependency.ICacheable.Save
+ nameWithType.vb: BepInDependency.BepInEx.Bootstrap.ICacheable.Save
+- uid: BepInEx.BepInDependency.DependencyFlags
+ name: BepInDependency.DependencyFlags
+ href: api/BepInEx.BepInDependency.DependencyFlags.html
+ commentId: T:BepInEx.BepInDependency.DependencyFlags
+ fullName: BepInEx.BepInDependency.DependencyFlags
+ nameWithType: BepInDependency.DependencyFlags
+- uid: BepInEx.BepInDependency.DependencyFlags.HardDependency
+ name: HardDependency
+ href: api/BepInEx.BepInDependency.DependencyFlags.html#BepInEx_BepInDependency_DependencyFlags_HardDependency
+ commentId: F:BepInEx.BepInDependency.DependencyFlags.HardDependency
+ fullName: BepInEx.BepInDependency.DependencyFlags.HardDependency
+ nameWithType: BepInDependency.DependencyFlags.HardDependency
+- uid: BepInEx.BepInDependency.DependencyFlags.SoftDependency
+ name: SoftDependency
+ href: api/BepInEx.BepInDependency.DependencyFlags.html#BepInEx_BepInDependency_DependencyFlags_SoftDependency
+ commentId: F:BepInEx.BepInDependency.DependencyFlags.SoftDependency
+ fullName: BepInEx.BepInDependency.DependencyFlags.SoftDependency
+ nameWithType: BepInDependency.DependencyFlags.SoftDependency
+- uid: BepInEx.BepInDependency.DependencyGUID
+ name: DependencyGUID
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_DependencyGUID
+ commentId: P:BepInEx.BepInDependency.DependencyGUID
+ fullName: BepInEx.BepInDependency.DependencyGUID
+ nameWithType: BepInDependency.DependencyGUID
+- uid: BepInEx.BepInDependency.DependencyGUID*
+ name: DependencyGUID
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_DependencyGUID_
+ commentId: Overload:BepInEx.BepInDependency.DependencyGUID
+ isSpec: "True"
+ fullName: BepInEx.BepInDependency.DependencyGUID
+ nameWithType: BepInDependency.DependencyGUID
+- uid: BepInEx.BepInDependency.Flags
+ name: Flags
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_Flags
+ commentId: P:BepInEx.BepInDependency.Flags
+ fullName: BepInEx.BepInDependency.Flags
+ nameWithType: BepInDependency.Flags
+- uid: BepInEx.BepInDependency.Flags*
+ name: Flags
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_Flags_
+ commentId: Overload:BepInEx.BepInDependency.Flags
+ isSpec: "True"
+ fullName: BepInEx.BepInDependency.Flags
+ nameWithType: BepInDependency.Flags
+- uid: BepInEx.BepInDependency.VersionRange
+ name: VersionRange
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_VersionRange
+ commentId: P:BepInEx.BepInDependency.VersionRange
+ fullName: BepInEx.BepInDependency.VersionRange
+ nameWithType: BepInDependency.VersionRange
+- uid: BepInEx.BepInDependency.VersionRange*
+ name: VersionRange
+ href: api/BepInEx.BepInDependency.html#BepInEx_BepInDependency_VersionRange_
+ commentId: Overload:BepInEx.BepInDependency.VersionRange
+ isSpec: "True"
+ fullName: BepInEx.BepInDependency.VersionRange
+ nameWithType: BepInDependency.VersionRange
+- uid: BepInEx.BepInIncompatibility
+ name: BepInIncompatibility
+ href: api/BepInEx.BepInIncompatibility.html
+ commentId: T:BepInEx.BepInIncompatibility
+ fullName: BepInEx.BepInIncompatibility
+ nameWithType: BepInIncompatibility
+- uid: BepInEx.BepInIncompatibility.#ctor(System.String)
+ name: BepInIncompatibility(String)
+ href: api/BepInEx.BepInIncompatibility.html#BepInEx_BepInIncompatibility__ctor_System_String_
+ commentId: M:BepInEx.BepInIncompatibility.#ctor(System.String)
+ fullName: BepInEx.BepInIncompatibility.BepInIncompatibility(System.String)
+ nameWithType: BepInIncompatibility.BepInIncompatibility(String)
+- uid: BepInEx.BepInIncompatibility.#ctor*
+ name: BepInIncompatibility
+ href: api/BepInEx.BepInIncompatibility.html#BepInEx_BepInIncompatibility__ctor_
+ commentId: Overload:BepInEx.BepInIncompatibility.#ctor
+ isSpec: "True"
+ fullName: BepInEx.BepInIncompatibility.BepInIncompatibility
+ nameWithType: BepInIncompatibility.BepInIncompatibility
+- uid: BepInEx.BepInIncompatibility.BepInEx#Bootstrap#ICacheable#Load(System.IO.BinaryReader)
+ name: ICacheable.Load(BinaryReader)
+ href: api/BepInEx.BepInIncompatibility.html#BepInEx_BepInIncompatibility_BepInEx_Bootstrap_ICacheable_Load_System_IO_BinaryReader_
+ commentId: M:BepInEx.BepInIncompatibility.BepInEx#Bootstrap#ICacheable#Load(System.IO.BinaryReader)
+ name.vb: BepInEx.Bootstrap.ICacheable.Load(BinaryReader)
+ fullName: BepInEx.BepInIncompatibility.BepInEx.Bootstrap.ICacheable.Load(System.IO.BinaryReader)
+ nameWithType: BepInIncompatibility.ICacheable.Load(BinaryReader)
+ nameWithType.vb: BepInIncompatibility.BepInEx.Bootstrap.ICacheable.Load(BinaryReader)
+- uid: BepInEx.BepInIncompatibility.BepInEx#Bootstrap#ICacheable#Load*
+ name: ICacheable.Load
+ href: api/BepInEx.BepInIncompatibility.html#BepInEx_BepInIncompatibility_BepInEx_Bootstrap_ICacheable_Load_
+ commentId: Overload:BepInEx.BepInIncompatibility.BepInEx#Bootstrap#ICacheable#Load
+ isSpec: "True"
+ name.vb: BepInEx.Bootstrap.ICacheable.Load
+ fullName: BepInEx.BepInIncompatibility.BepInEx.Bootstrap.ICacheable.Load
+ nameWithType: BepInIncompatibility.ICacheable.Load
+ nameWithType.vb: BepInIncompatibility.BepInEx.Bootstrap.ICacheable.Load
+- uid: BepInEx.BepInIncompatibility.BepInEx#Bootstrap#ICacheable#Save(System.IO.BinaryWriter)
+ name: ICacheable.Save(BinaryWriter)
+ href: api/BepInEx.BepInIncompatibility.html#BepInEx_BepInIncompatibility_BepInEx_Bootstrap_ICacheable_Save_System_IO_BinaryWriter_
+ commentId: M:BepInEx.BepInIncompatibility.BepInEx#Bootstrap#ICacheable#Save(System.IO.BinaryWriter)
+ name.vb: BepInEx.Bootstrap.ICacheable.Save(BinaryWriter)
+ fullName: BepInEx.BepInIncompatibility.BepInEx.Bootstrap.ICacheable.Save(System.IO.BinaryWriter)
+ nameWithType: BepInIncompatibility.ICacheable.Save(BinaryWriter)
+ nameWithType.vb: BepInIncompatibility.BepInEx.Bootstrap.ICacheable.Save(BinaryWriter)
+- uid: BepInEx.BepInIncompatibility.BepInEx#Bootstrap#ICacheable#Save*
+ name: ICacheable.Save
+ href: api/BepInEx.BepInIncompatibility.html#BepInEx_BepInIncompatibility_BepInEx_Bootstrap_ICacheable_Save_
+ commentId: Overload:BepInEx.BepInIncompatibility.BepInEx#Bootstrap#ICacheable#Save
+ isSpec: "True"
+ name.vb: BepInEx.Bootstrap.ICacheable.Save
+ fullName: BepInEx.BepInIncompatibility.BepInEx.Bootstrap.ICacheable.Save
+ nameWithType: BepInIncompatibility.ICacheable.Save
+ nameWithType.vb: BepInIncompatibility.BepInEx.Bootstrap.ICacheable.Save
+- uid: BepInEx.BepInIncompatibility.IncompatibilityGUID
+ name: IncompatibilityGUID
+ href: api/BepInEx.BepInIncompatibility.html#BepInEx_BepInIncompatibility_IncompatibilityGUID
+ commentId: P:BepInEx.BepInIncompatibility.IncompatibilityGUID
+ fullName: BepInEx.BepInIncompatibility.IncompatibilityGUID
+ nameWithType: BepInIncompatibility.IncompatibilityGUID
+- uid: BepInEx.BepInIncompatibility.IncompatibilityGUID*
+ name: IncompatibilityGUID
+ href: api/BepInEx.BepInIncompatibility.html#BepInEx_BepInIncompatibility_IncompatibilityGUID_
+ commentId: Overload:BepInEx.BepInIncompatibility.IncompatibilityGUID
+ isSpec: "True"
+ fullName: BepInEx.BepInIncompatibility.IncompatibilityGUID
+ nameWithType: BepInIncompatibility.IncompatibilityGUID
+- uid: BepInEx.BepInPlugin
+ name: BepInPlugin
+ href: api/BepInEx.BepInPlugin.html
+ commentId: T:BepInEx.BepInPlugin
+ fullName: BepInEx.BepInPlugin
+ nameWithType: BepInPlugin
+- uid: BepInEx.BepInPlugin.#ctor(System.String,System.String,System.String)
+ name: BepInPlugin(String, String, String)
+ href: api/BepInEx.BepInPlugin.html#BepInEx_BepInPlugin__ctor_System_String_System_String_System_String_
+ commentId: M:BepInEx.BepInPlugin.#ctor(System.String,System.String,System.String)
+ fullName: BepInEx.BepInPlugin.BepInPlugin(System.String, System.String, System.String)
+ nameWithType: BepInPlugin.BepInPlugin(String, String, String)
+- uid: BepInEx.BepInPlugin.#ctor*
+ name: BepInPlugin
+ href: api/BepInEx.BepInPlugin.html#BepInEx_BepInPlugin__ctor_
+ commentId: Overload:BepInEx.BepInPlugin.#ctor
+ isSpec: "True"
+ fullName: BepInEx.BepInPlugin.BepInPlugin
+ nameWithType: BepInPlugin.BepInPlugin
+- uid: BepInEx.BepInPlugin.GUID
+ name: GUID
+ href: api/BepInEx.BepInPlugin.html#BepInEx_BepInPlugin_GUID
+ commentId: P:BepInEx.BepInPlugin.GUID
+ fullName: BepInEx.BepInPlugin.GUID
+ nameWithType: BepInPlugin.GUID
+- uid: BepInEx.BepInPlugin.GUID*
+ name: GUID
+ href: api/BepInEx.BepInPlugin.html#BepInEx_BepInPlugin_GUID_
+ commentId: Overload:BepInEx.BepInPlugin.GUID
+ isSpec: "True"
+ fullName: BepInEx.BepInPlugin.GUID
+ nameWithType: BepInPlugin.GUID
+- uid: BepInEx.BepInPlugin.Name
+ name: Name
+ href: api/BepInEx.BepInPlugin.html#BepInEx_BepInPlugin_Name
+ commentId: P:BepInEx.BepInPlugin.Name
+ fullName: BepInEx.BepInPlugin.Name
+ nameWithType: BepInPlugin.Name
+- uid: BepInEx.BepInPlugin.Name*
+ name: Name
+ href: api/BepInEx.BepInPlugin.html#BepInEx_BepInPlugin_Name_
+ commentId: Overload:BepInEx.BepInPlugin.Name
+ isSpec: "True"
+ fullName: BepInEx.BepInPlugin.Name
+ nameWithType: BepInPlugin.Name
+- uid: BepInEx.BepInPlugin.Version
+ name: Version
+ href: api/BepInEx.BepInPlugin.html#BepInEx_BepInPlugin_Version
+ commentId: P:BepInEx.BepInPlugin.Version
+ fullName: BepInEx.BepInPlugin.Version
+ nameWithType: BepInPlugin.Version
+- uid: BepInEx.BepInPlugin.Version*
+ name: Version
+ href: api/BepInEx.BepInPlugin.html#BepInEx_BepInPlugin_Version_
+ commentId: Overload:BepInEx.BepInPlugin.Version
+ isSpec: "True"
+ fullName: BepInEx.BepInPlugin.Version
+ nameWithType: BepInPlugin.Version
+- uid: BepInEx.BepInProcess
+ name: BepInProcess
+ href: api/BepInEx.BepInProcess.html
+ commentId: T:BepInEx.BepInProcess
+ fullName: BepInEx.BepInProcess
+ nameWithType: BepInProcess
+- uid: BepInEx.BepInProcess.#ctor(System.String)
+ name: BepInProcess(String)
+ href: api/BepInEx.BepInProcess.html#BepInEx_BepInProcess__ctor_System_String_
+ commentId: M:BepInEx.BepInProcess.#ctor(System.String)
+ fullName: BepInEx.BepInProcess.BepInProcess(System.String)
+ nameWithType: BepInProcess.BepInProcess(String)
+- uid: BepInEx.BepInProcess.#ctor*
+ name: BepInProcess
+ href: api/BepInEx.BepInProcess.html#BepInEx_BepInProcess__ctor_
+ commentId: Overload:BepInEx.BepInProcess.#ctor
+ isSpec: "True"
+ fullName: BepInEx.BepInProcess.BepInProcess
+ nameWithType: BepInProcess.BepInProcess
+- uid: BepInEx.BepInProcess.ProcessName
+ name: ProcessName
+ href: api/BepInEx.BepInProcess.html#BepInEx_BepInProcess_ProcessName
+ commentId: P:BepInEx.BepInProcess.ProcessName
+ fullName: BepInEx.BepInProcess.ProcessName
+ nameWithType: BepInProcess.ProcessName
+- uid: BepInEx.BepInProcess.ProcessName*
+ name: ProcessName
+ href: api/BepInEx.BepInProcess.html#BepInEx_BepInProcess_ProcessName_
+ commentId: Overload:BepInEx.BepInProcess.ProcessName
+ isSpec: "True"
+ fullName: BepInEx.BepInProcess.ProcessName
+ nameWithType: BepInProcess.ProcessName
+- uid: BepInEx.Bootstrap
+ name: BepInEx.Bootstrap
+ href: api/BepInEx.Bootstrap.html
+ commentId: N:BepInEx.Bootstrap
+ fullName: BepInEx.Bootstrap
+ nameWithType: BepInEx.Bootstrap
+- uid: BepInEx.Bootstrap.BaseChainloader`1
+ name: BaseChainloader
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html
+ commentId: T:BepInEx.Bootstrap.BaseChainloader`1
+ name.vb: BaseChainloader(Of TPlugin)
+ fullName: BepInEx.Bootstrap.BaseChainloader
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin)
+ nameWithType: BaseChainloader
+ nameWithType.vb: BaseChainloader(Of TPlugin)
+- uid: BepInEx.Bootstrap.BaseChainloader`1.ConsoleTitle
+ name: ConsoleTitle
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_ConsoleTitle
+ commentId: P:BepInEx.Bootstrap.BaseChainloader`1.ConsoleTitle
+ fullName: BepInEx.Bootstrap.BaseChainloader.ConsoleTitle
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).ConsoleTitle
+ nameWithType: BaseChainloader.ConsoleTitle
+ nameWithType.vb: BaseChainloader(Of TPlugin).ConsoleTitle
+- uid: BepInEx.Bootstrap.BaseChainloader`1.ConsoleTitle*
+ name: ConsoleTitle
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_ConsoleTitle_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.ConsoleTitle
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.ConsoleTitle
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).ConsoleTitle
+ nameWithType: BaseChainloader.ConsoleTitle
+ nameWithType.vb: BaseChainloader(Of TPlugin).ConsoleTitle
+- uid: BepInEx.Bootstrap.BaseChainloader`1.CurrentAssemblyName
+ name: CurrentAssemblyName
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_CurrentAssemblyName
+ commentId: F:BepInEx.Bootstrap.BaseChainloader`1.CurrentAssemblyName
+ fullName: BepInEx.Bootstrap.BaseChainloader.CurrentAssemblyName
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).CurrentAssemblyName
+ nameWithType: BaseChainloader.CurrentAssemblyName
+ nameWithType.vb: BaseChainloader(Of TPlugin).CurrentAssemblyName
+- uid: BepInEx.Bootstrap.BaseChainloader`1.CurrentAssemblyVersion
+ name: CurrentAssemblyVersion
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_CurrentAssemblyVersion
+ commentId: F:BepInEx.Bootstrap.BaseChainloader`1.CurrentAssemblyVersion
+ fullName: BepInEx.Bootstrap.BaseChainloader.CurrentAssemblyVersion
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).CurrentAssemblyVersion
+ nameWithType: BaseChainloader.CurrentAssemblyVersion
+ nameWithType.vb: BaseChainloader(Of TPlugin).CurrentAssemblyVersion
+- uid: BepInEx.Bootstrap.BaseChainloader`1.DependencyErrors
+ name: DependencyErrors
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_DependencyErrors
+ commentId: P:BepInEx.Bootstrap.BaseChainloader`1.DependencyErrors
+ fullName: BepInEx.Bootstrap.BaseChainloader.DependencyErrors
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).DependencyErrors
+ nameWithType: BaseChainloader.DependencyErrors
+ nameWithType.vb: BaseChainloader(Of TPlugin).DependencyErrors
+- uid: BepInEx.Bootstrap.BaseChainloader`1.DependencyErrors*
+ name: DependencyErrors
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_DependencyErrors_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.DependencyErrors
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.DependencyErrors
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).DependencyErrors
+ nameWithType: BaseChainloader.DependencyErrors
+ nameWithType.vb: BaseChainloader(Of TPlugin).DependencyErrors
+- uid: BepInEx.Bootstrap.BaseChainloader`1.DiscoverPlugins
+ name: DiscoverPlugins()
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_DiscoverPlugins
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.DiscoverPlugins
+ fullName: BepInEx.Bootstrap.BaseChainloader.DiscoverPlugins()
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).DiscoverPlugins()
+ nameWithType: BaseChainloader.DiscoverPlugins()
+ nameWithType.vb: BaseChainloader(Of TPlugin).DiscoverPlugins()
+- uid: BepInEx.Bootstrap.BaseChainloader`1.DiscoverPlugins*
+ name: DiscoverPlugins
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_DiscoverPlugins_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.DiscoverPlugins
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.DiscoverPlugins
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).DiscoverPlugins
+ nameWithType: BaseChainloader.DiscoverPlugins
+ nameWithType.vb: BaseChainloader(Of TPlugin).DiscoverPlugins
+- uid: BepInEx.Bootstrap.BaseChainloader`1.DiscoverPluginsFrom(System.String,System.String)
+ name: DiscoverPluginsFrom(String, String)
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_DiscoverPluginsFrom_System_String_System_String_
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.DiscoverPluginsFrom(System.String,System.String)
+ fullName: BepInEx.Bootstrap.BaseChainloader.DiscoverPluginsFrom(System.String, System.String)
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).DiscoverPluginsFrom(System.String, System.String)
+ nameWithType: BaseChainloader.DiscoverPluginsFrom(String, String)
+ nameWithType.vb: BaseChainloader(Of TPlugin).DiscoverPluginsFrom(String, String)
+- uid: BepInEx.Bootstrap.BaseChainloader`1.DiscoverPluginsFrom*
+ name: DiscoverPluginsFrom
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_DiscoverPluginsFrom_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.DiscoverPluginsFrom
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.DiscoverPluginsFrom
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).DiscoverPluginsFrom
+ nameWithType: BaseChainloader.DiscoverPluginsFrom
+ nameWithType.vb: BaseChainloader(Of TPlugin).DiscoverPluginsFrom
+- uid: BepInEx.Bootstrap.BaseChainloader`1.Execute
+ name: Execute()
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_Execute
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.Execute
+ fullName: BepInEx.Bootstrap.BaseChainloader.Execute()
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).Execute()
+ nameWithType: BaseChainloader.Execute()
+ nameWithType.vb: BaseChainloader(Of TPlugin).Execute()
+- uid: BepInEx.Bootstrap.BaseChainloader`1.Execute*
+ name: Execute
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_Execute_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.Execute
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.Execute
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).Execute
+ nameWithType: BaseChainloader.Execute
+ nameWithType.vb: BaseChainloader(Of TPlugin).Execute
+- uid: BepInEx.Bootstrap.BaseChainloader`1.Finished
+ name: Finished
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_Finished
+ commentId: E:BepInEx.Bootstrap.BaseChainloader`1.Finished
+ fullName: BepInEx.Bootstrap.BaseChainloader.Finished
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).Finished
+ nameWithType: BaseChainloader.Finished
+ nameWithType.vb: BaseChainloader(Of TPlugin).Finished
+- uid: BepInEx.Bootstrap.BaseChainloader`1.HasBepinPlugins(AssemblyDefinition)
+ name: HasBepinPlugins(AssemblyDefinition)
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_HasBepinPlugins_AssemblyDefinition_
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.HasBepinPlugins(AssemblyDefinition)
+ fullName: BepInEx.Bootstrap.BaseChainloader.HasBepinPlugins(AssemblyDefinition)
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).HasBepinPlugins(AssemblyDefinition)
+ nameWithType: BaseChainloader.HasBepinPlugins(AssemblyDefinition)
+ nameWithType.vb: BaseChainloader(Of TPlugin).HasBepinPlugins(AssemblyDefinition)
+- uid: BepInEx.Bootstrap.BaseChainloader`1.HasBepinPlugins*
+ name: HasBepinPlugins
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_HasBepinPlugins_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.HasBepinPlugins
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.HasBepinPlugins
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).HasBepinPlugins
+ nameWithType: BaseChainloader.HasBepinPlugins
+ nameWithType.vb: BaseChainloader(Of TPlugin).HasBepinPlugins
+- uid: BepInEx.Bootstrap.BaseChainloader`1.Initialize(System.String)
+ name: Initialize(String)
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_Initialize_System_String_
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.Initialize(System.String)
+ fullName: BepInEx.Bootstrap.BaseChainloader.Initialize(System.String)
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).Initialize(System.String)
+ nameWithType: BaseChainloader.Initialize(String)
+ nameWithType.vb: BaseChainloader(Of TPlugin).Initialize(String)
+- uid: BepInEx.Bootstrap.BaseChainloader`1.Initialize*
+ name: Initialize
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_Initialize_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.Initialize
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.Initialize
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).Initialize
+ nameWithType: BaseChainloader.Initialize
+ nameWithType.vb: BaseChainloader(Of TPlugin).Initialize
+- uid: BepInEx.Bootstrap.BaseChainloader`1.InitializeLoggers
+ name: InitializeLoggers()
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_InitializeLoggers
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.InitializeLoggers
+ fullName: BepInEx.Bootstrap.BaseChainloader.InitializeLoggers()
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).InitializeLoggers()
+ nameWithType: BaseChainloader.InitializeLoggers()
+ nameWithType.vb: BaseChainloader(Of TPlugin).InitializeLoggers()
+- uid: BepInEx.Bootstrap.BaseChainloader`1.InitializeLoggers*
+ name: InitializeLoggers
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_InitializeLoggers_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.InitializeLoggers
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.InitializeLoggers
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).InitializeLoggers
+ nameWithType: BaseChainloader.InitializeLoggers
+ nameWithType.vb: BaseChainloader(Of TPlugin).InitializeLoggers
+- uid: BepInEx.Bootstrap.BaseChainloader`1.LoadPlugin(BepInEx.PluginInfo,System.Reflection.Assembly)
+ name: LoadPlugin(PluginInfo, Assembly)
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_LoadPlugin_BepInEx_PluginInfo_System_Reflection_Assembly_
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.LoadPlugin(BepInEx.PluginInfo,System.Reflection.Assembly)
+ fullName: BepInEx.Bootstrap.BaseChainloader.LoadPlugin(BepInEx.PluginInfo, System.Reflection.Assembly)
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).LoadPlugin(BepInEx.PluginInfo, System.Reflection.Assembly)
+ nameWithType: BaseChainloader.LoadPlugin(PluginInfo, Assembly)
+ nameWithType.vb: BaseChainloader(Of TPlugin).LoadPlugin(PluginInfo, Assembly)
+- uid: BepInEx.Bootstrap.BaseChainloader`1.LoadPlugin*
+ name: LoadPlugin
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_LoadPlugin_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.LoadPlugin
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.LoadPlugin
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).LoadPlugin
+ nameWithType: BaseChainloader.LoadPlugin
+ nameWithType.vb: BaseChainloader(Of TPlugin).LoadPlugin
+- uid: BepInEx.Bootstrap.BaseChainloader`1.LoadPlugins(System.String[])
+ name: LoadPlugins(String[])
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_LoadPlugins_System_String___
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.LoadPlugins(System.String[])
+ name.vb: LoadPlugins(String())
+ fullName: BepInEx.Bootstrap.BaseChainloader.LoadPlugins(System.String[])
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).LoadPlugins(System.String())
+ nameWithType: BaseChainloader.LoadPlugins(String[])
+ nameWithType.vb: BaseChainloader(Of TPlugin).LoadPlugins(String())
+- uid: BepInEx.Bootstrap.BaseChainloader`1.LoadPlugins*
+ name: LoadPlugins
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_LoadPlugins_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.LoadPlugins
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.LoadPlugins
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).LoadPlugins
+ nameWithType: BaseChainloader.LoadPlugins
+ nameWithType.vb: BaseChainloader(Of TPlugin).LoadPlugins
+- uid: BepInEx.Bootstrap.BaseChainloader`1.ModifyLoadOrder(System.Collections.Generic.IList{BepInEx.PluginInfo})
+ name: ModifyLoadOrder(IList)
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_ModifyLoadOrder_System_Collections_Generic_IList_BepInEx_PluginInfo__
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.ModifyLoadOrder(System.Collections.Generic.IList{BepInEx.PluginInfo})
+ name.vb: ModifyLoadOrder(IList(Of PluginInfo))
+ fullName: BepInEx.Bootstrap.BaseChainloader.ModifyLoadOrder(System.Collections.Generic.IList)
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).ModifyLoadOrder(System.Collections.Generic.IList(Of BepInEx.PluginInfo))
+ nameWithType: BaseChainloader.ModifyLoadOrder(IList)
+ nameWithType.vb: BaseChainloader(Of TPlugin).ModifyLoadOrder(IList(Of PluginInfo))
+- uid: BepInEx.Bootstrap.BaseChainloader`1.ModifyLoadOrder*
+ name: ModifyLoadOrder
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_ModifyLoadOrder_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.ModifyLoadOrder
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.ModifyLoadOrder
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).ModifyLoadOrder
+ nameWithType: BaseChainloader.ModifyLoadOrder
+ nameWithType.vb: BaseChainloader(Of TPlugin).ModifyLoadOrder
+- uid: BepInEx.Bootstrap.BaseChainloader`1.PluginLoaded
+ name: PluginLoaded
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_PluginLoaded
+ commentId: E:BepInEx.Bootstrap.BaseChainloader`1.PluginLoaded
+ fullName: BepInEx.Bootstrap.BaseChainloader.PluginLoaded
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).PluginLoaded
+ nameWithType: BaseChainloader.PluginLoaded
+ nameWithType.vb: BaseChainloader(Of TPlugin).PluginLoaded
+- uid: BepInEx.Bootstrap.BaseChainloader`1.Plugins
+ name: Plugins
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_Plugins
+ commentId: P:BepInEx.Bootstrap.BaseChainloader`1.Plugins
+ fullName: BepInEx.Bootstrap.BaseChainloader.Plugins
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).Plugins
+ nameWithType: BaseChainloader.Plugins
+ nameWithType.vb: BaseChainloader(Of TPlugin).Plugins
+- uid: BepInEx.Bootstrap.BaseChainloader`1.Plugins*
+ name: Plugins
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_Plugins_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.Plugins
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.Plugins
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).Plugins
+ nameWithType: BaseChainloader.Plugins
+ nameWithType.vb: BaseChainloader(Of TPlugin).Plugins
+- uid: BepInEx.Bootstrap.BaseChainloader`1.PluginTargetsWrongBepin(BepInEx.PluginInfo)
+ name: PluginTargetsWrongBepin(PluginInfo)
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_PluginTargetsWrongBepin_BepInEx_PluginInfo_
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.PluginTargetsWrongBepin(BepInEx.PluginInfo)
+ fullName: BepInEx.Bootstrap.BaseChainloader.PluginTargetsWrongBepin(BepInEx.PluginInfo)
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).PluginTargetsWrongBepin(BepInEx.PluginInfo)
+ nameWithType: BaseChainloader.PluginTargetsWrongBepin(PluginInfo)
+ nameWithType.vb: BaseChainloader(Of TPlugin).PluginTargetsWrongBepin(PluginInfo)
+- uid: BepInEx.Bootstrap.BaseChainloader`1.PluginTargetsWrongBepin*
+ name: PluginTargetsWrongBepin
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_PluginTargetsWrongBepin_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.PluginTargetsWrongBepin
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.PluginTargetsWrongBepin
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).PluginTargetsWrongBepin
+ nameWithType: BaseChainloader.PluginTargetsWrongBepin
+ nameWithType.vb: BaseChainloader(Of TPlugin).PluginTargetsWrongBepin
+- uid: BepInEx.Bootstrap.BaseChainloader`1.ToPluginInfo(TypeDefinition,System.String)
+ name: ToPluginInfo(TypeDefinition, String)
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_ToPluginInfo_TypeDefinition_System_String_
+ commentId: M:BepInEx.Bootstrap.BaseChainloader`1.ToPluginInfo(TypeDefinition,System.String)
+ fullName: BepInEx.Bootstrap.BaseChainloader.ToPluginInfo(TypeDefinition, System.String)
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).ToPluginInfo(TypeDefinition, System.String)
+ nameWithType: BaseChainloader.ToPluginInfo(TypeDefinition, String)
+ nameWithType.vb: BaseChainloader(Of TPlugin).ToPluginInfo(TypeDefinition, String)
+- uid: BepInEx.Bootstrap.BaseChainloader`1.ToPluginInfo*
+ name: ToPluginInfo
+ href: api/BepInEx.Bootstrap.BaseChainloader-1.html#BepInEx_Bootstrap_BaseChainloader_1_ToPluginInfo_
+ commentId: Overload:BepInEx.Bootstrap.BaseChainloader`1.ToPluginInfo
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.BaseChainloader.ToPluginInfo
+ fullName.vb: BepInEx.Bootstrap.BaseChainloader(Of TPlugin).ToPluginInfo
+ nameWithType: BaseChainloader.ToPluginInfo
+ nameWithType.vb: BaseChainloader(Of TPlugin).ToPluginInfo
+- uid: BepInEx.Bootstrap.CachedAssembly`1
+ name: CachedAssembly
+ href: api/BepInEx.Bootstrap.CachedAssembly-1.html
+ commentId: T:BepInEx.Bootstrap.CachedAssembly`1
+ name.vb: CachedAssembly(Of T)
+ fullName: BepInEx.Bootstrap.CachedAssembly
+ fullName.vb: BepInEx.Bootstrap.CachedAssembly(Of T)
+ nameWithType: CachedAssembly
+ nameWithType.vb: CachedAssembly(Of T)
+- uid: BepInEx.Bootstrap.CachedAssembly`1.CacheItems
+ name: CacheItems
+ href: api/BepInEx.Bootstrap.CachedAssembly-1.html#BepInEx_Bootstrap_CachedAssembly_1_CacheItems
+ commentId: P:BepInEx.Bootstrap.CachedAssembly`1.CacheItems
+ fullName: BepInEx.Bootstrap.CachedAssembly.CacheItems
+ fullName.vb: BepInEx.Bootstrap.CachedAssembly(Of T).CacheItems
+ nameWithType: CachedAssembly.CacheItems
+ nameWithType.vb: CachedAssembly(Of T).CacheItems
+- uid: BepInEx.Bootstrap.CachedAssembly`1.CacheItems*
+ name: CacheItems
+ href: api/BepInEx.Bootstrap.CachedAssembly-1.html#BepInEx_Bootstrap_CachedAssembly_1_CacheItems_
+ commentId: Overload:BepInEx.Bootstrap.CachedAssembly`1.CacheItems
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.CachedAssembly.CacheItems
+ fullName.vb: BepInEx.Bootstrap.CachedAssembly(Of T).CacheItems
+ nameWithType: CachedAssembly.CacheItems
+ nameWithType.vb: CachedAssembly(Of T).CacheItems
+- uid: BepInEx.Bootstrap.CachedAssembly`1.Hash
+ name: Hash
+ href: api/BepInEx.Bootstrap.CachedAssembly-1.html#BepInEx_Bootstrap_CachedAssembly_1_Hash
+ commentId: P:BepInEx.Bootstrap.CachedAssembly`1.Hash
+ fullName: BepInEx.Bootstrap.CachedAssembly.Hash
+ fullName.vb: BepInEx.Bootstrap.CachedAssembly(Of T).Hash
+ nameWithType: CachedAssembly.Hash
+ nameWithType.vb: CachedAssembly(Of T).Hash
+- uid: BepInEx.Bootstrap.CachedAssembly`1.Hash*
+ name: Hash
+ href: api/BepInEx.Bootstrap.CachedAssembly-1.html#BepInEx_Bootstrap_CachedAssembly_1_Hash_
+ commentId: Overload:BepInEx.Bootstrap.CachedAssembly`1.Hash
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.CachedAssembly.Hash
+ fullName.vb: BepInEx.Bootstrap.CachedAssembly(Of T).Hash
+ nameWithType: CachedAssembly.Hash
+ nameWithType.vb: CachedAssembly(Of T).Hash
+- uid: BepInEx.Bootstrap.ICacheable
+ name: ICacheable
+ href: api/BepInEx.Bootstrap.ICacheable.html
+ commentId: T:BepInEx.Bootstrap.ICacheable
+ fullName: BepInEx.Bootstrap.ICacheable
+ nameWithType: ICacheable
+- uid: BepInEx.Bootstrap.ICacheable.Load(System.IO.BinaryReader)
+ name: Load(BinaryReader)
+ href: api/BepInEx.Bootstrap.ICacheable.html#BepInEx_Bootstrap_ICacheable_Load_System_IO_BinaryReader_
+ commentId: M:BepInEx.Bootstrap.ICacheable.Load(System.IO.BinaryReader)
+ fullName: BepInEx.Bootstrap.ICacheable.Load(System.IO.BinaryReader)
+ nameWithType: ICacheable.Load(BinaryReader)
+- uid: BepInEx.Bootstrap.ICacheable.Load*
+ name: Load
+ href: api/BepInEx.Bootstrap.ICacheable.html#BepInEx_Bootstrap_ICacheable_Load_
+ commentId: Overload:BepInEx.Bootstrap.ICacheable.Load
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.ICacheable.Load
+ nameWithType: ICacheable.Load
+- uid: BepInEx.Bootstrap.ICacheable.Save(System.IO.BinaryWriter)
+ name: Save(BinaryWriter)
+ href: api/BepInEx.Bootstrap.ICacheable.html#BepInEx_Bootstrap_ICacheable_Save_System_IO_BinaryWriter_
+ commentId: M:BepInEx.Bootstrap.ICacheable.Save(System.IO.BinaryWriter)
+ fullName: BepInEx.Bootstrap.ICacheable.Save(System.IO.BinaryWriter)
+ nameWithType: ICacheable.Save(BinaryWriter)
+- uid: BepInEx.Bootstrap.ICacheable.Save*
+ name: Save
+ href: api/BepInEx.Bootstrap.ICacheable.html#BepInEx_Bootstrap_ICacheable_Save_
+ commentId: Overload:BepInEx.Bootstrap.ICacheable.Save
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.ICacheable.Save
+ nameWithType: ICacheable.Save
+- uid: BepInEx.Bootstrap.TypeLoader
+ name: TypeLoader
+ href: api/BepInEx.Bootstrap.TypeLoader.html
+ commentId: T:BepInEx.Bootstrap.TypeLoader
+ fullName: BepInEx.Bootstrap.TypeLoader
+ nameWithType: TypeLoader
+- uid: BepInEx.Bootstrap.TypeLoader.AssemblyResolve
+ name: AssemblyResolve
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_AssemblyResolve
+ commentId: E:BepInEx.Bootstrap.TypeLoader.AssemblyResolve
+ fullName: BepInEx.Bootstrap.TypeLoader.AssemblyResolve
+ nameWithType: TypeLoader.AssemblyResolve
+- uid: BepInEx.Bootstrap.TypeLoader.CecilResolveOnFailure(System.Object,AssemblyNameReference)
+ name: CecilResolveOnFailure(Object, AssemblyNameReference)
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_CecilResolveOnFailure_System_Object_AssemblyNameReference_
+ commentId: M:BepInEx.Bootstrap.TypeLoader.CecilResolveOnFailure(System.Object,AssemblyNameReference)
+ fullName: BepInEx.Bootstrap.TypeLoader.CecilResolveOnFailure(System.Object, AssemblyNameReference)
+ nameWithType: TypeLoader.CecilResolveOnFailure(Object, AssemblyNameReference)
+- uid: BepInEx.Bootstrap.TypeLoader.CecilResolveOnFailure*
+ name: CecilResolveOnFailure
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_CecilResolveOnFailure_
+ commentId: Overload:BepInEx.Bootstrap.TypeLoader.CecilResolveOnFailure
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.TypeLoader.CecilResolveOnFailure
+ nameWithType: TypeLoader.CecilResolveOnFailure
+- uid: BepInEx.Bootstrap.TypeLoader.CecilResolver
+ name: CecilResolver
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_CecilResolver
+ commentId: F:BepInEx.Bootstrap.TypeLoader.CecilResolver
+ fullName: BepInEx.Bootstrap.TypeLoader.CecilResolver
+ nameWithType: TypeLoader.CecilResolver
+- uid: BepInEx.Bootstrap.TypeLoader.FindPluginTypes*
+ name: FindPluginTypes
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_FindPluginTypes_
+ commentId: Overload:BepInEx.Bootstrap.TypeLoader.FindPluginTypes
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.TypeLoader.FindPluginTypes
+ nameWithType: TypeLoader.FindPluginTypes
+- uid: BepInEx.Bootstrap.TypeLoader.FindPluginTypes``1(System.String,System.Func{TypeDefinition,System.String,``0},System.Func{AssemblyDefinition,System.Boolean},System.String)
+ name: FindPluginTypes(String, Func, Func, String)
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_FindPluginTypes__1_System_String_System_Func_TypeDefinition_System_String___0__System_Func_AssemblyDefinition_System_Boolean__System_String_
+ commentId: M:BepInEx.Bootstrap.TypeLoader.FindPluginTypes``1(System.String,System.Func{TypeDefinition,System.String,``0},System.Func{AssemblyDefinition,System.Boolean},System.String)
+ name.vb: FindPluginTypes(Of T)(String, Func(Of TypeDefinition, String, T), Func(Of AssemblyDefinition, Boolean), String)
+ fullName: BepInEx.Bootstrap.TypeLoader.FindPluginTypes(System.String, System.Func, System.Func, System.String)
+ fullName.vb: BepInEx.Bootstrap.TypeLoader.FindPluginTypes(Of T)(System.String, System.Func(Of TypeDefinition, System.String, T), System.Func(Of AssemblyDefinition, System.Boolean), System.String)
+ nameWithType: TypeLoader.FindPluginTypes(String, Func, Func, String)
+ nameWithType.vb: TypeLoader.FindPluginTypes(Of T)(String, Func(Of TypeDefinition, String, T), Func(Of AssemblyDefinition, Boolean), String)
+- uid: BepInEx.Bootstrap.TypeLoader.LoadAssemblyCache*
+ name: LoadAssemblyCache
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_LoadAssemblyCache_
+ commentId: Overload:BepInEx.Bootstrap.TypeLoader.LoadAssemblyCache
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.TypeLoader.LoadAssemblyCache
+ nameWithType: TypeLoader.LoadAssemblyCache
+- uid: BepInEx.Bootstrap.TypeLoader.LoadAssemblyCache``1(System.String)
+ name: LoadAssemblyCache(String)
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_LoadAssemblyCache__1_System_String_
+ commentId: M:BepInEx.Bootstrap.TypeLoader.LoadAssemblyCache``1(System.String)
+ name.vb: LoadAssemblyCache(Of T)(String)
+ fullName: BepInEx.Bootstrap.TypeLoader.LoadAssemblyCache(System.String)
+ fullName.vb: BepInEx.Bootstrap.TypeLoader.LoadAssemblyCache(Of T)(System.String)
+ nameWithType: TypeLoader.LoadAssemblyCache(String)
+ nameWithType.vb: TypeLoader.LoadAssemblyCache(Of T)(String)
+- uid: BepInEx.Bootstrap.TypeLoader.ReaderParameters
+ name: ReaderParameters
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_ReaderParameters
+ commentId: F:BepInEx.Bootstrap.TypeLoader.ReaderParameters
+ fullName: BepInEx.Bootstrap.TypeLoader.ReaderParameters
+ nameWithType: TypeLoader.ReaderParameters
+- uid: BepInEx.Bootstrap.TypeLoader.SaveAssemblyCache*
+ name: SaveAssemblyCache
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_SaveAssemblyCache_
+ commentId: Overload:BepInEx.Bootstrap.TypeLoader.SaveAssemblyCache
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.TypeLoader.SaveAssemblyCache
+ nameWithType: TypeLoader.SaveAssemblyCache
+- uid: BepInEx.Bootstrap.TypeLoader.SaveAssemblyCache``1(System.String,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{``0}},System.Collections.Generic.Dictionary{System.String,System.String})
+ name: SaveAssemblyCache(String, Dictionary>, Dictionary)
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_SaveAssemblyCache__1_System_String_System_Collections_Generic_Dictionary_System_String_System_Collections_Generic_List___0___System_Collections_Generic_Dictionary_System_String_System_String__
+ commentId: M:BepInEx.Bootstrap.TypeLoader.SaveAssemblyCache``1(System.String,System.Collections.Generic.Dictionary{System.String,System.Collections.Generic.List{``0}},System.Collections.Generic.Dictionary{System.String,System.String})
+ name.vb: SaveAssemblyCache(Of T)(String, Dictionary(Of String, List(Of T)), Dictionary(Of String, String))
+ fullName: BepInEx.Bootstrap.TypeLoader.SaveAssemblyCache(System.String, System.Collections.Generic.Dictionary>, System.Collections.Generic.Dictionary)
+ fullName.vb: BepInEx.Bootstrap.TypeLoader.SaveAssemblyCache(Of T)(System.String, System.Collections.Generic.Dictionary(Of System.String, System.Collections.Generic.List(Of T)), System.Collections.Generic.Dictionary(Of System.String, System.String))
+ nameWithType: TypeLoader.SaveAssemblyCache(String, Dictionary>, Dictionary)
+ nameWithType.vb: TypeLoader.SaveAssemblyCache(Of T)(String, Dictionary(Of String, List(Of T)), Dictionary(Of String, String))
+- uid: BepInEx.Bootstrap.TypeLoader.SearchDirectories
+ name: SearchDirectories
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_SearchDirectories
+ commentId: F:BepInEx.Bootstrap.TypeLoader.SearchDirectories
+ fullName: BepInEx.Bootstrap.TypeLoader.SearchDirectories
+ nameWithType: TypeLoader.SearchDirectories
+- uid: BepInEx.Bootstrap.TypeLoader.TypeLoadExceptionToString(System.Reflection.ReflectionTypeLoadException)
+ name: TypeLoadExceptionToString(ReflectionTypeLoadException)
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_TypeLoadExceptionToString_System_Reflection_ReflectionTypeLoadException_
+ commentId: M:BepInEx.Bootstrap.TypeLoader.TypeLoadExceptionToString(System.Reflection.ReflectionTypeLoadException)
+ fullName: BepInEx.Bootstrap.TypeLoader.TypeLoadExceptionToString(System.Reflection.ReflectionTypeLoadException)
+ nameWithType: TypeLoader.TypeLoadExceptionToString(ReflectionTypeLoadException)
+- uid: BepInEx.Bootstrap.TypeLoader.TypeLoadExceptionToString*
+ name: TypeLoadExceptionToString
+ href: api/BepInEx.Bootstrap.TypeLoader.html#BepInEx_Bootstrap_TypeLoader_TypeLoadExceptionToString_
+ commentId: Overload:BepInEx.Bootstrap.TypeLoader.TypeLoadExceptionToString
+ isSpec: "True"
+ fullName: BepInEx.Bootstrap.TypeLoader.TypeLoadExceptionToString
+ nameWithType: TypeLoader.TypeLoadExceptionToString
+- uid: BepInEx.Configuration
+ name: BepInEx.Configuration
+ href: api/BepInEx.Configuration.html
+ commentId: N:BepInEx.Configuration
+ fullName: BepInEx.Configuration
+ nameWithType: BepInEx.Configuration
+- uid: BepInEx.Configuration.AcceptableValueBase
+ name: AcceptableValueBase
+ href: api/BepInEx.Configuration.AcceptableValueBase.html
+ commentId: T:BepInEx.Configuration.AcceptableValueBase
+ fullName: BepInEx.Configuration.AcceptableValueBase
+ nameWithType: AcceptableValueBase
+- uid: BepInEx.Configuration.AcceptableValueBase.#ctor(System.Type)
+ name: AcceptableValueBase(Type)
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase__ctor_System_Type_
+ commentId: M:BepInEx.Configuration.AcceptableValueBase.#ctor(System.Type)
+ fullName: BepInEx.Configuration.AcceptableValueBase.AcceptableValueBase(System.Type)
+ nameWithType: AcceptableValueBase.AcceptableValueBase(Type)
+- uid: BepInEx.Configuration.AcceptableValueBase.#ctor*
+ name: AcceptableValueBase
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase__ctor_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueBase.#ctor
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueBase.AcceptableValueBase
+ nameWithType: AcceptableValueBase.AcceptableValueBase
+- uid: BepInEx.Configuration.AcceptableValueBase.Clamp(System.Object)
+ name: Clamp(Object)
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase_Clamp_System_Object_
+ commentId: M:BepInEx.Configuration.AcceptableValueBase.Clamp(System.Object)
+ fullName: BepInEx.Configuration.AcceptableValueBase.Clamp(System.Object)
+ nameWithType: AcceptableValueBase.Clamp(Object)
+- uid: BepInEx.Configuration.AcceptableValueBase.Clamp*
+ name: Clamp
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase_Clamp_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueBase.Clamp
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueBase.Clamp
+ nameWithType: AcceptableValueBase.Clamp
+- uid: BepInEx.Configuration.AcceptableValueBase.IsValid(System.Object)
+ name: IsValid(Object)
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase_IsValid_System_Object_
+ commentId: M:BepInEx.Configuration.AcceptableValueBase.IsValid(System.Object)
+ fullName: BepInEx.Configuration.AcceptableValueBase.IsValid(System.Object)
+ nameWithType: AcceptableValueBase.IsValid(Object)
+- uid: BepInEx.Configuration.AcceptableValueBase.IsValid*
+ name: IsValid
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase_IsValid_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueBase.IsValid
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueBase.IsValid
+ nameWithType: AcceptableValueBase.IsValid
+- uid: BepInEx.Configuration.AcceptableValueBase.ToDescriptionString
+ name: ToDescriptionString()
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase_ToDescriptionString
+ commentId: M:BepInEx.Configuration.AcceptableValueBase.ToDescriptionString
+ fullName: BepInEx.Configuration.AcceptableValueBase.ToDescriptionString()
+ nameWithType: AcceptableValueBase.ToDescriptionString()
+- uid: BepInEx.Configuration.AcceptableValueBase.ToDescriptionString*
+ name: ToDescriptionString
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase_ToDescriptionString_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueBase.ToDescriptionString
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueBase.ToDescriptionString
+ nameWithType: AcceptableValueBase.ToDescriptionString
+- uid: BepInEx.Configuration.AcceptableValueBase.ValueType
+ name: ValueType
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase_ValueType
+ commentId: P:BepInEx.Configuration.AcceptableValueBase.ValueType
+ fullName: BepInEx.Configuration.AcceptableValueBase.ValueType
+ nameWithType: AcceptableValueBase.ValueType
+- uid: BepInEx.Configuration.AcceptableValueBase.ValueType*
+ name: ValueType
+ href: api/BepInEx.Configuration.AcceptableValueBase.html#BepInEx_Configuration_AcceptableValueBase_ValueType_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueBase.ValueType
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueBase.ValueType
+ nameWithType: AcceptableValueBase.ValueType
+- uid: BepInEx.Configuration.AcceptableValueList`1
+ name: AcceptableValueList
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html
+ commentId: T:BepInEx.Configuration.AcceptableValueList`1
+ name.vb: AcceptableValueList(Of T)
+ fullName: BepInEx.Configuration.AcceptableValueList
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T)
+ nameWithType: AcceptableValueList
+ nameWithType.vb: AcceptableValueList(Of T)
+- uid: BepInEx.Configuration.AcceptableValueList`1.#ctor(`0[])
+ name: AcceptableValueList(T[])
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1__ctor__0___
+ commentId: M:BepInEx.Configuration.AcceptableValueList`1.#ctor(`0[])
+ name.vb: AcceptableValueList(T())
+ fullName: BepInEx.Configuration.AcceptableValueList.AcceptableValueList(T[])
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).AcceptableValueList(T())
+ nameWithType: AcceptableValueList.AcceptableValueList(T[])
+ nameWithType.vb: AcceptableValueList(Of T).AcceptableValueList(T())
+- uid: BepInEx.Configuration.AcceptableValueList`1.#ctor*
+ name: AcceptableValueList
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1__ctor_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueList`1.#ctor
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueList.AcceptableValueList
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).AcceptableValueList
+ nameWithType: AcceptableValueList.AcceptableValueList
+ nameWithType.vb: AcceptableValueList(Of T).AcceptableValueList
+- uid: BepInEx.Configuration.AcceptableValueList`1.AcceptableValues
+ name: AcceptableValues
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1_AcceptableValues
+ commentId: P:BepInEx.Configuration.AcceptableValueList`1.AcceptableValues
+ fullName: BepInEx.Configuration.AcceptableValueList.AcceptableValues
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).AcceptableValues
+ nameWithType: AcceptableValueList.AcceptableValues
+ nameWithType.vb: AcceptableValueList(Of T).AcceptableValues
+- uid: BepInEx.Configuration.AcceptableValueList`1.AcceptableValues*
+ name: AcceptableValues
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1_AcceptableValues_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueList`1.AcceptableValues
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueList.AcceptableValues
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).AcceptableValues
+ nameWithType: AcceptableValueList.AcceptableValues
+ nameWithType.vb: AcceptableValueList(Of T).AcceptableValues
+- uid: BepInEx.Configuration.AcceptableValueList`1.Clamp(System.Object)
+ name: Clamp(Object)
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1_Clamp_System_Object_
+ commentId: M:BepInEx.Configuration.AcceptableValueList`1.Clamp(System.Object)
+ fullName: BepInEx.Configuration.AcceptableValueList.Clamp(System.Object)
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).Clamp(System.Object)
+ nameWithType: AcceptableValueList.Clamp(Object)
+ nameWithType.vb: AcceptableValueList(Of T).Clamp(Object)
+- uid: BepInEx.Configuration.AcceptableValueList`1.Clamp*
+ name: Clamp
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1_Clamp_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueList`1.Clamp
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueList.Clamp
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).Clamp
+ nameWithType: AcceptableValueList.Clamp
+ nameWithType.vb: AcceptableValueList(Of T).Clamp
+- uid: BepInEx.Configuration.AcceptableValueList`1.IsValid(System.Object)
+ name: IsValid(Object)
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1_IsValid_System_Object_
+ commentId: M:BepInEx.Configuration.AcceptableValueList`1.IsValid(System.Object)
+ fullName: BepInEx.Configuration.AcceptableValueList.IsValid(System.Object)
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).IsValid(System.Object)
+ nameWithType: AcceptableValueList.IsValid(Object)
+ nameWithType.vb: AcceptableValueList(Of T).IsValid(Object)
+- uid: BepInEx.Configuration.AcceptableValueList`1.IsValid*
+ name: IsValid
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1_IsValid_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueList`1.IsValid
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueList.IsValid
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).IsValid
+ nameWithType: AcceptableValueList.IsValid
+ nameWithType.vb: AcceptableValueList(Of T).IsValid
+- uid: BepInEx.Configuration.AcceptableValueList`1.ToDescriptionString
+ name: ToDescriptionString()
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1_ToDescriptionString
+ commentId: M:BepInEx.Configuration.AcceptableValueList`1.ToDescriptionString
+ fullName: BepInEx.Configuration.AcceptableValueList.ToDescriptionString()
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).ToDescriptionString()
+ nameWithType: AcceptableValueList.ToDescriptionString()
+ nameWithType.vb: AcceptableValueList(Of T).ToDescriptionString()
+- uid: BepInEx.Configuration.AcceptableValueList`1.ToDescriptionString*
+ name: ToDescriptionString
+ href: api/BepInEx.Configuration.AcceptableValueList-1.html#BepInEx_Configuration_AcceptableValueList_1_ToDescriptionString_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueList`1.ToDescriptionString
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueList.ToDescriptionString
+ fullName.vb: BepInEx.Configuration.AcceptableValueList(Of T).ToDescriptionString
+ nameWithType: AcceptableValueList.ToDescriptionString
+ nameWithType.vb: AcceptableValueList(Of T).ToDescriptionString
+- uid: BepInEx.Configuration.AcceptableValueRange`1
+ name: AcceptableValueRange
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html
+ commentId: T:BepInEx.Configuration.AcceptableValueRange`1
+ name.vb: AcceptableValueRange(Of T)
+ fullName: BepInEx.Configuration.AcceptableValueRange
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T)
+ nameWithType: AcceptableValueRange
+ nameWithType.vb: AcceptableValueRange(Of T)
+- uid: BepInEx.Configuration.AcceptableValueRange`1.#ctor(`0,`0)
+ name: AcceptableValueRange(T, T)
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1__ctor__0__0_
+ commentId: M:BepInEx.Configuration.AcceptableValueRange`1.#ctor(`0,`0)
+ fullName: BepInEx.Configuration.AcceptableValueRange.AcceptableValueRange(T, T)
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).AcceptableValueRange(T, T)
+ nameWithType: AcceptableValueRange.AcceptableValueRange(T, T)
+ nameWithType.vb: AcceptableValueRange(Of T).AcceptableValueRange(T, T)
+- uid: BepInEx.Configuration.AcceptableValueRange`1.#ctor*
+ name: AcceptableValueRange
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1__ctor_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueRange`1.#ctor
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueRange.AcceptableValueRange
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).AcceptableValueRange
+ nameWithType: AcceptableValueRange.AcceptableValueRange
+ nameWithType.vb: AcceptableValueRange(Of T).AcceptableValueRange
+- uid: BepInEx.Configuration.AcceptableValueRange`1.Clamp(System.Object)
+ name: Clamp(Object)
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_Clamp_System_Object_
+ commentId: M:BepInEx.Configuration.AcceptableValueRange`1.Clamp(System.Object)
+ fullName: BepInEx.Configuration.AcceptableValueRange.Clamp(System.Object)
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).Clamp(System.Object)
+ nameWithType: AcceptableValueRange.Clamp(Object)
+ nameWithType.vb: AcceptableValueRange(Of T).Clamp(Object)
+- uid: BepInEx.Configuration.AcceptableValueRange`1.Clamp*
+ name: Clamp
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_Clamp_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueRange`1.Clamp
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueRange.Clamp
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).Clamp
+ nameWithType: AcceptableValueRange.Clamp
+ nameWithType.vb: AcceptableValueRange(Of T).Clamp
+- uid: BepInEx.Configuration.AcceptableValueRange`1.IsValid(System.Object)
+ name: IsValid(Object)
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_IsValid_System_Object_
+ commentId: M:BepInEx.Configuration.AcceptableValueRange`1.IsValid(System.Object)
+ fullName: BepInEx.Configuration.AcceptableValueRange.IsValid(System.Object)
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).IsValid(System.Object)
+ nameWithType: AcceptableValueRange.IsValid(Object)
+ nameWithType.vb: AcceptableValueRange(Of T).IsValid(Object)
+- uid: BepInEx.Configuration.AcceptableValueRange`1.IsValid*
+ name: IsValid
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_IsValid_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueRange`1.IsValid
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueRange.IsValid
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).IsValid
+ nameWithType: AcceptableValueRange.IsValid
+ nameWithType.vb: AcceptableValueRange(Of T).IsValid
+- uid: BepInEx.Configuration.AcceptableValueRange`1.MaxValue
+ name: MaxValue
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_MaxValue
+ commentId: P:BepInEx.Configuration.AcceptableValueRange`1.MaxValue
+ fullName: BepInEx.Configuration.AcceptableValueRange.MaxValue
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).MaxValue
+ nameWithType: AcceptableValueRange.MaxValue
+ nameWithType.vb: AcceptableValueRange(Of T).MaxValue
+- uid: BepInEx.Configuration.AcceptableValueRange`1.MaxValue*
+ name: MaxValue
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_MaxValue_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueRange`1.MaxValue
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueRange.MaxValue
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).MaxValue
+ nameWithType: AcceptableValueRange.MaxValue
+ nameWithType.vb: AcceptableValueRange(Of T).MaxValue
+- uid: BepInEx.Configuration.AcceptableValueRange`1.MinValue
+ name: MinValue
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_MinValue
+ commentId: P:BepInEx.Configuration.AcceptableValueRange`1.MinValue
+ fullName: BepInEx.Configuration.AcceptableValueRange.MinValue
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).MinValue
+ nameWithType: AcceptableValueRange.MinValue
+ nameWithType.vb: AcceptableValueRange(Of T).MinValue
+- uid: BepInEx.Configuration.AcceptableValueRange`1.MinValue*
+ name: MinValue
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_MinValue_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueRange`1.MinValue
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueRange.MinValue
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).MinValue
+ nameWithType: AcceptableValueRange.MinValue
+ nameWithType.vb: AcceptableValueRange(Of T).MinValue
+- uid: BepInEx.Configuration.AcceptableValueRange`1.ToDescriptionString
+ name: ToDescriptionString()
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_ToDescriptionString
+ commentId: M:BepInEx.Configuration.AcceptableValueRange`1.ToDescriptionString
+ fullName: BepInEx.Configuration.AcceptableValueRange.ToDescriptionString()
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).ToDescriptionString()
+ nameWithType: AcceptableValueRange.ToDescriptionString()
+ nameWithType.vb: AcceptableValueRange(Of T).ToDescriptionString()
+- uid: BepInEx.Configuration.AcceptableValueRange`1.ToDescriptionString*
+ name: ToDescriptionString
+ href: api/BepInEx.Configuration.AcceptableValueRange-1.html#BepInEx_Configuration_AcceptableValueRange_1_ToDescriptionString_
+ commentId: Overload:BepInEx.Configuration.AcceptableValueRange`1.ToDescriptionString
+ isSpec: "True"
+ fullName: BepInEx.Configuration.AcceptableValueRange.ToDescriptionString
+ fullName.vb: BepInEx.Configuration.AcceptableValueRange(Of T).ToDescriptionString
+ nameWithType: AcceptableValueRange.ToDescriptionString
+ nameWithType.vb: AcceptableValueRange(Of T).ToDescriptionString
+- uid: BepInEx.Configuration.ConfigDefinition
+ name: ConfigDefinition
+ href: api/BepInEx.Configuration.ConfigDefinition.html
+ commentId: T:BepInEx.Configuration.ConfigDefinition
+ fullName: BepInEx.Configuration.ConfigDefinition
+ nameWithType: ConfigDefinition
+- uid: BepInEx.Configuration.ConfigDefinition.#ctor(System.String,System.String)
+ name: ConfigDefinition(String, String)
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition__ctor_System_String_System_String_
+ commentId: M:BepInEx.Configuration.ConfigDefinition.#ctor(System.String,System.String)
+ fullName: BepInEx.Configuration.ConfigDefinition.ConfigDefinition(System.String, System.String)
+ nameWithType: ConfigDefinition.ConfigDefinition(String, String)
+- uid: BepInEx.Configuration.ConfigDefinition.#ctor(System.String,System.String,System.String)
+ name: ConfigDefinition(String, String, String)
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition__ctor_System_String_System_String_System_String_
+ commentId: M:BepInEx.Configuration.ConfigDefinition.#ctor(System.String,System.String,System.String)
+ fullName: BepInEx.Configuration.ConfigDefinition.ConfigDefinition(System.String, System.String, System.String)
+ nameWithType: ConfigDefinition.ConfigDefinition(String, String, String)
+- uid: BepInEx.Configuration.ConfigDefinition.#ctor*
+ name: ConfigDefinition
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition__ctor_
+ commentId: Overload:BepInEx.Configuration.ConfigDefinition.#ctor
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDefinition.ConfigDefinition
+ nameWithType: ConfigDefinition.ConfigDefinition
+- uid: BepInEx.Configuration.ConfigDefinition.Equals(BepInEx.Configuration.ConfigDefinition)
+ name: Equals(ConfigDefinition)
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_Equals_BepInEx_Configuration_ConfigDefinition_
+ commentId: M:BepInEx.Configuration.ConfigDefinition.Equals(BepInEx.Configuration.ConfigDefinition)
+ fullName: BepInEx.Configuration.ConfigDefinition.Equals(BepInEx.Configuration.ConfigDefinition)
+ nameWithType: ConfigDefinition.Equals(ConfigDefinition)
+- uid: BepInEx.Configuration.ConfigDefinition.Equals(System.Object)
+ name: Equals(Object)
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_Equals_System_Object_
+ commentId: M:BepInEx.Configuration.ConfigDefinition.Equals(System.Object)
+ fullName: BepInEx.Configuration.ConfigDefinition.Equals(System.Object)
+ nameWithType: ConfigDefinition.Equals(Object)
+- uid: BepInEx.Configuration.ConfigDefinition.Equals*
+ name: Equals
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_Equals_
+ commentId: Overload:BepInEx.Configuration.ConfigDefinition.Equals
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDefinition.Equals
+ nameWithType: ConfigDefinition.Equals
+- uid: BepInEx.Configuration.ConfigDefinition.GetHashCode
+ name: GetHashCode()
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_GetHashCode
+ commentId: M:BepInEx.Configuration.ConfigDefinition.GetHashCode
+ fullName: BepInEx.Configuration.ConfigDefinition.GetHashCode()
+ nameWithType: ConfigDefinition.GetHashCode()
+- uid: BepInEx.Configuration.ConfigDefinition.GetHashCode*
+ name: GetHashCode
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_GetHashCode_
+ commentId: Overload:BepInEx.Configuration.ConfigDefinition.GetHashCode
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDefinition.GetHashCode
+ nameWithType: ConfigDefinition.GetHashCode
+- uid: BepInEx.Configuration.ConfigDefinition.Key
+ name: Key
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_Key
+ commentId: P:BepInEx.Configuration.ConfigDefinition.Key
+ fullName: BepInEx.Configuration.ConfigDefinition.Key
+ nameWithType: ConfigDefinition.Key
+- uid: BepInEx.Configuration.ConfigDefinition.Key*
+ name: Key
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_Key_
+ commentId: Overload:BepInEx.Configuration.ConfigDefinition.Key
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDefinition.Key
+ nameWithType: ConfigDefinition.Key
+- uid: BepInEx.Configuration.ConfigDefinition.op_Equality(BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigDefinition)
+ name: Equality(ConfigDefinition, ConfigDefinition)
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_op_Equality_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigDefinition_
+ commentId: M:BepInEx.Configuration.ConfigDefinition.op_Equality(BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigDefinition)
+ fullName: BepInEx.Configuration.ConfigDefinition.Equality(BepInEx.Configuration.ConfigDefinition, BepInEx.Configuration.ConfigDefinition)
+ nameWithType: ConfigDefinition.Equality(ConfigDefinition, ConfigDefinition)
+- uid: BepInEx.Configuration.ConfigDefinition.op_Equality*
+ name: Equality
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_op_Equality_
+ commentId: Overload:BepInEx.Configuration.ConfigDefinition.op_Equality
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDefinition.Equality
+ nameWithType: ConfigDefinition.Equality
+- uid: BepInEx.Configuration.ConfigDefinition.op_Inequality(BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigDefinition)
+ name: Inequality(ConfigDefinition, ConfigDefinition)
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_op_Inequality_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigDefinition_
+ commentId: M:BepInEx.Configuration.ConfigDefinition.op_Inequality(BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigDefinition)
+ fullName: BepInEx.Configuration.ConfigDefinition.Inequality(BepInEx.Configuration.ConfigDefinition, BepInEx.Configuration.ConfigDefinition)
+ nameWithType: ConfigDefinition.Inequality(ConfigDefinition, ConfigDefinition)
+- uid: BepInEx.Configuration.ConfigDefinition.op_Inequality*
+ name: Inequality
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_op_Inequality_
+ commentId: Overload:BepInEx.Configuration.ConfigDefinition.op_Inequality
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDefinition.Inequality
+ nameWithType: ConfigDefinition.Inequality
+- uid: BepInEx.Configuration.ConfigDefinition.Section
+ name: Section
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_Section
+ commentId: P:BepInEx.Configuration.ConfigDefinition.Section
+ fullName: BepInEx.Configuration.ConfigDefinition.Section
+ nameWithType: ConfigDefinition.Section
+- uid: BepInEx.Configuration.ConfigDefinition.Section*
+ name: Section
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_Section_
+ commentId: Overload:BepInEx.Configuration.ConfigDefinition.Section
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDefinition.Section
+ nameWithType: ConfigDefinition.Section
+- uid: BepInEx.Configuration.ConfigDefinition.ToString
+ name: ToString()
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_ToString
+ commentId: M:BepInEx.Configuration.ConfigDefinition.ToString
+ fullName: BepInEx.Configuration.ConfigDefinition.ToString()
+ nameWithType: ConfigDefinition.ToString()
+- uid: BepInEx.Configuration.ConfigDefinition.ToString*
+ name: ToString
+ href: api/BepInEx.Configuration.ConfigDefinition.html#BepInEx_Configuration_ConfigDefinition_ToString_
+ commentId: Overload:BepInEx.Configuration.ConfigDefinition.ToString
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDefinition.ToString
+ nameWithType: ConfigDefinition.ToString
+- uid: BepInEx.Configuration.ConfigDescription
+ name: ConfigDescription
+ href: api/BepInEx.Configuration.ConfigDescription.html
+ commentId: T:BepInEx.Configuration.ConfigDescription
+ fullName: BepInEx.Configuration.ConfigDescription
+ nameWithType: ConfigDescription
+- uid: BepInEx.Configuration.ConfigDescription.#ctor(System.String,BepInEx.Configuration.AcceptableValueBase,System.Object[])
+ name: ConfigDescription(String, AcceptableValueBase, Object[])
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription__ctor_System_String_BepInEx_Configuration_AcceptableValueBase_System_Object___
+ commentId: M:BepInEx.Configuration.ConfigDescription.#ctor(System.String,BepInEx.Configuration.AcceptableValueBase,System.Object[])
+ name.vb: ConfigDescription(String, AcceptableValueBase, Object())
+ fullName: BepInEx.Configuration.ConfigDescription.ConfigDescription(System.String, BepInEx.Configuration.AcceptableValueBase, System.Object[])
+ fullName.vb: BepInEx.Configuration.ConfigDescription.ConfigDescription(System.String, BepInEx.Configuration.AcceptableValueBase, System.Object())
+ nameWithType: ConfigDescription.ConfigDescription(String, AcceptableValueBase, Object[])
+ nameWithType.vb: ConfigDescription.ConfigDescription(String, AcceptableValueBase, Object())
+- uid: BepInEx.Configuration.ConfigDescription.#ctor*
+ name: ConfigDescription
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription__ctor_
+ commentId: Overload:BepInEx.Configuration.ConfigDescription.#ctor
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDescription.ConfigDescription
+ nameWithType: ConfigDescription.ConfigDescription
+- uid: BepInEx.Configuration.ConfigDescription.AcceptableValues
+ name: AcceptableValues
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription_AcceptableValues
+ commentId: P:BepInEx.Configuration.ConfigDescription.AcceptableValues
+ fullName: BepInEx.Configuration.ConfigDescription.AcceptableValues
+ nameWithType: ConfigDescription.AcceptableValues
+- uid: BepInEx.Configuration.ConfigDescription.AcceptableValues*
+ name: AcceptableValues
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription_AcceptableValues_
+ commentId: Overload:BepInEx.Configuration.ConfigDescription.AcceptableValues
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDescription.AcceptableValues
+ nameWithType: ConfigDescription.AcceptableValues
+- uid: BepInEx.Configuration.ConfigDescription.Description
+ name: Description
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription_Description
+ commentId: P:BepInEx.Configuration.ConfigDescription.Description
+ fullName: BepInEx.Configuration.ConfigDescription.Description
+ nameWithType: ConfigDescription.Description
+- uid: BepInEx.Configuration.ConfigDescription.Description*
+ name: Description
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription_Description_
+ commentId: Overload:BepInEx.Configuration.ConfigDescription.Description
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDescription.Description
+ nameWithType: ConfigDescription.Description
+- uid: BepInEx.Configuration.ConfigDescription.Empty
+ name: Empty
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription_Empty
+ commentId: P:BepInEx.Configuration.ConfigDescription.Empty
+ fullName: BepInEx.Configuration.ConfigDescription.Empty
+ nameWithType: ConfigDescription.Empty
+- uid: BepInEx.Configuration.ConfigDescription.Empty*
+ name: Empty
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription_Empty_
+ commentId: Overload:BepInEx.Configuration.ConfigDescription.Empty
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDescription.Empty
+ nameWithType: ConfigDescription.Empty
+- uid: BepInEx.Configuration.ConfigDescription.Tags
+ name: Tags
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription_Tags
+ commentId: P:BepInEx.Configuration.ConfigDescription.Tags
+ fullName: BepInEx.Configuration.ConfigDescription.Tags
+ nameWithType: ConfigDescription.Tags
+- uid: BepInEx.Configuration.ConfigDescription.Tags*
+ name: Tags
+ href: api/BepInEx.Configuration.ConfigDescription.html#BepInEx_Configuration_ConfigDescription_Tags_
+ commentId: Overload:BepInEx.Configuration.ConfigDescription.Tags
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigDescription.Tags
+ nameWithType: ConfigDescription.Tags
+- uid: BepInEx.Configuration.ConfigEntry`1
+ name: ConfigEntry
+ href: api/BepInEx.Configuration.ConfigEntry-1.html
+ commentId: T:BepInEx.Configuration.ConfigEntry`1
+ name.vb: ConfigEntry(Of T)
+ fullName: BepInEx.Configuration.ConfigEntry
+ fullName.vb: BepInEx.Configuration.ConfigEntry(Of T)
+ nameWithType: ConfigEntry
+ nameWithType.vb: ConfigEntry(Of T)
+- uid: BepInEx.Configuration.ConfigEntry`1.BoxedValue
+ name: BoxedValue
+ href: api/BepInEx.Configuration.ConfigEntry-1.html#BepInEx_Configuration_ConfigEntry_1_BoxedValue
+ commentId: P:BepInEx.Configuration.ConfigEntry`1.BoxedValue
+ fullName: BepInEx.Configuration.ConfigEntry.BoxedValue
+ fullName.vb: BepInEx.Configuration.ConfigEntry(Of T).BoxedValue
+ nameWithType: ConfigEntry.BoxedValue
+ nameWithType.vb: ConfigEntry(Of T).BoxedValue
+- uid: BepInEx.Configuration.ConfigEntry`1.BoxedValue*
+ name: BoxedValue
+ href: api/BepInEx.Configuration.ConfigEntry-1.html#BepInEx_Configuration_ConfigEntry_1_BoxedValue_
+ commentId: Overload:BepInEx.Configuration.ConfigEntry`1.BoxedValue
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntry.BoxedValue
+ fullName.vb: BepInEx.Configuration.ConfigEntry(Of T).BoxedValue
+ nameWithType: ConfigEntry.BoxedValue
+ nameWithType.vb: ConfigEntry(Of T).BoxedValue
+- uid: BepInEx.Configuration.ConfigEntry`1.SettingChanged
+ name: SettingChanged
+ href: api/BepInEx.Configuration.ConfigEntry-1.html#BepInEx_Configuration_ConfigEntry_1_SettingChanged
+ commentId: E:BepInEx.Configuration.ConfigEntry`1.SettingChanged
+ fullName: BepInEx.Configuration.ConfigEntry.SettingChanged
+ fullName.vb: BepInEx.Configuration.ConfigEntry(Of T).SettingChanged
+ nameWithType: ConfigEntry.SettingChanged
+ nameWithType.vb: ConfigEntry(Of T).SettingChanged
+- uid: BepInEx.Configuration.ConfigEntry`1.Value
+ name: Value
+ href: api/BepInEx.Configuration.ConfigEntry-1.html#BepInEx_Configuration_ConfigEntry_1_Value
+ commentId: P:BepInEx.Configuration.ConfigEntry`1.Value
+ fullName: BepInEx.Configuration.ConfigEntry.Value
+ fullName.vb: BepInEx.Configuration.ConfigEntry(Of T).Value
+ nameWithType: ConfigEntry.Value
+ nameWithType.vb: ConfigEntry(Of T).Value
+- uid: BepInEx.Configuration.ConfigEntry`1.Value*
+ name: Value
+ href: api/BepInEx.Configuration.ConfigEntry-1.html#BepInEx_Configuration_ConfigEntry_1_Value_
+ commentId: Overload:BepInEx.Configuration.ConfigEntry`1.Value
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntry.Value
+ fullName.vb: BepInEx.Configuration.ConfigEntry(Of T).Value
+ nameWithType: ConfigEntry.Value
+ nameWithType.vb: ConfigEntry(Of T).Value
+- uid: BepInEx.Configuration.ConfigEntryBase
+ name: ConfigEntryBase
+ href: api/BepInEx.Configuration.ConfigEntryBase.html
+ commentId: T:BepInEx.Configuration.ConfigEntryBase
+ fullName: BepInEx.Configuration.ConfigEntryBase
+ nameWithType: ConfigEntryBase
+- uid: BepInEx.Configuration.ConfigEntryBase.#ctor(BepInEx.Configuration.ConfigFile,BepInEx.Configuration.ConfigDefinition,System.Type,System.Object,BepInEx.Configuration.ConfigDescription)
+ name: ConfigEntryBase(ConfigFile, ConfigDefinition, Type, Object, ConfigDescription)
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase__ctor_BepInEx_Configuration_ConfigFile_BepInEx_Configuration_ConfigDefinition_System_Type_System_Object_BepInEx_Configuration_ConfigDescription_
+ commentId: M:BepInEx.Configuration.ConfigEntryBase.#ctor(BepInEx.Configuration.ConfigFile,BepInEx.Configuration.ConfigDefinition,System.Type,System.Object,BepInEx.Configuration.ConfigDescription)
+ fullName: BepInEx.Configuration.ConfigEntryBase.ConfigEntryBase(BepInEx.Configuration.ConfigFile, BepInEx.Configuration.ConfigDefinition, System.Type, System.Object, BepInEx.Configuration.ConfigDescription)
+ nameWithType: ConfigEntryBase.ConfigEntryBase(ConfigFile, ConfigDefinition, Type, Object, ConfigDescription)
+- uid: BepInEx.Configuration.ConfigEntryBase.#ctor*
+ name: ConfigEntryBase
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase__ctor_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.#ctor
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.ConfigEntryBase
+ nameWithType: ConfigEntryBase.ConfigEntryBase
+- uid: BepInEx.Configuration.ConfigEntryBase.BoxedValue
+ name: BoxedValue
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_BoxedValue
+ commentId: P:BepInEx.Configuration.ConfigEntryBase.BoxedValue
+ fullName: BepInEx.Configuration.ConfigEntryBase.BoxedValue
+ nameWithType: ConfigEntryBase.BoxedValue
+- uid: BepInEx.Configuration.ConfigEntryBase.BoxedValue*
+ name: BoxedValue
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_BoxedValue_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.BoxedValue
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.BoxedValue
+ nameWithType: ConfigEntryBase.BoxedValue
+- uid: BepInEx.Configuration.ConfigEntryBase.ClampValue*
+ name: ClampValue
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_ClampValue_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.ClampValue
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.ClampValue
+ nameWithType: ConfigEntryBase.ClampValue
+- uid: BepInEx.Configuration.ConfigEntryBase.ClampValue``1(``0)
+ name: ClampValue(T)
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_ClampValue__1___0_
+ commentId: M:BepInEx.Configuration.ConfigEntryBase.ClampValue``1(``0)
+ name.vb: ClampValue(Of T)(T)
+ fullName: BepInEx.Configuration.ConfigEntryBase.ClampValue(T)
+ fullName.vb: BepInEx.Configuration.ConfigEntryBase.ClampValue(Of T)(T)
+ nameWithType: ConfigEntryBase.ClampValue(T)
+ nameWithType.vb: ConfigEntryBase.ClampValue(Of T)(T)
+- uid: BepInEx.Configuration.ConfigEntryBase.ConfigFile
+ name: ConfigFile
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_ConfigFile
+ commentId: P:BepInEx.Configuration.ConfigEntryBase.ConfigFile
+ fullName: BepInEx.Configuration.ConfigEntryBase.ConfigFile
+ nameWithType: ConfigEntryBase.ConfigFile
+- uid: BepInEx.Configuration.ConfigEntryBase.ConfigFile*
+ name: ConfigFile
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_ConfigFile_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.ConfigFile
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.ConfigFile
+ nameWithType: ConfigEntryBase.ConfigFile
+- uid: BepInEx.Configuration.ConfigEntryBase.DefaultValue
+ name: DefaultValue
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_DefaultValue
+ commentId: P:BepInEx.Configuration.ConfigEntryBase.DefaultValue
+ fullName: BepInEx.Configuration.ConfigEntryBase.DefaultValue
+ nameWithType: ConfigEntryBase.DefaultValue
+- uid: BepInEx.Configuration.ConfigEntryBase.DefaultValue*
+ name: DefaultValue
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_DefaultValue_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.DefaultValue
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.DefaultValue
+ nameWithType: ConfigEntryBase.DefaultValue
+- uid: BepInEx.Configuration.ConfigEntryBase.Definition
+ name: Definition
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_Definition
+ commentId: P:BepInEx.Configuration.ConfigEntryBase.Definition
+ fullName: BepInEx.Configuration.ConfigEntryBase.Definition
+ nameWithType: ConfigEntryBase.Definition
+- uid: BepInEx.Configuration.ConfigEntryBase.Definition*
+ name: Definition
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_Definition_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.Definition
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.Definition
+ nameWithType: ConfigEntryBase.Definition
+- uid: BepInEx.Configuration.ConfigEntryBase.Description
+ name: Description
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_Description
+ commentId: P:BepInEx.Configuration.ConfigEntryBase.Description
+ fullName: BepInEx.Configuration.ConfigEntryBase.Description
+ nameWithType: ConfigEntryBase.Description
+- uid: BepInEx.Configuration.ConfigEntryBase.Description*
+ name: Description
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_Description_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.Description
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.Description
+ nameWithType: ConfigEntryBase.Description
+- uid: BepInEx.Configuration.ConfigEntryBase.GetSerializedValue
+ name: GetSerializedValue()
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_GetSerializedValue
+ commentId: M:BepInEx.Configuration.ConfigEntryBase.GetSerializedValue
+ fullName: BepInEx.Configuration.ConfigEntryBase.GetSerializedValue()
+ nameWithType: ConfigEntryBase.GetSerializedValue()
+- uid: BepInEx.Configuration.ConfigEntryBase.GetSerializedValue*
+ name: GetSerializedValue
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_GetSerializedValue_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.GetSerializedValue
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.GetSerializedValue
+ nameWithType: ConfigEntryBase.GetSerializedValue
+- uid: BepInEx.Configuration.ConfigEntryBase.OnSettingChanged(System.Object)
+ name: OnSettingChanged(Object)
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_OnSettingChanged_System_Object_
+ commentId: M:BepInEx.Configuration.ConfigEntryBase.OnSettingChanged(System.Object)
+ fullName: BepInEx.Configuration.ConfigEntryBase.OnSettingChanged(System.Object)
+ nameWithType: ConfigEntryBase.OnSettingChanged(Object)
+- uid: BepInEx.Configuration.ConfigEntryBase.OnSettingChanged*
+ name: OnSettingChanged
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_OnSettingChanged_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.OnSettingChanged
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.OnSettingChanged
+ nameWithType: ConfigEntryBase.OnSettingChanged
+- uid: BepInEx.Configuration.ConfigEntryBase.SetSerializedValue(System.String)
+ name: SetSerializedValue(String)
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_SetSerializedValue_System_String_
+ commentId: M:BepInEx.Configuration.ConfigEntryBase.SetSerializedValue(System.String)
+ fullName: BepInEx.Configuration.ConfigEntryBase.SetSerializedValue(System.String)
+ nameWithType: ConfigEntryBase.SetSerializedValue(String)
+- uid: BepInEx.Configuration.ConfigEntryBase.SetSerializedValue*
+ name: SetSerializedValue
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_SetSerializedValue_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.SetSerializedValue
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.SetSerializedValue
+ nameWithType: ConfigEntryBase.SetSerializedValue
+- uid: BepInEx.Configuration.ConfigEntryBase.SettingType
+ name: SettingType
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_SettingType
+ commentId: P:BepInEx.Configuration.ConfigEntryBase.SettingType
+ fullName: BepInEx.Configuration.ConfigEntryBase.SettingType
+ nameWithType: ConfigEntryBase.SettingType
+- uid: BepInEx.Configuration.ConfigEntryBase.SettingType*
+ name: SettingType
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_SettingType_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.SettingType
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.SettingType
+ nameWithType: ConfigEntryBase.SettingType
+- uid: BepInEx.Configuration.ConfigEntryBase.WriteDescription(System.IO.StreamWriter)
+ name: WriteDescription(StreamWriter)
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_WriteDescription_System_IO_StreamWriter_
+ commentId: M:BepInEx.Configuration.ConfigEntryBase.WriteDescription(System.IO.StreamWriter)
+ fullName: BepInEx.Configuration.ConfigEntryBase.WriteDescription(System.IO.StreamWriter)
+ nameWithType: ConfigEntryBase.WriteDescription(StreamWriter)
+- uid: BepInEx.Configuration.ConfigEntryBase.WriteDescription*
+ name: WriteDescription
+ href: api/BepInEx.Configuration.ConfigEntryBase.html#BepInEx_Configuration_ConfigEntryBase_WriteDescription_
+ commentId: Overload:BepInEx.Configuration.ConfigEntryBase.WriteDescription
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigEntryBase.WriteDescription
+ nameWithType: ConfigEntryBase.WriteDescription
+- uid: BepInEx.Configuration.ConfigFile
+ name: ConfigFile
+ href: api/BepInEx.Configuration.ConfigFile.html
+ commentId: T:BepInEx.Configuration.ConfigFile
+ fullName: BepInEx.Configuration.ConfigFile
+ nameWithType: ConfigFile
+- uid: BepInEx.Configuration.ConfigFile.#ctor(System.String,System.Boolean)
+ name: ConfigFile(String, Boolean)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile__ctor_System_String_System_Boolean_
+ commentId: M:BepInEx.Configuration.ConfigFile.#ctor(System.String,System.Boolean)
+ fullName: BepInEx.Configuration.ConfigFile.ConfigFile(System.String, System.Boolean)
+ nameWithType: ConfigFile.ConfigFile(String, Boolean)
+- uid: BepInEx.Configuration.ConfigFile.#ctor(System.String,System.Boolean,BepInEx.BepInPlugin)
+ name: ConfigFile(String, Boolean, BepInPlugin)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile__ctor_System_String_System_Boolean_BepInEx_BepInPlugin_
+ commentId: M:BepInEx.Configuration.ConfigFile.#ctor(System.String,System.Boolean,BepInEx.BepInPlugin)
+ fullName: BepInEx.Configuration.ConfigFile.ConfigFile(System.String, System.Boolean, BepInEx.BepInPlugin)
+ nameWithType: ConfigFile.ConfigFile(String, Boolean, BepInPlugin)
+- uid: BepInEx.Configuration.ConfigFile.#ctor*
+ name: ConfigFile
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile__ctor_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.#ctor
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.ConfigFile
+ nameWithType: ConfigFile.ConfigFile
+- uid: BepInEx.Configuration.ConfigFile.Add(BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase)
+ name: Add(ConfigDefinition, ConfigEntryBase)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Add_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase_
+ commentId: M:BepInEx.Configuration.ConfigFile.Add(BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase)
+ fullName: BepInEx.Configuration.ConfigFile.Add(BepInEx.Configuration.ConfigDefinition, BepInEx.Configuration.ConfigEntryBase)
+ nameWithType: ConfigFile.Add(ConfigDefinition, ConfigEntryBase)
+- uid: BepInEx.Configuration.ConfigFile.Add*
+ name: Add
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Add_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Add
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Add
+ nameWithType: ConfigFile.Add
+- uid: BepInEx.Configuration.ConfigFile.AddSetting*
+ name: AddSetting
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_AddSetting_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.AddSetting
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.AddSetting
+ nameWithType: ConfigFile.AddSetting
+- uid: BepInEx.Configuration.ConfigFile.AddSetting``1(BepInEx.Configuration.ConfigDefinition,``0,BepInEx.Configuration.ConfigDescription)
+ name: AddSetting(ConfigDefinition, T, ConfigDescription)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_AddSetting__1_BepInEx_Configuration_ConfigDefinition___0_BepInEx_Configuration_ConfigDescription_
+ commentId: M:BepInEx.Configuration.ConfigFile.AddSetting``1(BepInEx.Configuration.ConfigDefinition,``0,BepInEx.Configuration.ConfigDescription)
+ name.vb: AddSetting(Of T)(ConfigDefinition, T, ConfigDescription)
+ fullName: BepInEx.Configuration.ConfigFile.AddSetting(BepInEx.Configuration.ConfigDefinition, T, BepInEx.Configuration.ConfigDescription)
+ fullName.vb: BepInEx.Configuration.ConfigFile.AddSetting(Of T)(BepInEx.Configuration.ConfigDefinition, T, BepInEx.Configuration.ConfigDescription)
+ nameWithType: ConfigFile.AddSetting(ConfigDefinition, T, ConfigDescription)
+ nameWithType.vb: ConfigFile.AddSetting(Of T)(ConfigDefinition, T, ConfigDescription)
+- uid: BepInEx.Configuration.ConfigFile.AddSetting``1(System.String,System.String,``0,BepInEx.Configuration.ConfigDescription)
+ name: AddSetting(String, String, T, ConfigDescription)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_AddSetting__1_System_String_System_String___0_BepInEx_Configuration_ConfigDescription_
+ commentId: M:BepInEx.Configuration.ConfigFile.AddSetting``1(System.String,System.String,``0,BepInEx.Configuration.ConfigDescription)
+ name.vb: AddSetting(Of T)(String, String, T, ConfigDescription)
+ fullName: BepInEx.Configuration.ConfigFile.AddSetting(System.String, System.String, T, BepInEx.Configuration.ConfigDescription)
+ fullName.vb: BepInEx.Configuration.ConfigFile.AddSetting(Of T)(System.String, System.String, T, BepInEx.Configuration.ConfigDescription)
+ nameWithType: ConfigFile.AddSetting(String, String, T, ConfigDescription)
+ nameWithType.vb: ConfigFile.AddSetting(Of T)(String, String, T, ConfigDescription)
+- uid: BepInEx.Configuration.ConfigFile.AddSetting``1(System.String,System.String,``0,System.String)
+ name: AddSetting(String, String, T, String)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_AddSetting__1_System_String_System_String___0_System_String_
+ commentId: M:BepInEx.Configuration.ConfigFile.AddSetting``1(System.String,System.String,``0,System.String)
+ name.vb: AddSetting(Of T)(String, String, T, String)
+ fullName: BepInEx.Configuration.ConfigFile.AddSetting(System.String, System.String, T, System.String)
+ fullName.vb: BepInEx.Configuration.ConfigFile.AddSetting(Of T)(System.String, System.String, T, System.String)
+ nameWithType: ConfigFile.AddSetting(String, String, T, String)
+ nameWithType.vb: ConfigFile.AddSetting(Of T)(String, String, T, String)
+- uid: BepInEx.Configuration.ConfigFile.Bind*
+ name: Bind
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Bind_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Bind
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Bind
+ nameWithType: ConfigFile.Bind
+- uid: BepInEx.Configuration.ConfigFile.Bind``1(BepInEx.Configuration.ConfigDefinition,``0,BepInEx.Configuration.ConfigDescription)
+ name: Bind(ConfigDefinition, T, ConfigDescription)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Bind__1_BepInEx_Configuration_ConfigDefinition___0_BepInEx_Configuration_ConfigDescription_
+ commentId: M:BepInEx.Configuration.ConfigFile.Bind``1(BepInEx.Configuration.ConfigDefinition,``0,BepInEx.Configuration.ConfigDescription)
+ name.vb: Bind(Of T)(ConfigDefinition, T, ConfigDescription)
+ fullName: BepInEx.Configuration.ConfigFile.Bind(BepInEx.Configuration.ConfigDefinition, T, BepInEx.Configuration.ConfigDescription)
+ fullName.vb: BepInEx.Configuration.ConfigFile.Bind(Of T)(BepInEx.Configuration.ConfigDefinition, T, BepInEx.Configuration.ConfigDescription)
+ nameWithType: ConfigFile.Bind(ConfigDefinition, T, ConfigDescription)
+ nameWithType.vb: ConfigFile.Bind(Of T)(ConfigDefinition, T, ConfigDescription)
+- uid: BepInEx.Configuration.ConfigFile.Bind``1(System.String,System.String,``0,BepInEx.Configuration.ConfigDescription)
+ name: Bind(String, String, T, ConfigDescription)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Bind__1_System_String_System_String___0_BepInEx_Configuration_ConfigDescription_
+ commentId: M:BepInEx.Configuration.ConfigFile.Bind``1(System.String,System.String,``0,BepInEx.Configuration.ConfigDescription)
+ name.vb: Bind(Of T)(String, String, T, ConfigDescription)
+ fullName: BepInEx.Configuration.ConfigFile.Bind(System.String, System.String, T, BepInEx.Configuration.ConfigDescription)
+ fullName.vb: BepInEx.Configuration.ConfigFile.Bind(Of T)(System.String, System.String, T, BepInEx.Configuration.ConfigDescription)
+ nameWithType: ConfigFile.Bind(String, String, T, ConfigDescription)
+ nameWithType.vb: ConfigFile.Bind(Of T)(String, String, T, ConfigDescription)
+- uid: BepInEx.Configuration.ConfigFile.Bind``1(System.String,System.String,``0,System.String)
+ name: Bind(String, String, T, String)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Bind__1_System_String_System_String___0_System_String_
+ commentId: M:BepInEx.Configuration.ConfigFile.Bind``1(System.String,System.String,``0,System.String)
+ name.vb: Bind(Of T)(String, String, T, String)
+ fullName: BepInEx.Configuration.ConfigFile.Bind(System.String, System.String, T, System.String)
+ fullName.vb: BepInEx.Configuration.ConfigFile.Bind(Of T)(System.String, System.String, T, System.String)
+ nameWithType: ConfigFile.Bind(String, String, T, String)
+ nameWithType.vb: ConfigFile.Bind(Of T)(String, String, T, String)
+- uid: BepInEx.Configuration.ConfigFile.Clear
+ name: Clear()
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Clear
+ commentId: M:BepInEx.Configuration.ConfigFile.Clear
+ fullName: BepInEx.Configuration.ConfigFile.Clear()
+ nameWithType: ConfigFile.Clear()
+- uid: BepInEx.Configuration.ConfigFile.Clear*
+ name: Clear
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Clear_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Clear
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Clear
+ nameWithType: ConfigFile.Clear
+- uid: BepInEx.Configuration.ConfigFile.ConfigDefinitions
+ name: ConfigDefinitions
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_ConfigDefinitions
+ commentId: P:BepInEx.Configuration.ConfigFile.ConfigDefinitions
+ fullName: BepInEx.Configuration.ConfigFile.ConfigDefinitions
+ nameWithType: ConfigFile.ConfigDefinitions
+- uid: BepInEx.Configuration.ConfigFile.ConfigDefinitions*
+ name: ConfigDefinitions
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_ConfigDefinitions_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.ConfigDefinitions
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.ConfigDefinitions
+ nameWithType: ConfigFile.ConfigDefinitions
+- uid: BepInEx.Configuration.ConfigFile.ConfigFilePath
+ name: ConfigFilePath
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_ConfigFilePath
+ commentId: P:BepInEx.Configuration.ConfigFile.ConfigFilePath
+ fullName: BepInEx.Configuration.ConfigFile.ConfigFilePath
+ nameWithType: ConfigFile.ConfigFilePath
+- uid: BepInEx.Configuration.ConfigFile.ConfigFilePath*
+ name: ConfigFilePath
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_ConfigFilePath_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.ConfigFilePath
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.ConfigFilePath
+ nameWithType: ConfigFile.ConfigFilePath
+- uid: BepInEx.Configuration.ConfigFile.ConfigReloaded
+ name: ConfigReloaded
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_ConfigReloaded
+ commentId: E:BepInEx.Configuration.ConfigFile.ConfigReloaded
+ fullName: BepInEx.Configuration.ConfigFile.ConfigReloaded
+ nameWithType: ConfigFile.ConfigReloaded
+- uid: BepInEx.Configuration.ConfigFile.Contains(System.Collections.Generic.KeyValuePair{BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase})
+ name: Contains(KeyValuePair)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Contains_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase__
+ commentId: M:BepInEx.Configuration.ConfigFile.Contains(System.Collections.Generic.KeyValuePair{BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase})
+ name.vb: Contains(KeyValuePair(Of ConfigDefinition, ConfigEntryBase))
+ fullName: BepInEx.Configuration.ConfigFile.Contains(System.Collections.Generic.KeyValuePair)
+ fullName.vb: BepInEx.Configuration.ConfigFile.Contains(System.Collections.Generic.KeyValuePair(Of BepInEx.Configuration.ConfigDefinition, BepInEx.Configuration.ConfigEntryBase))
+ nameWithType: ConfigFile.Contains(KeyValuePair)
+ nameWithType.vb: ConfigFile.Contains(KeyValuePair(Of ConfigDefinition, ConfigEntryBase))
+- uid: BepInEx.Configuration.ConfigFile.Contains*
+ name: Contains
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Contains_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Contains
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Contains
+ nameWithType: ConfigFile.Contains
+- uid: BepInEx.Configuration.ConfigFile.ContainsKey(BepInEx.Configuration.ConfigDefinition)
+ name: ContainsKey(ConfigDefinition)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_ContainsKey_BepInEx_Configuration_ConfigDefinition_
+ commentId: M:BepInEx.Configuration.ConfigFile.ContainsKey(BepInEx.Configuration.ConfigDefinition)
+ fullName: BepInEx.Configuration.ConfigFile.ContainsKey(BepInEx.Configuration.ConfigDefinition)
+ nameWithType: ConfigFile.ContainsKey(ConfigDefinition)
+- uid: BepInEx.Configuration.ConfigFile.ContainsKey*
+ name: ContainsKey
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_ContainsKey_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.ContainsKey
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.ContainsKey
+ nameWithType: ConfigFile.ContainsKey
+- uid: BepInEx.Configuration.ConfigFile.CoreConfig
+ name: CoreConfig
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_CoreConfig
+ commentId: P:BepInEx.Configuration.ConfigFile.CoreConfig
+ fullName: BepInEx.Configuration.ConfigFile.CoreConfig
+ nameWithType: ConfigFile.CoreConfig
+- uid: BepInEx.Configuration.ConfigFile.CoreConfig*
+ name: CoreConfig
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_CoreConfig_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.CoreConfig
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.CoreConfig
+ nameWithType: ConfigFile.CoreConfig
+- uid: BepInEx.Configuration.ConfigFile.Count
+ name: Count
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Count
+ commentId: P:BepInEx.Configuration.ConfigFile.Count
+ fullName: BepInEx.Configuration.ConfigFile.Count
+ nameWithType: ConfigFile.Count
+- uid: BepInEx.Configuration.ConfigFile.Count*
+ name: Count
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Count_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Count
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Count
+ nameWithType: ConfigFile.Count
+- uid: BepInEx.Configuration.ConfigFile.Entries
+ name: Entries
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Entries
+ commentId: P:BepInEx.Configuration.ConfigFile.Entries
+ fullName: BepInEx.Configuration.ConfigFile.Entries
+ nameWithType: ConfigFile.Entries
+- uid: BepInEx.Configuration.ConfigFile.Entries*
+ name: Entries
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Entries_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Entries
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Entries
+ nameWithType: ConfigFile.Entries
+- uid: BepInEx.Configuration.ConfigFile.GenerateSettingDescriptions
+ name: GenerateSettingDescriptions
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GenerateSettingDescriptions
+ commentId: P:BepInEx.Configuration.ConfigFile.GenerateSettingDescriptions
+ fullName: BepInEx.Configuration.ConfigFile.GenerateSettingDescriptions
+ nameWithType: ConfigFile.GenerateSettingDescriptions
+- uid: BepInEx.Configuration.ConfigFile.GenerateSettingDescriptions*
+ name: GenerateSettingDescriptions
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GenerateSettingDescriptions_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.GenerateSettingDescriptions
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.GenerateSettingDescriptions
+ nameWithType: ConfigFile.GenerateSettingDescriptions
+- uid: BepInEx.Configuration.ConfigFile.GetConfigEntries
+ name: GetConfigEntries()
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GetConfigEntries
+ commentId: M:BepInEx.Configuration.ConfigFile.GetConfigEntries
+ fullName: BepInEx.Configuration.ConfigFile.GetConfigEntries()
+ nameWithType: ConfigFile.GetConfigEntries()
+- uid: BepInEx.Configuration.ConfigFile.GetConfigEntries*
+ name: GetConfigEntries
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GetConfigEntries_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.GetConfigEntries
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.GetConfigEntries
+ nameWithType: ConfigFile.GetConfigEntries
+- uid: BepInEx.Configuration.ConfigFile.GetEnumerator
+ name: GetEnumerator()
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GetEnumerator
+ commentId: M:BepInEx.Configuration.ConfigFile.GetEnumerator
+ fullName: BepInEx.Configuration.ConfigFile.GetEnumerator()
+ nameWithType: ConfigFile.GetEnumerator()
+- uid: BepInEx.Configuration.ConfigFile.GetEnumerator*
+ name: GetEnumerator
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GetEnumerator_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.GetEnumerator
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.GetEnumerator
+ nameWithType: ConfigFile.GetEnumerator
+- uid: BepInEx.Configuration.ConfigFile.GetSetting*
+ name: GetSetting
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GetSetting_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.GetSetting
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.GetSetting
+ nameWithType: ConfigFile.GetSetting
+- uid: BepInEx.Configuration.ConfigFile.GetSetting``1(BepInEx.Configuration.ConfigDefinition)
+ name: GetSetting(ConfigDefinition)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GetSetting__1_BepInEx_Configuration_ConfigDefinition_
+ commentId: M:BepInEx.Configuration.ConfigFile.GetSetting``1(BepInEx.Configuration.ConfigDefinition)
+ name.vb: GetSetting(Of T)(ConfigDefinition)
+ fullName: BepInEx.Configuration.ConfigFile.GetSetting(BepInEx.Configuration.ConfigDefinition)
+ fullName.vb: BepInEx.Configuration.ConfigFile.GetSetting(Of T)(BepInEx.Configuration.ConfigDefinition)
+ nameWithType: ConfigFile.GetSetting(ConfigDefinition)
+ nameWithType.vb: ConfigFile.GetSetting(Of T)(ConfigDefinition)
+- uid: BepInEx.Configuration.ConfigFile.GetSetting``1(System.String,System.String)
+ name: GetSetting(String, String)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_GetSetting__1_System_String_System_String_
+ commentId: M:BepInEx.Configuration.ConfigFile.GetSetting``1(System.String,System.String)
+ name.vb: GetSetting(Of T)(String, String)
+ fullName: BepInEx.Configuration.ConfigFile.GetSetting(System.String, System.String)
+ fullName.vb: BepInEx.Configuration.ConfigFile.GetSetting(Of T)(System.String, System.String)
+ nameWithType: ConfigFile.GetSetting(String, String)
+ nameWithType.vb: ConfigFile.GetSetting(Of T)(String, String)
+- uid: BepInEx.Configuration.ConfigFile.IsReadOnly
+ name: IsReadOnly
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_IsReadOnly
+ commentId: P:BepInEx.Configuration.ConfigFile.IsReadOnly
+ fullName: BepInEx.Configuration.ConfigFile.IsReadOnly
+ nameWithType: ConfigFile.IsReadOnly
+- uid: BepInEx.Configuration.ConfigFile.IsReadOnly*
+ name: IsReadOnly
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_IsReadOnly_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.IsReadOnly
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.IsReadOnly
+ nameWithType: ConfigFile.IsReadOnly
+- uid: BepInEx.Configuration.ConfigFile.Item(BepInEx.Configuration.ConfigDefinition)
+ name: Item[ConfigDefinition]
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Item_BepInEx_Configuration_ConfigDefinition_
+ commentId: P:BepInEx.Configuration.ConfigFile.Item(BepInEx.Configuration.ConfigDefinition)
+ name.vb: Item(ConfigDefinition)
+ fullName: BepInEx.Configuration.ConfigFile.Item[BepInEx.Configuration.ConfigDefinition]
+ fullName.vb: BepInEx.Configuration.ConfigFile.Item(BepInEx.Configuration.ConfigDefinition)
+ nameWithType: ConfigFile.Item[ConfigDefinition]
+ nameWithType.vb: ConfigFile.Item(ConfigDefinition)
+- uid: BepInEx.Configuration.ConfigFile.Item(System.String,System.String)
+ name: Item[String, String]
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Item_System_String_System_String_
+ commentId: P:BepInEx.Configuration.ConfigFile.Item(System.String,System.String)
+ name.vb: Item(String, String)
+ fullName: BepInEx.Configuration.ConfigFile.Item[System.String, System.String]
+ fullName.vb: BepInEx.Configuration.ConfigFile.Item(System.String, System.String)
+ nameWithType: ConfigFile.Item[String, String]
+ nameWithType.vb: ConfigFile.Item(String, String)
+- uid: BepInEx.Configuration.ConfigFile.Item*
+ name: Item
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Item_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Item
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Item
+ nameWithType: ConfigFile.Item
+- uid: BepInEx.Configuration.ConfigFile.Keys
+ name: Keys
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Keys
+ commentId: P:BepInEx.Configuration.ConfigFile.Keys
+ fullName: BepInEx.Configuration.ConfigFile.Keys
+ nameWithType: ConfigFile.Keys
+- uid: BepInEx.Configuration.ConfigFile.Keys*
+ name: Keys
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Keys_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Keys
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Keys
+ nameWithType: ConfigFile.Keys
+- uid: BepInEx.Configuration.ConfigFile.Reload
+ name: Reload()
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Reload
+ commentId: M:BepInEx.Configuration.ConfigFile.Reload
+ fullName: BepInEx.Configuration.ConfigFile.Reload()
+ nameWithType: ConfigFile.Reload()
+- uid: BepInEx.Configuration.ConfigFile.Reload*
+ name: Reload
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Reload_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Reload
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Reload
+ nameWithType: ConfigFile.Reload
+- uid: BepInEx.Configuration.ConfigFile.Remove(BepInEx.Configuration.ConfigDefinition)
+ name: Remove(ConfigDefinition)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Remove_BepInEx_Configuration_ConfigDefinition_
+ commentId: M:BepInEx.Configuration.ConfigFile.Remove(BepInEx.Configuration.ConfigDefinition)
+ fullName: BepInEx.Configuration.ConfigFile.Remove(BepInEx.Configuration.ConfigDefinition)
+ nameWithType: ConfigFile.Remove(ConfigDefinition)
+- uid: BepInEx.Configuration.ConfigFile.Remove*
+ name: Remove
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Remove_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Remove
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Remove
+ nameWithType: ConfigFile.Remove
+- uid: BepInEx.Configuration.ConfigFile.Save
+ name: Save()
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Save
+ commentId: M:BepInEx.Configuration.ConfigFile.Save
+ fullName: BepInEx.Configuration.ConfigFile.Save()
+ nameWithType: ConfigFile.Save()
+- uid: BepInEx.Configuration.ConfigFile.Save*
+ name: Save
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_Save_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.Save
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.Save
+ nameWithType: ConfigFile.Save
+- uid: BepInEx.Configuration.ConfigFile.SaveOnConfigSet
+ name: SaveOnConfigSet
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_SaveOnConfigSet
+ commentId: P:BepInEx.Configuration.ConfigFile.SaveOnConfigSet
+ fullName: BepInEx.Configuration.ConfigFile.SaveOnConfigSet
+ nameWithType: ConfigFile.SaveOnConfigSet
+- uid: BepInEx.Configuration.ConfigFile.SaveOnConfigSet*
+ name: SaveOnConfigSet
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_SaveOnConfigSet_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.SaveOnConfigSet
+ isSpec: "True"
+ fullName: BepInEx.Configuration.ConfigFile.SaveOnConfigSet
+ nameWithType: ConfigFile.SaveOnConfigSet
+- uid: BepInEx.Configuration.ConfigFile.SettingChanged
+ name: SettingChanged
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_SettingChanged
+ commentId: E:BepInEx.Configuration.ConfigFile.SettingChanged
+ fullName: BepInEx.Configuration.ConfigFile.SettingChanged
+ nameWithType: ConfigFile.SettingChanged
+- uid: BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#Add(System.Collections.Generic.KeyValuePair{BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase})
+ name: ICollection>.Add(KeyValuePair)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_System_Collections_Generic_ICollection_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase___Add_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase__
+ commentId: M:BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#Add(System.Collections.Generic.KeyValuePair{BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase})
+ name.vb: System.Collections.Generic.ICollection>.Add(KeyValuePair(Of ConfigDefinition, ConfigEntryBase))
+ fullName: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair)
+ fullName.vb: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.Add(System.Collections.Generic.KeyValuePair(Of BepInEx.Configuration.ConfigDefinition, BepInEx.Configuration.ConfigEntryBase))
+ nameWithType: ConfigFile.ICollection>.Add(KeyValuePair)
+ nameWithType.vb: ConfigFile.System.Collections.Generic.ICollection>.Add(KeyValuePair(Of ConfigDefinition, ConfigEntryBase))
+- uid: BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#Add*
+ name: ICollection>.Add
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_System_Collections_Generic_ICollection_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase___Add_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#Add
+ isSpec: "True"
+ name.vb: System.Collections.Generic.ICollection>.Add
+ fullName: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.Add
+ fullName.vb: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.Add
+ nameWithType: ConfigFile.ICollection>.Add
+ nameWithType.vb: ConfigFile.System.Collections.Generic.ICollection>.Add
+- uid: BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#CopyTo(System.Collections.Generic.KeyValuePair{BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase}[],System.Int32)
+ name: ICollection>.CopyTo(KeyValuePair[], Int32)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_System_Collections_Generic_ICollection_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase___CopyTo_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase____System_Int32_
+ commentId: M:BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#CopyTo(System.Collections.Generic.KeyValuePair{BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase}[],System.Int32)
+ name.vb: System.Collections.Generic.ICollection>.CopyTo(KeyValuePair(Of ConfigDefinition, ConfigEntryBase)(), Int32)
+ fullName: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair[], System.Int32)
+ fullName.vb: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.CopyTo(System.Collections.Generic.KeyValuePair(Of BepInEx.Configuration.ConfigDefinition, BepInEx.Configuration.ConfigEntryBase)(), System.Int32)
+ nameWithType: ConfigFile.ICollection>.CopyTo(KeyValuePair[], Int32)
+ nameWithType.vb: ConfigFile.System.Collections.Generic.ICollection>.CopyTo(KeyValuePair(Of ConfigDefinition, ConfigEntryBase)(), Int32)
+- uid: BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#CopyTo*
+ name: ICollection>.CopyTo
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_System_Collections_Generic_ICollection_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase___CopyTo_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#CopyTo
+ isSpec: "True"
+ name.vb: System.Collections.Generic.ICollection>.CopyTo
+ fullName: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.CopyTo
+ fullName.vb: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.CopyTo
+ nameWithType: ConfigFile.ICollection>.CopyTo
+ nameWithType.vb: ConfigFile.System.Collections.Generic.ICollection>.CopyTo
+- uid: BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#Remove(System.Collections.Generic.KeyValuePair{BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase})
+ name: ICollection>.Remove(KeyValuePair)
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_System_Collections_Generic_ICollection_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase___Remove_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase__
+ commentId: M:BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#Remove(System.Collections.Generic.KeyValuePair{BepInEx.Configuration.ConfigDefinition,BepInEx.Configuration.ConfigEntryBase})
+ name.vb: System.Collections.Generic.ICollection>.Remove(KeyValuePair(Of ConfigDefinition, ConfigEntryBase))
+ fullName: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair)
+ fullName.vb: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.Remove(System.Collections.Generic.KeyValuePair(Of BepInEx.Configuration.ConfigDefinition, BepInEx.Configuration.ConfigEntryBase))
+ nameWithType: ConfigFile.ICollection>.Remove(KeyValuePair)
+ nameWithType.vb: ConfigFile.System.Collections.Generic.ICollection>.Remove(KeyValuePair(Of ConfigDefinition, ConfigEntryBase))
+- uid: BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#Remove*
+ name: ICollection>.Remove
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_System_Collections_Generic_ICollection_System_Collections_Generic_KeyValuePair_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase___Remove_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.System#Collections#Generic#ICollection{System#Collections#Generic#KeyValuePair{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}}#Remove
+ isSpec: "True"
+ name.vb: System.Collections.Generic.ICollection>.Remove
+ fullName: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.Remove
+ fullName.vb: BepInEx.Configuration.ConfigFile.System.Collections.Generic.ICollection>.Remove
+ nameWithType: ConfigFile.ICollection>.Remove
+ nameWithType.vb: ConfigFile.System.Collections.Generic.ICollection>.Remove
+- uid: BepInEx.Configuration.ConfigFile.System#Collections#Generic#IDictionary{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}#Item(BepInEx.Configuration.ConfigDefinition)
+ name: IDictionary.Item[ConfigDefinition]
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_System_Collections_Generic_IDictionary_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase__Item_BepInEx_Configuration_ConfigDefinition_
+ commentId: P:BepInEx.Configuration.ConfigFile.System#Collections#Generic#IDictionary{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}#Item(BepInEx.Configuration.ConfigDefinition)
+ name.vb: System.Collections.Generic.IDictionary.Item(ConfigDefinition)
+ fullName: BepInEx.Configuration.ConfigFile.System.Collections.Generic.IDictionary.Item[BepInEx.Configuration.ConfigDefinition]
+ fullName.vb: BepInEx.Configuration.ConfigFile.System.Collections.Generic.IDictionary.Item(BepInEx.Configuration.ConfigDefinition)
+ nameWithType: ConfigFile.IDictionary.Item[ConfigDefinition]
+ nameWithType.vb: ConfigFile.System.Collections.Generic.IDictionary.Item(ConfigDefinition)
+- uid: BepInEx.Configuration.ConfigFile.System#Collections#Generic#IDictionary{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}#Item*
+ name: IDictionary.Item
+ href: api/BepInEx.Configuration.ConfigFile.html#BepInEx_Configuration_ConfigFile_System_Collections_Generic_IDictionary_BepInEx_Configuration_ConfigDefinition_BepInEx_Configuration_ConfigEntryBase__Item_
+ commentId: Overload:BepInEx.Configuration.ConfigFile.System#Collections#Generic#IDictionary{BepInEx#Configuration#ConfigDefinition,BepInEx#Configuration#ConfigEntryBase}#Item
+ isSpec: "True"
+ name.vb: System.Collections.Generic.IDictionary.Item
+ fullName: BepInEx.Configuration.ConfigFile.System.Collections.Generic.IDictionary.Item
+ fullName.vb: BepInEx.Configuration.ConfigFile.System.Collections.Generic.IDictionary