D1GQ-MageConfigurationAPI icon

MageConfigurationAPI

An API that implements a settings menu to change BepInEx Configs.

By D1GQ
Last updated 2 days ago
Total downloads 2189
Total rating 0 
Categories Tools Libraries
Dependency string D1GQ-MageConfigurationAPI-1.3.0
Dependants 3 other packages depend on this package

This mod requires the following mods to function

BepInEx-BepInExPack-5.4.2100 icon
BepInEx-BepInExPack

BepInEx pack for Mono Unity games. Preconfigured and ready to use.

Preferred version: 5.4.2100

README

MageConfigurationAPI

This BepInEx mod provides a centralized configuration system for Mage Arena mods, allowing all registered BepInEx configurations to appear in the game's settings menu automatically.

Features

  • Automatic UI Integration: Registered configurations appear in-game without additional GUI work
  • Mod Configuration Access: Safely access configurations from other mods
  • Change Notification: Subscribe to events when configurations change
  • Type-Safe Access: Get configuration values with proper type handling
  • BepInEx Config Description Tags: Settings GUI will automatically check BepInEx Config Description Tag validation

Installation

  1. Prerequisites:

    • Mage Arena with BepInEx 5.4.21
  2. Installation:

    MageArena/
    └── BepInEx/
        └── plugins/
            ├── MageConfigurationAPI.dll
    

Usage for Mod Developers

Basic Configuration Registration

using BepInEx;
using BepInEx.Configuration;
using MageConfigurationAPI.Data;

[BepInPlugin(PluginGuid, PluginName, PluginVersion)]
public class YourPlugin : BaseUnityPlugin
{
 private const string PluginGuid = "your.mod.guid";
 
 private ConfigEntry<float> ExampleSetting;
 
 private void Awake()
 {
	 // Create standard BepInEx config entry
	 ExampleSetting = Config.Bind(
		 "Section Name",
		 "Setting Name",
		 0.5f,
		 "Description of this setting"
	 );
	 
	 // Register with MageConfigurationAPI
	 var registeredConfig = new ModConfig(this, ExampleSetting);
 }
}

Advanced Features

// Accessing other mods' configurations
var otherModConfig = ConfigManager.GetConfigByGUIDAndName(
	"other.mod.guid",
	"TheirSettingName"
);

// Subscribing to configuration changes
registeredConfig.SettingChanged += (sender, args) => 
{
	Logger.LogInfo($"Setting changed to: {args.ChangedSetting.BoxedValue}");
};

Configuration Support

  1. Types:
    • (bool, int, float, string, Enums)
  2. Tags:
    • BepInEx Config Description Tags

Changelog

v1.3.0

  • Fixed issues with subscribing to OnSettingChanged in ModConfig.

v1.2.0

  • Remove testing configs.

v1.1.0

  • Added settings flag to choose when the option is visible.

v1.0.0

  • Initial public release.
  • Core configuration registration system.
  • Basic in-game UI integration.