Vonix Server Utilities Vonix Mods v2.2.0 Search GitHub
Vonix Server Utilities/Operations/Compatibility

Compatibility#

VSU targets modded Minecraft server jars only: Fabric, Forge, and NeoForge. It is not a Bukkit-family plugin and does not run on Spigot, Paper, Purpur, or any fork of them.

Supported server software#

Server Supported Notes
Fabric server Yes Needs Fabric Loader and Fabric API for the matching Minecraft version
Forge server Yes, 1.18.2 / 1.19.2 / 1.20.1 Needs Architectury API for the same Minecraft version
NeoForge server Yes, 1.21.1 and 26.1.2 26.1.2 requires NeoForge 26.1.2.93 or newer
Vanilla server No A vanilla jar has no mod loader
Bukkit / Spigot / Paper / Purpur No Different plugin API; VSU is a mod, not a plugin
Fabric quilt Untested Quilt is loader-compatible in principle; VSU is not built or tested against it

The 26.1.2 lane is a standalone NeoForge project rather than an Architectury multi-loader build, because NeoForge 26.1.x uses a different toolchain. It has no Fabric sibling.

Hybrid servers#

Hybrid servers that mix a Bukkit plugin API with a mod loader — Mohist, Arclight, Mohist-based forks, and similar — are not supported. VSU's moderation enforcement hooks the loader chat and command events, and its command tree is registered through Brigadier. A hybrid that routes chat or commands through a plugin layer can bypass or break both, and the symptom is silent: mutes that do not apply, permissions that are not consulted.

If you must run a hybrid, treat VSU's moderation as unreliable and test every enforcement path explicitly. There is no supported configuration for it.

Clients#

Clients need nothing. VSU declares "environment": "server" in its Fabric metadata, registers no client entrypoint, and adds no blocks, items, entities, or GUI screens.

The practical consequences:

  • Vanilla clients can join a server running VSU.
  • Modded clients that do not have VSU can join.
  • A client that happens to have VSU installed is harmless; the client-side classes do nothing.
  • Nothing about VSU appears in a client's mod list requirement check, so there is no "missing mod" disconnect.

The one client-visible effect is chat formatting: when LuckPerms supplies prefix, suffix, or name colour metadata, chat lines arrive pre-formatted as components. A vanilla client renders them normally.

Release cells#

Nine artifacts, one per Minecraft version and loader combination.

Cell Minecraft Loader Java Jar
1 1.18.2 Fabric 17 vsu-1.18.2-fabric-2.2.0.jar
2 1.18.2 Forge 17 vsu-1.18.2-forge-2.2.0.jar
3 1.19.2 Fabric 17 vsu-1.19.2-fabric-2.2.0.jar
4 1.19.2 Forge 17 vsu-1.19.2-forge-2.2.0.jar
5 1.20.1 Fabric 17 vsu-1.20.1-fabric-2.2.0.jar
6 1.20.1 Forge 17 vsu-1.20.1-forge-2.2.0.jar
7 1.21.1 Fabric 21 vsu-1.21.1-fabric-2.2.0.jar
8 1.21.1 NeoForge 21 vsu-1.21.1-neoforge-2.2.0.jar
9 26.1.2 NeoForge 25 vsu-26.1.2-neoforge-2.2.0.jar

What each cell targets:

  • 1.18.2, 1.19.2, 1.20.1 (Forge) — Forge 40, 43, and 47 minimum respectively, plus Architectury API. Minecraft dependency ranges are pinned to the minor line, so the 1.20.1 jar accepts [1.20.1,1.21).
  • 1.18.2, 1.19.2, 1.20.1 (Fabric) — Fabric Loader >=0.19.2 on the 1.19.2 and 1.20.1 lanes, >=0.16.0 on 1.21.1, plus Fabric API and Architectury API.
  • 1.21.1 (Fabric and NeoForge) — NeoForge [21.1,) on the NeoForge cell. No Architectury dependency is declared on the 1.21.1 Fabric cell's metadata beyond the shared build; check the jar's metadata if you are pinning versions.
  • 26.1.2 (NeoForge) — NeoForge [26.1.2.93,), Minecraft pinned to exactly [26.1.2].

Each lane has its own mods.toml / neoforge.mods.toml / fabric.mod.json with those ranges. The loader enforces them, so an out-of-range loader produces a dependency error rather than a partial start.

The mod id is vonix_server_utilities on every cell. A server cannot run two different Minecraft-version jars of VSU at once, and putting two copies of the same jar in mods/ produces a conflict.

