Mods / Notice Board

Category: #Other #Utility
Author: propaneko
Side: Both
Created: Sep 14th at 8:39 PM
Last modified: Nov 23rd at 8:30 PM
Downloads: 5382
Follow Unfollow 93

Latest file for v1.19.8:
NoticeBoard_1.1.0.zip 1-click install


IMPORTANT! I moved the database directory to ModData/noticeboard, and moved configuration to root directory of ModConfig

Description


Notice board where you can post and read player notices. Mod is created for and used on our RP server. Edenval RP.

Crafting recipe is in Survival Handbook, item is called "Notice Board". You can also spawn it using creative gamemode.
You can of course place multiple Notice Boards, every one of them saves and shows their respective messages.

Notice Board recipe

When you place it, just press rightclick and GUI will show. Hopefully it's intuitive enough :P

It is not hard dependency, but I suggest playing it with https://mods.vintagestory.at/thebasics

With this mod when you post new notice there will be broadcast on the Proximity channel for now its 100 blocks.

Will add some config option later if needed.

Configuration


{
  "SendProximityMessage": true, // set to true if you want to send message on Proximity channel
  "ProximityMessageDistance": 100, // distance how far the message will be broadcasted (blocks)
  "DivisionForPapersOnBoard": 1.0 // if you set this on 2 for example, it will show one paper on board every two notice, 1.5 is also valid
}

Ideas


  • need of use for the "paper-parchment" when trying to post message (to make it more immersive?)

My other mods


Unconscious - New system which adds an unconscious behavior. Preferable added to multiplayer servers.

Notice Board - Notice board where you can post and read player notices. Focused on RP aspect.

Contribution & Thanks


"Automatic_Yoba_Machine" - Thank you for providing this amazing new model!

"BASIC" - Thank you for creating your amazing Proxmity chat mod!

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v1.1.0 948 Nov 23rd at 8:30 PM Show NoticeBoard_1.1.0.zip Install now
v1.0.0 790 Nov 9th at 12:09 PM Show NoticeBoard_1.0.0.zip Install now
v0.6.0 2599 Sep 20th at 11:28 AM Show NoticeBoard_0.6.0.zip Install now
v0.5.0 295 Sep 17th at 9:03 AM Show NoticeBoard_0.5.0.zip Install now
v0.4.1 110 Sep 16th at 8:33 PM Show NoticeBoard_0.4.1.zip Install now
v0.4.0 65 Sep 16th at 6:25 PM Show NoticeBoard_0.4.0.zip Install now
v0.3.0 86 Sep 16th at 2:11 PM Show NoticeBoard_0.3.0.zip Install now
v0.2.2 61 Sep 16th at 12:48 PM Show NoticeBoard_0.2.2.zip Install now
v0.2.1 111 Sep 15th at 8:45 PM Show NoticeBoard_0.2.1.zip Install now
v0.2.0 56 Sep 15th at 8:14 PM Show NoticeBoard_0.2.0.zip Install now
v0.1.0 112 Sep 15th at 1:10 PM Show NoticeBoard_0.1.0.zip Install now
v0.0.2 85 Sep 14th at 9:56 PM Show NoticeBoard_0.0.2.zip Install now
v0.0.1 64 Sep 14th at 8:41 PM Show NoticeBoard_0.0.1.zip Install now

39 Comments (oldest first | newest first)

💬 propanekoAuthor, Dec 8th at 1:37 PM

I might gonna try to figure out something with the "physical" placement of some parchments, but it might take some time as it's the part of modding Im still learning. And actualy not having proximity chat was the culrpit of crashes, but it's fixed.

💬 CrimsonCount, Dec 8th at 3:29 AM

Sorry for the late reply but we were using the proximit chat mod at the time. Strangely the proximity chat mod didn't make notice boards crash when we were playing on a lan server via hamachi

💬 RIVVION, Dec 7th at 12:34 AM

Can you please also make a mod that lets us put parchments on walls like signs for people to write notices and bounties
It would act the same as a sign on the wall, letting you write on it with visible text.
that would be an incredibly useful mod!

💬 Acouthyt, Dec 5th at 8:30 AM

So far so good for rc1, I was wondering if you intended to add the ability to make the notes physicalized so that we could use it as a job board or a bounty board?

💬 propanekoAuthor, Dec 1st at 3:24 PM

Not sure, but it should work just fine on 1.19.7 It's not that much of a difference between versions. StikShift4Life

