πΌοΈ stewbeet.plugins.custom_paintings
π Source Code: stewbeet/plugins/custom_paintings/__init__.py π
π Dependencies
- β Required: StewBeet framework initialization
- β
Required:
Your definition plugin(seedefinitions_setup.mdfor details) - β Required: Texture file in the configured textures folder
- π Position: Should run anywhere between definitions_setup and ingame_manual
(seebasic/beet.ymlfor an example)
π Overview
The custom_paintings plugin generates custom paintings for datapacks and resource packs based on item definitions.
It automatically creates painting variants, handles texture registration, and manages the placeable paintings tag system.
(This plugin requires valid item definitions in memory and corresponding texture files to function properly.)
Feature Showcase
Item definition example (source):

Generated variant file (source):

Item in inventory:

Painting placed in a world:

π― Purpose
- π οΈ Custom Painting Generation - Creates custom painting variants from item definitions
- π¨ Texture Management - Automatically registers painting textures in resource pack
- π·οΈ Metadata Handling - Manages painting titles, authors, and dimensions
- π¦ Tag System - Generates placeable painting variant tags
- ποΈ Asset Organization - Properly structures painting assets in the
textures/painting/folder
βοΈ Configuration
π― Basic Example Configuration
pipeline: - ... - src.setup_definitions # Load item definitions into memory - ... - stewbeet.plugins.custom_paintings # Generate custom paintings - ... meta: stewbeet: textures_folder: "assets/textures" # Required: Path to texture files
π Configuration Requirements
| Setting | Type | Required | Description |
|---|---|---|---|
textures_folder | string | β Yes | Path to folder containing .png texture files for paintings |
β¨ Features
πΌοΈ Painting Variant Generation
- π Automatic Metadata - Sets default author (from
project_author) and title (from item name) - π§ Custom Properties - Supports width, height, and custom metadata
- π·οΈ Asset ID Management - Automatically assigns
asset_idas first property - π« Placeable Control - Optional
not_placeableflag to exclude from placement
π¨ Texture Processing
- π Smart Discovery - Automatically finds
.pngfiles matching item names - π Path Resolution - Searches recursively in textures folder
- β οΈ Duplicate Detection - Warns about multiple matching textures
- οΏ½ Resource Registration - Places textures in
painting/namespace - ποΈ Metadata Support - Handles
.mcmetafiles for animated textures
π·οΈ Tag Management
- π Placeable Tag - Automatically generates
minecraft:placeablepainting variant tag - π― Selective Inclusion - Only includes paintings not marked as
not_placeable - π§ Namespace Organization - Properly namespaces painting variant references
π Item Definition Structure
π― Basic Painting Definition
# Example from setup_definitions.py Mem.definitions["stewbeet_painting"] = { "id": "minecraft:painting", core.PAINTING_DATA: { "author": {"text":"Stoupy","color":"yellow"}, # Optional: defaults to project_author "title": {"text":"Da' Icon","color":"gray"}, # Optional: defaults to item name "width": 2, # Required: painting width in blocks "height": 2 # Required: painting height in blocks } }
πΌοΈ Advanced Configuration Options
core.PAINTING_DATA: { "author": {"text": "Artist Name", "color": "gold"}, # Author text component "title": {"text": "Painting Title", "color": "blue"}, # Title text component "width": 1, # Width in blocks (1-16) "height": 1, # Height in blocks (1-16) "not_placeable": True # Optional: exclude from placeable tag }
π File Structure Example
πΌοΈ Texture Organization
assets/textures/
βββ stewbeet_painting.png # Main painting texture
βββ subfolder/
β βββ another_painting.png # Another painting
β βββ another_painting.png.mcmeta # Optional animation metadata
βββ ...
π¦ Generated Files
# Datapack
data/your_namespace/painting_variant/
βββ stewbeet_painting.json # Painting variant definition
βββ another_painting.json
data/minecraft/painting_variant_tag/
βββ placeable.json # Tag containing all placeable paintings
# Resource Pack
assets/your_namespace/textures/painting/
βββ stewbeet_painting.png # Registered painting texture
βββ another_painting.png
βββ another_painting.png.mcmeta