Skip to content

Manual Setup

Alex Neargarder edited this page Jun 30, 2025 · 5 revisions

Create a Visual Studio Project

In Visual Studio 2022, click Create a new project. tutorial1

Choose the Class Library (.NET Framework) template. Make sure you don't choose the Visual Basic class library which has the same name tutorial2

Name your bro whatever you want. Choose .NET Framework 3.5. If you don't see it listed, make sure you download and install it. image

Adding Required References

Now you should have your project open in Visual Studio.

Next you'll need to add the required references needed to compile the bro.

Download the dlls in this folder on my repo and place them in your repo.

Next you'll need to right-click on References, Click Add Reference...

image

Click Browse..., navigate to the .dlls you downloaded, and select all the libs in the Core Libs folder.

image

Then you'll also want to add Newtonsoft.Json.dll which is in Extra Libs. Finally, you'll need to add BroMakerLib.dll, which you can find in your Broforce mods folder, which will likely be here: C:\Program Files (x86)\Steam\steamapps\common\Broforce\Mods\BroMaker\BroMakerLib.dll

Setting up your Bro's Class

The minimum code you need to actually create a bro is simply this

using BroMakerLib;
using BroMakerLib.CustomObjects.Bros;

namespace Bro_Template
{
    [HeroPreset( "Bro Template", HeroType.Rambro )]
    public class BroTemplate : CustomHero
    {
    }
}

The namespace, and class name can be set to whatever you'd like. HeroPreset can be set to anything as well, but you'll want to make sure it matches the characterPreset variable in your bro's JSON file, which is explained below. The HeroType.Rambro variable will control which bro BroMaker loads all the default values for your character from, but these values can all be changed, so it doesn't really matter what you pick. I use Rambro for almost all my bros.

You should add that code to your class and build the solution.

Setting up your JSON Files

Next you'll want to create a folder in BroMaker_Storage for your bro, which can be named whatever you want, but it should probably match your bro's name.

Then you should create a JSON file such as this:

{
  "name": "Bro Template",
  "characterPreset": "Bro Template",
  "parameters": {
    "BetterAnimation": true,
    "SpecialIcons": "special.png",
    "Avatar": "avatar.png",
  },
  "cutscene": {
    "heading": "Bro Template",
    "subtitle1": "Joins the Battle!",
    "headingScale": 0.14,
    "spriteRect":
    {
     "x": 0,
     "y": 256,
     "width": 256,
     "height": 256
    },
    "spritePath": "cutscene.png",
    "anim": "Intro_Bro_Rambro",
    "playCutsceneOnFirstSpawn": true
  },
  "beforeAwake": {
    "speed": 130,
    "fireRate": 0.1,
    "canChimneyFlip": true,
    "originalSpecialAmmo": 1
  },
  "afterAwake": {},
  "beforeStart": {
    "sprite": "sprite.png",
    "gunSprite": "gunSprite.png"
  },
  "afterStart": {
    
  }
}

This JSON file can also be named anything, but it needs to have the .json extension, and you need to update the CustomBros variable in your mod file to point to it, which is explained below.

Note that you'll need all the .png files that are specified above. If you haven't drawn these yet, then you could use these placeholders, or you can just delete the lines that are setting them.

You also need a mod file to load your assembly, which should look like this:

{
  "Version": "1.0.0",
  "BroMakerVersion": "2.6.0",
  "Name": "Bro Template",
  "Author": "yourname",
  "CustomBros":[
    "Bro Template.json"
  ],
  "Assemblies": [
    "Bro Template.dll"
  ]
}

Make sure this file has the .mod.json file extension.


After you've created these files, you can copy your bro's compiled .dll, which should be here: Your Repo\Your Bro's Name\Your Bro's Name\bin\Debug\Your Bro's Name.dll to the folder you created in BroMaker_Storage.

Then you should be able to start up the game and see your bro in the BroMaker menu. If you start a level, you can then switch to your bro by clicking on them and pressing "Switch to Bro".

With only this code, your bro will basically behave the same as Rambro.

Clone this wiki locally