Mods / Billposting
- Tags:
- Author:
- Moby_
- Side:
- Both
- Created:
- Jun 3rd 2025 at 11:58 AM
- Last modified:
- Jul 15th at 10:32 AM
- Downloads:
- 119968
-
Latest release (for Vintage Story 1.22.0-pre.1 - 1.22.3, potentially outdated):
billposting_2.0.3.zip 1-click install
Note: starting in 1.1.0, signed parchments turned into billposts can only be picked up by their original author or by someone with the "buildblocksanywhere" permission (the one that allows a player to build anywhere, bypassing claims). There's a config option to disable it in 2.0.0. If for some reason you're still playing in 1.21, you can use version 1.0.1 instead, the only difference between 1.0.1 and 1.1.0 is that.
Try it with Billposting Extra for more writing and billposting supports!
Billposting makes it possible to pin parchments, displaying their contents in-world.
Use it to make notice boards, city-wide announcements, Wanted posters, and more!
To pin a parchment, hold shift+ctrl and right-click on a wall with it. To pick it back up, right-click on it with an empty hand.
Placement is entirely free, and doesn't have to be aligned to blocks.
One drawback: as billposts are entities, you can't place a block on a billpost.
New in 2.0! Billpost markdown!
Ever dreamed of changing the font and color of your billposts? That's now a possibility!
To control it, you have to add tags between brackets on a line. The line has to ONLY contain the brackets and tags, the style will be applied to all lines after it.
For instance, your text could look like:
[font=Times New Roman, fontSize=30, color=6f328c]
The Vintage Times
[fontSize=22, color=1c1c1c]
Breaking News! Copper age achieved!
[font=Calibri, fontSize=18]
The Vintage Corporation has recently managed to acquire 40 copper nuggets, kickstarting the copper age.
The valid codes are:
font: controls the font. Keep in mind that you need to have the font installed to view it, or the default font will display.
color: takes a hex color (without the common '#' in front of it)
fontSize: that's just the size. Put a number in it.
Styles can only ever be applied line by line, though. Keep that in mind. I'll probably work on it in the future, but for now it's good enough.
Planned features:
- Wax seals and more graphics customization options for billposts
- Making it so billposts drop when the block they're pinned to is broken (right now, they can float in mid-air and have to be picked back up)
- Creative mode support: don't use up a parchment to place a billpost when the player is in creative mode
- Billposts placeable horizontally
- Config option to prevent people from placing billposts in claimed areas
| Mod Version | Mod Identifier | For Game version | Downloads | Released | Changelog | Download | 1-click mod install* |
|---|---|---|---|---|---|---|---|
| 2.0.3 | billposting | 15747 | Jul 15th at 10:32 AM | billposting_2.0.3.zip | 1-click install | ||
|
Added a 4096-character display limit (only for the rendering system) to try and prevent data dumping | |||||||
| 2.0.2 | billposting | 21355 | Jun 12th at 10:25 AM | billposting_2.0.2.zip | 1-click install | ||
|
Fixed (hopefully) a bug where wrongly selecting a color would crash clients loading the billpost. Adding a # in front of the color code will now also be accepted. | |||||||
| 2.0.1 | billposting | 1700 | Jun 8th at 9:49 AM | billposting_2.0.1.zip | 1-click install | ||
|
- Fixed crash when adding an extra bracket line at the end of billpost. Probably fixed other crashes - Added modicon | |||||||
| 2.0.0 | billposting | 14516 | May 3rd at 8:33 PM | billposting_2.0.0.zip | 1-click install | ||
| |||||||
| 1.1.0 | billposting | 38375 | Sep 23rd 2025 at 9:08 AM | billposting_1.1.0.zip | 1-click install | ||
|
Signed parchments turned into billposts can now only be picked up by their original author or by someone with the "buildblockseverywhere" permission (the permission that bypasses claims) | |||||||
| 1.0.2 | billposting | 8865 | Sep 23rd 2025 at 8:39 AM | billposting_1.0.2.zip | 1-click install | ||
|
Fixed z-fighting issue in 1.21 | |||||||
| 1.0.1 | billposting | 19248 | Jun 3rd 2025 at 2:35 PM | billposting_1.0.1.zip | 1-click install | ||
|
Made the text on parchments darker (true black), because it's not very easy to see with dark brown | |||||||
| 1.0.0 | billposting | 162 | Jun 3rd 2025 at 12:00 PM | billposting_1.0.0.zip | 1-click install | ||
|
Initial release | |||||||



