โ Starshadow Lib¶
The foundation for Starshadow mods.¶
Starshadow Lib is a shared widget toolkit and utility library for Minecraft Fabric mods. It provides the building blocks that power Starshadow's config screens, mod list, and splash screen โ and you can use them in your own mods too.
"Widgets, layout, and rendering โ the boring parts, done right."
โจ Features¶
๐๏ธ Widget Toolkit¶
Ready-to-use Minecraft GUI widgets built on vanilla screen components:
| Widget | Description |
|---|---|
| ToggleWidget | On/off toggle switch with animation |
| SliderWidget | Numeric slider with configurable range |
| IntStepperWidget | Integer value with +/- buttons |
| EnumCycleWidget | Cycle through enum values with click |
| StarWidget | Base widget class for building custom widgets |
๐ Layout System¶
Utilities for consistent, responsive GUI layouts:
| Component | Description |
|---|---|
| EntryRow | Label + widget row with consistent alignment |
| Spacing | Standardized spacing constants for UI consistency |
๐ฆ Container Widgets¶
Higher-level containers for organizing content:
| Container | Description |
|---|---|
| ScrollablePanel | Scrollable content area with smooth scrolling |
| SectionCard | Card-style container with header and collapsible content |
| VerticalTabBar | Tab strip for multi-section screens |
๐จ Rendering Utilities¶
| Utility | Description |
|---|---|
| RenderBridge | Cross-version rendering abstraction layer |
| Colors | Standardized color palette constants |
๐ง Logging Helpers¶
| Utility | Description |
|---|---|
| LogLevelHelper | Dynamic Log4j2 level control for debug logging toggles |
๐ฆ Installation¶
For Mod Developers¶
Add to your build.gradle.kts:
dependencies {
modstitchModImplementation("com.starshadow:starshadow-lib:${property("starshadow_version")}")
include("com.starshadow:starshadow-lib:${property("starshadow_version")}")
}
For Players¶
Starshadow Lib is bundled inside mods that use it โ you typically don't need to install it separately. If a mod requires it as an external dependency:
- Install Fabric Loader for your Minecraft version
- Install Fabric API
- Drop the Starshadow Lib
.jarinto yourmods/folder - Launch Minecraft
Supported: Minecraft 1.20.1 ยท 1.20.4 ยท 1.21.1 โ Fabric only
๐จ Usage Examples¶
Toggle Widget¶
ToggleWidget toggle = new ToggleWidget(x, y, width, height,
Text.literal("Enable Feature"),
() -> config.isEnabled(),
value -> config.setEnabled(value));
Slider Widget¶
SliderWidget slider = new SliderWidget(x, y, width, height,
Text.literal("Volume"),
0, 100, config.getVolume(),
value -> config.setVolume(value));
Scrollable Panel¶
ScrollablePanel panel = new ScrollablePanel(x, y, width, height);
panel.addChild(new EntryRow(label, widget));
panel.addChild(new EntryRow(label2, widget2));
๐งฉ Compatibility¶
| Mod | Compatibility |
|---|---|
| Fabric API | โ Required |
| Starshadow Config | โ Uses Lib for config screen widgets |
| Starshadow Menu | โ Uses Lib for mod list UI |
| Starshadow Splash | โ Uses Lib indirectly via Config |
๐ Requirements¶
| Dependency | Required? |
|---|---|
| Fabric Loader | โ Yes |
| Fabric API | โ Yes |
Starshadow Lib has no dependencies beyond Fabric itself โ it's the foundation layer.
๐ Build Better UIs¶
Stop reinventing widgets for every mod. Starshadow Lib provides a consistent, tested set of UI components so you can focus on what makes your mod unique.
Made with โค๏ธ by Ghent Starshadow Licensed under MPL-2.0 โ free to use, share, and modify.