> For the complete documentation index, see [llms.txt](https://schedule-i-dedicated-servers.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://schedule-i-dedicated-servers.gitbook.io/docs/creating-plugins/how-to-create-a-plugin.md).

# 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="/files/C9SA5V28XAHjSaR8NmvN" 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="/files/add1rONkcqVJ2Bd3CTaE" alt=""><figcaption></figcaption></figure>

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

<figure><img src="/files/8YwZnBGd0eue1PSYlAYn" 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 :\
![](/files/5zZs4d820ETxKWrNxGpF)\
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).