Love this mod, but could you add the Ctrl-Shift button combo to the tooltips when you select parchment, so you don't have to already know the button combo to discover it? I'd like to add this to my server, but I don't know how people would learn how to use it in-game.
swapping shift and control for sprint and crouch makes it impossible to post a bill
[Warning] Texture asset 'c:textures//users/llama/onedrive/documents/vintage story/vsmods/billposting/billposting/assets/billposting/textures/billpost.png' not found (defined in Shape file billposting:billpost).
appears in the log during world load. I imagine a reference didn't get updated to point to a packed asset rather than a local asset?
Multiplayer crash abuse potential - if someone puts a bad color code on a billpost (like XX) it will crash everyone that comes within range.
Which version are you using? I thought I fixed that in 2.0.2, if you're using that or above I guess I have to get back to it
Ooh, didn't see the update log, thanks!
is it possible to implement the built-in VTML (Vintagetext Markup Language) when rendering instead of a custom one? (my guess, i haven't looked into the code) As that would be more consistent with the rest of the game, less bloat and also allow us to post url links, dynamic per user keybind prompts, and icons and display handbook renders of blocks and items directly on the page.
Here's the link to the official documentation:
https://wiki.vintagestory.at/VTML
edit: spelling mistakes
Unfortunately, it's not. The text-to-image system depends on Cairo (an image manipulation library), and not on the interal game systems. I tried reverse-engineering VTML or using GUI rendering, but couldn't get either to work.
Well... thanks for the reply. it is unfortunate that's not possible but it still is a great mod that added a lot of decor and utility to my world.
So thank you for great work Moby, may you not be hunted like a certain whale.
Is there a trick to removing "securely pinned" bills other then the general bills crouch/right-click? We have a couple stuck up around town now. XD
There's a config option to disable secure bills, but there are no admin tools to do that. Right now, unless you disable it, only the person who signed the parchment can unpin it
System.FormatException: Too many bytes in what should have been a 7-bit encoded integer. at System.IO.BinaryReader.Read7BitEncodedInt() at System.IO.BinaryReader.ReadString()
So yeah, people are weaponizing your mod by overflowing the filesize, you might want to put in a character limit or byte limit
That error is from a broken single character, but yeah I'll add a hard limit to the amount of characters displayed. A generous limit that still permits ascii art, but still. Update to come in the following hours (should be there by the time you see this), let me know if there are any more issues with it
thank you!
Getting this console error on server startup. Failing to load mod
We had an issue where a chunk was corrupted after someone tried to do a land claim with a bill they didn't make on a wall (not a board)
I was able to un corrupt the chunk load by removing the mod, logging in, letting the server eat the bill entity, and restoring the mod after
What happened exactly? Did it crash people or the server? Did the chunk vanish?
Also, dou you have logs or the map save?
it was crashing people who got too close - but if you were JUST outside you could see the chunk was missing
Sure, but the world save is nearly 100gigs at this point <.< so i doubt that's getting shared anywhere
Its also possible it was a metadata issue - people started creating bills with ASCII art embedded in them - which is apparently known to crash the server/chunk ITSELF if the image is too large/complex
That's weird, I made ascii art posters (mind you, maximum like 40 lines) and didn't have an issue...
If you got discord, DM me (@moby_dick) so we can figure that out without spamming comments. I'd like to log onto the server and check out that corrupted chunk with a debug build of Billpsoting so I could get more data
As i said, i already fixed the chunk. And i really dont have a way to recreate it on demand. It's likely just a bad combo of events. If it happens again i'll try to get a worldstate DURING the issue
Happened again, getting a fresh backup of it dumped to our test server. Sent a discord friend request
there is a "did you forget to register mapping?" crash on join
Do you have any more details? I can't reproduce it
Super cool mod. Defo gonna use this on the next playthrough for crafting stations so I can have recipes on hand without opening handbook.
Any chance we could get a little validation/exception handling in/around BillpostDrawUtil.ReformatContext please? I just had to decompile this mod and make a custom patch so I could "un-chunk-ban" people in a town on our server after someone used a # in their colour formatting.
Was it 2.0.0 or 2.0.1?
I fixed some exception handling in 2.0.1, just want to know if I have to get back to it
We were running 2.0.0 originally but I confirmed it was still an issue with 2.0.1 before I made my temporary patch
2.0.2 should fix it, let me know how it goes
this should somehow be combined with the noticeboard mod by propaneko
would allow people to read notes in realtime without a menu/prompt (and make them with a menu prompt to select fonts and such). rip a wanted posted of wild western style.
neat mod idea!
I'll try and talk with propaneko about that. We're aware of eachother's mod, and it's not the first time people have drawn a parallel. I've been using billposting on planks for my own notice board needs, but I can definitely see how Noticeboard can be more useful in certain cases, and that mod is pretty epic
We render text in vastly different ways though, so there'll definitely be some stuff to figure out
A worthy challenge to get the best of both worlds combined, if it can be done.
Good luck!
Fairshadow I can't reproduce it, could you send me the world save file? (shut down the server before downloading the file, you can send it to me as a DM, "Moby_Dick" on the VS discord)
Also, is there anything specific you've written in the billpost? Stuff like using the new formatting system (I tried inputting nonsense and invalid values, and couldn't get it to crash), maybe using special/non-latin characters?
It was all regular English, no special formatting at all. I ended up removing and re-adding the mod to clear the crash, so not sure there's anything left on the save, but if anything is likely to be left over, I can send it over.
I'll try tinkering with it on a singleplayer world, try to replicate what I did. It is possible I somehow inputted a strange character and didn't notice, I don't have an exact copy of the text. Regardless, thanks for looking into it.
I think the text got corrupted somehow, hopefully it was a freak event. Let me know if anything happens again. Billposting's code is basically entirely self-contained since 2.0 so no other mod should be an issue
Not sure what exactly is causing this, but when I tried to put down a billpost beside a door, I instantly crashed, and now crash any time I attempt to rejoin the server. The server itself is still running, so it's something that breaks client-side, but that's about the extent of my knowledge. Haven't yet tested if it's stuff like Optitime, but will be doing that shortly. Crash log:
Running on 64 bit Windows 10.0.19045.0 with 65170 MB RAM
Game Version: v1.22.2 (Stable)
12/05/2026 13:52:52: Critical error occurred in the following mod: billposting@2.0.0
Loaded Mods: woodlogstack64@1.2.1, catchledge@0.7.1, chargedjump@1.2.3, darkvision@1.3.2, dodgemaster@1.2.4, jsonpatcheslib@1.5.2, overhaulliblegacycompat@1.0.42, overhaullib@2.0.8, terratag@0.4.5, game@1.22.2, vsimgui@1.2.5, algernonsterrainsampler@1.2.1, animationslib@0.0.2, anvilperformanceoptimization@1.0.0, betterruins@0.6.1, billposting@2.0.0, botaniastory@0.2.5, configlib@1.12.0, cooperativecombatrework@1.1.0, emotes@2.2.0, farseer@1.4.0, fastmap@122.4.2, knapster@4.0.0, noticeboard@1.3.0, optitime@1.5.7, playermodellib@1.18.4, rustboundmagic@3.2.0, synergy@1.1.4, terratagrooms@0.1.1, creative@1.22.2, survival@1.22.2, vsvillage@5.1.4, watersheds@6.3.4, windchimes@1.5.0, xlibfork@1.0.5, autoconfiglib@2.0.10, combatoverhaulfork@0.17.29, fseraph@0.4.8, lupines@0.2.3, xskillsfork@1.0.29, combatreanimatedfork@1.0.0, xskillsgilded@1.3.25
Involved Harmony IDs: com.zaldaryon.optitime
System.NullReferenceException: Object reference not set to an instance of an object.
at billposting.BillpostDrawUtil.AutobreakAndDrawMultilineText(Context& ctx, CairoFont& font, String text, Double lineX, Double lineY, TextFlowPath[] flowPath, EnumTextOrientation orientation, EnumLinebreakBehavior linebreak) in C:\Users\llama\OneDrive\Documents\Vintage Story\vsmods\billposting\billposting\src\util\BillpostDrawUtil.cs:line 557
at billposting.BillpostDrawUtil.AutobreakAndDrawMultilineTextAt(Context& ctx, CairoFont& font, String text, Double posX, Double posY, Double boxWidth, EnumTextOrientation orientation) in C:\Users\llama\OneDrive\Documents\Vintage Story\vsmods\billposting\billposting\src\util\BillpostDrawUtil.cs:line 114
at billposting.BillpostTextureUtil.GenOrUpdateTextTexture(String text, CairoFont font, Int32 width, Int32 height, LoadedTexture& loadedTexture, TextBackground background, EnumTextOrientation orientation, Boolean demulAlpha) in C:\Users\llama\OneDrive\Documents\Vintage Story\vsmods\billposting\billposting\src\util\BillpostTextureUtil.cs:line 117
at billposting.BillpostTextureUtil.GenTextTexture(String text, CairoFont font, Int32 width, Int32 height, TextBackground background, EnumTextOrientation orientation, Boolean demulAlpha) in C:\Users\llama\OneDrive\Documents\Vintage Story\vsmods\billposting\billposting\src\util\BillpostTextureUtil.cs:line 60
at billposting.EntityBillpostRenderer.SetNewText(String text, Int32 color) in C:\Users\llama\OneDrive\Documents\Vintage Story\vsmods\billposting\billposting\src\util\EntityBillpostRenderer.cs:line 165
at billposting.EntityBillpost.Initialize(EntityProperties properties, ICoreAPI api, Int64 InChunkIndex3d) in C:\Users\llama\OneDrive\Documents\Vintage Story\vsmods\billposting\billposting\src\entities\EntityBillpost.cs:line 63
at Vintagestory.Client.NoObf.ClientSystemEntities.entityFromPacket(Packet_Entity entitypacket, ClientMain game) in VintagestoryLib\Client\Systems\Entities.cs:line 437
at Vintagestory.Client.NoObf.ClientSystemEntities.createOrUpdateEntityFromPacket(Packet_Entity entitypacket, ClientMain game, Boolean addToLoadQueue) in VintagestoryLib\Client\Systems\Entities.cs:line 399
at Vintagestory.Client.NoObf.ClientSystemEntities.<>c__DisplayClass8_0.<HandleEntityLoadedPacket>b__0() in VintagestoryLib\Client\Systems\Entities.cs:line 214
at Vintagestory.Client.NoObf.ClientMain.ExecuteMainThreadTasks(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 817
at Vintagestory.Client.NoObf.ClientMain.MainGameLoop(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 783
at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 173
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 742
at Vintagestory.Client.ScreenManager.OnNewFrame_Patch1(ScreenManager this, Single dt)
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame_Patch1(ClientPlatformWindows this, FrameEventArgs e)
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 354
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 131
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 95
Event Log entries for Vintagestory.exe, the latest 2
Edit: It's not Optitime, crashes even without it.
cuneiform tablets when
timfim yeah it will, I noticed the issue but have issues with my Visual Studio, it should come around pretty soon
will this be updated for 1.22?
Moby_ For the planned wax seals, it seems like the mod Envelopes does a pretty good job of cusomizationable wax seals for letters. Maybe you could reach out to the author and use the same system? Or at a least a jumping point. I would love to be able to place wax seals.
Is it intented for people to be able to put billposts on areas that are claimed / they don't have access to? Just found someone put one up in our server spawn. Not a huge deal but wondering if there's anythign we can do to prevent this. Thanks!
Can you make Billposting pickup (The stuff in red text at the top of the mod page) configable in future updates? My friends and I use the mod as a notice board on my server and currently use 1.0.2, but are afraid that if the mod needs to update to a new VS version it won't be possible anymore
captanredbeard Yeah, well it's not really looking for the texture since it's in the shape file. The texture is redefined in the entity file anyways so that shoudn't be noticeable in any way. I'll fix it next update to avoid log cluttering but that's not really an issue
It's just the ModelCreator using absolute path by default when creating the file
TideTurner it's that mod is searching for the texture for the billpost in a cloud folder. it's an issue for the mod author to fix.
captanredbeard having files in a synced folder to a cloud drive often breaks games. Please take them out of that file.
Also this mod is pretty good for food recipies. :3
22.11.2025 10:13:55 [Client Warning] Texture asset 'c:textures//users/llama/onedrive/documents/vintage story/vsmods/billposting/billposting/assets/billposting/textures/billpost.png' not found (defined in Shape file billposting:billpost).
issue with the billpost having a texture not properly defined.
I'm having an issue after placing down parchment that has 2 or more pages.
I cannot pick it back up.
I am able to pick up other notes as long as they aren't longer than 1 page.
Ah- I found out why. The text box was going over my crosshair/middle of screen.
Using the alt key and my mouse cursor instead, I was able to pick it back up.
DejFidOFF Do you have logs, or any more details about how/what isn't working?
1.21.1 Not working for my server
You know, I am suprised that this isn't a feature in vanilla already. This give more immersive way of RP in the game alone. thanks for the mod.
Hi Moby_ excellent mod.
Are you going to update it soon?
1.21.0 been stable for some time, we even got 1.21.1 already.
Works with 1.21, but it's buggy.
There's some Z-fighting on pinned parchments.
Does this work with 1.21? And if not, is there an update soon?
Wonderful mod. Now I can finally commit to that Luther gameplay!
also super excited for 1.21, this mod looks amazing for multiplayer immersion
Can't wait for the 1.21 version!
I had no problem placing the parchemnt, but it flickers a lot
Yokie That's weird... Did you rebind keys, by any chance?
If you didn't, I'll try to fix it (even if you did rebind tbh), it's not that easy of a fix but definitely doable
I'm not sure exactly what's going on, but I can pin the blank parchments perfectly fine, but as soon as I write something in the parchment, I'm unable to pin it anymore. Even when holding shift+ctrl+rmb it just brings up the text box for the parchment.
cjc813 yeah, I'll update it to 1.21. This is a mod that I'm actively using on a server so it'll be updated pretty fast x)
I'll wait for the full release though, since a lot of the time there are issues in pre and rc that get fixed in the full release
Jalex I have no idea what might cause that. I didn't noticed since parchments aren't really made to have more than 2 pages of text, and not even one page gets displayed on billposts. I suspect that it's syncing that takes a while, I'll look into it when updating to 1.21
Hiya I'm having trouble picking up pieces of parchment that have multiple pages of text written on them, 3 or more generally.
When I do what I would usually to picke them back up (right click) it doesn nothing, sometimes it works randomly but it takes a minute upwards. Also the current slot of the Hotbar gets locked, meaning I cant switch do another slot when looking at it.
So reproduction:
1. Put Parchment with 3 + pages of Text on it on a Wall
2. try removing it by right clicking
3. nothing happens except hotbar slot gets locked
i'm seeing a flickering graphical issue in 1.21 rc.
i really like this mod. plans for 1.21?
blueblynd There isn't for now, I'm planning to add billpost tags to customize things (like font, text color, font size, possibly add seals to the billboards...), but before that I'll probably add a client-side configuration option to increase or decrease the font size, precisely for accessibility reasons
Moby_ sorry to bother you if this has been asked before, but is there currently a way to scale the text size like there is with signs and plaques? if there is, i can't find it, but i'm visually impaired so it could very well be user error. (kind of the same reason the small text is bothering me in the first place xD)
This is really clever, great mod 👌
Piovli I'd love to, but unfortunately, I'm using rendering code derived from signs. So unless signs start supporting VTML or I rewrite the text texture generation code, that's going to be hard to implement...
If possible, please provide a VTML support for the parchments that were placed on a wall - it'd be amazing to have some proper text customizability without having to pick up the paper.
Rythillian why is it a dealbreaker that they're entities?
The way I see it, it makes it possible to place them anywhere, and have multiple on the same block
There's a little jank left that I haven't fixed yet, like having to unpin billposts before placing a block where they are, or them not dropping when the block behind is broken, but I don't see why you'd call them being entities a complete dealbreaker, could you clarify that?
Fantastic Idea, but really wish these weren't entities. Complete deal breaker to have them be entities.
SovietSwede you should be able to pin any parchment that has something written on it. You have to write with an ink and quill before pinning it. Note that you need to hold shift+ctrl+right click, as using just ctrl+right click will make you read it instead of placing it down.
Did you change some keybinds? It shouldn't matter, but if you did, that might be a clue.
Hey!
Great idea for a mod! i just got it downloaded, but i can't seem to write anything on the notes.
They stick to the wall just fine, but i can't write on them, neither with charcoal or ink.
I've tried writing a document beforehand, in ink. But then i can't pin it.
What am i doing wrong?
Thanks
JonR yeah, I considered taking some things out of Joy of Painting (probably modifying them, at least because JoP stores images in a weird way due to an old bug that I had to work around, bug that no longer exists afaik, also because paintings are blocks and billposts are entities) to allow people to add images, but it might double or triple the code base
That might happen someday, but it's a lot of work
Oh yeah, totally understandable, that would be incredibly hard to do I figure. Maybe if you were fine with messing around with the rendering some more, you could instead have it as a separate mesh overlay that just stamps that on over the paper entity? Then you wouldn't have to touch the sign code, and it could be added through just a 'stamp' item that you rightclick it with instead, hah.
Lo_and_Behold Well, the mod is less than half a day old and only installed for 7 servers at the moment, so I don't really have scalability data
It's stable in multiplayer, and I haven't noticed any lag. It should be about as optimized as vanilla signs, since it's using a similar rendering method.
Pear120 I'll look into it, official billposts could definitely be neat!
JonR yeah, being able to put images on billboards has already been requested by multiple people x)
It's not really easy to add though... I might pull some stuff from Joy of Painting if I can make it work, but there's really no guarantee about that, as it would require rewriting a lot of stuff
Ooh, this is an incredible addition to the game. I love the simple potential it has for immersive roleplay and everything, and it looks great as well! Really nice work all around! Similarly to the wax seals idea and Envelopes, it might be kinda sick to have a 'Stamp' option as well later down the line? Perhaps just pulling from the Minimap symbols at first, but if it could allow for player customization like actually drawing (or mimicking such with voxel-crafting) that'd be a really cool way to mark your posts.
If you add wax seals, please look into Envelopes compatability! They have a custom wax seal system, and it'd be nice to have that same level of "seal authenticity" for bill posting too if they use the same system.
Hello! This mod looks quite amazing, truly. And it would fit on the server I play on like a glove!
However, I have to ask. How are its impacts on the performance of big servers? How about known bugs and or incompatibilities?
Thanks in advance!
You did something I always wanted to have on my Notice Board mod, good job ^^