> For the complete documentation index, see [llms.txt](https://easyauth.papelship.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://easyauth.papelship.com/documentation/plugins.md).

# PLUGINS

EasyAuth features an open, modular **C++ Plugin Architecture** that enables developers to plug in advanced security detectors, telemetry providers, AI models, and custom protocol handlers without modifying the core engine.

***

## 🧩 Plugin Lifecycle & Architecture

Plugins implement the `easyauth::plugins::i_plugin` interface defined in `PluginManager.h`.

```
                ┌───────────────────────────────────┐
                │        EasyAuth Core Engine       │
                └─────────────────┬─────────────────┘
                                  │
      ┌───────────────────────────┼───────────────────────────┐
      ▼                           ▼                           ▼
┌──────────────┐          ┌──────────────┐          ┌───────────────────┐
│ qPAnalyzerAI │          │ BinaryTrace  │          │   Custom Plugin   │
│ (AI Vision)  │          │ (Tracer)     │          │ (Your Extension)  │
└──────────────┘          └──────────────┘          └───────────────────┘
```

***

## 🛠️ Loading Plugins

Official plugins provide helper functions for seamless one-line registration:

{% stepper %}
{% step %}

## Load official plugins

Load official plugins **before** calling `easyauth::initialize()`.

```cpp
#include "qPapelEasyAuth.h"
#include "qPapelEasyAuthqPAnalyzer.h"   // qPAnalyzer AI Plugin
#include "qPapelEasyAuthBinaryTrace.h"  // BinaryTrace Plugin

easyauth::plugins::load_qpanalyzer_plugin();
easyauth::plugins::load_binary_trace_plugin();
```

{% endstep %}

{% step %}

## Initialize EasyAuth Core

```cpp
easyauth::initialize();
```

{% endstep %}

{% step %}

## Inspect loaded plugin count

```cpp
auto plugin_list = easyauth::get_all_plugin_info();
std::cout << "[+] Loaded Plugins (" << plugin_list.size() << " active):\n";
for (const auto& p : plugin_list) {
    std::cout << "    -> [" << p.name << " v" << p.version << "] by " << p.author << "\n";
}
```

{% endstep %}
{% endstepper %}

```cpp
int main() {
    easyauth::plugins::load_qpanalyzer_plugin();
    easyauth::plugins::load_binary_trace_plugin();

    easyauth::initialize();

    auto plugin_list = easyauth::get_all_plugin_info();
    std::cout << "[+] Loaded Plugins (" << plugin_list.size() << " active):\n";
    for (const auto& p : plugin_list) {
        std::cout << "    -> [" << p.name << " v" << p.version << "] by " << p.author << "\n";
    }

    return 0;
}
```

***

## &#x20;Official Plugins Directory

* [**qPAnalyzer AI**](broken://pages/5a10fa6438f09d863dbaaca3565203ae1bf08c7d): Multimodal Vision & Telemetry AI Anti-Cheat powered by PapelAI
* [**BinaryTrace**](broken://pages/c953b1f3bbe08b0f55f3f5af0f35b4d4a15369a6): Deep memory, loaded modules, and kernel-mode process tracer.
* [**Custom Plugin Development**](broken://pages/10f96d45cfd2f7f73eb2f92c01704939e6f65221): Step-by-step tutorial on building your own EasyAuth plugins.
