Valheim
Install with App

Details

Latest version
1.1.0
Last Updated
First Uploaded
Downloads
528
Likes
1
Size
199KB
Dependants
ADDatHost Valheim hosting
30% off

Sign Styler

A rebuilt sign-writing interface for Valheim: a formatting toolbar, a colour picker and a live preview, in place of a text box that fights you.

Client-side only. Sign text is stored in the sign's own text field, exactly as vanilla stores it. Other players see your styled signs without installing anything, the server needs nothing, and uninstalling leaves every sign exactly as it was.


What it fixes

Vanilla With the mod
The field renders tags as you type: <color=red> vanishes the moment you type the > Rendering is off inside the field — tags stay visible and editable
50 characters, tags included 400 by default, configurable up to 2000
No idea what it will look like until you commit Live preview under the field, plus a character counter
Tags typed by hand, from memory A toolbar for every tag, with sliders for the numeric ones
Icons only reachable by pasting from a web page A grid of every glyph the sign's font can actually draw

What's in the toolbar

Character styles — B, I, U, S and no parse. They light up for whatever is in force under the caret, read back from the text rather than remembered from your clicks, so they stay honest when you edit the tags by hand. Shortcuts: Ctrl+B, Ctrl+I, Ctrl+U.

Colour — one entry for text colour, one for highlight, each showing the colour that target currently holds and opening the picker already pointed at it. The picker is a side panel with a saturation/value square, a hue strip, a hex field with copy and paste, an alpha slider, a palette you build up (+ save, right-click a swatch to remove it) and the session history. Clicking a swatch loads the colour — it doesn't apply it, so looking is not the same as writing.

With nothing selected, applying a colour colours the word under the caret rather than refusing. There's also Insert empty tag at caret, for colouring text you haven't typed yet.

Colour vision — a button cycling the picker through normal vision, protanopia, deuteranopia, tritanopia and achromatopsia. The square, the hue strip and every palette chip are redrawn as a player with that deficiency sees them, so two colours that collapse into one muddy tone show up before the sign is written rather than after. Only the display changes: the hex field and the tag keep the real colour. A sign is read by everyone who walks past it, and roughly one man in twelve sees red and green differently from its author.

Icons — a grid of the characters your keyboard has no key for: crossed swords over an armoury, a hammer over a workbench. Read from the sign's own font at runtime, so every glyph offered is one the sign can genuinely draw — nothing comes out as an empty box. Search by Unicode name (sword finds ⚔, skull finds ☠) or by codepoint, and cycle the categories to browse. An icon costs one character, same as a letter.

And yes, emoji. Valheim's signs fall back through fourteen fonts, one of which is an emoji face, so 😀 💀 🔨 go on a plank like any other character — no font to install, no sprite tag, one character each. They're on the grid because the font can draw them, same rule as everything else.

Numeric tags — size, voffset, line-height, cspace, rotate and alpha, each with a slider and a typed value. Dragging rewrites the tag already in your text instead of stacking a new one on top, and the preview follows in real time — which is what makes offsets usable, since those values are found by eye.


Installation

Through a mod manager (Thunderstore Mod Manager, r2modman, Gale): install, and BepInEx comes along as a dependency. Manually: BepInEx for Valheim, then drop SignStyler.dll into Valheim/BepInEx/plugins/SignStyler/.

Launch once and the config file appears at BepInEx/config/fr.anthony.signstyler.cfg. It holds a single setting — CharacterLimit, 400 by default, bounded 50 to 2000. It's re-read every time a sign is opened, so Configuration Manager changes take effect without a restart.


Tag cheat sheet

<b> <i> <u> <s>          bold / italic / underline / strikethrough
                         <b> shows nothing on a sign — the Norse font has no bold face
<color=#FF0>             short hex form, cheapest in characters
<size=150%> <size=24>    percentage of the current size, or a fixed point size — the
                         fixed form is what switches the sign's auto-scaling off
<voffset=1em>            vertical shift, what lets text float off the sign
<line-height=80%>        compensates the shift voffset introduces
<cspace=0.2em>           character spacing
<rotate=15>              rotation in degrees, counter-clockwise when positive
<alpha=#80>              opacity, no closing tag
<align=left>             alignment
\n                       line break (2 characters, cheaper than <br>)

Quotes around values can be omitted, and so can closing tags — technically invalid, tolerated by the engine, and it saves characters on a tight budget.

For emphasis that actually shows on a plank: size, colour and character spacing. A <size=140%> in a lighter tone reads far better than a bold that never renders.

A sign is drawn twice

The plank and the hover label are two different renderers reading the same string, so a tag can apply to one and not the other. This is vanilla behaviour, not something the mod can reconcile — the two previews under the field show both results side by side.

plank hover label
<color> applied ignored, always white
<mark> applied, behind the glyphs ignored
<i> <u> <s> applied ignored
<b> ignored (no bold face in the font) ignored
<size>, layout tags applied applied — and they push the piece name and use prompt out of shape

On offsets

Sign text is auto-centred and auto-scaled, so a voffset on its own barely moves anything — the engine just reframes around it. The combination that works is a fixed size, which disables scaling, plus an offset or line breaks. voffset also stretches line height, so compensate with line-height for a clean move. rotate disturbs character spacing; cspace pulls it back.


Other sign mods

Don't run alongside: RunicSigns, BetterSigns, ComfySigns. They replace or patch the same sign editor — the last one loaded wins.

Fine together: AdvancedSigns, Glowing Signs, and anything that renders signs rather than editing them. They act on the sign, this mod acts on the text prompt, and they read the same vanilla tags this toolbar writes.

Unrelated: mods that display dynamic data on signs (chest contents, world stats). No shared surface.


Reporting a problem

GitLab Issues — pick the Bug template and keep its headings. It asks for the BepInEx log (Valheim/BepInEx/LogOutput.log, or the same path inside your profile folder under r2modman or Gale); without it a report is mostly guesswork.

Valheim 1.0 shipped on 9 September 2026, and a major release usually breaks Harmony patches. If things look wrong, first check that BepInEx and your other mods have caught up with it.

Credits

The code was written by Claude (Anthropic) from my specification, through several rounds of review. Scope, design decisions, review, testing and maintenance are mine. Flagged AI Generated per Thunderstore's rule.

MIT licensed.

Thunderstore development is made possible with ads. Please consider making an exception to your adblock.