# How to create a plugin

In order to create a plugin follow these steps.

1 ) Go to your BisectHosting server console and type `createplugin YourPluginName` \
You should see the following :&#x20;

<figure><img src="https://1009565841-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOdPzK9hYNRS2OIoKsRn5%2Fuploads%2FR66EOj6lAEpuXTuK049y%2Fimage.png?alt=media&#x26;token=735eaca4-92ea-47d9-b1dc-631fa3d887dc" alt=""><figcaption></figcaption></figure>

2 ) You can now download your plugin project from /MyPluginsProjects/Tutorial.zip in the **Files** tab.

3 ) After extracting it somewhere on your computer, place all the dll's from your game folder in `Schedule I/Schedule I Data/Managed` in the **GameBinaries** folder as shown below.

<figure><img src="https://1009565841-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOdPzK9hYNRS2OIoKsRn5%2Fuploads%2FRBblqz2wKi6QFxW1hDAK%2Fimage.png?alt=media&#x26;token=6b549f61-005d-4aee-a938-71eac870d31d" alt=""><figcaption></figcaption></figure>

4 ) You can now open your visual studio project and start coding !

<figure><img src="https://1009565841-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOdPzK9hYNRS2OIoKsRn5%2Fuploads%2FnXzn0jut6pabirEf3SVL%2Fimage.png?alt=media&#x26;token=ba0593f7-8fcb-41af-9301-b202b2f8c762" alt=""><figcaption></figcaption></figure>

5 ) Let's load your plugin.\
In order to load your plugins there's multiple ways here's some of them : \
\
&#x20; \- You can build your solution by right clicking it and selecting Build Solution which will generate a .hplugin file. If you simply upload this .hplugin file to your server in the plugins folder it'll work.\
However this is a bit annoying when developing.\
\
&#x20;\- The recommended way to create plugins on BisectHosting is simply to mount your Bisect SFTP server to a drive in Windows. It can be done by following this tutorial for example  <https://sftptogo.com/blog/how-to-map-sftp-as-a-windows-11/>\
Once you've done that, upload your whole plugin project to the plugins folder and create a file with the same name as the folder ending with .dev as shown below :\
![](https://1009565841-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FOdPzK9hYNRS2OIoKsRn5%2Fuploads%2Fa83plILwZWPHGdclraYJ%2Fimage.png?alt=media\&token=4df7ef91-36f2-472f-af4e-8ff936db5263)\
Now your plugin should also load without being in an .hplugin file.\
It also means that every time you change your code it'll be uploaded on the server.

## Server Commands

The server software has various commands to help you during the development of your plugin.\
\
`refreshplugins` - will re-fetch the plugins in the plugins folder. Useful if you just uploaded a new one.\
`reloadplugin Name` - will reload the plugin with specified name.\
`unloadplugin Name` - will unload the plugin with specified name.\
`loadplugin Name` - will load the plugin with specified name.\
`reloadplugins` - will reload all plugins at once.\
`toggleclientapilogging` - will toggle the logs of client api calls (see more here).
