# General Plugin Setup in the Manifest

FormIt plugins are composed of a key core component called a *manifest.json* file.

The manifest file is a [JSON object](http://www.json.org) that tells the FormIt infrastructure what files to fetch and what kind of plugin to create.

### Manifest.json Structure and Properties

A manifest.json file has the following structure. It has additional properties depending on whether it's a [toolbar-based](/plugins/how-to-develop-plugins/additional-development-options/creating-a-toolbar-based-plugin.md) or an [HTML panel-based plugin](/plugins/how-to-develop-plugins/additional-development-options/creating-an-html-panel-plugin.md).

```
{
    "PluginName": "[PluginName]",
    "PluginType": "[PluginType]"
    "PluginDescription": "[PluginDescription]",
    "Scripts": [
        "PLUGINLOCATION/[script1].js",
        "PLUGINLOCATION/[script2].js",
        ...
        "PLUGINLOCATION/[scriptn].js"
    ]
}               
```

A typical plugin includes these JSON properties:

* "PluginName" represents the name of the plugin for internal and most display purposes, including for the [Plugin Manager.](/plugins/how-to-use-plug-ins.md#plugin-manager)
* "PluginType" represents the type of the plugin, letting users know in the [Plugin Manager](/plugins/how-to-use-plug-ins.md#plugin-manager) description what to look for when they install the plugin.
* "PluginDescription" is displayed in the [Plugin Manager](/plugins/how-to-use-plug-ins.md#plugin-manager) to communicate the plugin's capabilities.
* "Scripts" lists the required external scripts associated with the plugin that will be loaded into the FormIt application and can be executed when plugin functionality is invoked.

![](/files/1PQICU5ENU30Jw7Z5McH)

Start your plugin development by creating a manifest.json file in your plugin folder. Next, you'll need to decide whether you are making a toolbar-based or panel-based plugin.

![](/files/Kapl5CWkK1OTh0K1P9af)

**Note:** The use of PLUGINLOCATION throughout the manifest.json file above is essential and is case sensitive. FormIt will replace PLUGINLOCATION with the server location for the plugin.


---

# 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://windows.help.formit.autodesk.com/plugins/how-to-develop-plugins/advanced-development/general-plugin-setup-in-the-manifest.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.
