Client Paintings
Client Paintings is a lightweight mod that operates exclusively on the client side, allowing you to add new paintings through resource packs without affecting the standard options from the vanilla game. The mod uses the unique identifier of the painting entity and applies a special algorithm to determine which image should be displayed.
A specific resource pack structure is used for adding custom paintings. You can use the online generator on the developer's website to quickly create such a pack or review the technical details of the format below.
Key Features
- Adding multiple sets of new paintings through resource packs
- Preserving all original paintings from the vanilla version of the game
- Complete consistency in displaying standard paintings between players with and without the mod
- Synchronization of custom paintings between all players who have the mod installed
- Preservation of custom paintings between game and server restarts
Operational Features
- Custom paintings will display identically only for players with identical painting sets
- Adding painting sets requires using a special resource pack format
Usage Example
Using the standard resource pack included with the mod:

How players without the mod see the same painting:

Resource Pack Format
The resource pack format is very simple. In the root of your resource pack namespace, you need to create a client_paintings folder (for example, assets/<namespace>/client_paintings). In this folder, you can place any number of JSON files, each representing a separate custom painting.
Each JSON file must have the following structure:
{
"texture": "<namespace>:client_paintings/painting_texture",
"back": "<namespace>:client_paintings/painting_back_texture",
"size": [2, 1]
}
texture— painting texture in PNG format with aspect ratio matching thesizefield, where width and height must be multiples of 16. The texture must be located in theassets/<namespace>/textures/client_paintingsfolderback— texture of the painting's back side in PNG format with square shape, where width and height are also multiples of 16size— painting size in blocks, where the first value is width, the second is height. Only sizes 1x1, 1x2, 2x1, 2x2, 4x2, 4x4, and 4x3 are supported due to the need to replace standard paintings
Example resource pack structure:
pack.mcmeta
assets
└── namespace
├── textures
│ └── client_paintings
│ ├── painting1.png
│ ├── painting2.png
│ ├── painting3.png
│ └── backs
│ ├── back1.png
│ └── back2.png
└── client_paintings
├── painting1.json
├── painting2.json
└── painting3.json