promotional bannermobile promotional banner

More Custom Paintings

More Paintings (Forge 1.20.1) lets you upload a PNG ingame and place it as a custom wall painting. Install Forge, drop MorePaintings.jar in .minecraft/mods, open Creative > More Paintings, right-click Custom Painting upload PNG, then place on wall.

File Details

More Custom Paintings-1.0.0

  • R
  • Jun 1, 2026
  • 36.55 KB
  • 121
  • 1.20.1
  • Forge

File Name

More Custom Paintings-1.0.0.jar

Supported Versions

  • 1.20.1

Curse Maven Snippet

Forge

implementation fg.deobf("curse.maven:more-custom-paintings-1560402:8178610")
Curse Maven does not yet support mods that have disabled 3rd party sharing

Learn more about Curse Maven

Changelog

All notable changes to this project are documented in this file.

[1.0.0] - 2026-05-30

Added

  • Initial release of More Paintings for Minecraft Forge 1.20.1 (Forge 47.2.0).
  • New mod identity and metadata:
  • mod_id: morepaintings
  • mod_name: More Paintings
  • author: Dandusnehith
  • New creative tab: More Paintings.
  • New item: Custom Painting (morepaintings:custom_painting).
  • New placeable wall painting block: morepaintings:custom_painting.
  • New block entity to persist custom painting image data.
  • Client upload GUI opened by right-clicking the Custom Painting item.
  • GUI byline/credit text: "Mod made by Dandusnehith".
  • PNG upload workflow with file picker support (.png).
  • PNG metadata detection (width/height) shown in GUI.
  • Server networking channel: morepaintings:main.
  • Upload packet system for syncing image data from client to server.
  • Dynamic in-world rendering for uploaded images using runtime textures.
  • Item tooltips showing upload state, image name, and detected size.
  • Language entries (en_us.json) for all user-facing labels/messages.
  • Detailed project README with usage and build instructions.
  • Java 17 helper build script: build_with_jdk17.bat.

Gameplay

  • Right-click Custom Painting item to open upload UI.
  • Select a PNG, optionally name it, and save to the item.
  • Place uploaded painting onto a valid wall face.
  • Painting keeps uploaded data when broken and dropped back as item.
  • Custom hover name is applied based on uploaded image name.

Validation and Safety

  • PNG file size hard limit: 1 MB.
  • Upload rejected if:
  • No valid player/item context
  • Width/height is invalid
  • PNG byte payload is empty or exceeds max size
  • Placement rejected if:
  • Item has no uploaded PNG data
  • Target is not a horizontal wall face
  • Target position cannot be replaced
  • Wall support is invalid

Rendering

  • Custom block uses block-entity renderer (ENTITYBLOCK_ANIMATED render shape).
  • Uploaded PNG is decoded into a dynamic texture at runtime.
  • Texture caching added to avoid redundant re-registration.
  • Rendered quad scales to image aspect ratio within painting frame bounds.

Data Storage

  • Painting data stored in NBT:
  • ImageBytes
  • ImageWidth
  • ImageHeight
  • ImageName
  • Data persisted in both item stack NBT and placed block entity NBT.
  • Update packet/tag support included for client sync after placement or load.

Build and Packaging

  • Successful Gradle build and reobfuscation completed.
  • Primary output JAR:
  • build/libs/morepaintings-1.0.0.jar
  • Desktop working copy produced:
  • C:\Users\dandu_jhluw4e\Desktop\MorePaintings-working.jar
  • Dev client run verified with Forge handshake and mod list including:
  • minecraft
  • forge
  • morepaintings

Notes

  • Project requires Java 17-compatible toolchain for reliable ForgeGradle behavior.
  • Included helper script ensures local builds run with bundled Java 17.