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.
SignStyler
Sign editor: formatting toolbar, color picker and live preview.
CHANGELOG
Changelog
This project follows Keep a Changelog and Semantic Versioning.
[Unreleased]
[1.0.0] — 2026-09-28
First release.
Added
- Plain-text editing in the input field: tags stay visible and deletable instead of being rendered as you type.
- Character limit raised from 50 to 400, configurable between 50 and 2000.
- Formatting toolbar: bold, italic, underline, strikethrough, line break,
noparse, and a strip-all-tags button. The style buttons light up for whatever is in force under the caret, read back from the tags rather than tracked from clicks, so they stay honest when the string is edited by hand. - One direct entry per color target — text color and highlight — each showing the color that target currently holds and opening the picker already pointed at it. Both are read back from the sign's own text every time a panel opens.
- HSV color picker as a side panel: hex field with clipboard copy and paste, an alpha
slider with a percentage readout, a saved palette (
+ save, right-click a swatch to remove it), the session history, an apply button that states what it is about to do, andInsert empty tag at caretfor coloring text that is not typed yet. Clicking a swatch loads the color rather than applying it. - Live sliders for
size,voffset,line-height,cspace,rotateandalpha: the existing tag's value is rewritten in place rather than a new tag stacked on top. Each one also takes a typed value, with a clamp to the tag's range and a fallback to the bound value when the input cannot be read. sizeaccepts both of the forms TextMeshPro understands:150%scales the current size, a bare500sets a fixed point size and switches the board's auto-scaling off. The row reads the form from what you type, and binds to the form already written on a sign rather than converting it.- Icon board: a grid of every glyph the sign's font can draw that a keyboard cannot type — symbols, arrows, shapes, and whatever the game keeps in the private use area. Built by reading the font asset at runtime rather than from a hardcoded list, so a glyph is only offered when the sign can actually draw it. One click inserts it at the caret, and each icon costs a single character against the limit.
- Icon board search: a box that filters the grid as you type, matching Unicode's own
character names —
swordfor ⚔,skullfor ☠ — or a codepoint, with or without theU+a player copies along with it. The names ship as an embedded table generated fromUnicodeData.txtand the CLDR short names, 5675 of them; it labels the glyphs without having any say in which ones exist, so the grid is still exactly what the font can draw. - Icon board categories: a filter cycling through the Unicode blocks the font actually holds — arrows, geometric shapes, dingbats, the game's own icons — built from the discovered glyphs, so it can never land on an empty page. The caption line now names the last glyph inserted alongside its codepoint.
- Icon board: the glyph cap that stops the font scan was raised from 1024 to 4096, and hitting it is now logged. At 1024 a font holding more icons than that silently lost whichever ones its character table listed last — the emoji planes, on a font walking in codepoint order. The console also reports the glyph and block count on every open.
- Rendered preview under the field, plus a visible/total character counter. The board preview paints the color the sign's renderer actually produces — the component's color multiplied by the material's face color — rather than the property alone.
- Text-editor behaviour: word under the caret when nothing is selected, and style buttons that toggle off when the selection is already wrapped.
- Trailing resets appended on the way into the sign, so an effect left open does not bleed onto the piece name and use prompt under the hover label.