Skip to content

Repository files navigation

High-res Focus Bar 1.0.0

Independent Wurm Unlimited client HUD element combining the stock Select Bar and Target Window state. It does not hide or replace either stock component.

Selected and Targeted are deliberately independent. Each has its own live, looping-idle model portrait and isolated off-screen renderer; model-backed objects fall back to a slot-filling static icon when necessary. The bundled read-only portrait database is a snapshot authored with Portrait Studio, so Portrait Studio is not a runtime dependency.

For live creatures the actual world model resource is authoritative over the string model mapping. This prevents champion/custom-server variants with a stale human mapping from rendering a human portrait and selects the framing profile belonging to the concrete ram, sheep, horse, or other live resource.

Visuals deliberately inherit the current High-res Health Bar: dark walnut, aged brown leather, warm umber shadows and restrained bronze bevels. Health and progress fills are monolithic runtime colours with a one-pixel bevel and a procedural shine; no coloured fill is baked into frame textures.

The component is registered as High-res focus bar in HUD Settings. Stock windows remain available during testing.

The base component is 372 x 126. Its identity plate spans the full Selected portrait + Focus width. Below it are a 90 x 90 Selected portrait, progress/health/trust status, and eight stable selection actions at their native 32 x 32 size. A truly empty selection displays Nothing selected in the portrait and clears its actions after the anti-flicker grace period. Double-clicking the Selected portrait targets that creature; right-click opens its native object actions.

The transparent Inspect magnifier is resolved from a hidden native action request and remains reliable after Wurm's signed one-byte popup request counter wraps past 127. Its action availability is not limited to the eight visible Select Bar buttons.

When a combat target exists, an auto-hiding right section expands the component to 796 x 140. It contains a separate 90 x 90 Targeted portrait, four native combat controls (Aggressive, Normal, Defensive, Ranged), and a hanging TARGETED footer. Double-clicking the Targeted portrait performs No Target.

When combat begins, the mod requests vanilla Look Equipment once and keeps the returned body view under observation. Each received wound adds one compact row directly below the Targeted block, with its stock Wurm icon, body part, wound name, damage and quality. An active wound penalty adds one separate Debuff row. The hanging TARGETED footer always follows the last dynamic row; no empty or loading placeholder changes the layout before data arrives. Hovering a wound row shows its full wound text. All dynamic rows close with the combat target.

Vehicle QL and damage are captured from the server's exact Ql/Dam response to one silent Examine sent when the vehicle is selected, then cached by vehicle ID. Focus suppresses that service response and never opens the vehicle inventory to obtain these values. The native text callback is routed in Wurm's actual (Event tab, message) order for both plain and multicolour Examine responses; the plain overload no longer reverses those arguments and discards valid stats.

Selected and Targeted own separate identity, health, status, and progress rows. During combat, target activity is routed only to the Targeted progress row when a different object remains selected. Both rows mirror one another only when Selected and Targeted intentionally refer to the same creature. Health gauges use the High-res Healthbar emerald palette, progress gauges use its cool blue, and empty tracks use warm brown leather rather than black.

Progress names are correlated with the outgoing timed action. Immediate commands which do not own a timer—Examine, the hidden Equipment probe, Target/No Target and combat Attack—are excluded from that queue, so a later spell is shown as Casting Genesis instead of inheriting a stale command name.

When the server replaces a killed current target with its corpse, the corpse is selected as soon as its renderable enters the world even if another object was selected during the fight. The remembered combat/last-target ID covers the native target window being cleared just before the replacement callback. Waypointer overlays are toggles: a second press removes the marker owned by this HUD without touching markers created elsewhere.

Selected objects use Wurm's native picked-object pass with a warm yellow, animated outline. This works for any PickableUnit, including creatures, corpses and ground items. Action-button presses have a short inset/gold pulse; their hotkey numbers retain the vanilla transparent background.

Before Butcher is sent, the mod arms Select Bar's native replacement hand-off, so a removed/re-added corpse with the same server id stays selected. Live mount portraits are built from a clean model copy and hide default saddle/barding meshes, preventing unrelated mount equipment from leaking into portraits.

Installation

Requires the Wurm Unlimited Client Mod Launcher (Ago's mod loader).

  1. Extract highres-focusbar-1.0.0.zip into WurmLauncher so its mods directory merges with the existing mods directory.
  2. Start the modded client.
  3. Open Main menu → HUD settings and toggle High-res focus bar.

The component is enabled by default. Its position and visibility are saved by Wurm. The stock Select Bar and Target Window remain independent.

Build

Java 8 and client-patched.jar, common.jar, javassist.jar, and modlauncher.jar are required. Copy local.properties.example to local.properties and set wurmClientLibDir, or provide the same path through the Gradle property or WURM_CLIENT_LIBS environment variable.

Run gradlew.bat clean test verifyArtifacts dist on Windows or the equivalent ./gradlew command on Linux/macOS. The installable archive is written to build/distributions.

About

Client-only high-resolution Selected and Targeted HUD for Wurm Unlimited

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages