BepInEx.Preloader.Core Doorstop environment variables, passed into the BepInEx preloader. https://github.com/NeighTools/UnityDoorstop/wiki#environment-variables Path to the assembly that was invoked via Doorstop. Contains the same value as in "targetAssembly" configuration option in the config file. Full path to the game's "Managed" folder that contains all the game's managed assemblies Full path to the game executable currently running. Array of paths where Mono searches DLLs from before assembly resolvers are invoked. Path of the DLL that contains mono imports. Log listener that listens to logs during preloading time and buffers messages for output in Unity logs later. A list of all objects that this listener has received. Worker class which is used for loading and patching entire folders of assemblies, or alternatively patching and loading assemblies one at a time. The context of this assembly patcher instance that is passed to all patcher plugins. A cloned version of to ensure that any foreach loops do not break when the collection gets modified. Performs work to dispose collection objects. Adds all patchers from all managed assemblies specified in a directory. Directory to search patcher DLLs from. Adds all .dll assemblies in given directories to be patched and loaded by this patcher instance. Non-managed assemblies are skipped. The directories to search. Adds all assemblies in given directories to be patched and loaded by this patcher instance. Non-managed assemblies are skipped. The directory to search. The file extensions to attempt to load. Attempts to load a managed assembly as an . Returns true if successful. The path of the assembly. The loaded assembly. Null if not successful in loading. Applies patchers to all assemblies loaded into this assembly patcher and then loads patched assemblies into memory. This attribute denotes that a class is a patcher plugin, and specifies the required metadata. The unique identifier of the plugin. Should not change between plugin versions. The user friendly name of the plugin. Is able to be changed between versions. The specific version of the plugin. The unique identifier of the plugin. Should not change between plugin versions. The user friendly name of the plugin. Is able to be changed between versions. The specific version of the plugin. Defines an assembly that a patch method will target. Marker used to indicate all possible assemblies to be targeted by a patch method. The short filename of the assembly. Use to mark all possible assemblies as targets. The short filename of the assembly to target. Defines a type that a patch method will target. The short filename of the assembly of which belongs to. The full name of the type to target for patching. The short filename of the assembly to target. The full name of the type to target for patching. A patcher that can contain multiple methods for patching assemblies. A instance created for use by this patcher plugin. A configuration file binding created with the of this plugin as the filename. Metadata associated with this patcher plugin. The context of the this BasePatcher is associated with. Executed before any patches from any plugin are applied. Executed after all patches from all plugins have been applied. A definition of an individual patch for use by . The assembly / assemblies this patch will target, if there any. The type / types this patch will target, if there are any. The instance of the this originates from. The method that will perform the patching logic defined by this instance. A friendly name for this patch definition, for use in logging and error tracking. Context provided to patcher plugins from the associated patcher engine. 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. Contains a mapping of available assembly name to their original filenames. 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 , while the value is the actual assembly itself. A list of plugins that will be initialized and executed, in the order of the list. A list of individual patches that will execute, generated by parsing . A single cached assembly patcher. Type name of the patcher. Recreation of MonoMod's PlatformHelper.DeterminePlatform method, but with libc calls instead of creating processes.