How do I make a content pack mod? - Catman-232/Homebrewery GitHub Wiki
Making your own content pack is not so tricky, and I would even recommend that users make a folder for their custom stuff anyway to keep it even neater than it would be mixed up with the items/parts that come with Homebrewery.
HB checks the BepInEx > plugins folder in the location it would be in, so the mod manager profile's BepInEx or the game directory BepInEx, to look at the other mods and check them to see if they contain their own folder called "HomebreweryFiles".
-
First you'll want to go to your BepInEx > plugins folder.
In this case I am using the game directory BepInEx, this is the place you'll be working in if you're a manual install user. -
Make a folder, name it something smart like:
'your username'-'name of the thing'
-
Inside the folder you will want to make a new folder called "plugins"
This is also VERY important for r2Modman to be able to properly install the content pack, if you were to post it on Thunderstore as a mod.
If you don't care about posting your stuff as a content pack mod on Thunderstore you can skip the rest of this step and go to 4.
Thunderstore has its own guide for this and a download not very far in for a template package here: Thunderstore Wiki
That's the download button in the page right there at the bottom of the screenshot!
I will explain it in this manual too since it's important to know the details for one of the files.
You need those three files to make your content pack a valid mod for Thunderstore: manifest.json, README.md and icon.png. You can optionally also have a CHANGELOG.md too if you want.
icon.png must be a 256x256px PNG. This image MUST NOT be NSFW! Your mod can contain lewd stuff, but you can't have any NSFW pictures on your mod page! Also make sure you remember to check the NSFW toggle when uploading the mod if you need to!
README.md is a text file, just with ".md" as the file extension, it uses Markdown syntax, and there's a tool on Thunderstore you can use to preview it here: https://thunderstore.io/tools/markdown-preview/. This becomes the mod's actual page content on Thunderstore!
What about adding images to the mod's page?
I recommend adding images showing off the contents of your content pack, because otherwise people have no idea what they're getting! Thunderstore doesn't provide any way to upload images directly to the site, so you need to upload your images somewhere else to get links to them. Then you add this to your readme:

For example:

Which looks like this:
Also please consider adding some means of contacting you to the readme so we can contact you in case there's an issue with your content pack! Thunderstore doesn't provide an innate way of sending a message to an author, so we have to hopelessly look on as a mod gets downloaded loads while it doesn't even work!
The optional CHANGELOG.md uses the same markdown syntax setup.
manifest.json is the most important file to get right, this is the information that sets the name of the mod, the version number, and the dependencies.
This is what Homebrewery's one looks like at the time of writing this.
{
"name": "Homebrewery",
"author": "Catman232",
"version_number": "2.6.47",
"website_url": "https://github.com/Catman-232/Homebrewery/wiki",
"description": "v2.6.47 - CUSTOM MESH SUPPORT IS REAL!!! Mod that enables creating new character parts and vanity gear items! Don't leave mod items in your storage boxes!",
"dependencies": [
"BepInEx-BepInExPack-5.4.2100",
"Marioalexsan-AtlyssGLTF-0.1.0"
]
}
If you have no website you want to link, you can leave the website url blank, otherwise you could use it to link to socials like Twitter or Bsky if you wanted to! I'm using mine to link to this wiki now.
Edit the values within the speech marks ("") to set the mod/content pack's name, author, version number, website (optional) and description.
"name": "CoolContentMod",
"author": "CoolDuder",
"version_number": "1.0.0",
"website_url": "",
"description": "Mod that adds cool content!",
The name cannot have spaces, use underscores "_" instead! Thunderstore will swap those underscores out for spaces in the title of the mod page.
The author property is not actually used by Thunderstore yet, it might never be, but it exists as part of a version 2 of the manifest which r2Modman creates, so it doesn't hurt to have it there. Put your Discord username in there perhaps.\
Whatever you call it, your mod's folder name should be edited to match! Otherwise it won't be the same as how R2Modman will name the folder when installing it that way. That includes underscores too, if the mod's name is "Cool_Content_Mod" with Thunderstore team name "CoolDuder", then you should name the folder "CoolDuder-Cool_Content_Mod". Thunderstore will generally make a team name for you using the username it got from your login method.
The version number must be three numbers separated by two periods, like "1.0.0" or "1.2.3". When you want to update the mod, you will add to these numbers. They represent Major.Minor.Patch according to Semantic Versioning 2.0.0 which you can read about here: https://semver.org/\
Finally, you will edit the Dependency string of BepInEx to instead be "Catman232-Homebrewery-2.0.0" (The version can be the latest version number), you don't need BepInEx in there because your content pack won't actually include a mod plugin, just the loose files needed for Homebrewery to make the parts and items with.
"dependencies": [
"Catman232-Homebrewery-2.0.0"
]
-
Inside the plugins folder, now make a folder called "HomebreweryFiles"
-
Inside HomebreweryFiles you can add the folders of the item/part types for whatever it is you are making
This is the mod's own HomebreweryFiles folder, so it has a slightly different path for technical reasons regarding r2Modman. This also happens to be the place where you will find the Template folder that will be referred to in every item guide below. -
So let's say for example you're making a Cape item, and you've made the Cape folder
Inside this folder is where you will be putting your item folders, which is explained in detail for each item and part type down below.
After pasting the template cape item folder -
Now let's say you're making a Skin part, this has one extra step to it
Parts like Skins, Mouths and Eyes need folders for the race names in order to specify what race they are intended for! Like so:
You don't need to make a folder for every race though, if the part is intended to be available for every race, then you can just use "HB_ALLRACES", anything in this folder will be duplicated to every race's part list automatically.
This skin was replaced in 2.0.6 because people kept thinking it's a sign that the mod or game is broken, very unfortunate.
I assure you the textures are not broken, this janky chequerboard skin is meant to look like that!
Brilliantly horrible, or horribly brilliant?