Описание
# **HiiroSakura Mod**


**HiiroSakura** is a client-side enhancement mod: it adds no new blocks or items, and instead smooths out dozens of small annoyances in vanilla — read what an item really is at a glance, open a whole row of doors with one click, or bind your routine actions to a hotkey or a radial menu.
Everything runs on your client. Servers do not need to install it.
> **All features are off by default.** Installing the mod changes nothing until you enable something.
## 📦 **Requirements**
| Requirement | Details |
|---|---|
| Loader | Fabric or NeoForge |
| Side | Client only |
| Minecraft | See the **Versions** tab for the exact versions of the published builds |
| Required dependency | [IbukiGourd](https://modrinth.com/mod/ibukigourd) |

## 🚀 **Getting started**
- Press **H + S** in game (rebindable) to open the settings screen.
- On Fabric you can also open it from **Mod Menu**; on NeoForge, from the mod list's config button.
The screen is organised into tabs:
| Tab | What it holds |
|---|---|
| Hiiro Sakura Settings | Every toggle, grouped into Rendering, Gameplay and Chat |
| Task Manager | Actions you trigger on a schedule or with a hotkey: message, command or script |
| Custom Radial Menus | Your own radial menus, each with its own hotkey |
| Event Subscriptions | Automatically do something when an event happens |
| Item Editor | Build items with data components (appears once you are in a world) |
## ✨ **Features**
### 🎨 **Rendering**
- **Handheld item info** — shows the selected item's details on screen instead of the vanilla name alone. 37 optional lines (enchantments, lore, container contents, potions, armour trim, durability, …), each toggleable; an optional script can decide per item what to show.
- **Dropped item info** — item details above dropped items, plus the experience value above experience orbs.
- **Fuse timers** for primed TNT and swelling creepers, as text or a progress bar.
- **Gamma override** — brighten the world without a shader pack.
- **Always render barrier / light block markers**, **disable text obfuscation**, **disable the scoreboard sidebar**.
- **Iris-compatible render pipeline** for the mod's own world textures — bind it to the same key as your shader toggle to keep them in sync.
### 🎮 **Gameplay**
- **Chain doors** — one right-click opens or closes a row of doors or trapdoors. Two strategies (neighbourhood scan / chain propagation), per-rule block matchers, per-rule "hold the key to disable / enable", and a chain limit.
- **Auto replant** — break a crop and the mod replants it from your inventory on the next tick. Wheat, carrots, potatoes, beetroot and nether wart are set up out of the box.
- **Auto switch elytra** — equips a glider when you try to start flying, and swaps your chestplate back once you are not gliding.
- **Gliding helpers** — disable firework interaction while gliding, and a hotkey that finds a usable firework and uses it for you.
- **Block break protection** — matched blocks cannot be broken (the default rule protects budding amethyst).
- **Item use intercept** — stop matched items from being used against matched blocks.
- **Item drop intercept** — matched items cannot be dropped. Not every drop path can be caught, so do not rely on it alone.
- **Auto respawn** — skip the death screen and respawn immediately.
- **Camera switcher** — put the camera on any entity, optionally blocking your own actions while switched, plus the `/hs:camera_switch` command.
- **Sound filter** — silence chosen sound events; they also stop showing up in subtitles.
- **Pick player head in creative** — middle-click a player to get their head.
### 💬 **Chat**
- **Message filter** — drop incoming messages that match a regular expression.
- **Message injection** — rewrite outgoing messages through a regex → expression mapping, where `#{message}` is the original text.
- **Chat bubbles** — speech bubbles above the speaker's head, with per-server parsing regexes, colours, scale, offset and timings.
### ⚙️ **Automation**
- **Tasks** — send a message, run a command, or execute a JEXL script, with delay, period, repeat count, an icon and a hotkey. A quick-execute radial triggers any task with left click (run), middle click (delete) or right click (edit / create).
- **Event subscriptions** — 26 event types (input, client lifecycle and tick, server / game join and exit, death and respawn, block breaking, command and message send / receive, attack, pick, item use, sound play) firing one of four actions: command, message, script, or "add a tick task".
- **Scripting** — JEXL based, usable from `/hs:eval`, tasks, events, matchers and the item-info renderer. A `common:` API covers messaging, notifications, toasts, key and mouse simulation, movement, shared global data and config editing, alongside wrapped game objects for entities, items, blocks, hit results and sounds. Vanilla record components (such as the firework component) can be read field by field.
### 🧰 **Tools**
- **Item editor** — create items with data components: dedicated editors for the common components, a generic serialized-data editor for the rest, entries taken from the registry or a whole tag. Put the result into your inventory in creative, or copy a `/give` command.
- **Custom radial menus** — any number of named radial menus, each with its own hotkey and task list, fully configurable appearance, and one-click import from the task manager.
- **Matchers** — the shared "which item / which block" conditions behind the features above, with all / any / none modes, include or exclude per entry, in-game test buttons for the held item and the targeted block, and import / export.
## ⌨️ **Default hotkeys**
| Hotkey | Action |
|---|---|
| `H` + `S` | Open the HiiroSakura screen |
| `Left Shift` | Chain doors: the key used by the per-rule key mode |
Every other hotkey — firework quick-use, camera switch, radial menus, the quick-execute radial, the individual feature toggles and task hotkeys — is unbound by default. Record your own in the settings screen.
## 📚 **Documentation**
Full player documentation lives in the repository:
- [Index](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/README.md)
- [Rendering](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/render.md) · [Gameplay](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/gameplay.md) · [Chat](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/chat.md)
- [Task manager](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/task.md) · [Event subscriptions](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/event.md) · [Scripting](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/script.md)
- [Menus & item editing](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/menu-and-editor.md) · [Matchers](https://github.com/forpleuvoir/hiirosakura/blob/multiloader/doc/features/matcher.md)
## ⚠️ **Good to know**
- Some features act through your own client by sending vanilla packets — auto replant, chain doors, elytra switching, and simulated input from scripts. The server still does not need the mod.
- A few interfaces have limits: item drop intercept cannot catch every drop path, the dropped-item render distance is compared as a squared distance, and scripts cannot construct objects or hand functions to Java APIs.
- Settings, tasks, event subscriptions, radial menus and the item editor list are all stored under `config/hiirosakura/`.
## 🔗 **Links**
- GitHub:
- Issues and feedback:
- Changelog:
## 📄 **License**
MIT
### 🌟 **Enjoy a more elegant Minecraft experience!**