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.
RunicSigns
Design signs live with selected-text styling, exact colors, opacity, emojis, text effects, curves, offsets, and adjustable sign size. Preview before placing or save changes to existing signs.
| Date uploaded | 13 hours ago |
| Version | 1.2.5 |
| Download link | Chazman-RunicSigns-1.2.5.zip |
| Downloads | 306 |
| Dependency string | Chazman-RunicSigns-1.2.5 |
This mod requires the following mods to function
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.2350README
RunicSigns 1.2.5
Create and edit sign designs directly in Valheim with live previews, styled text, emojis, effects, and precise placement controls. Requires BepInExPack Valheim 5.4.2350. Install one copy of RunicSigns; remove BetterSigns before installing.
Getting started
- Install RunicSigns through your mod manager, or import
Chazman-RunicSigns-1.2.5.zipas a local mod. For manual installation, place RunicSigns.dll in BepInEx/plugins/RunicSigns. - Equip a hammer and select the wooden sign. Aim where you want it, then press F8. The sign preview stays in place while the designer is open.
- Enter a caption. Select words to apply bold, italic, relative size, exact color or opacity to those words. Click Text Color... to see all 22 named colors with swatches; choosing one applies the proper formatting automatically. Selection stays captured while using the controls. Select all explicitly targets the full caption. With no selection, formatting changes the whole-caption defaults; individual word overrides are preserved. Click RESET TEXT to clear all word overrides and restore regular, white, fully opaque text at 1×, without changing the caption, layout, or effects. Color also accepts
#RRGGBBand#RRGGBBAA. - Use Symbols for the 64 bundled emojis. Choose alignment, background (automatically sized around the rendered caption), and Fit text to sign or Free text size. Free text size disables automatic wrapping so larger captions extend horizontally beyond the board; Enter still adds an intentional line break. Select words for relative sizing, or leave nothing selected to change the base text size. Click Effects… for independent Outline and Shadow switches and two curve strengths: up/down and forward/backward. Use both switches and both axes together, or any subset. Curve strengths range from −1 to +1; 0 is flat, and 0.25 is a gentle starting point. Positive values curve the center up or forward, negative values down or backward. Effects apply to the whole caption; ordinary formatting targets the selection, or the caption defaults when no text is selected.
- Enter horizontal/vertical/depth offsets directly. Depth moves the whole caption away from or toward the sign: positive is Forward, negative is Back, along the text’s own facing direction. Back/Forward buttons use the fine/coarse step, and Center text resets all three offsets. The background follows depth movement. In sign-fraction mode, one depth unit equals the text-box width. Text units supports ±2000 and uses the same scaling as plain numeric TMP offset values. The alternate mode uses sign-width/height fractions, up to ±20. Fine/coarse arrows and Center are available.
- Click Use for placement, resume aiming and place the sign normally. [ / ] still change whole-sign size outside the editor. The design remains available for subsequent placements during this game session.
- Use an existing sign to open the same live designer. Save sign commits changes. Cancel/Escape restores the saved appearance. Escape closes an open effects, color or symbols picker first. Effects preview live; Done closes the effects panel, while Cancel in the main designer restores the saved design.
F8 and bracket shortcuts can be rebound in the RunicSigns BepInEx config under Placement. Text size ranges from 0.1× to 20×, whole-sign size from 0.25× to 4×. Captions allow 1024 UTF-16 units (two per bundled emoji) and 128 independently styled sections. No HTML/tag entry is needed; typed tags remain literal text.
Cyan and other exact colors now use a private neutral font-face material so the original sign tint does not multiply the chosen color.
Multiplayer and saved designs
Install the same RunicSigns version on the server and participating clients. Normal sign ownership and ward permissions still apply. Save commits an existing sign design; Cancel restores its saved appearance.
Compatibility
Outline/shadow use the font shader; bundled emoji sprites bend with the caption but retain their own artwork material. Very strong depth curves can intersect nearby scenery.
Automated regression and installed-game API checks passed. The author confirmed successful in-game testing on September 18, 2026, with Valheim 1.0.15. Compatibility is not restricted to an exact game version.
Existing version-1, version-2 and version-3 styles are readable. Saving a design writes version-4 style data. Earlier RunicSigns releases cannot display/edit that new styling; ordinary caption text remains in the native sign data. Placement drafts are session-local, not config templates.
Before downgrading or uninstalling, back up your world. Older releases cannot render the newer style metadata, although native caption text remains available.
Artwork
Twemoji graphics copyright Twitter, Inc. and other contributors, CC BY 4.0, from jdecked/twemoji. Icons are arranged in a padded atlas without changing the artwork. The graphics license is embedded in the DLL.
CHANGELOG
Changelog
1.2.5 — 2026-09-18
-
Public release of the live sign designer after author-confirmed in-game testing on Valheim 1.0.15.
-
Includes selected-text styling, emojis, text effects, curves, caption offsets, placement previews and existing-sign editing.
-
No selection edits caption defaults; selected words retain their independent formatting.
-
RESET TEXT restores uniform default text formatting without erasing the caption or moving the sign.
-
Neutral private font face tint and enabled rich-text colors prevent inherited sign tint from darkening chosen colors.
-
Text Color... label; opacity controls reflect effective alpha, including older saved settings.
1.2.4 — Caption depth test (2026-09-18)
- Added Depth input and Back/Forward buttons for independent caption translation along its facing direction; positive moves forward, negative backward.
- Depth uses the selected offset units and fine/coarse step. Center text resets all three axes; backgrounds follow the caption.
- Version-4 style data persists depth, with zero depth for previous designs. Curvature remains independent.
- Test release only; RunicStorage and public packages unchanged.
1.2.3 — Text-sized background test (2026-09-18)
- Backgrounds now follow the actual rendered text/emoji bounds with padding, including selected text sizes, multiple lines and curved geometry.
- Backgrounds follow caption alignment/offsets and hide for empty captions. Whole-sign scaling still scales text and background together.
- Includes the free-text wrapping fix and combined effects from 1.2.2. Test release only.
1.2.2 — Free text and combined effects test (2026-09-18)
- Free text size now disables automatic word wrapping so enlarged portal captions extend horizontally; explicit newlines remain supported. Fit mode restores the original wrapping behavior.
- Replaced the exclusive effect cycle with an Effects panel: independent outline/shadow toggles and signed up/down and forward/backward curve strengths. All four controls can combine.
- Curvature transforms freshly generated text and emoji geometry; cancelling or resetting restores the original appearance.
- Version-3 style data saves both curves and combined effects; existing version-1/2 designs remain readable.
- Isolated test build only. No public release promotion or RunicStorage changes.
1.2.1 — Named-color and selection test (2026-09-18)
- Added a named-color picker with all 22 supported names and visible swatches; formatting is generated automatically.
- Color, bold, italic, size, opacity and Clear formatting now apply only to selected caption text. Select all explicitly formats the whole caption.
- Preserve the selected range while using formatting controls and the color picker; choosing the same color for another selection works.
- No selection means no text formatting changes, including a caret within an emoji.
- Isolated test build only; not promoted to latest. RunicStorage is unchanged.
1.2.0 — Designer test (2026-09-18)
- Add F8 live placement designer and local live preview on existing signs.
- Add selected-text styling, precise colors and alpha, opacity, italic, free sizing, outline/shadow and symbol insertion.
- Add numeric offsets up to ±2000 text units or ±20 sign fractions with fine/coarse controls.
- Apply the draft caption/style on native placement; preserve bracket resizing.
- Keep captions plain for native filtering; save version-2 style metadata separately from caption text.
- Expand caption limit to 1024 UTF-16 units and add designer regression tests.
- Isolated testing only; no latest-release promotion.
1.1.0 - 2026-09-16
- Preserved bracket-key hammer preview sizing and saved placement scale from 1.0.4.
- Add a 64-emoji picker with Food, Materials, Equipment and Places categories.
- Render bundled full-color emojis in the editor and world labels without extra dependencies or runtime downloads.
- Preserve Unicode in the existing save format, guard insertion limits, and avoid broken surrogate pairs.
- Add emoji selection, boundary and persistence regressions. The author confirmed successful in-game emoji testing on September 17, 2026.
1.0.4 - 2026-09-14
- Added enlarged hammer previews: use ] / [ to adjust sign size before placement, or set Placement.SignScale. Shortcuts are configurable and respect text input and modal editors.
- Applied the selected scale before native placement checks, and saved it through the native IPlaced callback after creator assignment. Board and colliders match the preview without changing the shared prefab.
- New signs retain their selected size across multiplayer synchronization and save/reload. Existing sign settings are preserved.
1.0.3
- Fix text-position arrows moving the caption off the sign on the first increment. Offsets now account for the text object's own scale and rotation.
- Preserve the original text position and backing-panel position; offsets do not accumulate between edits.
- Keep the same saved settings format. Existing offsets are interpreted correctly after updating; Center still resets both offsets.
- Add rendering regressions for four-way nudges, rotated text, 0.25×–4× boards and Center/reset behavior.
1.0.2
-
Prepared for Thunderstore release after author-confirmed in-game operation.
-
Includes the matching wood-and-iron icon with cyan runes, installation instructions and sign-size/character-limit guidance.
-
Fix the reproduced persistent input lock when RunicStorage and RunicSigns are installed together. HarmonyX shares
__stateby declaring type name even across assemblies; the duplicate camera hook name let one mod overwrite the other's scope state. -
Give all RunicSigns modal patches a unique namespace. RunicStorage does not need to be changed.
-
Add an actual HarmonyX two-assembly regression covering both patch orders, either editor, nested camera calls and exception cleanup. The original hooks reproduce the reported lock; the isolated hooks recover input.
1.0.1
- Remove a possible unbounded held-action lock after closing or saving; this did not resolve the cross-mod conflict subsequently fixed in 1.0.2.
- Limit protection against held attack/use inputs to those actions, with a one-second stale-input timeout.
- Build the editor while inactive and activate input blocking only after it successfully opens.
- Release modal state before cleanup; handle partial UI construction, callback failures, disabled components and missing canvases safely.
- Add regression coverage for permanently held input flags, timeout, re-press and lifecycle reset.
- Use the matching wood-and-iron RunicSigns icon with cyan runes.
1.0.0 candidate
- Fresh, focused editor for vanilla wooden signs.
- RunicStorage named-color palette, independent text sizing, backgrounds, alignment and offsets.
- Proportional physical sign scaling from 0.25× to 4×.
- Native caption/author preservation, synchronized appearance and save conflict handling.
- Bounded save leases, timeout/cancel handling and modal gameplay input protection.
- No BetterSigns assets or code; no storage functionality.
Versions 1.0.0 and 1.0.1 were development builds; use 1.0.2 or later.