AStudioLib
A library for all AttackStudio's mods and more.
AStudioLib
---
AStudioLib
A lightweight, general-purpose Fabric mod library built by AttackStudio. AStudioLib handles all the boilerplate that every mod needs — config persistence, GUI rendering, sound helpers, inventory queries, a tick scheduler, keybinding registration, and more — so it never has to be written twice.
> For players: Drop the JAR in your mods folder alongside any mod that requires it. AStudioLib has no visible effect on its own.
---
What's Included
Config
JSON config persistence backed by Gson. One-line save and load, automatic file location, pretty-printing, and silent error handling.
GUI Rendering
A full set of `DrawContext` helpers for the AttackStudio dark-theme UI: panel backgrounds, pulsing borders, corner brackets, animated shimmer sweeps, progress bars, tooltip boxes, scrollbars, and fade edges for scrollable regions.
Easing
Frame-rate-independent easing functions: ease-out, ease-out-back, ease-in-out, sine pulse, ease-out bounce, and linear lerp. All inputs are clamped automatically.
Color Utilities
ARGB color packing, alpha blending, two-color lerp, a `healthColor` gradient (red → yellow → green), HSV-to-RGB conversion, and an animated rainbow helper.
Math Utilities
`clamp`, `remap`, `approach`, `smoothLerp`, `wrap`, and `nearlyEqual` — the numeric helpers that Java forgot to include.
Text Helpers
Minecraft `Text` builders: hex-colored text, toggle labels (`"Feature: ON/OFF"`), join-with-separator, and vanilla `Formatting` application.
Tick Scheduler
Client-side deferred and repeating task scheduler. Schedule a one-shot action after N ticks or a repeating pulse every N ticks — no background threads, no boilerplate.
Inventory Utilities
Full-inventory queries including offhand: item count, presence checks, first-slot search, and held-item detection.
Sound Utilities
One-liner sound playback — fixed volume/pitch, custom pitch, or randomized pitch within a range.
Toast Notifications
One-liner Minecraft system toast notifications (top-right corner), with or without a body message.
Keybinding Registration
Thin wrapper around Fabric's keybinding API. Register a key in one line, poll with `isHeld()` or `consumePress()`. Auto-ticked each client frame.
/studiolib Command
A shared client command registry. Any mod can register subcommands under `/studiolib` during init — AStudioLib assembles the full tree automatically.
---
For Mod Developers
1. Publish to Maven local: ``` git clone https://github.com/AttackStudios/AStudioLib.git cd AStudioLib ./gradlew publishToMavenLocal ```
2. Add to `build.gradle`: ```groovy repositories { mavenLocal() } dependencies { modImplementation "net.attackstudioyt:astudiolib:1.1.0" } ```
3. Declare in `fabric.mod.json`: ```json "depends": { "astudiolib": "*" } ```
---
Requirements
| | | |---|---| | Minecraft | 1.21.11 or higher | | Fabric Loader | ≥ 0.18.4 | | Fabric API | 0.141.3+1.21.11 | | Java | 21 |
---
Disclaimer
This mod was made with help of Claude CLI and may have imperfections due to GenAI code.