# Getting Started > **Documentation baseline:** VoxelCore `main` at `452b569` · 14 September 2026. > **Repository:** [https://github.com/VoxelHorizons/VoxelCore](https://github.com/VoxelHorizons/VoxelCore) ## Choose the correct distribution Install **one** VoxelCore distribution JAR for the server's compatibility family. Do not install multiple family JARs simultaneously. See [[Products/Voxel-Horizons/VoxelCore/Version-Support]] for the exact mapping. ## Build from source The repository is a Maven reactor. Build all distributions with: ```bash mvn -U clean package ``` A targeted build includes dependent modules with `-am`, for example: ```bash mvn -pl voxelcore-v1_21_4 -am clean package ``` For the 26.2 distribution: ```bash mvn -pl voxelcore-v26_2 -am clean package ``` The current CI build environment uses JDK 25 so it can compile the Java 25 module while Maven `release` settings preserve the lower bytecode targets of older modules. ## First startup Place the appropriate shaded JAR in the server's `plugins/` directory and start the server. VoxelCore creates/uses: ```text plugins/VoxelCore/ ├── config.yml ├── render-allocations.yml ├── content/ └── build/ └── resource-packs/ ``` An empty `content/` directory is valid. If authored content is present but fails loading or platform validation, plugin enable is aborted rather than publishing partial state. ## Readiness marker Successful initialisation ends with a log line in this form: ```text VOXELCORE_READY revision=1 items=<count> platform=<version> ``` CI uses this readiness point rather than treating an early plugin-enable message as success. ## Add a content pack Create a self-contained pack below `plugins/VoxelCore/content/`: ```text plugins/VoxelCore/content/example/ ├── pack.yml ├── content/ │ └── items.yml └── assets/ └── example/ ├── models/item/ └── textures/item/ ``` Continue with [[Products/Voxel-Horizons/VoxelCore/Content-Packs]] and [[Products/Voxel-Horizons/VoxelCore/Item-Authoring]].