Skip to content

Compatibility

BeestoXd edited this page Aug 15, 2026 · 1 revision

Compatibility

Supported

Software Minecraft range
Paper / Spigot / Bukkit 1.21.1026.2
Folia 1.21.1126.2

Java 21 or newer is required. The ranges are baked into the jar at build time and reported by /spawner version.

Platform detection

The platform is detected from classes on the server, not from a name string:

Detected as Because
Folia io.papermc.paper.threadedregions.RegionizedServer is present
Paper Paper configuration or scheduler classes are present
Spigot org.spigotmc.SpigotConfig is present
Bukkit none of the above

Forks are detected as whatever they are built on — Purpur and Pufferfish report Paper, and are supported on that basis.

If Folia classes are on the classpath but the platform did not resolve to Folia, the plugin logs a warning and runs in Folia-safe mode:

[Compatibility] Folia classes detected on a non-Folia platform report; running in Folia-safe mode.

The version gate

COMPATIBILITY:
  ENABLED: true
  STRICT: true
Key Default Effect
ENABLED true false = log a warning and start anyway on an unsupported server.
STRICT true true = an unparseable Minecraft version counts as unsupported. false = allow it through with a warning.

Both are read before anything else loads, so a change needs a restart.

On a healthy start the console shows:

[Compatibility] Paper 1.21.10 (supported: 1.21.10 - 26.2)

On an unsupported one the plugin refuses to enable and prints a boxed report:

+--------------------------------------------------------------+
|            UltimateVirtualSpawner FAILED TO ENABLE           |
+--------------------------------------------------------------+
| This server is not supported by this plugin build.           |
|                                                              |
| Plugin version   : 1.0                                       |
| Server software  : Paper                                     |
| Server version   : 1.21.4                                    |
| Supported range  : 1.21.10 - 26.2                            |
|                                                              |
| Reason: your Minecraft version is TOO OLD.                   |
| Update the server to at least 1.21.10.                       |
|                                                              |
| Supported software:                                          |
|   Paper / Spigot / Bukkit : 1.21.10 - 26.2                   |
|   Folia                   : 1.21.11 - 26.2                   |
+--------------------------------------------------------------+

Three failure reasons: TOO_OLD, TOO_NEW, and UNKNOWN_VERSION (the version string could not be parsed).

The escape hatches

Both are unsupported paths. Nothing is guaranteed, and bug reports from a server running outside the range will be asked to reproduce inside it.

Unparseable version — a fork with an unusual version string:

COMPATIBILITY:
  STRICT: false

The version cannot be checked, so it is allowed through with a warning. This is the milder of the two, and the right choice for an exotic fork on a supported Minecraft version.

Skip the gate entirely:

COMPATIBILITY:
  ENABLED: false

Starts on any server. Use this for testing a new Minecraft release before an updated build exists — and expect breakage, since a new version can change the Bukkit APIs the plugin relies on.

Folia

The plugin is Folia-native, not merely Folia-tolerant. Every piece of world access is dispatched through the appropriate scheduler:

Work Scheduler
Reading or writing a spawner block region scheduler, for that block's region
Anything involving a player entity scheduler, for that player
The generation task global scheduler, dispatching per-region work
Teleporting from the admin panel asynchronous teleport API

Nothing assumes a main thread. On Paper the same code paths fall back to the ordinary Bukkit scheduler, so behaviour matches on both.

Confirm which one is active:

/spawner version
Scheduler: Folia (regionised)

Folia's minimum is 1.21.11 rather than 1.21.10 because the regionised scheduler API this plugin uses landed in that build.

Java

Built for Java 21. On an older JVM the server logs UnsupportedClassVersionError and the plugin never loads. Check with:

java -version

Java 21, 22, 23, 24 and 25 all work; 21 is the minimum.

Optional dependencies

Plugin Needed for Without it
Vault Sharing the economy, or using an external one The built-in economy still works
PlaceholderAPI The uvs placeholder expansion Placeholders are not registered; everything else works

Both are soft dependencies — the plugin loads after them if present, and loads fine if not.

Known interactions

Plugin type Notes
Claim / protection plugins Cancelled block-place and block-break events are honoured, so claims work normally. Note that hopper extraction has no ownership check — protect the block below a spawner if you enable it.
Other spawner plugins Do not run two. Both will handle the same events, and the outcome depends on event priority.
Anti-X-ray Composes fine. Anti-ESP sends client-side block changes for managed spawners only; server-side anti-X-ray handles the rest of the world.
World-edit style tools Pasting a schematic containing spawner blocks does not create managed spawners — they are ordinary spawners until placed from a spawner item.

Reporting a compatibility problem

Include the whole of:

/spawner version
/version
java -version

plus the full stack trace from logs/latest.log — not a screenshot of chat. Open an issue at github.com/BeestoXd/UltimateVirtualSpawner/issues.

See also

Clone this wiki locally