# Quick Start

To get quickly started with plugin making simply follow these instructions:

### Part 1: creating project and setting up dependencies.

* Create a Class Library (.NET Framework)\
  &#x20;<img src="/files/-LpZU7lQirqsGrF4U8Tn" alt="" data-size="original">&#x20;
* Ensure that you have all of the necessary pre-requisites:
  * Open NuGet package manager.\
    &#x20;<img src="/files/-LpZGoUR3R07KKgZ-67P" alt="" data-size="original">&#x20;
  * Install the **OQ.MineBot.PluginBase** package.\
    &#x20;<img src="/files/-LpZHTDnZtsEn0B3NhRP" alt="" data-size="original">&#x20;
* Every plugin is required to have a PluginCore which is used for things like defining attributes like the name of the plugin, version, and description:\
  &#x20;<img src="/files/-LpZQUASCUImuF3NhgWm" alt="" data-size="original">&#x20;
* Then you will need to have an OnLoad method which will be called once the plugin is loaded/reloaded, which is usually when the bot is started. The settings are optional and can be overwritten if you don't want to include any settings:\
  &#x20;<img src="/files/-LpZRecnGbxwALaQ5I-1" alt="" data-size="original">&#x20;
* Finally, you will need an OnStart method which will register all of your task classes and is called as soon as the plugin is started on a bot:\
  &#x20;<img src="/files/-LpZRJLRkmxygPNjQGnq" alt="" data-size="original">&#x20;

### Part 2: creating tasks

* Create a task class, which will allow you to interact with the bot and it's environment.
* Inherit from ITask (and optionally any of the [Listeners](https://github.com/OnlyQubes/OQ.MineBot.PluginBase/tree/master/Base/Plugin/Listeners)):\
  &#x20;<img src="/files/-LpZaoPGKUA3F4LIC4yw" alt="" data-size="original">&#x20;
* Implement Exec, which will tell the bot if any of the Listeners can be called, and add any listener code:\
  &#x20;<img src="/files/-LpZbUC1F-0yLwJSnzRz" alt="" data-size="original">&#x20;

<br>

:tada: **That's it, now you can build the plugin and test it on the bot**:tada: \
For a more in-depth guide check out the [Introduction page](https://docs.minecraftbot.com/).<br>

{% file src="/files/-LpZclX-neFHbqt9fVm6" %}
Download Template Code Here
{% endfile %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.minecraftbot.com/skeleton-code.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
