Plugin compatibility
Which plugins work on Storia, and what plugin developers need to know.
Storia uses Folia's threading model, so only plugins that support Folia work. A plugin declares support
with this line in its plugin.yml:
folia-supported: true
Plugins without it are refused at startup, exactly as on Folia. This protects your server: a plugin written for single-threaded Paper would corrupt data or crash on a multithreaded server.
Finding compatible plugins#
- Look for "Folia" in the plugin's description or supported platforms on Hangar, Modrinth or SpigotMC.
- Many popular plugins support Folia: LuckPerms, spark, Chunky, CoreProtect (recent versions), and others.
- Storia also reports itself as Folia-compatible:
ServerBuildInfo#isBrandCompatible(Key.key("papermc", "folia"))returnstrue, so plugins that check for Folia behave as they would on Folia.
Chunky
Chunky works on Storia, but /storia pregen is usually faster, because it raises the chunk worker pool to all
cores but one while it runs. See Chunk pregeneration.
For plugin developers#
Build against the Folia API (or Paper API, avoiding what Folia does not support). Everything Folia requires applies to Storia:
- Use the region-aware schedulers:
Bukkit.getRegionScheduler(),Bukkit.getGlobalRegionScheduler(),entity.getScheduler()andBukkit.getAsyncScheduler(), notBukkitScheduler. - Only touch a chunk, block or entity from the thread that owns it. Use
Bukkit.isOwnedByCurrentRegion(...)to check. - Teleport with
teleportAsync.
See Folia's documentation for the full guide.
Detecting Storia#
ServerBuildInfo info = ServerBuildInfo.buildInfo();
boolean storia = info.brandId().equals(Key.key("storia", "storia"));
boolean foliaLike = info.isBrandCompatible(Key.key("papermc", "folia")); // true on Folia and Storia
Player view distance#
The Per-player budget changes players' view distance (and, only if enabled, simulation distance) through the same
per-player mechanism as Player#setViewDistance. If your plugin sets per-player distances too, the two will
override each other. Disable the budget, or leave distances to Storia.