Mods / Wearable Render Library
- Tags:
- Authors:
- BowlSoldier, SiiMeR
- Side:
- Both
- Created:
- Jul 7th 2025 at 9:00 PM
- Last modified:
- Sep 29th 2025 at 6:44 PM
- Downloads:
- 4372
-
Latest release (for Vintage Story 1.21.0 and 1.21.1, outdated):
wearablerenderlib_1.3.0.zip 1-click install
Description
Utility library for other mods to utilize, has no effect by itself.
Adding lots of items, such as armor or clothing, which only differ by shape and/or texture and are otherwise identical, can have negative effects on performance. The game has to keep track of the product of all your item's variant groups, leading to many item codes.
This mod adds a more efficient method. You can have a single itemtype, that varies its appearance by setting `shape` or `textures` Attributes on the ItemStack at run-time. Anything that updates Attributes will cause this to happen, so this can be done via crafting, or anything else that could change an item's attributes.
How to Use
The Vanilla game uses an `ItemWearable` class for its clothing and armor. This mod can work with anything that uses that class, by instead using this mod's `ItemWearableShapeTexturesByAttributes` class. This should behave identically to the base class mechanically, the only difference should be that it's possible to dynamically change the rendering by assigning values to the `shape` and/or `textures` Attributes on the Itemstack.
If you are using CombatOverhaul / OverhaulLib, armor instead uses the `ItemWearableArmor` class added by OverhaulLib. Similarly, you can use this mod with that armor by instead using the `ItemWearableArmorShapeTexturesByAttributes` class, and assigning attributes.
Attribute Documentation
- `shape`
- Expects a single string as input, not a `CompositeShape` with a `base` etc.
- That single string should be the path to the relevant shape
- `textures`
- Expects a mapping of string -> string, essentially a Dictionary<string, string>.
- The key should be the TextureCode you want to override
- The value should be the path to the relevant texture
Both path values are in the same form as in `item-types` json files. They should include a ModId, but should not include the `shapes/` or `textures/` folder and should not include the `.json` file extension.
Example usage
Examples of how to use this can be seen in my Customizable Plate Armor mod. For example, here's a recipe which alters Steel Plate helmet with custom rendering attributes, then it will display with my new shape and textures.
{
"ingredientPattern": "P_,AH",
"recipeGroup": 3,
"width": 2,
"height": 2,
"ingredients": {
"A": {
"type": "item",
"code": "game:armor-head-plate-steel"
},
"P": {
"type": "item",
"code": "game:metalplate-*",
"name": "metal",
"allowedVariants": [ "copper", "iron" ]
},
"H": {
"type": "item",
"code": "game:hammer-*",
"isTool": true
}
},
"averageDurability": false,
"name": "Reinforced Plate Armor Head",
"copyAttributesFrom": "A",
"output": {
"type": "item",
"code": "game:armor-head-plate-steel",
"attributes": {
"shape": "game:combatoverhaul/armor/plate/head-{metal}",
"textures": { "material": "customizableplatearmor:{metal}" }
}
}
}
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 1.3.0 | wearablerenderlib | 2475 | Sep 29th 2025 at 6:44 PM | wearablerenderlib_1.3.0.zip | 1-click install | ||
|
* Update to 1.21 & .NET8 | |||||||
| 1.2.1 | wearablerenderlib | 1327 | Jul 13th 2025 at 5:22 PM | wearablerenderlib_1.2.1.zip | 1-click install | ||
|
Fix bug for servers using relative file paths to define the data folder | |||||||
| 1.2.0 | wearablerenderlib | 110 | Jul 9th 2025 at 2:26 PM | wearablerenderlib_1.2.0.zip | 1-click install | ||
|
No longer requires OverhaulLib. Will work with OverhaulLib if it's installed, but it's now an optional dependency | |||||||
| 1.1.0 | wearablerenderlib | 407 | Jul 8th 2025 at 7:33 AM | wearablerenderlib_1.1.0.zip | 1-click install | ||
|
Adds `ItemWearableShapeTexturesByAttributes`, which is for the vanilla `ItemWearable` class. This should allow dynamic rendering of any vanilla armor or clothing. Also changes the registered name of the original Class from `ItemWearableArmorMeshByAttributes` to `ItemWearableShapeTexturesByAttributes`, the previous name was a typo accidentally left in. Any mods using this library will need to update to this new Class name in their JSON files. | |||||||
| 1.0.0 | wearablerenderlib | 53 | Jul 7th 2025 at 9:01 PM | wearablerenderlib_1.0.0.zip | 1-click install | ||
|
Initial release. Currently only works with CombatOverhaul armors, and requires Overhaullib | |||||||

If anyone needs this functionality, Attribute Rendering Library now has full support for wearables and thus this mod isn't needed anymore
Newest version no longer requires OverhaulLib! This should now work with vanilla armor sets and clothing, if you want to modify those in your mods.
thanks nigga