Blame
|
1 | # Getting Started |
||||||
| 2 | ||||||||
| 3 | ||||||||
| 4 | > **Documentation baseline:** VoxelCore `main` at `452b569` · 14 September 2026. |
|||||||
| 5 | > **Repository:** [https://github.com/VoxelHorizons/VoxelCore](https://github.com/VoxelHorizons/VoxelCore) |
|||||||
| 6 | ||||||||
| 7 | ||||||||
| 8 | ## Choose the correct distribution |
|||||||
| 9 | ||||||||
| 10 | 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. |
|||||||
| 11 | ||||||||
| 12 | ## Build from source |
|||||||
| 13 | ||||||||
| 14 | The repository is a Maven reactor. Build all distributions with: |
|||||||
| 15 | ||||||||
| 16 | ```bash |
|||||||
| 17 | mvn -U clean package |
|||||||
| 18 | ``` |
|||||||
| 19 | ||||||||
| 20 | A targeted build includes dependent modules with `-am`, for example: |
|||||||
| 21 | ||||||||
| 22 | ```bash |
|||||||
| 23 | mvn -pl voxelcore-v1_21_4 -am clean package |
|||||||
| 24 | ``` |
|||||||
| 25 | ||||||||
| 26 | For the 26.2 distribution: |
|||||||
| 27 | ||||||||
| 28 | ```bash |
|||||||
| 29 | mvn -pl voxelcore-v26_2 -am clean package |
|||||||
| 30 | ``` |
|||||||
| 31 | ||||||||
| 32 | 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. |
|||||||
| 33 | ||||||||
| 34 | ## First startup |
|||||||
| 35 | ||||||||
| 36 | Place the appropriate shaded JAR in the server's `plugins/` directory and start the server. VoxelCore creates/uses: |
|||||||
| 37 | ||||||||
| 38 | ```text |
|||||||
| 39 | plugins/VoxelCore/ |
|||||||
| 40 | ├── config.yml |
|||||||
| 41 | ├── render-allocations.yml |
|||||||
| 42 | ├── content/ |
|||||||
| 43 | └── build/ |
|||||||
| 44 | └── resource-packs/ |
|||||||
| 45 | ``` |
|||||||
| 46 | ||||||||
| 47 | 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. |
|||||||
| 48 | ||||||||
| 49 | ## Readiness marker |
|||||||
| 50 | ||||||||
| 51 | Successful initialisation ends with a log line in this form: |
|||||||
| 52 | ||||||||
| 53 | ```text |
|||||||
| 54 | VOXELCORE_READY revision=1 items=<count> platform=<version> |
|||||||
| 55 | ``` |
|||||||
| 56 | ||||||||
| 57 | CI uses this readiness point rather than treating an early plugin-enable message as success. |
|||||||
| 58 | ||||||||
| 59 | ## Add a content pack |
|||||||
| 60 | ||||||||
| 61 | Create a self-contained pack below `plugins/VoxelCore/content/`: |
|||||||
| 62 | ||||||||
| 63 | ```text |
|||||||
| 64 | plugins/VoxelCore/content/example/ |
|||||||
| 65 | ├── pack.yml |
|||||||
| 66 | ├── content/ |
|||||||
| 67 | │ └── items.yml |
|||||||
| 68 | └── assets/ |
|||||||
| 69 | └── example/ |
|||||||
| 70 | ├── models/item/ |
|||||||
| 71 | └── textures/item/ |
|||||||
| 72 | ``` |
|||||||
| 73 | ||||||||
| 74 | Continue with [[Products/Voxel-Horizons/VoxelCore/Content-Packs]] and [[Products/Voxel-Horizons/VoxelCore/Item-Authoring]]. |
|||||||