Agent skill
bepinex
Develops BepInEx plugins with hooks, patches, and mod initialization for Unity games. Use when: Creating BepInEx plugins, setting up plugin entry points, configuring mod settings, or integrating with Harmony patches.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/bepinex
SKILL.md
BepInEx Skill
BepInEx is the plugin framework for Unity game modding. This project uses BepInEx 5.x with .NET Standard 2.1 for SPT (Single Player Tarkov) modding. Plugins are loaded via [BepInPlugin] attributes and use ConfigFile for settings. All patches use Harmony (see the harmony skill).
Quick Start
Plugin Entry Point
[BepInPlugin("com.blackhorse311.botmind", "BotMind", "1.0.0")]
[BepInDependency("xyz.drakia.bigbrain", BepInDependency.DependencyFlags.HardDependency)]
[BepInDependency("me.sol.sain", BepInDependency.DependencyFlags.SoftDependency)]
public class BotMindPlugin : BaseUnityPlugin
{
public static ManualLogSource Log { get; private set; }
private void Awake()
{
Log = Logger;
Log.LogInfo("BotMind is loading...");
// Initialize configuration
BotMindConfig.Initialize(Config);
// Apply Harmony patches
new Harmony("com.blackhorse311.botmind").PatchAll();
Log.LogInfo("BotMind loaded successfully!");
}
}
Configuration Binding
public static class BotMindConfig
{
public static ConfigEntry<bool> EnableLooting { get; private set; }
public static ConfigEntry<float> SearchRadius { get; private set; }
public static void Initialize(ConfigFile config)
{
EnableLooting = config.Bind(
"General", // Section
"Enable Looting", // Key
true, // Default
"Enable bot looting behavior" // Description
);
SearchRadius = config.Bind(
"Looting",
"Search Radius",
50f,
new ConfigDescription(
"Loot search distance in meters",
new AcceptableValueRange<float>(10f, 200f)
)
);
}
}
Key Concepts
| Concept | Usage | Example |
|---|---|---|
| Plugin GUID | Unique identifier | "com.author.modname" |
| Hard dependency | Required mod | DependencyFlags.HardDependency |
| Soft dependency | Optional mod | DependencyFlags.SoftDependency |
| ConfigEntry | Runtime setting | config.Bind("Section", "Key", default) |
| ManualLogSource | Logging | Logger.LogInfo("message") |
Common Patterns
Soft Dependency Check
When: Integrating with optional mods like SAIN
private static bool _sainChecked;
private static bool _sainAvailable;
public static bool IsSAINAvailable()
{
if (!_sainChecked)
{
_sainAvailable = Chainloader.PluginInfos.ContainsKey("me.sol.sain");
_sainChecked = true;
}
return _sainAvailable;
}
Lifecycle Hooks
When: Responding to game events
private void Awake() // Plugin load - register patches, config
private void Start() // After all plugins loaded
private void OnEnable() // Plugin enabled
private void OnDisable() // Plugin disabled
private void OnDestroy() // Cleanup resources
See Also
- patterns - Plugin structure, config, logging
- workflows - Build, deploy, debug
Related Skills
- harmony - Patching game methods
- csharp - Language patterns
- unity - MonoBehaviour lifecycle
- dotnet - Build and project configuration
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?