You are viewing a potentially older version of this package. View all versions.
BatBoys-Signwright-1.1.14 icon

Signwright

Edit a wood sign on the sign itself. Camp inks, stamps, and runes save into the vanilla field, including on a dedicated server. A sign of 50 characters or fewer still reads without the mod.

Date uploaded 3 days ago
Version 1.1.14
Download link BatBoys-Signwright-1.1.14.zip
Downloads 13
Dependency string BatBoys-Signwright-1.1.14

This mod requires the following mods to function

denikson-BepInExPack_Valheim-5.4.2351 icon
denikson-BepInExPack_Valheim

BepInEx pack for Valheim. Preconfigured with the correct entry point for mods and preferred defaults for the community.

Preferred version: 5.4.2351

README

Signwright

Edit a placed wood sign on the sign itself. Save writes vanilla TextMesh Pro markup into the sign's text field. Everyone who can see the sign gets that text, including after a dedicated server restart.

Where the 50-character cap actually is

Checked against the Valheim 1.0 sign path (Sign, TextInput, and the text ZDO field):

Place What it does
Sign.m_characterLimit Prefab value, default 50. Passed into the text box when you use the sign.
TextInput.RequestText Copies that number onto the input field's character limit.
Sign.SetText Writes the string to the vanilla ZDO key text. Public builds do not show a second 50-character chop here.
Dedicated server world save Stores that same text field. A few hundred characters fit in a ZDO string and come back after a restart.

Signwright raises m_characterLimit, raises the text box if something else opens it, and clamps the text value — on the client and on the server — to CharacterLimit (default 400, config range 50–800). If a write comes back shorter than what was sent, the plugin puts the full string back on the ZDO before the world saves.

Install it on the dedicated server so that clamp is the one that owns the world. Install it on every client that writes signs, and on every client that must be sure it can read a sign longer than 50. A sign that still fits in 50 characters is ordinary markup in the vanilla field, so a player without the mod can read it.

What the editor writes

The same tags the wood sign already draws. No new format.

  • A new line is stored as \n (backslash, n). That is two characters.
  • Colors are short hex only. Copper is <#c74>, never <color=red> and never <color=#cc7744>.
  • The plugin never writes </color>. Black after another ink is <#000>. Text that starts black has no color tag.
  • Closing tags are left off when that style runs to the end of the sign.
  • Bold is not written. It does nothing on the Norse font.
  • Underline uses the ink that is active when it opens, so the color is written first.
  • Emoji newer than 2022 can draw as an empty box. Flags, skin tones, and joined emoji are not in the picker. Runes carve on the wood; the input line may show squares until you save.
  • No size tag means the game fits the words, up to about size 8. Size 14 fills the plank. Larger hangs off. Negative size flips the letters. The board does not grow.

Camp kit

The editor on the sign also has the inks and stamps from the sign reference, a rune scribe, and a name spinner. All of them write the same vanilla text field. The dedicated server does not need a new channel. It already stores that string and brings it back after a restart.

  • Inks are copper, iron, ash, mead, pine, sea, night, plum, bone, and the rest. Each one shortens to a 3-digit hex tag.
  • Stamps cover a chest wall, a portal, a tavern, a warning, and a mark that hangs off the board. Every stamp fits in 50 characters.
  • Carve turns letters into Elder Futhark. th becomes one rune. Runes already on the piece stay.
  • Portal, tavern, shop, and warning spin a short name onto the piece and leave its ink alone.
  • Add my name appends your character name in small bone italic. Save writes it with Sign.SetText, so other players and a restarted server see that line.

Build

The plugin links Valheim's own assemblies. From a machine that has the game and BepInEx:

export LIBS="/path/to/Valheim/valheim_Data/Managed"
# Use publicized assembly_valheim if the stock one hides private fields. This project reaches those through Harmony AccessTools, so a publicized build is only needed if your compiler requires it.
cd mod/Signwright
dotnet build -c Release -p:Libs="$LIBS"

Copy bin/Signwright.dll and symbols.txt to BepInEx/plugins/Signwright/ on the dedicated server and on the clients above. Dependency: denikson-BepInExPack_Valheim.

Config appears at BepInEx/config/com.signwright.valheim.cfg.

ReplaceEditor (default true) opens this editor instead of the vanilla box. Saved signs for this computer live in BepInEx/config/Signwright.mysigns.txt.

Checks

  1. Use a placed wood sign, edit it, save. The text is written with Sign.SetText. Nothing is copied.
  2. A second player looking at that sign reads the same text field.
  3. Restart the dedicated server. The world file still has the longer string, up to CharacterLimit.

CHANGELOG

1.1.18

  • The package page is a player guide, and this changelog is the version history.
  • B, or Circle on a PlayStation pad, closes the editor without saving.
  • A symbol is inserted at the cursor, or replaces selected text.
  • Game hotkeys stay off while the editor is open.

1.1.0

  • Named inks, any hex color, and a fade slider.
  • Ready-made stamps for stores, taverns, portals, warnings, and docks.
  • Carve turns letters into runes. th is one rune.
  • Add your character's name on a new line.
  • Search symbols by name, including similar words.

1.0.0

  • The editor opens on a placed wood sign and saves into the sign's normal text.
  • The length limit defaults to 400 and is kept by a dedicated server.
  • A sign of 50 characters or fewer can still be read without this mod.