BSIPA

DaNike includes a modding template if you intend to make your plugin using BSIPA. Simply grab the template .zip from the latest release!

IPA

If you wish to use the older IPA, the BS Plugin Template by Kyle1413 includes more options to guide you, as well as a basic use case of CustomUI. We will be using this for the Mod Tutorial, however intend to upgrade to BSIPA in the near future.

Template setup

Drop in beat-saber-plugin-template.zip. You do not need to extract the contents here, dropping the zipped file will work.

After you have place the zip file in the correct directory, open Visual Studio 2017 and create a new project.
You should see the Beat Saber Plugin Template in the Visual C# section.
Create a new project using the template.

If you intend on making a mod to be published to BeatMods, you will have to rename the assembly to your mod. Using the default assembly name won't cut it!

To rename the assembly:

In the Solution Explorer panel, double click on Properties.

Change the text in the textbox Assembly name.

While you're at it, make sure your Target Framework (Shown above) is above 4.6, if you're using BSIPA. You can just set it to the highest in that dropdown, such as 4.7.1.

Changing copy directory

If you are using Kyle1413's BS Template, it comes with a built in post-build event that attempts to copy your built file to:

C:\Program Files (x86)\Steam\steamapps\common\Beat Saber\Plugins

If your Beat Saber install is located here, no worries. If not, we need to change this.

Under Project, click on <Project Name> Properties... at the very bottom of the dropdown.

In the menu that pops up, click Build Events

Replace the last directory in the Post-build event command line (The directory should look like the one above) with the directory to your Plugins folder.

Save and exit that menu.

Check out the code

In the solution explorer, double click on Plugin.cs to open it up.
You should see something like this. It'll look different depending on the template, but should look similar.