Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
ValheimChalkboard
Draw on timber-framed chalkboards in three sizes, with native Valheim UI, chalk colors and automatic saving.
| Last updated | 2 weeks ago |
| Total downloads | 114 |
| Total rating | 1 |
| Categories | Building Mods AI Generated Server-side Client-side |
| Dependency string | TheMann-ValheimChalkboard-0.6.1 |
| Dependants | 0 other packages depend on this package |
This mod requires the following mods to function
ValheimModding-Jotunn
Jötunn (/ˈjɔːtʊn/, 'giant'), the Valheim Library was created with the goal of making the lives of mod developers easier. It enables you to create mods for Valheim using an abstracted API so you can focus on the actual content creation.
Preferred version: 2.30.2denikson-BepInExPack_Valheim
BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.
Preferred version: 5.4.2351README
Valheim Chalkboard
Timber-framed drawing boards in three sizes, with chalk colors, undo, wiping and automatic saving. The editor fills most of the screen and uses Valheim's UI scale setting.
0.6.1 - live pixel drawing
The host/server runs Chalkboard. Modded clients draw on chalkboards; vanilla clients see ordinary wooden signs. The repository owner checked vanilla joining for the 0.5.0 sign fallback.
Every new board uses the vanilla sign network prefab from creation. Size and drawings live in separate ZDO fields. The mod decorates marked signs locally; normal signs remain unchanged. Vanilla text edits retain drawing data, and dismantling removes the shared sign and its drawing.
Find Small, Medium and Large under Hammer > Furniture. Writing areas are 2 x 1.15 m, 3 x 1.725 m and 4 x 2.3 m. All sizes use the stock sign's recipe and physical collider so vanilla placement/refunds remain consistent. Larger artwork extends beyond that collider; interact near the center. All use a 128 x 72, eight-color canvas.
Install and migrate
Requires BepInExPack_Valheim and Jotunn. Install on the host/server and on clients that want to draw. Other installed mods may independently require modded clients. Modded peers must use compatible 0.6.x versions; older modded clients are incompatible.
Back up worlds before upgrading. The host scans loaded and unloaded records for the three old chalkboard prefab identifiers, writes a durable record backup, converts them to marked vanilla signs and commits the world before admitting peers. A failed backup/save keeps entry closed. Drawings, size, placement, health and creator survive conversion. Old boards now use vanilla sign refunds. Conversion is not a supported downgrade to 0.4.x; restore the pre-upgrade world backup to downgrade.
Fully restart Valheim after updating. Remove duplicate manually installed copies. Plugin GUID and assembly name stay marcus.valheim.whiteboard and ValheimWhiteboard.dll.
Build
Use your own installed game/BepInEx/Jotunn assemblies:
dotnet build src -c Release -p:ValheimDir="PATH_TO_VALHEIM" -p:BepInExDir="PROFILE/BepInEx" -p:JotunnPath="PROFILE/BepInEx/plugins/ValheimModding-Jotunn/Jotunn.dll"
For dedicated-server references, set -p:GameManaged="SERVER/valheim_server_Data/Managed". The repository does not redistribute game assemblies.
Validation
dotnet run --project tests/MultiplayerTests -c Release
python scripts/test_compatibility.py
Managed tests use .NET 8 and compile production schema, migration, authority, RPC, access and drawing code with game doubles. They cover streaming and last-arrival concurrent requests, unauthorized/spoofed senders, ranges/wards, vanilla ownership, late owner packets, migration durability and session resets. They do not prove Unity rendering or a Steam connection.
A separate Windows Actions job downloads the real dedicated server anonymously, builds against it and runs Unity checks without a desktop. It verifies Harmony binding, prefab identities, actual serialization and socket routing, plus saving legacy fixtures and restarting twice to test migration and persistence. See headless setup.
The job also loads a migrated world copy without Chalkboard/Jotunn, using a separate read-only observer to verify vanilla sign resolution and retained metadata. After all checks pass it uploads a chalkboard-candidate package containing only the mod and package metadata. Game assemblies and the test observer are excluded. To package a local tested DLL, run scripts/package.ps1 -Dll src/bin/Release/netstandard2.1/ValheimWhiteboard.dll -OutputFile candidate.zip.
See compatibility evidence and live acceptance cases. A Steam-authenticated completely unmodified client join and visual/input acceptance remain separate gates. Passing CI must not be described as proof those gates passed.
Drawing behavior
Each changed pixel is sent as an individual queued edit while drawing. The server applies edits in receive order: different pixels combine, and the last edit received for the same pixel wins. Erasing sends color zero. Undo sends changed pixels; Wipe board queues erasure for every pixel. Compact updates go only to negotiated modded peers. Done/Escape waits for acknowledgement. Failed saves keep the draft and show Retry. Death, losing access, destruction or exiting can interrupt an unacknowledged stroke.
The host owns accepted drawing state even when a vanilla player owns the sign. It restores drawing fields from its canonical copy if an old owner packet arrives, preserving vanilla text/health changes. Custom replies go only to negotiated modded peers. Ward checks fail closed if the required game APIs are unavailable.
Mouse only. MIT licensed; see LICENSE.