💬 StikShift4Life, Dec 1st at 2:38 PM

Does it work on 1.19.7? Updating to 1.19.8 caused my friends an I quite a few issues on my server, so we've elected to stay on 1.19.7 for the time being.

💬 propanekoAuthor, Nov 23rd at 8:31 PM

ShubiMaja sorry it took this long, moved db file to the ModData directory, adjusted the config file directory and fixed some bugs that lead to crashes.

💬 propanekoAuthor, Nov 15th at 2:40 PM

ShubiMaja

Sure, that's actually a good idea! Will change the db location to the ModData directory. Gonna try to do it today.

💬 ShubiMaja, Nov 15th at 1:09 PM

propaneko  

Thanks for the great mod! We really enjoy it! However, can you please properly store the data for your mod outside of the ModConfig folder and in ModData like other mods? Atm its difficult to release configurations because we have to watch out for the data stored in the configuration folder. Or at least give us an option in the config to change where the data is stored.

Related issue: https://github.com/ogaseb/NoticeBoard/issues/1

💬 RosstheGreat, Nov 10th at 2:45 AM

Yes, many. I have 140+ mods but I Don't think we have the Proxy Chat mod. Do we need it?

💬 propanekoAuthor, Nov 9th at 11:19 PM

RosstheGreat are there any mods that you using or just Notice Board? I had this crashes only when I had clean VS game and didnt had proximity chat mod.

💬 RosstheGreat, Nov 9th at 10:31 PM

Hey, I also want to second CrimsonCount's error, we had this on an older version of the Notice Board. I will double check and see if we still get the crash after your update though.
Same issue, object not set to reference error

 

💬 propanekoAuthor, Nov 9th at 12:10 PM

I think I fixed those crashes.

💬 propanekoAuthor, Nov 9th at 9:52 AM

CrimsonCount By any chance, do you play with proximity mod or without?

💬 CrimsonCount, Nov 9th at 2:44 AM

I'm in the same server as Danny2703 and posting a message to the notice board kicks the poster from the server, but does leave the message on the board. We are playing on a dedicated windows server. I am unable to copy paste the error message printed in the console, but I've typed it out.
The error message in the server console is:
[Server Error] Exception: Object refrence not set to an instance of an object. at NoticeBoard.Events.ServerMessageHandler.OnPlayerSendMessage(IServerPlayer player, PlayerSendMessage packet) in C:\Users\Enelorin\Projects\NoticeBoard\Noticeboard\src\Events\ServerMessageHandler.cs: line 51 at VintageStory.Server.NetworkAPI.HandleCustomPacket_Patch1(NetworkAPI this, Packet_Client packet, Connected Client client) at VintageStory.Server.ServerMain.ProcessNetMessage(NetINcomingMessage msg, NetServer minSocket) in VintagestoryLib\Server\ServerMainNetworking.cs: line 138
A screenshot of an object reference exception

💬 Danny2703, Nov 8th at 7:32 PM

In a multiplayer server. Kicks me whenever anyone pins something on it saying it threw the server an exception.

💬 propanekoAuthor, Nov 8th at 11:32 AM

EbKeth hard to tell what is wrong, it doesnt look like an error that is from my mod.

💬 EbKeth, Oct 5th at 7:59 PM

I love this mod, thanks for making it!

I'm running across a crash when posting a new notice on the notice board:

