Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

highlights.toml

Text highlighting rules: coloring, sounds, line filtering (squelch), redirects, and text replacement. Edit the file directly (then .reload highlights) or use the in-app browser (.highlights / .addhighlight).

Basic Format

Each highlight is a named TOML table:

[stunned]
pattern = "You are stunned"
fg = "#ff4500"
bold = true
category = "Combat"

Patterns are regular expressions. For plain-word lists, set fast_parse = true and separate alternatives with | — this uses a much faster literal matcher:

[friends]
pattern = "Mandrill|Monolis|Chiora"
fg = "#ff00ff"
bold = true
fast_parse = true
category = "Players"

All Fields

FieldTypeDescription
patternstringRegex (or |-separated literals with fast_parse)
fg / bgcolorText / background color — hex or a palette color name
boldboolBold text
color_entire_lineboolColor the whole line, not just the match
fast_parseboolLiteral matching via Aho-Corasick (much faster)
soundstringSound file to play (in global/sounds/)
sound_volumefloatPer-sound volume override (0.0–1.0)
rumblestringController rumble pattern to play (short/long/double or a custom pattern from the Controller editor’s Rumble tab)
categorystringGrouping in the highlights browser (e.g. "Combat")
squelchboolHide matching lines entirely
silent_promptboolSuppress the prompt after squelched lines
redirect_tostringSend matching lines to this window
redirect_modestring"redirect_only" (move, default) or "redirect_copy" (show in both)
replacestringReplace matched text (supports $1, $2 capture groups)
streamstringOnly apply to lines from this stream (e.g. "thoughts")
windowstringWith replace: only replace in this window

Squelch (Filtering Spam)

Hide lines you never want to see:

[ambient_spam]
pattern = "A cool breeze|The wind blows|A leaf falls"
fast_parse = true
squelch = true
category = "Squelch"

[arrival_spam]
pattern = "^[A-Z][a-z]+ (arrives|departs)"
squelch = true
category = "Squelch"

Sounds and Rumble

[death_alert]
pattern = "appears dead"
fg = "#00ff00"
sound = "kill.wav"        # in ~/.vellum-fe/global/sounds/
sound_volume = 0.8
rumble = "double"         # buzz the controller too

See Sound Alerts. rumble names a controller vibration pattern — a built-in (short/long/double) or a custom one defined on the Controller editor’s Rumble tab (keybinds.toml). Highlight rumbles are rate-limited (one per 1.5s) so a pattern matching every line can’t vibrate the pad continuously, and the Rumble tab’s master switch silences them along with everything else.

Redirects

Route matching lines to another window:

[loot_lines]
pattern = "^You gather"
redirect_to = "loot"
redirect_mode = "redirect_copy"    # also keep it in the original window

Text Replacement

[shorten_deaths]
pattern = "The death cry of (\\w+)"
replace = "† $1"
fg = "#ff0000"

Testing

Inject a fake game line to test your patterns without waiting for the game:

.testline You are stunned for 3 rounds!

Global Toggles

Disable whole features without deleting patterns, in config.toml:

[highlights]
sounds_enabled = true
replace_enabled = true
redirect_enabled = true
coloring_enabled = true

System highlights (monsterbold, links, room names) are not affected by these toggles.

Highlight Profiles

Save and swap whole highlight sets:

.savehighlights hunting
.loadhighlights hunting
.highlightprofiles        # list saved profiles

Importing from Wrayth/StormFront

Convert an existing Wrayth or StormFront settings file:

vellum-fe import-highlights settings.xml --out my-highlights.toml