Mods / Joy of Painting
- Tags:
- Author:
- Moby_
- Side:
- Both
- Created:
- May 29th 2023 at 12:52 PM
- Last modified:
- Sep 24th 2025 at 10:57 AM
- Downloads:
- 40659
- Follow Unfollow 462
-
Latest release (for Vintage Story 1.21.0 and 1.21.1, outdated):
jopainting_1.5.0.zip 1-click install
If you find a bug, have a suggestion or want to talk, feel free to join my Discord server!
The second installment in the "Joy of..." series adds a new decorative block: the Painting!
Unlike vanilla paintings, this one is customizable.
The recipe for the painting is in the handbook. You will need 4 planks (any wood), 1 square-stitch linen and 4x0.5L of any dye (the handbook make it look like you need 4 times the same dye, you don't. You can mix them)
Once you have a painting, hold it in your hand and type the command:
.loadpainting [painting file name]
Since 1.4.0, it's also possible to load an image from an URL (note that this feature is still experimental and might not work all the time):
.loadpainting [painting URL, ending with an image file format (.png, .jpg...)]
It's also possible since 1.4.0 to rename a painting with the /renamepainting [painting name] command.
The painting file should be an image (bitmap, jpeg, png...) with a resolution of 32x in your VintagestoryData/Paintings folder. The name that you will input in the command can't have any spaces, and you should not add the file extension at the end of the name, it will be added automatically (so if you write it, it will look for a paintingname.bmp.bmp for instance)
The great part is that only you need to have the file: it's then uploaded to the server so everyone can see it!
Oh, also, you can place paintings on the floor and on ceilings!
Starting in 1.5.0, paintings can also be rotated with a wrench (hold CTRL to rotate it counter-clockwise).
Please note: painting synchronization might take a short time after you loaded the painting. The painting might still not be loaded if you place it immediatly afterwards depending on server lag. Once it's placed though, if it works, it won't change.
Also, as of 1.4.0, paintings don't render immediatly in your hotbar, even when successfully loaded. You need to move them in your inventory (or drop them to the ground) to update the in-inventory rendering.
Making paintings
If you want to touch up an image for a painting, you can use Paint.NET (Windows only), it's what I use, it's pretty simple to understand and MUCH better than MS Paint.
You can resize the image with image -> resize (check "keep proportions" and force the smallest dimension to a multiple of 32), then crop it with Image -> canvas size (or something) to make sure that both dimensions are multiples of 32.
You can then split it into 32x32 squares with the rectangle selection tool, copy it, create a new image, paste it, then File -> Save as..., enter the name and under it select "Bitmap" (or jpg, png, tiff... since 1.4.0)
For search referencing, the mod id is jopainting
More search referencing stuff, people might search for pixel art chiseling chiselling chisel
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 1.5.0 | jopainting | 19062 | Sep 24th 2025 at 10:57 AM | jopainting_1.5.0.zip | 1-click install | ||
| |||||||
| 1.4.1 | jopainting | 9971 | Feb 21st 2025 at 7:40 PM | joyofpainting-1.4.1.zip | 1-click install | ||
|
- Updated to 1.20 | |||||||
| 1.4.0 | jopainting | 6631 | Jan 18th 2024 at 2:01 PM | joyofpainting-1.4.0.zip | 1-click install | ||
| |||||||
| 1.3.2 | jopainting | 744 | Dec 12th 2023 at 9:20 AM | jopainting_1.3.2.zip | 1-click install | ||
|
Removed 1.19 code for compatibility with 1.18.15 | |||||||
| 1.3.1 | jopainting | 411 | Dec 11th 2023 at 10:22 AM | joyofpainting-1.3.1.zip | 1-click install | ||
|
Updated to 1.19.0-pre. Should work with 1.18.15, untested Introduced bug: you have to move the painting in your inventory slot after loading it so it renders properly in-inventory. The rendering isn't automatically updated. | |||||||
| 1.3.0 | jopainting | 1367 | Jun 7th 2023 at 2:17 PM | joyofpainting-1.3.0.zip | 1-click install | ||
|
Fixed the crafting recipe. Also mod is now stable again | |||||||
| 1.3.0-pre.5 | jopainting | 403 | May 31st 2023 at 9:36 AM | jopainting-1.3.0-pre.5.zip | 1-click install | ||
|
Probably fixed multiplayer bug | |||||||
| 1.3.0-pre.4 | jopainting | 263 | May 31st 2023 at 9:12 AM | joyofpainting-1.3.0-pre.4.zip | 1-click install | ||
|
Multiplayer fix test again | |||||||
| 1.3.0-pre.3 | jopainting | 255 | May 31st 2023 at 9:00 AM | joyofpainting-1.3.0-pre.3.zip | 1-click install | ||
|
New attempt at multiplayer fix | |||||||
| 1.3.0-pre.2 | jopainting | 271 | May 31st 2023 at 8:55 AM | joyofpainting-1.3.0-pre.2.zip | 1-click install | ||
|
Tried fixing a multiplayer bug | |||||||
| 1.3.0-pre.1 | jopainting | 230 | May 31st 2023 at 8:37 AM | joyofpainting-1.3.0-pre.1.zip | 1-click install | ||
|
Beginning to add the rendering for paintings in toolracks | |||||||
| 1.2.0 | jopainting | 266 | May 30th 2023 at 3:22 PM | jopainting-1.2.0.zip | 1-click install | ||
|
- Paintings now render in-hand and in item slots thanks to Craluminium! | |||||||
| 1.1.0 | jopainting | 259 | May 30th 2023 at 2:22 PM | jopainting-1.1.0.zip | 1-click install | ||
|
- Can now place paintings on the floor and on the ceiling! | |||||||
| 1.0.0 | jopainting | 247 | May 30th 2023 at 10:39 AM | jopainting-1.0.0.zip | 1-click install | ||
|
- Now stable
- Added display of painting name (file name) | |||||||
| 0.1.0 | jopainting | 279 | May 29th 2023 at 1:03 PM | joyofpainting-0.1.0.zip | 1-click install | ||
|
First release | |||||||
Lepregoth Yeah, 1.22 broke all code mods, I'm on it
as of 1.22 this mod is unable to load. bumping the comments to hopefully get an update!
As the last comment mentioned, a 64x64 option would be incredible !!!
It'd be cool if you could add a 64x64 version that takes twice the amount of dye, so like 4 Liters.
BreakdownBrkdwn when typing the image name exclude the file extention (.png) that should fix it.
when attempting to load an image from a URL it says (url).png.bmp not found in vintagestorydata/paintings folder.
BasilRabbit You can just add the folder with the exact same name ("Paintings") to the path and add the pictures there, it'll work
I am using the VS Launcher for running the game and keeping my mods updated, but it doesn't have a VintageStoryData/Paintings folder. Where should I place the folder instead? Seems like that path is hard-coded...
I'd love to be able to load in images of higher resolution and have them actually display in a higher resolution in-game instead of being downscaled to 32x32. Would be nice to have this as a side command like .loadpaintinghd
Ghaashaath Yeah, that's a known issue, unfortunately I'm not sure how to fix it... When I use it I generally just double the brightness but that's not really a fix, I'll look more into it next time I update the mod
Hello! I've just tried to generate my image in-game and sadly it turns out very dark. Looks like the same problem people have reported here a month ago. Is there any fix for that?😔
Moby_ Cool, thanks. Yeah, by frame I mean a 3D frame like the vanilla paintings. Ideally it could be chiseled, kind of like how QP's Chisel Tools handles it's "decorative" blocks.
Cthugha Yeah, it's planned, right now the only way to add a frame is to add it to the painting though
Would it be possible to add a version of the painting that's framed?
SiiMeR Well, there isn't really another time to load them without risking blank paintings. I could definitely work more on optimization though, I've noticed some minor lag that started in 1.21 too
Textures are only generated once per painting (and loaded just once for duplicates), so I think that lagging would come from the rendering, there might be some expensive but unnecessary code left from my tests, although I don't think so.
Now that I've worked with mesh rendering with Billposting, I might be able to circumvent some model loading that occurs when a painting is rendered
Could you make the texture not be generated upon this BE being loaded during chunk load? A chunk with a few of these paintings will freeze the client up for a second or 2 every time you go near it.
GasStationGuy ZenithDaWuff From what I gathered, something changed in the way the game renders or loads images. I'll fix it soon
I also second GasStationGuy's comment- well, at least the part about the image rotation. I change the rotation of the named image in my file explorer and no change happens in-game: The image is always rotated 90 degrees to the left on the painting. What's up with that?
when i load a painting it's turned the wrong way, it's rotated. why? how to fix it?
shown below are two of the same image, one being the wrong way that i currently see in-game, and the second image shows what the painting is supposed to look like, how it's supposed to be rotated.
this is wrong. :( this is right. :)
why can't i comment this fucking shit?????
WHY CAN'T I ADD A FUCKING IMAGE TO THIS FUCKING COMMENT????????
are borders an option or do I need to chisel them?
Oniboshi pudgydumpling Yeah, I'll boost the brightness once more and add a client-side option to control the brightness
My paintings are also very dark. It's really noticeable especially on paintings with light colours... everything turns muddy :(
The paintings are spawned very dark compared to their input. Is this intended or is there a way to brighten them once more?
I'm going to use this to make a huge night sky ceiling in a cultish cathedral, this mod is very neat!
PrincessCrystal yes, but you have to download the actual latest version. Somehow the ModDB offers a version that's almost two years old as "latest" (1.3.2), actual latest is 1.4.1
does this work on latest release?
Lariannn no, they don't need to, only you have to have it, that's the entire point of the mod x)
Yes but what if I want other players to see same painting/picture on server? Then they need to download manually and put same pictures in their local folder :( and what if I want to show on server a new picture, then I need to chat to everyone to download it first. Ill try to use url, maybe this is the only solution, but you said in description that its just experimental so meh :)
Lariannn you should put the pictures in your client folder, the whole point of this mod is to make it so you don't need to put anything on the server ;)
I cannot find VintagestoryData folder on my server :(
Tip!
use https://carouselmaker.co/en/tools/free-instagram-image-splitter to easily split an image into multiple pieces for larger paintings, just make sure the vertical dimension of the original image is dividable by the number of rows and the horizontal dividable by the number of columns
ShouldBePainting I think you have to create the "Paintings" folder manually (it's also important that it's "Paintings" and not "paintings", it's case-sensitive)
I cannot find the folder the files are supposed to be placed in. I'm in the Vintagestorydata folder and there is no "paintings" folder.
For anyone who wants an easy way to tile larger images on their computer (with imagemagick installed), run:
convert filename -crop 32x32 +adjoin name%02d.bmp
can you make a video guide on this too?
Is there any way to make the paintings have a higher resolution? I want to use a screenshot of our base seen from the map as a painting
BoardingBulb It should be, but I haven't tested it in multiplayer in 1.20.
Sometimes paintings have to be broken then replaced to properly update, maybe that could fix it?
is it mp compatable? ive put it in my server and my friend set the command, can see it in there hot bar, but cannot see it when they put it down
BoardingBulb I just made multiple small paintings that assemble into a big painting, splitting the image in an image editing software
How do you make the bigger painting? ive made the small square one, is there a way to combine multiple together to make a big painting?
Sylvi I don't have any donation thingy because I'm currently unemployed and in my country, when you're unemployed and make money, that money gets partially deducted from the money I get from unemployment funds, so any money given to me would go almost 100% to the government (which is not really worth it xD)
Since you're not the first to ask about that, I'll probably set something up once I find a new job (hopefully a couple months from now)
Awsome to see this back, can't wait for your other mods to be ready for 1.20 <3
Do you have any kind of tip jar like a kofi?
Prime727 done :D
Any plans for a 1.20 update?
Hey! I've been experimenting with this and was wondering if there is any way to up the brightness on the paintings at all? They come out quite dark in game for some reason even if the artwork itself is particularly bright.
At v1.19.0-rc.6
The game crashes when I install this mod and search for "P" in the handbook.
I look forward to upgrading this mod.
Accensus Yeah, it's incompatible with .NET 7, since Photographic Memories isn't either I'm guessing that it has to do with the image loading libraries, I'll update it in the following days (along with trying to add Craluminium's update, which makes the mod significantly more user-friendly)
Doesn't seem like it's working on 1.18.8. The client-main.txt log in VintagestoryData/Logs provides the necessary information. I'm not pasting the whole thing here, but it can easily be replicated by just launching the game.
Gist of it is this:
10.8.2023 18:07:48 [Error] [jopainting] Exception thrown when attempting to retrieve all types of the assembly jopainting, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null: System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
Method 'GetPixel' in type 'jopainting.PaintingBitmap' from assembly 'jopainting, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' does not have an implementation.
How to make paintings with 32x64 or 64x32 or longer?
There are several in other mods...
Next update will bring a lot of new features and fixes
Ooooooo.. Now I can add all my Cthulhu and Lovecraftian images in game. 😍
Craluminum, I think the same.
Criminally underrated mod