Getting Quark running locally requires only a few tools and a handful of Gradle commands. The build system is powered by NeoForge MDK and theDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/VazkiiMods/Quark/llms.txt
Use this file to discover all available pages before exploring further.
net.neoforged.moddev Gradle plugin, so most of the heavy lifting — downloading Minecraft assets, decompiling sources, and wiring up run configurations — happens automatically the first time you sync.
Prerequisites
Before you begin, make sure the following are installed on your machine:JDK 21
Quark targets Java 21. The Gradle toolchain will enforce this. Install from Adoptium or any OpenJDK 21 distribution.
Git
Required to clone the repository and manage release tags. Any recent version works.
gradle.properties allocates 3 GB of heap for Gradle JVM processes (-Xmx3G). Make sure your machine has sufficient free memory before running full builds or data generation.Setup Steps
Clone the repository
Clone the Quark repository from GitHub:Quark bundles optional submodules (e.g.
QuarkWeb). Initialise them so nothing is missing:Review build.properties
Open
The final artifact version is assembled in
build.properties in the project root. This file controls the mod’s identity and versioning:| Property | Meaning |
|---|---|
mc_version | Target Minecraft version — used in dependency coordinates and the release tag |
version | Major mod version series (e.g. 4.1) |
build_number | Monotonically-incrementing build counter; combined with version to form the full version string |
mod_id | Mod identifier used throughout NeoForge registration (quark) |
mod_name | Human-readable name used for the archive filename |
build.gradle as ${version}-${build_number} (plus a -SNAPSHOT suffix in non-release builds).Sync and set up the workspace
Run the initial Gradle sync. This downloads NeoForge, decompiles Minecraft, and generates IDE run configurations:On Windows use
gradlew.bat instead of ./gradlew.Build the mod
Compile the source and produce the output JAR in This also runs the PMD syntax check (
build/libs/:checkSyntax) as part of the verification task group. A successful build produces three artifacts: the main JAR, a pure JAR (no jar-in-jar dependencies), and a sources JAR.Run the game client
Launch a development client with Quark loaded:The game directory is set to
run/ inside the project root. A runClientBonus variant is also available and loads additional dev-environment mods (JER, NoFog, EMI, Blueprint, Woodworks, Farmers Delight, CC:Tweaked, Immersive Engineering) that are excluded from the standard client run to keep startup time short.Run a development server
Start a headless development server (the The server’s game directory is
--nogui flag is applied automatically):runServer/. A runServerBonus variant mirrors the bonus client configuration for server-side testing with the same extra mods.Generate data (optional)
Quark uses NeoForge’s data generation pipeline to produce JSON resources under The output is written to
src/generated/resources/. Regenerate them after changing data providers:src/generated/resources/ and the existing src/main/resources/ directory is used as the “existing” base.Project Structure
All Quark source lives undersrc/main/java/org/violetmoon/quark/. The top-level packages reflect the mod’s internal architecture:
| Package | Purpose |
|---|---|
addons | Optional add-on modules (e.g. the oddities add-on) |
api | Public API surface for other mods to depend on |
base | Core mod bootstrap, config system, and shared utilities |
catnip | Standalone utility library bundled with the mod |
content | All gameplay features, split by category (see below) |
datagen | Data generation providers for recipes, tags, models, etc. |
integration | Compatibility code for third-party mods (JEI, Curios, Lootr, …) |
mixin | Mixin patches against Minecraft and NeoForge internals |
content package is further subdivided into categories that match the in-game Quark configuration screen:
| Sub-package | Category |
|---|---|
content/automation | Automation and redstone features |
content/building | Building blocks and decorative content |
content/client | Client-side visual enhancements |
content/experimental | Unstable or work-in-progress features |
content/management | Inventory and item management utilities |
content/mobs | New mobs and mob behaviour changes |
content/tools | New tools and usability items |
content/tweaks | Small vanilla behaviour tweaks |
content/world | World generation, biomes, and structures |
Key Dependencies
Quark’sdependencies.properties file pins the versions of all runtime and compile-time dependencies. Notable entries relevant to development:
| Dependency | Version |
|---|---|
| NeoForge | 21.1.230 |
| Zeta (Violet Moon library) | 1.1-40 |
| JEI | 19.25.0.324 |
| Curios | 9.2.2+1.21.1 |
| Biolith | 3.0.10 |
CLAUDE.md for notes on using a local Zeta checkout.