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

Make your health bar shout when you’re hurt

One glance — or one sound — tells you you’re at 30%, without reading a single number.

What you’ll build

A low-health alarm that works when your eyes are on the creature, not on your bars. You’ll wire three things that fire together at 25% health: a hotbar button that flips to red text on a dark red field, an indicator window that lights up, and a sound plus a controller buzz on the game’s own wound messaging. By the end, dropping below a quarter health changes what your screen looks like and what your chair feels like.

⚠️ Nothing in VellumFE blinks or animates a vitals bar. There is no flashing bar, no pulsing fill, no threshold color on the bar itself. The minivitals and progress windows expose Layout, Bar height, Bar text, Depleted color, and which bars show — and that is all. What this guide builds is louder and more reliable than a blink: a color change on a button, an icon that lights, a sound, and a controller rumble. Read the outcome as “your screen shouts,” not “your bar flashes.”

📷 screenshot pending
Health at 22%: the HP hotbar button has flipped to red on dark red, and the LOWHP indicator window is lit beside the mini-vitals bars.

Before you start

  • The visual half of this guide is condition-driven, and only the Desktop GUI can author conditions. The TUI hotbar editor covers a button’s label, command, hotkey, tooltip, category, and countdown — it shows states as a count and tells you to edit them elsewhere. The TUI indicator editor edits id, title, icon, and active/inactive colors, with no conditions. The TUI displays everything you author in the GUI perfectly; it just doesn’t build it. Each tab below says which parts it can do.
  • For the sound step: put an audio file in ~/.vellum-fe/global/sounds/. A bare name like lowhp works — the extension is tried for you.
  • For the rumble step: a connected controller, plus a rumble pattern defined in the Controller editor’s Rumble tab. Skip this step without one; the sound and colors work on their own.

Steps

1 — Put a vitals window on screen (if you don’t have one). Click the Windows button in the top toolbar and tick minivitals. Right-click it to set Bar text to Health: 99% so the number is there when you do want it.

2 — Add the alarm button’s bar. Type .addwindow vitals hotkeybar 0 0 20 3. The window name is the binding — a hotkeybar window shows the bar of the same name, so this window will display a bar called vitals.

3 — Build the bar and its low-health state. Open the Editors hub in the toolbar and click Hotbars (or type .hotbars). Add a bar named vitals, then click Add button. Set:

  • LabelHP
  • Commandhealth

Leave Global (all characters) ticked so every character gets the alarm.

4 — Add the state that changes the button’s appearance. Scroll to States — the note beside it reads (first matching state styles the button). Click Add state. A new state arrives preset to Roundtime active and dim; change it:

  • In the When row, leave the group set to all of.
  • On the condition row, open the kind combo and choose Vital.
  • Set the vital combo to health, the comparison to <, the number to 25, and the unit combo to %.
  • Under Style while active:, set the foreground to #ff4040 and the background to #400000.

Click Save bar.

5 — Add a second, earlier warning above it. Click Add state again, set it to Vital · health · < · 50 · %, and give it a yellow foreground (#ffd040). Now use the ^ button to move the 25% state above the 50% state. Order is everything: the first state whose condition matches wins, so if 50% sits first it will match at 22% too and you’ll never see red. Click Save bar.

6 — Light an indicator on the game’s own wound text. Type .addwindow LOWHP indicator 0 0 6 3. An indicator window’s name is its status id. Then open the Editors hub ▸ Highlights (or type .highlights) and click Add highlight. Fill in:

  • PatternYou are (badly hurt|gravely injured|at death's door)
  • Foreground#ff4040
  • Soundlowhp
  • Rumble — pick your pattern from the combo
  • Set statusLOWHP
  • Status duration20

Tick Global (all characters) and click Save. set_status is the trick that makes any game text drive a visual alert: the id lights every indicator and dashboard cell with that name, riding the same machinery the server’s own status icons use. Status duration clears it after 20 seconds so it doesn’t stick on after you heal.

Expected result: at full health the HP button sits in its normal color and the LOWHP indicator is dark. Drop under 50% and the button turns yellow; drop under 25% and it turns red on dark red. When the game calls you badly hurt, the sound plays, the controller buzzes, and the LOWHP indicator lights for 20 seconds.

Make it yours

Alarm on the wound, not the number. Health percent lags a big hit — you can be at 40% with a rank-3 chest wound and in more danger than someone at 20% clean. Add a state using the Injury condition instead: area chest, comparison >=, level 2. Levels 1-3 are wounds and 4-6 are scars, so >= 2 catches a serious wound and ignores old scars. Put it above your percentage states and it wins whenever it matches.

One alarm for “actually in trouble.” A single low number rarely means death; a low number while stunned does. Add a state, set its group combo to all of, and click + condition twice to build: Vital · health · < · 40 · % and Indicator · stunned · active. Only the combination lights it, so the alarm stays rare enough that you believe it.

Make it an absolute number. Percentages mislead at low levels, where 25% can be nine hit points. Switch the Vital row’s unit combo from % to abs and set the value to a real number of hit points you know is dangerous for your character.

When it doesn’t work

The button turned yellow but never red. Your 50% state is above your 25% state. The first matching state wins, and 22% satisfies “< 50%” perfectly well, so the yellow rule fires and the red one is never consulted. Use the ^ button on the red state’s card to move it above the yellow one, then Save bar. Order the widest condition last, always.

The button never changes at all. Check three things in order: the button has at least one entry under States (an empty state list means nothing can ever match); you clicked Save bar and the “unsaved changes” note is gone; and the hotkeybar window’s name matches the bar’s name exactly. A window named combat will not display a bar named vitals.

The indicator never lights. The indicator window’s name is its status id, and it must match the highlight’s Set status value. .addwindow LOWHP indicator … pairs with Set status LOWHP. Case doesn’t matter — ids are compared case-insensitively — but spelling does.

The indicator lights and never goes out. You left Status duration empty, which means “stay on until something clears it.” Either set a duration in seconds, or add a second highlight rule matching your recovery text with that id in Clear status.

The sound stays silent. The file must be in ~/.vellum-fe/global/sounds/. A bare name works and the extension is tried for you, so lowhp finds lowhp.wav — but a name with a typo finds nothing and fails quietly. Check the folder, and confirm sound is enabled in Settings.

Your states vanished after editing in the TUI. They didn’t. The TUI hotbar editor deliberately round-trips states untouched and displays them as a count, so a TUI save never destroys GUI-authored conditions. If they’re genuinely gone, check whether a per-character bar is shadowing your global one — a character bar with the same name replaces the global bar wholesale rather than merging with it. The editor’s bar list shows [G] for global and [C] for character so you can tell which one you’re editing.

The rumble combo is empty. Rumble patterns come from the Controller editor’s Rumble tab. Define one there first and it appears in the highlight form’s combo.

See also