Running on 64 bit Linux (Arch Linux) [Kernel 6.10.10.1] with 64229 MB RAM
Game Version: v1.19.8 (Stable)
10/5/2024 12:56:06PM: Critical error occurred
Loaded Mods:
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.Collections.Generic.List`1.Enumerator.MoveNext()
at Vintagestory.Client.NoObf.GuiManager.Dispose(ClientMain game) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 568
at Vintagestory.Client.NoObf.ClientMain.Dispose() in VintagestoryLib\Client\ClientMain.cs:line 2688
at Vintagestory.Client.NoObf.ClientMain.DestroyGameSession(Boolean gotDisconnected) in VintagestoryLib\Client\ClientMain.cs:line 2635
at Vintagestory.Client.NoObf.GeneralPacketHandler.HandleDisconnectPlayer(Packet_Server packet) in VintagestoryLib\Client\Systems\GeneralPacketHandler.cs:line 185
at Vintagestory.Client.NoObf.ClientMain.ExecuteMainThreadTasks(Single deltaTime) in VintagestoryLib\Client\ClientMain.cs:line 776
at Vintagestory.Client.GuiScreenRunningGame.RenderToPrimary(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 200
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 676
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 651
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 88
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 324
at Vintagestory.Client.ClientProgram.<>c__DisplayClass9_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 128
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93

💬 Quiche, Sep 20th at 8:25 PM

Thank you so much!

💬 propanekoAuthor, Sep 20th at 10:14 AM

Ah sorry my mistake I didnt create version with config, will do it soon Quiche

💬 propanekoAuthor, Sep 20th at 10:06 AM

Quiche there is, on 0.5.0, you should have config `json` file in the noticeboard folder in ModConfig.
Also I was trying to add container slot to the gui, but I think it's too much for me for now. Have a lot of issues if it, fixing one brings some others. So I guess will leave it as it is for now. Maybe later I will give it another shot.

💬 Quiche, Sep 19th at 9:01 PM

propaneko Thank you very much for looking into it!

Would it be possible to have a config for the distance the noticeboards proximity is? We have a quest inn that we'd love to be able to notify the entire town when it puts a new notice up, please.

💬 propanekoAuthor, Sep 18th at 5:38 PM

Tbh, can't reproduce it Quiche

💬 Quiche, Sep 18th at 1:02 PM

Accidentally double clicked a noticeboard on top of the other got this error and was kicked:

18.9.2024 13:01:32 [Server Error] Exception: Value must be set.
at Microsoft.Data.Sqlite.SqliteParameter.Bind(sqlite3_stmt stmt)
at Microsoft.Data.Sqlite.SqliteParameterCollection.Bind(sqlite3_stmt stmt)
at Microsoft.Data.Sqlite.SqliteCommand.GetStatements(Stopwatch timer)+MoveNext()
at Microsoft.Data.Sqlite.SqliteDataReader.NextResult()
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteReader(CommandBehavior behavior)
at Microsoft.Data.Sqlite.SqliteCommand.ExecuteNonQuery()
at SQLiteHandler.CreateNoticeBoard(PlayerCreateNoticeBoard packet) in C:\Users\Enelorin\Projects\NoticeBoard\NoticeBoard\src\Database\SQLiteHandler.cs:line 44
at NoticeBoard.src.Events.ServerMessageHandler.OnPlayerCreateNoticeBoard(IServerPlayer player, PlayerCreateNoticeBoard packet) in C:\Users\Enelorin\Projects\NoticeBoard\NoticeBoard\src\Events\ServerMessageHandler.cs:line 33
at Vintagestory.Server.NetworkAPI.HandleCustomPacket_Patch1(NetworkAPI this, Packet_Client packet, ConnectedClient client)
at Vintagestory.Server.ServerMain.ProcessNetMessage(NetIncomingMessage msg, NetServer mainSocket) in VintagestoryLib\Server\ServerMainNetworking.cs:line 138

💬 Origin_Alpha_43, Sep 17th at 6:27 PM

thank you for quick fix propaneko

I was actually just looking for the new version, as my players are all offline

💬 RuneScholar, Sep 17th at 3:35 PM

Editing feature seems to work fine.

💬 propanekoAuthor, Sep 17th at 8:54 AM

WickedSchnitzel Its kinda weird you're getting this error while quitting the game, as this part of code is only fired when you send message.
 I have hard time to reproduce this issue. Remember to use newest game version. Origin_Alpha_43

💬 WickedSchnitzel, Sep 17th at 8:25 AM

When i quit the game:

17.9.2024 10:23:41 [Error] Exception: Object reference not set to an instance of an object.
at NoticeBoard.src.Events.ServerMessageHandler.OnPlayerSendMessage(IServerPlayer player, PlayerSendMessage packet) in C:\Users\Enelorin\Projects\NoticeBoard\NoticeBoard\src\Events\ServerMessageHandler.cs:line 45
at Vintagestory.Server.NetworkChannel.<>c__DisplayClass6_0`1.<SetMessageHandler>b__0(Packet_CustomPacket p, IServerPlayer player) in VintagestoryLib\Server\API\NetworkChannel.cs:line 54
at Vintagestory.Server.NetworkChannel.OnPacket(Packet_CustomPacket p, IServerPlayer player) in VintagestoryLib\Server\API\NetworkChannel.cs:line 24
at Vintagestory.Server.NetworkAPI.HandleCustomPacket(Packet_Client packet, ConnectedClient client) in VintagestoryLib\Server\API\NetworkAPI.cs:line 44
at Vintagestory.Server.ServerMain.ProcessNetMessage(NetIncomingMessage msg, NetServer mainSocket) in VintagestoryLib\Server\ServerMainNetworking.cs:line 138

