# HSUI

**A modern HUD replacement for Final Fantasy XIV, built for customization.**

HSUI provides a highly configurable HUD replacement, recreated from DelvUI using KamiToolKit, FFXIVClientStructs, and Dalamud. Replace and customize your entire in-game HUD with a clean, flexible interface.

![HSUI Banner](Media/Images/banner_short.png)

---

## Features

- **Unit Frames** — Player, target, focus target, target of target with customizable health bars, labels, and icons
- **Castbars** — Player and target castbars with interrupt indicators
- **Job Gauges** — All job-specific gauges (DRK, WAR, MNK, NIN, etc.)
- **Party Frames** — Configurable party list with health, buffs, debuffs, and cooldowns
- **Nameplates** — Customizable enemy and friendly nameplates
- **Status Effects** — Player and target buff/debuff display
- **Enemy List** — Enhanced enemy list with debuff tracking
- **Hotbars** — Configurable action bars with:
  - Multiple layout options (12×1, 6×2, 4×3, 3×4, 2×6, 1×12)
  - Drag-and-drop from game UI (Actions, Macros, Inventory)
  - Shift+drag to rearrange, release outside to clear
  - Cooldown overlays and combo highlighting
- **Profiles** — Save and load configurations, import from DelvUI
- **Other Elements** — Experience bar, GCD indicator, limit break, pull timer, MP ticker

---

## Installation

### Via Custom Plugin Repository (Recommended for FC/local installs)

1. Open **XIVLauncher** → **Dalamud Settings** → **Experimental**
2. Add a custom plugin repository:
   ```
   https://raw.githubusercontent.com/Knack117/HSUI/main/pluginmaster.json
   ```
3. Open the **Plugin Installer**, enable "Show custom plugin repositories", and install **HSUI**

### Manual Installation

1. Download the latest release from [Releases](https://github.com/Knack117/HSUI/releases)
2. Extract the contents to your Dalamud plugins folder:
   - `%AppData%\XIVLauncher\installedPlugins\HSUI\`

---

## Commands

| Command | Description |
|--------|-------------|
| `/hsui` | Open HSUI settings |
| `/hui` | Alias for `/hsui` |

---

## Publishing a Release (for FC/custom installs)

To make HSUI available via the custom plugin repository:

1. Build: `dotnet build -c Release`
2. Create the release zip: `.\create-release.ps1` (includes Assets, DLLs — required for hotbars and config)
3. Create a [GitHub Release](https://github.com/Knack117/HSUI/releases/new) (e.g. tag `v1.0.2.1`)
4. Upload `bin/Release/HSUI/latest.zip` as a release asset
5. Update `pluginmaster.json` if the version changed, then commit and push

FC members add this custom repo in XIVLauncher → Dalamud Settings → Experimental → Custom Plugin Repositories:
```
https://raw.githubusercontent.com/Knack117/HSUI/main/pluginmaster.json
```

---

## Building from Source

### Prerequisites

- .NET 10 SDK
- [KamiToolKit](https://github.com/KamiToolKit/KamiToolKit) (cloned to `../repos/KamiToolKit-master/`)

### Build

```bash
dotnet build -c Release
```

The built plugin will be in `bin/Release/`.

---

## Project Structure

```
HSUI/
├── Config/           # Configuration system
├── Enums/            # Shared enumerations
├── Helpers/          # Utilities and managers
├── Interface/        # HUD elements and configs
├── Media/            # Fonts, images, default profiles
├── HSUI.json         # Plugin manifest
├── changelog.md      # Version history
└── README.md
```

---

## Credits

- **DelvUI** — Original design and inspiration
- **KamiToolKit** — UI framework
- **FFXIVClientStructs** — Game data structures
- **Dalamud** — Plugin framework

---

## License

HSUI is a derivative of [DelvUI](https://github.com/DelvUI/DelvUI) and is licensed under the **GNU Affero General Public License v3** (AGPL-3.0). See the [LICENSE](LICENSE) file for the full text.

- **DelvUI** — Original work (Copyright © 2021 JD Smith), AGPL-3.0
- **MOActionPlugin** — Code used in InputsHelper (GPL-3.0). See file headers for notices.
