Skip to content

How do I make a Chestpiece?

Catman edited this page Aug 14, 2025 · 9 revisions

This guide could be considered out of date and needs a bit of a rewrite!

First go into Homebrewery's HomebreweryFiles > Template folder and Copy the Template_ChestpieceItem folder
HomebreweryFiles Template folder, highlighting template item folder

Paste the item folder into HomebreweryFiles > Chestpiece
HomebreweryFiles Chestpiece folder, highlighting pasted folder

Rename the folder to something you can recognise and don't change it again!
Renaming the item folder

Inside the folder you will see armor.png, icon.png, chestRender.png, neckCollar.png, robeSkirt.png, shoulderpad.png, hipMesh.png, boobOverride.png and param.txt
Inside the item folder, highlighting all the files
icon.png is a 32x32px sprite you can use to represent the item however you like, perhaps try to take a screenshot of the item and crop it out to look sort of like the vanilla item icons?

armor.png is a 128x128px texture which is displayed on the torso, boobs and arms of the body mesh. I'm using Kiseff's own torso UV unwrap guide texture that was found in the game's resources as the template image in this case.
The UVs unfortunately are mirrored down the middle, so asymmetrical textures are currently not possible.\

boobOverride.png is a special use-case 128x128px texture which is displayed on the torso of the body mesh (but not the arms) only when the boobs are toggled on. I'm using Kiseff's own torso UV unwrap guide texture that was found in the game's resources as the template image in this case, but I have hue shifted it to be blue shades and I have cropped out the part that does not get used.
boobOverride being displayed when boobs are on
You don't need this texture unless you want to do something fancy with it. The game will use the armor texture as normal if there is no boobOverride texture. You can remove it from the folder if you don't need it.

legOverlay.png is a special use-case 128x128px texture which is displayed on the legs of the body mesh on top of whatever texture is there from the Leggings, if you have any equipped. It does not cover the feet. I'm using Kiseff's own legs UV unwrap guide texture that was found in the game's resources as the template image in this case, but I have cropped the area that part that does not get used.
legOverlay being displayed
Remove this image from the folder if you don't need this overlay, I reckon most custom Chestpieces won't have any use for this, but you can prove me wrong!

param.txt contains the details the game needs in order to define the item and what it contextually does, so in this case the Leggings' physical appearance, whether it only textures the upper leg, whether is textures the feet, whether it can be dyed and whether the texture's hue, saturation, brightness and contrast are adjusted when displayed in-game.

{
  "_lockBoobs": false,
  "_disableJiggleBoobBones": false,
  "_neckCollarMesh": "_collar_01",
  "_chestRenderDisplay": "chestMesh_00",
  "_robeSkirtRender": "robeSkirt",
  "_armCuffRender": "armCuffs_00",
  "_textureArms": true,
  "_shoulderPadDisplayType": 1,
  "_shoulderpadMesh": "shoulderpad_pad01",
  "_hipMesh": "hipMesh_01",
  "_canDyeArmor": false,
  "_colorAdjustParams": {
    "_hue": 0.0,
    "_saturation": 1.0,
    "_brightness": 0.0,
    "_contrast": 1.0
  },
  "_itemName": "This text is the Chestpiece's display name",
  "_itemDescription": "This text goes in the space beneath the Chestpiece's name"
}

Edit the text within the speech marks ("") to change the text the item displays in-game.

"_itemName": "Very Cool Chestpiece",
"_itemDescription": "This Chestpiece is Very Cool!"

_lockBoobs is a boolean (true/false) which sets whether the character's boobs are squished together a bit and jiggle together rather than separately. You've probably seen how many Chestpieces have this property set to true.

"_lockBoobs": false,

False / True
lockBoobs false vs true

_disableJiggleBoobBones is a boolean (true/false) which, like the name suggests, sets whether the boobs jiggle at all. When set to true, the boob meshes will be completely static.

"_disableJiggleBoobBones": false,

_neckCollarMesh designates what Mesh the collar part around the neck displays in-game. Empty the text in the speech marks if you don't want it to display this part, and remove the associated texture from the folder. Click here to jump to the list of meshes.

"_neckCollarMesh": "_collar_01",

This mesh is textured by neckCollar.png. It is 64x64px.
Inside the item folder, highlighting neckCollar PNG

