Installation#
VSU is one jar per Minecraft version and loader. There is no installer, no
coremod, and no client component. Installation is: choose the jar that matches
your server, verify it, place it in mods/, restart.
Choose the right jar#
Release assets follow a fixed pattern:
vsu-<minecraft-version>-<loader>-2.2.0.jar
All nine cells for 2.2.0:
| Artifact | Minecraft | Loader |
|---|---|---|
vsu-1.18.2-fabric-2.2.0.jar |
1.18.2 | Fabric |
vsu-1.18.2-forge-2.2.0.jar |
1.18.2 | Forge |
vsu-1.19.2-fabric-2.2.0.jar |
1.19.2 | Fabric |
vsu-1.19.2-forge-2.2.0.jar |
1.19.2 | Forge |
vsu-1.20.1-fabric-2.2.0.jar |
1.20.1 | Fabric |
vsu-1.20.1-forge-2.2.0.jar |
1.20.1 | Forge |
vsu-1.21.1-fabric-2.2.0.jar |
1.21.1 | Fabric |
vsu-1.21.1-neoforge-2.2.0.jar |
1.21.1 | NeoForge |
vsu-26.1.2-neoforge-2.2.0.jar |
26.1.2 | NeoForge |
A jar built for the wrong Minecraft version will refuse to load rather than half-start. A jar built for Forge will not load on NeoForge, and the reverse is also true, even on the same Minecraft version.
Java requirements#
The runtime Java version is fixed per lane. It comes from the mod metadata, so a mismatch fails at load time with an explicit "requires Java N" message.
| Minecraft | Java | Notes |
|---|---|---|
| 1.18.2 | 17 | Fabric metadata declares java >=17 |
| 1.19.2 | 17 | Fabric metadata declares java >=17 |
| 1.20.1 | 17 | Fabric metadata declares java >=17 |
| 1.21.1 | 21 | Fabric metadata declares java >=21 |
| 26.1.2 | 25 | NeoForge 26.1.2.93 toolchain |
Running a newer JDK than the minimum is supported for the 17 and 21 lanes. Running an older one is not. On 26.1.2, use the JDK 25 toolchain the loader itself expects.
Where the jar goes#
Drop the jar into the server's mods/ directory next to your other mods:
<server root>/
mods/
vsu-1.21.1-neoforge-2.2.0.jar
config/
world/
Do not unpack the jar. Do not put it in plugins/, which only exists on
Bukkit-derived servers that VSU does not target.
Dependencies#
| Dependency | Lanes | Required |
|---|---|---|
| Fabric Loader | Fabric cells | Yes, per lane minimum (for example >=0.16.0 on 1.21.1) |
| Fabric API | Fabric cells | Yes |
| Architectury API | 1.18.2, 1.19.2, 1.20.1 (both loaders) | Yes — declared as a required mod dependency |
| Minecraft / Forge / NeoForge | all | Yes, exact lane range |
| LuckPerms | all | No — optional soft dependency, >=5.4 |
The SQLite JDBC driver is nested inside the jar and relocated into the mod's own namespace, so you do not install it separately and it cannot collide with a driver another mod ships.
First boot#
Start the server once. VSU creates the following on first launch:
config/
vonix_server_utilities.properties
vonix_server_utilities/
data.db
kits.json
| Path | Created by | Purpose |
|---|---|---|
config/vonix_server_utilities.properties |
ModConfig.load |
The four tunable settings; written with defaults if absent |
config/vonix_server_utilities/data.db |
Database.init |
SQLite database holding homes, warps, cooldowns, punishments, crates |
config/vonix_server_utilities/kits.json |
KitManager.loadFromJson |
Kit definitions, seeded with starter, tools, food |
The database file also gets data.db-wal and data.db-shm sidecars while the
server runs. Those are part of WAL mode, not corruption; see
Database & storage.
The first boot also creates two crates, playtime and event, so the key
system is usable immediately.
Verify the download#
Every release publishes a SHA256SUMS file alongside the nine jars. Download
both, then verify from the directory containing the jar:
sha256sum -c SHA256SUMS --ignore-missing
On Windows PowerShell:
$expected = (Select-String -Path SHA256SUMS -Pattern 'vsu-1.21.1-neoforge').Line.Split(' ')[0]
$actual = (Get-FileHash vsu-1.21.1-neoforge-2.2.0.jar -Algorithm SHA256).Hash.ToLower()
if ($actual -eq $expected) { 'OK' } else { 'MISMATCH' }
--ignore-missing matters because the sums file lists all nine artifacts and
you downloaded one. A mismatch means the file is not the published build; do not
install it.
Optional: LuckPerms#
Without LuckPerms, VSU uses vanilla operator levels only. That works but is
coarse: a player is either op or limited to the commands whose op fallback is 0.
With LuckPerms installed, the 31 vsu.* nodes become grantable per group so
non-op staff and players can be given exactly the commands they need.
Install LuckPerms for your loader and Minecraft version first, start the server once so it generates its own config, then grant nodes. The recommended starting point is the group recipes in Permissions.
LuckPerms is optional, not required
VSU detects LuckPerms on the classpath at startup. If it is absent, the log
records LuckPerms not detected on classpath; using vanilla op fallback and
every permission check falls through to the operator level. Nothing breaks,
and no command is disabled.
Server-side only#
VSU declares "environment": "server" in its Fabric metadata and installs no
client entrypoint. Clients do not need the jar, vanilla clients can join, and
there is no registry, block, or item that requires a matching client mod. Do not
add it to a client instance expecting a UI; there is none.
Upgrading#
- Stop the server.
- Replace the old jar with the new one for the same lane.
- Start the server.
Schema changes are additive and applied on startup: the kit-cooldown table gains
its claim_group column in place, and the crate tables are created if missing.
No manual SQL is needed. Back up config/vonix_server_utilities/ before a
version jump anyway; see Database & storage
for a consistent backup procedure.