4.1 KiB
4.1 KiB
Ultcraft
A Minecraft Fabric mod that adds an Ultimate Ability system inspired by Overwatch. Build up charge through combat and time, then unleash powerful abilities!
Features
Ultimate Charge System
- Passive Charging: Gain 100% charge over 15 minutes (6.67% per minute)
- Combat Charging: Gain 3% charge per 6 damage points (3 hearts) dealt to enemies
- Charge caps at 100%
Available Ultimates
Armed and Dangerous (Default)
Grants powerful combat buffs for close-quarters fighting:
- Strength II for 10 seconds
- Regeneration II for 10 seconds
Like a Rabbit
Grants enhanced mobility for rapid repositioning:
- Speed II for 15 seconds
- Jump Boost II for 15 seconds
Visual Feedback
- Circular HUD: Displays charge percentage in the bottom-left corner
- Progress Ring: Gold ring fills as you charge
- Ready Indicator: Ring turns green and displays "READY!" when at 100%
- Smooth Animations: Animated charge depletion on activation
Ultimate Selection
- Press the ultimate menu key to switch between ultimate types
- Switch Penalty: Charge is capped at 15% when changing ultimates
- Visual selection screen shows all available ultimates
Requirements
- Minecraft: 1.21.11
- Fabric Loader: 0.18.4 or higher
- Fabric API: 0.141.1+1.21.11 or higher
- Java: 21 or higher
Installation
- Install Fabric Loader for Minecraft 1.21.11
- Download Fabric API 0.141.1+1.21.11
- Download the latest Ultcraft release
- Place both JAR files in your
.minecraft/modsfolder - Launch Minecraft with the Fabric profile
Keybindings
Configure in Options → Controls → Key Binds:
- Activate Ultimate: Trigger your charged ultimate ability
- Ultimate Selection Menu: Open the ultimate selection screen
Development
Building from Source
# Clone the repository
git clone <repository-url>
cd ultcraft
# Build the mod
./gradlew build
# The compiled JAR will be in build/libs/
Development Environment Setup
# Generate IDE run configurations
./gradlew genSources
# For IntelliJ IDEA
./gradlew idea
# For Eclipse
./gradlew eclipse
# For VSCode
./gradlew vscode
Project Structure
src/
├── main/ # Server-side and shared code
│ ├── java/com/ottohg/ultcraft/
│ │ ├── Ultcraft.java # Main mod initializer
│ │ ├── UltimateData.java # Core charge management
│ │ ├── UltimateType.java # Ultimate ability definitions
│ │ ├── mixin/ # Server-side mixins
│ │ └── network/ # Network packet handling
│ └── resources/
│ ├── fabric.mod.json # Mod metadata
│ └── ultcraft.mixins.json # Mixin configuration
└── client/ # Client-side only code
├── java/com/ottohg/ultcraft/
│ ├── UltcraftClient.java # Client initializer
│ └── client/
│ ├── ClientUltimateData.java # Client charge tracking
│ ├── UltimateHudRenderer.java # HUD rendering
│ ├── UltimateKeybinding.java # Keybind registration
│ └── UltimateSelectionScreen.java # Selection UI
└── resources/
└── ultcraft.client.mixins.json
Technical Implementation
- Mixin Framework: Injects into Minecraft's damage system to track combat damage
- Network Packets: Custom packets for client-server charge synchronization
- Server Authoritative: All charge calculations happen server-side to prevent cheating
- Thread-Safe: UUID-based player data storage with proper synchronization
License
This mod is available under the CC0 license. Feel free to learn from it and incorporate it in your own projects.
Contributing
Contributions are welcome! Feel free to submit issues or pull requests.
Credits
Developed by ottohg
Inspired by the ultimate ability system from Overwatch