Technology Stack
Core Technologies
- Language: Kotlin (primary) + Java
- Minecraft Version: 1.21.11
- Mod Loader: Fabric
- Build Tool: Gradle 8.x
- UI Framework: Svelte (theme system)
- JDK Version: 21
Key Dependencies
| Dependency | Version | Purpose |
|---|---|---|
| Fabric Loader | 0.18.4+ | Mod loading framework |
| Fabric API | 0.140.0+ | Minecraft API extensions |
| Fabric Kotlin | 1.13.9+ | Kotlin language support |
| Kotlin | 2.3.10 | Primary language |
| Node.js | Latest LTS | Theme building |
Project Structure
Root Directory
Source Code Structure
Core Components
Main Entry Point
Location:src/main/kotlin/net/ccbluex/liquidbounce/LiquidBounce.kt
The main entry point initializes all systems when Minecraft starts.
Features System
Location:src/main/kotlin/net/ccbluex/liquidbounce/features/
Contains the core functionality:
- Modules: Combat, movement, render, and other modules
- Commands: Chat commands for controlling features
- Misc: Additional features and utilities
Event System
Location:src/main/kotlin/net/ccbluex/liquidbounce/event/
LiquidBounce uses a custom event system:
- Event definitions
- Event handlers and listeners
- Event sequencing
Configuration System
Location:src/main/kotlin/net/ccbluex/liquidbounce/config/
Handles:
- Module configurations
- User settings
- Config serialization/deserialization
- Auto-save functionality
Rendering System
Location:src/main/kotlin/net/ccbluex/liquidbounce/render/
Provides:
- UI rendering
- ESP and overlay rendering
- Shader support
- Font rendering
Script API
Location:src/main/kotlin/net/ccbluex/liquidbounce/script/
Enables custom scripts:
- JavaScript support via GraalVM Polyglot
- Script module system
- Script API bindings
Integration Layer
Location:src/main/kotlin/net/ccbluex/liquidbounce/integration/
External integrations:
- Discord Rich Presence
- ViaFabricPlus compatibility
- Browser integration (MCEF)
- Theme system integration
Theme System
Theme Structure
Theme Build Process
- Install dependencies:
npm install - Build Svelte app: Rollup bundles the code
- Create theme archive: Bundle into ZIP
- Include in resources: Copied to mod resources
build.gradle.kts:220-270 for the Gradle integration.
Build System
Gradle Configuration
Main Build File:build.gradle.kts
Key sections:
-
Plugins (lines 26-33)
- Fabric Loom for Minecraft modding
- Kotlin JVM plugin
- Detekt for code quality
- Node.js plugin for theme building
-
Dependencies (lines 97-174)
- Minecraft and Fabric
- Kotlin libraries
- External libraries (bundled via JiJ)
- Recommended mods
-
Resource Processing (lines 178-218)
- Theme bundling
- Metadata expansion
- Contributor fetching
-
Theme Tasks (lines 222-270)
- NPM installation
- Theme building
- Resource bundling
Version Catalog
Location:gradle/libs.versions.toml
Centralized version management for:
- Minecraft and Fabric versions
- Kotlin and library versions
- Plugin versions
- Dependency bundles
Mixin System
What are Mixins?
Mixins modify Minecraft classes at runtime without shipping Mojang’s copyrighted code. Documentation: Mixin DocumentationMixin Location
Java mixins:src/main/java/ (Mixins are typically written in Java)
Access Widener
Location:src/main/resources/liquidbounce.accesswidener
Makes private Minecraft fields/methods accessible without reflection.
Configured in build.gradle.kts:94:
Testing
Test Structure
Test Framework
- Kotlin Test: Kotlin’s built-in testing
- JUnit Platform: Test execution
- Kotlinx Coroutines Test: Async testing
Code Quality
Detekt Configuration
Config:config/detekt/detekt.yml
Baseline: config/detekt/baseline.xml
Detekt enforces Kotlin code quality standards.
i18n Verification
Task:verifyI18nJsonKeys
Verifies translation files have consistent keys with en_us.json as baseline.
Advanced Features
Machine Learning
Location:src/main/kotlin/net/ccbluex/liquidbounce/deeplearn/
Integrates Deep Java Library (DJL) for:
- PyTorch models
- AI-based gameplay features
Polyglot Scripting
Supports multiple languages via GraalVM:- JavaScript (primary)
- Future language support
ViaFabricPlus Integration
Enables multi-version protocol support for connecting to servers on different Minecraft versions.Development Tools
Useful Gradle Tasks
IDE Configuration
IntelliJ IDEA:.idea/ contains project configuration
- Copyright headers auto-applied
- Code style settings
- Run configurations
Package Conventions
All code follows the package structure:net.ccbluex.liquidbounce.features.modulenet.ccbluex.liquidbounce.eventnet.ccbluex.liquidbounce.config
Resource Management
Assets
Location:src/main/resources/assets/liquidbounce/
- Textures
- Sounds
- Shaders
- Theme bundles
Translations
Location:src/main/resources/resources/liquidbounce/lang/
Supports multiple languages with JSON files:
en_us.json(baseline)- Other language files
Distribution
JAR Packaging
The build process creates:- Main JAR: Contains mod and bundled dependencies
- Sources JAR: For development reference
- Mappings: Included for deobfuscation
Additional Files
Location:zip_include/
Extra files copied to build/libs/zip/ during build (see build.gradle.kts:393-396).
Next Steps
- Learn about Building from Source
- Read Contributing Guidelines
- Check out Debugging Tips