diff --git a/HSUI.csproj b/HSUI.csproj
index 85cbed5..03665be 100644
--- a/HSUI.csproj
+++ b/HSUI.csproj
@@ -9,9 +9,9 @@
HSUI
- 1.0.8.17
- 1.0.8.17
- 1.0.8.17
+ 1.0.8.18
+ 1.0.8.18
+ 1.0.8.18
diff --git a/HSUI.json b/HSUI.json
index 903c141..68c76a4 100644
--- a/HSUI.json
+++ b/HSUI.json
@@ -2,7 +2,7 @@
"Author": "Knack117",
"Name": "HSUI",
"InternalName": "HSUI",
- "AssemblyVersion": "1.0.8.17",
+ "AssemblyVersion": "1.0.8.18",
"Description": "HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.",
"ApplicableVersion": "any",
"RepoUrl": "https://github.com/Knack117/HSUI",
diff --git a/Interface/DraggableHudElement.cs b/Interface/DraggableHudElement.cs
index 1178b96..f37ce67 100644
--- a/Interface/DraggableHudElement.cs
+++ b/Interface/DraggableHudElement.cs
@@ -256,6 +256,13 @@ namespace HSUI.Interface
{
return (new List(), new List());
}
+
+ /// Returns the screen-space bounding box of the element for hover detection (e.g. visibility "hide unless hovered").
+ public virtual (Vector2 min, Vector2 max) GetScreenBounds(Vector2 origin)
+ {
+ var basePos = origin + ParentPos();
+ return (basePos + MinPos, basePos + MaxPos);
+ }
#endregion
}
diff --git a/Interface/GeneralElements/VisibilityConfig.cs b/Interface/GeneralElements/VisibilityConfig.cs
index b6d36ba..51c873b 100644
--- a/Interface/GeneralElements/VisibilityConfig.cs
+++ b/Interface/GeneralElements/VisibilityConfig.cs
@@ -1,3 +1,4 @@
+using Dalamud.Bindings.ImGui;
using Dalamud.Game.ClientState.Conditions;
using Dalamud.Game.ClientState.Objects.Enums;
using Dalamud.Game.ClientState.Objects.SubKinds;
@@ -6,12 +7,17 @@ using HSUI.Config.Attributes;
using HSUI.Interface.GeneralElements;
using HSUI.Interface.Party;
using System.Linq;
+using System.Numerics;
namespace HSUI.Interface
{
[Exportable(false)]
public class VisibilityConfig : PluginConfigObject
{
+ [Checkbox("Hide unless hovered", help = "When enabled, the element is hidden until the cursor hovers over it. Requires HUD to be locked.")]
+ [Order(4)]
+ public bool HideUnlessHovered = false;
+
[Checkbox("Hide outside of combat")]
[Order(5)]
public bool HideOutsideOfCombat = false;
@@ -96,6 +102,18 @@ namespace HSUI.Interface
if (element != null && element.GetType() == typeof(PlayerCastbarHud)) { return true; }
if (element != null && !element.GetConfig().Enabled) { return false; }
+ // Hide unless hovered: element is visible only when the cursor is over it
+ if (HideUnlessHovered && element is DraggableHudElement draggable)
+ {
+ Vector2 origin = ImGui.GetMainViewport().Size / 2f;
+ var hudOptions = ConfigurationManager.Instance?.GetConfigObject();
+ if (hudOptions != null && hudOptions.UseGlobalHudShift)
+ origin += hudOptions.HudOffset;
+ var (min, max) = draggable.GetScreenBounds(origin);
+ if (!ImGui.IsMouseHoveringRect(min, max))
+ return false;
+ }
+
// Alliance frames only matter in alliance raids (duty). HideInDuty would hide them exactly when needed.
bool isAllianceFrames = element != null && element.GetType() == typeof(AllianceFramesHud);
@@ -144,6 +162,7 @@ namespace HSUI.Interface
{
Enabled = config.Enabled;
+ HideUnlessHovered = config.HideUnlessHovered;
HideOutsideOfCombat = config.HideOutsideOfCombat;
HideInCombat = config.HideInCombat;
HideInGoldSaucer = config.HideInGoldSaucer;
diff --git a/changelog.md b/changelog.md
index 529c436..3de642b 100644
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,6 @@
+# 1.0.8.18
+- **Visibility**: "Hide unless hovered" — per-element option in Visibility to hide any UI element unless the cursor is over it (requires HUD locked).
+
# 1.0.8.17
- **Controller Hotbars**: Add 8 cross bars (L2/R2 style) separate from normal hotbars 1-8. Controller bar slot data stored in config (not game StandardHotbars) so layouts can differ per mode. Drag-and-drop on controller bars: from game, shift+drag rearrange, release outside to clear. Independent keybinds with modifier+trigger combinations (e.g. L2+South). Optional sync bar mode with game client (Character Config Mouse/Gamepad toggle). Clone/copy actions: normal hotbars ↔ controller bars. Restore controller bar layout button.
diff --git a/pluginmaster.json b/pluginmaster.json
index 76e9947..685e853 100644
--- a/pluginmaster.json
+++ b/pluginmaster.json
@@ -1 +1 @@
-[{"Author":"Knack117","Name":"HSUI","Punchline":"A modern HUD replacement built for customization.","Description":"HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.","Changelog":"1.0.8.16: Show HUD during dialogue and interaction (hotbars stay visible when talking to NPCs or interacting). 1.0.8.15: Tooltips game-style formatting (section labels, tail alignment, config). 1.0.8.14: Mouse GCD Indicator (ring around cursor). 1.0.8.13: Item tooltips now show. 1.0.8.12: Item/HQ icons now draw on hotbar. 1.0.8.11: Hotbar tooltip crash fix (Lumina GetRow). 1.0.8.10: Hotbar crash fix when dragging inventory items; Release builds strip PDBs. 1.0.8.9: Gearset persists on slot (fix CommandId 0 treated as empty). 1.0.8.8: Gearset drag-drop fix; allow first gearset (index 0) on bar. 1.0.8.7: Fixed Gearset/Job Gear Set icon clearing when first equipment slot changes. 1.0.8.6: Crafting action tooltips now show full description instead of action name. 1.0.8.4: Alliance Frames 1 and 2 fix in raids; crafting action tooltips; Hide in duty no longer hides alliance frames. 1.0.8.3: Fix left-click staying broken after disable. 1.0.8.2: Charge icons stay lit until all charges spent.","InternalName":"HSUI","AssemblyVersion":"1.0.8.16","RepoUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI","ApplicableVersion":"any","Tags":["UI","HUD","Unit Frames","Nameplates","Party Frames","Hotbars"],"CategoryTags":["UI"],"DalamudApiLevel":14,"IconUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/raw/branch/main/Media/Images/icon.png","ImageUrls":[],"DownloadLinkInstall":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.16/latest.zip","IsHide":false,"IsTestingExclusive":false,"DownloadLinkTesting":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.16/latest.zip","DownloadLinkUpdate":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.16/latest.zip","LastUpdate":"1761609600"}]
+[{"Author":"Knack117","Name":"HSUI","Punchline":"A modern HUD replacement built for customization.","Description":"HSUI provides a highly configurable HUD replacement for FFXIV, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Features unit frames, castbars, job gauges, nameplates, party frames, status effects, enemy list, configurable hotbars with drag-and-drop, and profiles.","Changelog":"1.0.8.18: Visibility \"Hide unless hovered\" option. 1.0.8.17: Controller hotbars (cross layout, separate storage, sync with game). 1.0.8.16: Show HUD during dialogue and interaction. 1.0.8.15: Tooltips game-style formatting. 1.0.8.14: Mouse GCD Indicator. 1.0.8.13: Item tooltips now show. 1.0.8.12: Item/HQ icons now draw on hotbar. 1.0.8.11: Hotbar tooltip crash fix. 1.0.8.10: Hotbar crash fix when dragging inventory items. 1.0.8.9: Gearset persists on slot. 1.0.8.8: Gearset drag-drop fix. 1.0.8.7: Fixed Gearset icon clearing. 1.0.8.6: Crafting action tooltips full description. 1.0.8.4: Alliance Frames 1 and 2 fix; Hide in duty no longer hides alliance frames. 1.0.8.3: Fix left-click staying broken after disable. 1.0.8.2: Charge icons stay lit until all charges spent.","InternalName":"HSUI","AssemblyVersion":"1.0.8.18","RepoUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI","ApplicableVersion":"any","Tags":["UI","HUD","Unit Frames","Nameplates","Party Frames","Hotbars"],"CategoryTags":["UI"],"DalamudApiLevel":14,"IconUrl":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/raw/branch/main/Media/Images/icon.png","ImageUrls":[],"DownloadLinkInstall":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.18/latest.zip","IsHide":false,"IsTestingExclusive":false,"DownloadLinkTesting":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.18/latest.zip","DownloadLinkUpdate":"http://brassnet.ddns.net:33983/KnackAtNite/HSUI/releases/download/v1.0.8.18/latest.zip","LastUpdate":"1762238400"}]