_chestRenderDisplay designates what ScriptableArmorRender displays in-game as what could be considered the major part of the Chestpiece, one of them is a breastplate, some are tabards, one is sorta like a waistband wrap. Empty the text in the speech marks if you don't want it to display this part, and remove the associated texture from the folder. Click here to jump to the list of ScriptableArmorRenders.

"_chestRenderDisplay": "chestMesh_00",

This mesh is textured by chestRender.png. It is 64x64px.
Inside the item folder, highlighting chestRender PNG

_robeSkirtRender designates a skirt / robe / gown ScriptableArmorRender over the legs, currently there is only one of these in the game, called "robeSkirt". Empty the text in the speech marks if you don't want it to display this part, and remove the associated texture from the folder. Click here to jump to the list of ScriptableArmorRenders.

"_robeSkirtRender": "robeSkirt",

When using this field, the game will hide the legs part of the body mesh to prevent them from clipping through the skirt, which unfortunately means making the skirt shorter with transparency may not look very good. You can add it as a legPiece part for a Leggings mind you, and that won't hide the legs, just make sure you remember the texture has to be named legPieceX!
The bottom of robeSkirt01, where the feet poke out
It's pretty difficult to show it off but the mesh is not open at the bottom.

This mesh is textured by robeSkirt.png. It is 128x128px.
Inside the item folder, highlighting robeSkirt PNG

_armCuffRender designates what ScriptableArmorRender is added atop the sleeves/wrists; these meshes do not get their own texture, and instead use armor.png. A yellow rectangle has been added in the bottom right of the texture to highlight the area they use. Empty the text in the speech marks if you don't want it to display this part. Click here to jump to the list of ScriptableArmorRenders.

"_armCuffRender": "armCuff01",

Inside the item folder, highlighting armor PNG

_textureArms is a boolean (true/false) which sets whether the armor.png texture is applied to the arms or not.

"_textureArms": true,

True / False textureArms true vs false

_shoulderPadDisplayType is an enumerator (Basically a very minimal numbered list, where the indexes have context to them) that sets whether the chestpiece displays one, both or no shoulderpads. Represented by an integer in the JSON.

"_shoulderPadDisplayType": 1,

The appropriate values for the property are:
0 = Nothing displayed.
1 = Both sides are displayed.
2 = Only the Left is displayed.
3 = Only the Right is displayed.

_shoulderpadMesh designates what Mesh is placed on the shoulders, you will want to ensure that _shoulderPadDisplayType is not set to 0 if you are wanting the chestpiece to display the shoulderpads. Empty the text in the speech marks if you don't want it to display this part, and remove the associated texture from the folder. Click here to jump to the list of meshes.

"_shoulderpadMesh": "shoulderpad_pad01",

This mesh is textured by shoulderpad.png. It is 64x64px.
Inside the item folder, highlighting shoulderpad PNG

_hipMesh designates what ScriptableArmorRender the part around the waist displays in-game. Empty the text in the speech marks if you don't want it to display this part, and remove the associated texture from the folder. Click here to jump to the list of ScriptableArmorRenders.

"_hipMesh": "hipMesh_01",

This mesh is textured by hipMesh.png. It is 64x64px.
Inside the item folder, highlighting hipMesh PNG

_canDyeArmor is a boolean (true / false) which, well, sets whether the armor is affected by your Dye color or not. You don't dye the items in this game, rather you set your character's dye colour, which is used on any gear that is dyeable. If your texture features a very colour specific design then you might want to keep this as false, however there is some tech to be found with the next property...

"_canDyeArmor": false,

_colorAdjustParams is a set of four values that you might notice looks exactly the same as the ones that Dyes have, just by a different parent name. This is kinda like a "Pre-Dye" the game will do to the textures before it applies the Dye's settings. You don't really need to edit these if your gear will not be dyeable anyway.

The game generally uses green colours for the 0 point of Hue shift, so you can use these values to alter what the gear looks like by default before a Dye is applied.

"_colorAdjustParams": {
  "_hue": 0.0,
  "_saturation": 1.0,
  "_brightness": 0.0,
  "_contrast": 1.0
},

And here we are:
The item's tooltip in-game
The drop item visuals Wearing the item
Note that the drop item model will not display the extra mesh parts except the robeSkirt part, using the armor texture for both the torso and the skirt.

Clone this wiki locally