ConfigurationManager Used by bepinex 4 plugins Bepinex 5 config Used by bepinex 5 plugins Return items with browsable attribute same as expectedBrowsable, and optionally items with no browsable attribute An easy way to let user configure how a plugin behaves without the need to make your own GUI. The user can change any of the settings you expose, even keyboard shortcuts. https://github.com/ManlyMarco/BepInEx.ConfigurationManager GUID of this plugin Version constant Event fired every time the manager window is shown or hidden. Disable the hotkey check used by config manager. If enabled you have to set to show the manager. Is the config manager main window displayed on screen Register a custom setting drawer for a given type. The action is ran in OnGui in a single setting slot. Do not use any Begin / End layout methods, and avoid raising height from standard. String currently entered into the search box Instance of the object that holds this setting. Null if setting is not in a ConfigWrapper. Class representing all data about a setting collected by ConfigurationManager. List of values this setting can take Range of the values this setting can take Should the setting be shown as a percentage (only applies to value range settings) Custom setting draw action Show this setting in the settings screen at all? If false, don't show. Category the setting is under. Null to be directly under the plugin. If set, a "Default" button will be shown next to the setting to allow resetting to default. Force the "Reset" button to not be displayed, even if a valid DefaultValue is available. Force the setting name to not be displayed. Should only be used with a to get more space. Can be used together with to gain even more space. Optional description shown when hovering over the setting Name of the setting Plugin this setting belongs to Only allow showing of the value. False whenever possible by default. Type of the variable Instance of the plugin that owns this setting Is this setting advanced Order of the setting on the settings list relative to other settings in a category. 0 by default, lower is higher on the list. Get the value of this setting Set the value of this setting Implementation of Custom converter from setting type to string for the textbox Custom converter from string to setting type for the textbox Arguments representing a change in value Newly assigned value Specify the list of acceptable values for this variable. It will allow the configuration window to show a list of available values. Specify the list of acceptable values for this variable. It will allow the configuration window to show a list of available values. List of acceptable values for this setting Specify a method that returns the list of acceptable values for this variable. It will allow the configuration window to show a list of available values. Name of an instance method that takes no arguments and returns array object[] that contains the acceptable values Specify the range of acceptable values for this variable. It will allow the configuration window to show a slider and filter inputs. Lowest acceptable value Highest acceptable value Show the current value as % between min and max values if possible. Otherwise show the value itself. Register a custom field editor drawer that will replace config manager's default field editors (The part between setting name and the default button). Name of the method that will draw the edit field. The method needs to be an instance method with signature void Name (). Runs in OnGUI. A keyboard shortcut that can be used in Update method to check if user presses a key combo. Use SavedKeyboardShortcut to allow user to change this shortcut and have the changes saved. How to use: Use IsDown instead of the Imput.GetKeyDown in the Update loop. Create a new keyboard shortcut. Main key to press Keys that should be held down before main key is registered Check if the main key was just pressed (Input.GetKeyDown), and specified modifier keys are all pressed Check if the main key is currently held down (Input.GetKey), and specified modifier keys are all pressed Check if the main key was just lifted (Input.GetKeyUp), and specified modifier keys are all pressed. A keyboard shortcut that is saved in the config file and can be changed by the user if ConfigurationManager plugin is present. How to use: Run IsPressed in Update to check if user presses the button combo. Check if the main key is currently held down (Input.GetKey), and specified modifier keys are all pressed Check if the main key was just pressed (Input.GetKeyDown), and specified modifier keys are all pressed Check if the main key was just lifted (Input.GetKeyUp), and specified modifier keys are all pressed.