💬 Origin_Alpha_43, Sep 17th at 6:43 AM

you could say i just tested your mod on my server
when I start to write, the clients crash. the server stays online tho

crash log. just incase it might help?
System.NullReferenceException: Object reference not set to an instance of an object.
at NoticeBoardTextInputWindowGui.OnTextChanged(String text) in C:\Users\Enelorin\Projects\NoticeBoard\NoticeBoard\src\Gui\NoticeBoardTextInputWindowGui.cs:line 92
at Vintagestory.API.Client.GuiElementEditableTextBase.TextChanged() in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementEditableTextBase.cs:line 328
at Vintagestory.API.Client.GuiElementTextArea.TextChanged() in VintagestoryApi\Client\UI\Elements\Impl\Interactive\GuiElementTextArea.cs:line 36
at Vintagestory.API.Client.GuiElementEditableTextBase.LoadValue(List`1 newLines) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementEditableTextBase.cs:line 292
at Vintagestory.API.Client.GuiElementEditableTextBase.OnKeyPress(ICoreClientAPI api, KeyEvent args) in VintagestoryApi\Client\UI\Elements\Impl\Interactive\Text\GuiElementEditableTextBase.cs:line 594
at Vintagestory.API.Client.GuiComposer.OnKeyPress(KeyEvent args) in VintagestoryApi\Client\UI\GuiComposer.cs:line 634
at Vintagestory.API.Client.GuiDialog.OnKeyPress(KeyEvent args) in VintagestoryApi\Client\UI\Dialog\GuiDialog.cs:line 458
at Vintagestory.Client.NoObf.GuiManager.OnKeyPress(KeyEvent args) in VintagestoryLib\Client\Systems\Gui\GuiManager.cs:line 382
at Vintagestory.Client.NoObf.ClientMain.OnKeyPress(KeyEvent eventArgs) in VintagestoryLib\Client\ClientMain.cs:line 1821
at Vintagestory.Client.GuiScreenRunningGame.OnKeyPress(KeyEvent args) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 320
at Vintagestory.Client.ScreenManager.OnKeyPress(KeyEvent e) in VintagestoryLib\Client\ScreenManager.cs:line 871
at Vintagestory.Client.NoObf.ClientPlatformWindows.game_KeyPress(TextInputEventArgs e) in VintagestoryLib\Client\ClientPlatform\Input.cs:line 220
at OpenTK.Windowing.Desktop.NativeWindow.OnTextInput(TextInputEventArgs e)
at OpenTK.Windowing.Desktop.NativeWindow.CharCallback(Window* window, UInt32 codepoint)

💬 RuneScholar, Sep 17th at 5:37 AM

I haven’t tested this in a few updates, but I last tested 0.2.2. and if this hasn’t already changed in the latest 3, a way to edit your notices would be good.

💬 propanekoAuthor, Sep 16th at 8:26 PM

Thanks DeanBro ,will add it soon.
For anyone if you tested this mod and have any ideas how it could be further improved just let me know.

💬 DeanBro, Sep 16th at 7:06 PM

Hi propaneko

I created a translation for your mod

💬 RuneScholar, Sep 16th at 3:36 AM

Nice update. I’ll be trying it out.

💬 propanekoAuthor, Sep 15th at 10:29 PM

I've put more info, it's a bit chaotic for now.

💬 DejFidOFF, Sep 15th at 8:49 PM

Ok, some more info? How that works / craft etc.. ?

💬 propanekoAuthor, Sep 15th at 8:16 PM

Quiche Thank you <3
Trying my best, it's my first time modding Vintage Story and also learning C# in the process 😅

💬 Quiche, Sep 15th at 7:24 PM

Excited to see the development of this! Seems like a must have for RP servers <3

💬 propanekoAuthor, Sep 15th at 7:48 AM

RuneScholar  Thank you! And yeah, this version is in very early stages of development, for now just for testing on our RP server, will add more stuff and make it  better with time ^^

💬 RuneScholar, Sep 15th at 12:28 AM

This is such a great idea. I’d use it if I were playing multiplayer.

(edit comment delete)