Files
eqclient-conf/docs/ui-theme-2026-refresh.md
T

6.9 KiB
Raw Blame History

Isuldor UI theme refresh (March 2022 → May 2026)

This article records what changed in EverQuests stock UI between our last theme maintenance pass and this refresh, what we did to bring the isuldor minimal skin forward, and how to install and maintain it on the current client.

Paths for the local Steam/Linux install are in steam-linux-paths.md.

What the theme does

The isuldor skin is a small set of patches against uifiles/default/ (not a full skin replacement). It keeps only the windows that stay on screen most of the time and strips chrome so they fade into a dark layout:

File Purpose
EQUI_Templates.xml Adds WDT_Def2_Minimal and WDT_Inner_Null draw templates (dark tiled chrome, borderless inner panels)
EQUI_Animations.xml Registers dark_tile_64.tga / dark_tile_192.tga and a 1×1 titlebar placeholder animation
EQUI_HotButtonWnd.xml Replaces hotbar slot art with dark tiles; smaller 32×32 normal state
EQUI_ChatWindow.xml Borderless chat shell; null inner template on input/output
EQUI_CastSpellWnd.xml Transparent spell book shell; no close box or outer border
EQUI_PlayerWindow.xml Compact player frame: overlaid HP/mana text, inline XP/AA XP bars, transparent shell

Textures live in ui/dark_tile_*.tga and are copied beside the patched XML under uifiles/isuldor/.

The theme does not patch uiresources/default/ (AtlasSkin). Modern HTML/Cohtml panels (guild, achievements, overseer, etc.) keep the stock look.

Refresh summary (May 2026)

Patch Result against May 2026 default
EQUI_Animations Applies cleanly (line offsets shifted; hunks still match)
EQUI_CastSpellWnd Applies cleanly
EQUI_ChatWindow Applies cleanly
EQUI_HotButtonWnd Applies cleanly
EQUI_Templates Applies cleanly
EQUI_PlayerWindow Required rewrite — see below

ui/install.sh was updated to auto-detect the Steam Linux path (~/.local/share/Steam/steamapps/common/Everquest F2P) and honor EQ_GAME_PATH. The skin was rebuilt under uifiles/isuldor/ on this machine.

Why EQUI_PlayerWindow broke

The March 2022 patch set was generated against an older EQUI_PlayerWindow.xml. Three classes of drift caused patch to fail on hunks 57:

1. Label layout offsets

Stock UI moved percent labels (HPPerLabel, ManPercLabel, FatiguePercLabel) from LeftAnchorOffset 24 to 34. Our diff still described the old coordinates, so context lines no longer matched.

2. New controls after the fatigue block

Daybreak added group-role buttons and aggro readouts below the fatigue labels, for example:

  • PW_GroupRoleTank, PW_GroupRoleAssist, PW_GroupRolePuller, PW_GroupRoleMarkNPC
  • PW_AggroPctPlayerLabel, PW_AggroNameSecondaryLabel, PW_AggroPctSecondaryLabel
  • Parcel/mail icons and attack-indicator animations

The 2019 theme inserted custom XP and AA XP gauges in that slot. The refresh keeps those custom gauges but places them immediately before the group-role buttons so stock pieces are preserved.

3. Removed / relocated elements

  • PW_VoiceVolume no longer exists; the old diff referenced it as a line anchor near the screen definition.
  • EQType values for dynamic HP/mana text changed in stock UI (19/20); the theme uses 17 / 124 with shadow labels and live data from the client.

4. Line endings

Stock XML under uifiles/default/ uses CRLF. Regenerating diffs from LF-only edits produces a whole-file diff and breaks patch. When updating EQUI_PlayerWindow.diff, normalize the built isuldor file to CRLF before diff -u (see Maintenance).

Stock UI churn since March 2022

On this install, uifiles/default/ still has 173 EQUI_*.xml window files (unchanged count), but 49 of them have filesystem dates after 2022-03-01. Notable areas touched by Daybreak in that window:

  • Player / target / petEQUI_PlayerWindow.xml, EQUI_TargetWindow.xml, EQUI_PetInfoWindow.xml, blocked-buff windows
  • Inventory & lootEQUI_Inventory.xml, EQUI_AdvancedLootWnd.xml, EQUI_LootWnd.xml, EQUI_DragonHoardWnd.xml, banks, barter, tradeskill depot
  • Progression UIEQUI_AAWindow.xml, EQUI_TaskWnd.xml, EQUI_TaskOverlayWnd.xml, achievements
  • Social / commerce — guild management/bank, overseer, real estate, merchant, purchase flows
  • Options & loginEQUI_OptionsWindow.xml, character list/create, respawn selector

None of those files are in our patch set by design (see README: avoid maintaining rarely visible windows). After a major client patch, spot-check the six patched windows in-game; everything else stays on Default.

uiresources/default/ (selected by AtlasSkin) continues to grow independently; expect modern panels to look stock even with UISkin=isuldor.

Install and enable

From the repo:

cd ui
bash install.sh          # or: EQ_GAME_PATH="/path/to/EverQuest" bash install.sh

Set the skin on a character in the UI INI in the game install root:

UISkin=isuldor
AtlasSkin=Default

(UI_Vulch_coirnav.ini in this repo is an example.) Reload UI layout from that INI under Options → General if windows look wrong after the first login.

Fade amounts (0% on most windows, higher on hotbars/chat) remain in the per-character UI INI, not in the XML patches.

Maintenance

Rebuild skin from patches

bash ui/install.sh

Refresh patches after editing uifiles/isuldor/ in-game or by hand

bash ui/install.sh --update

Regenerate only EQUI_PlayerWindow.diff after hand-merging

GAME="$HOME/.local/share/Steam/steamapps/common/Everquest F2P"
sed 's/$/\r/' "$GAME/uifiles/isuldor/EQUI_PlayerWindow.xml" > /tmp/pw.crlf.xml
diff -u "$GAME/uifiles/default/EQUI_PlayerWindow.xml" /tmp/pw.crlf.xml \
  > ui/EQUI_PlayerWindow.diff

Verify all patches before committing

bash ui/verify.sh
bash ui/verify.sh --record   # after in-game smoke test; updates ui/.verified-build

Testing checklist

After each client update:

  1. Run bash ui/install.sh and confirm no FAILED hunks.
  2. Log in with UISkin=isuldor — check player window (HP/mana/XP/AA), hotbars, chat, spell gem window.
  3. Open group roles and aggro labels on the player window; confirm they still render and click.
  4. Toggle a few rarely used stock windows (inventory, AA) — they should look like Default, not broken.

References

  • steam-linux-paths.md — install root, UISkin / AtlasSkin, character INI files
  • README.md — general client tuning (fullscreen, lighting, chat colors)
  • Screenshot of the minimal layout: imgur mcO4oAA (2019; layout is similar after refresh)