Standalone boundary in 2.2.0#

VSU 2.2.0 is server-local and self-contained. The following do not exist in this version, and any guide that describes them is describing an older or different product:

Not present Detail
Public API or SPI package The api package and its service-loader contract were removed; there is no third-party extension point
HTTP client No outbound requests of any kind
Account linking No player-to-account association
Site or control-panel integration No panel protocol, no remote control surface
Donation-rank sync No rank mirroring; LuckPerms is the only rank source
Feature polling No remote feature registry; internal feature keys are always open
Remote configuration Config is a local file only

The changelog records the removal of the account-link, site, player-sync, feature-polling, and donation-rank paths, along with the public inventory SPI. /backsee still resolves Curios, capability, DataComponents, and legacy-NBT inventories, but through private implementation classes (network.vonix.serverutilities.inventory.internal), not a registration API.

If you need panel or web integration, it is a separate product in the Vonix line-up, not a VSU feature. Do not expect a config key or a command to enable it.

LuckPerms#

LuckPerms is an optional soft dependency, declared as optional in the Forge and NeoForge metadata and listed under suggests in the Fabric metadata, version >=5.4 where a range is given.

LuckPerms state Behaviour
Not installed Every check falls through to the vanilla operator level. Log line: LuckPerms not detected on classpath; using vanilla op fallback.
Installed, nodes granted Nodes are honoured for non-op players, and operators still pass through the op check
Installed, nothing granted Op-0 commands work for everyone, op-2 and op-3 commands need operator level. No lockout
Installed, then removed Detection is at class load; a restart re-probes. On the next start the mod logs the fallback line and uses operator levels

VSU never writes to LuckPerms. It does not create groups, assign ranks, or sync anything. All grants are yours to manage, and the recipes on Permissions are suggestions rather than something the mod installs.

Chat metadata is read through the same bridge: prefix, suffix, and name colour are pulled from the player's cached LuckPerms data and applied to the chat line. If LuckPerms is absent, or the user has no metadata, VSU leaves the message alone and the vanilla format is used.

Accessory and inventory peeking#

/invsee uses VSU's own container view and needs nothing installed.

/backsee walks an ordered list of resolvers to find a container held or worn by the target:

Resolver Priority What it finds
vonix:curios 100 Curios slots, when Curios is present
vonix:data_components 150 Vanilla DataComponents.CONTAINER contents (1.21+)
vonix:capability 200 Any IItemHandler reachable by reflection
vonix:legacy_nbt 300 Items, inventory, and BlockEntityTag.Items NBT walks

Higher priority runs first. A resolver that throws is logged and skipped, and the next one is tried, so one broken mod's inventory shape cannot break the command. The list is built in, not extensible.

/accsee uses the loader accessory bridge, which is not finished in 2.2.0. On both Fabric and NeoForge the bridge answers with a "not fully mapped yet" message instead of opening a menu. Curios is a compile-only dependency on the Forge and NeoForge side and Trinkets on the Fabric side; neither is required at runtime and neither currently produces a working accessory view.

Chat formatting#

When LuckPerms supplies metadata, VSU rewrites the outgoing chat line as:

<prefix> <name> <suffix> <message>
  • prefix and suffix are parsed for legacy colour codes, including &-style codes and &#rrggbb hex.
  • name colour comes from the LuckPerms meta value; a hex value or a named colour is accepted.
  • Empty prefix or suffix is omitted rather than leaving a double space.

On Fabric the formatted component is broadcast by the mod and the original event is cancelled; on NeoForge the event's message component is replaced. If anything in that path throws, VSU logs the failure once and leaves vanilla formatting in place, so a broken metadata value cannot silence chat.

A player with no LuckPerms metadata is unaffected and keeps the vanilla <name> message format.

Interaction notes#

Other chat mods. VSU cancels the loader chat event for muted players. A mod that broadcasts chat through its own channel rather than the loader event can bypass the mute. Test with a second account if you run a custom chat mod.

Other permission mods. Only LuckPerms is detected. A different permissions mod is invisible to VSU, so its grants do nothing and its denials do not apply; the operator level remains the only non-VSU authority.

World management mods. Homes and warps store a dimension id string. A mod that renames or removes a dimension leaves those rows pointing at a world that no longer loads, and the command reports "world is unavailable" rather than teleporting.

Backup mods. Back up config/vonix_server_utilities/ as a unit. A backup that captures data.db without its WAL sidecar can restore to a state missing recent writes; the .backup procedure on Database & storage avoids that.