Mods / Notice Board

Category: #Other #Utility
Author: propaneko
Side: Both
Created: Sep 14th at 8:39 PM
Last modified: Sep 20th at 11:28 AM
Downloads: 1586
Follow Unfollow 53

Latest file for v1.19.8:
NoticeBoard_0.6.0.zip 1-click install


IMPORTANT! If you used the older version of my mod you need to remove "Y:\*\ModConfig\noticeboard" directory or crashes might happen!

Basics


Notice board where you can post and read player notices. It's main purpose is to use it on the RP servers.

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?)

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*
v0.6.0 846 Sep 20th at 11:28 AM Show NoticeBoard_0.6.0.zip Install now
v0.5.0 235 Sep 17th at 9:03 AM Show NoticeBoard_0.5.0.zip Install now
v0.4.1 78 Sep 16th at 8:33 PM Show NoticeBoard_0.4.1.zip Install now
v0.4.0 36 Sep 16th at 6:25 PM Show NoticeBoard_0.4.0.zip Install now
v0.3.0 59 Sep 16th at 2:11 PM Show NoticeBoard_0.3.0.zip Install now
v0.2.2 32 Sep 16th at 12:48 PM Show NoticeBoard_0.2.2.zip Install now
v0.2.1 89 Sep 15th at 8:45 PM Show NoticeBoard_0.2.1.zip Install now
v0.2.0 30 Sep 15th at 8:14 PM Show NoticeBoard_0.2.0.zip Install now
v0.1.0 85 Sep 15th at 1:10 PM Show NoticeBoard_0.1.0.zip Install now
v0.0.2 57 Sep 14th at 9:56 PM Show NoticeBoard_0.0.2.zip Install now
v0.0.1 39 Sep 14th at 8:41 PM Show NoticeBoard_0.0.1.zip Install now

22 Comments (oldest first | newest first)

💬 EbKeth, 4 days ago

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)