Valheim Sign Tag Guide
Last updated
A Valheim sign holds 50 characters, and every character of a formatting tag counts towards that limit. Yellow written as <#ff0> costs 6 characters; written as <color=yellow> it costs 14, for exactly the same result.
Signs accept the same rich-text tags as Unity's TextMeshPro: color, size, spacing and more. This guide lists the ones we have tested, what each costs and the quirks worth knowing. Prefer to experiment? Open the Sign Editor.
The 50-character budget
Opening tags, closing tags and line breaks all count, and only the visible text is free. One long tag can use up nearly a third of the sign before you have typed a word, so the main skill of sign design is choosing the shortest tag that does the job.
Cost
<#f00> is 6 characters, <#ff0000> is 9 and <color=red> is 11, for the same red.<color=red> Troll path21/50<#f00> Troll path16/50Tag reference
| Tag | What it does | Cost |
|---|---|---|
<i> | Italic (slanted) text. | 3 |
<u> | Underline. The line keeps the color that was active when the tag opened, so put the color tag first. | 3 |
<s> | Strikethrough. Colored the same way as underline. | 3 |
<#f00> | Color from a 3-digit hex code. | 6 |
<#ff0000> | Color from a 6-digit hex code. | 9 |
<#0f08> | A 4th digit sets opacity. This one is green at about half strength. The 8-digit form takes two opacity digits. | 7 |
<color=red> | Color by name. A hex code gives the same result in fewer characters. | 11 |
<size=9> | Text size. Sizes are absolute and linear: 9 is nine fifths the height of 5, and there is no upper limit. | 8 |
<size=-16> | Upside-down, heavier text. While the text is short, a negative value is relative to the auto-fit size of 8 (-16 is a flipped 8, -8 vanishes). Once the text is long enough to shrink, it is read as absolute. | 10 |
<voffset=-4> | Shifts text down; positive values shift it up. The number uses the same units as <size>. Close it with </voffset>. | 12 |
<cspace=1> | Letter spacing; negative values tighten it. | 10 |
<mspace=6> | Gives every glyph the same width. | 10 |
<sub> | Subscript. | 5 |
<sup> | Superscript. | 5 |
<mark=#ffff00> | Highlight block behind the text. It needs the full 6-digit hex (or 8 with opacity); shorter codes are ignored. | 14 |
<align=left> | Aligns the line. Also accepts center and right. | 12 |
<margin-left=8> | Insets the left edge; negative values are ignored. Close it with </margin> (</margin-left> prints as text). <margin-right=N> insets the right edge the same way, so the two together centre the text in what is left. | 15 |
<smallcaps> | Draws lowercase-typed characters as shorter capitals. Characters typed as capitals keep full height. | 11 |
<uppercase> | No visible effect, because the font already draws lowercase as capitals. The same goes for <lowercase>. | 11 |
<rotate=20> | Rotates every glyph in place. | 11 |
<nobr> | Stops a run of text from wrapping. | 6 |
<sprite=0> | One of 16 built-in emoji graphics, numbered 0 to 15. | 10 |
\n | Line break. | 2 |
\v | Line break, identical to \n. | 2 |
\r | Carriage return: starts a new line at the same height as the previous one, so the following text is drawn over it. | 2 |
\t | Tab. | 2 |
(a real line break) | Also breaks the line, and also costs two characters, so it is no cheaper than \n. | 2 |
<br> | Line break, but twice the price of \n. | 4 |
Color and the order of tags
- Text with no color tag is black.
- The 3-digit form works when both digits of every pair match:
<#ff6600>becomes<#f60>, but<#ff6a00>has no short form. - Underline and strikethrough take the color that is active when their tag opens.
<#f00><u>gives a red line;<u><#f00>gives red text with a black line. - Closing tags are optional when the formatting should run to the end of the sign. Leaving out
</smallcaps>saves twelve characters. Keep the closing tag if more text follows, or the style carries on.
Tip
<#ff66ff> becomes <#f6f>, three characters cheaper.Watch
<u> or <s>, or the line stays black.Save
<#f00> <u> Mead hall18/50<u> <#f00> Mead hall18/50<u> first and the text turns red, but the line stays black.<#f00> Copper</color> ore24/50<#f00> Copper ore16/50</color> only the first word is red. Leave it off and the color runs to the end of the sign.Size and automatic fitting
Without a size tag the game fits text to the board. A single character lands near size 8 and every extra character steps it down, so the same sentence is larger on one line than split over two. A <size> tag skips this fitting. In our measurements, sizes 5, 7 and 9 drew at 14, 19 and 25 pixels on one sign. The board is the limit: size 14 is the largest capital that fits inside it.
Watch
<size=5> 5 <size=7> 7 <size=9> 929/50Letters and fonts
- Signs use the Norsebold font, the only cut available, so bold text is already what you get.
- Lowercase Latin letters are drawn with the capital glyphs, so "hi there" shows as "HI THERE". Use
<smallcaps>if you want short capitals for lowercase letters. Capitals are wider than lowercase, which affects how much fits on a line. - Beyond its own font, a sign falls back to the Noto fonts shipped with the game. In tests this covered Chinese, Japanese, Korean, Thai, Hebrew, Arabic, Latin Extended and currency symbols. The sparkle symbols U+2735 and U+2736 come out as empty boxes.
- Elder Futhark runes draw correctly on the sign, but the in-game edit box has no font for them and shows squares until you confirm. Paste them in and trust the sign.
Tip
<b>. It costs three characters and changes nothing.Hi there8/50<smallcaps> Hi there19/50<smallcaps> makes them shorter capitals, while letters typed as capitals keep full height.Emoji
Emoji come from a Noto Emoji font that the game ships, so they look the same for every player. They are single-color and take whichever color tag is active. The font covers emoji up to Emoji 15.0 (2022); newer ones show as a box. Emoji built from several parts (skin tones, joined sequences, flags) are not combined, so each part is drawn as its own symbol. For something more colorful, the game also has 16 built-in sprite graphics, <sprite=0> to <sprite=15>.
Watch
<#00f> ⚓ Harbour15/50The edit box applies tags live
While you type, the game's edit box already applies your tags instead of showing them as raw text. Very small text, or text colored close to the plank, can look as if it vanished, although usually part of it stays visible. What you see after confirming is the real result.
Tip
Six signs worth stealing
Each one fits within the 50-character limit. Copy the markup, paste it into a sign and change the words to suit your base.
Meat chest
33/50<#f88>🥩 MEAT\n <#fff> raw + cooked Ore chest
31/50<#fa5>⛏ ORE\n <#fff> copper + tin Wood chest
32/50<#db8>🪵 WOOD\n <#fff> fine + core Seed chest
37/50<#9e6>🌾 SEEDS\n <#fff> carrot + turnip Mead chest
38/50<#fd5>🍺 MEADS\n <#fff> health + stamina Trophy chest
37/50<#8df>💀 TROPHIES\n <#fff> boss summons
Ready to try it? Open the Sign Editor.


