FAQ
On this page(33)
How do I update SnHub?
Download the newer snhub-v* release and replace the jar. Configs auto-merge on restart.
Does it support Folia?
No, SnHub is not Folia-compatible. It runs on Paper 1.20.x and 1.21.x.
Why does the plugin not appear in /plugins?
Two usual causes. Either SnLib.jar is missing from plugins/, or the key in plugins/.Sn-License/license.yml is still the placeholder. A key that fails the online check has the same effect. The server log then shows [Sn] License: FAIL. See Installation.
Can I run SnHub next to SnJoinItem?
No. SnHub replaces SnJoinItem on hub servers. Both pin hotbar slots and would fight over the same items.
Do I need PlaceholderAPI or LuckPerms?
No. Nothing needs either of them to run. PlaceholderAPI adds the %snhub_*% placeholders. LuckPerms is only used by the multi-hub group sync.
Do I need a proxy plugin?
No. SnHub is backend-only. You need a Velocity or BungeeCord proxy for the server selector, the live player counts and the network. On Velocity, set bungee-plugin-message-channel = true, which is the default.
How do I set the spawn?
Stand where players should arrive and run /snhub setspawn. Until you do, players go to the hub world spawn, and an admin is told how to set it.
Why does every player land on the spawn when they join?
By design. With spawn.teleport-on-join on, SnHub sends every player to the spawn, not to their last location. Turn it off to keep last locations.
How do I add a button to the server selector?
Add a template to guis/selector.yml, then add one more b to its button row in layout. The button runs [connect] <server>, where <server> is the server name in your proxy config. Keep the row symmetric, then run /snhub reload.
How do I show live player counts in a menu?
Write {count_<server>} or {count_total} in a button name or lore. List the server in servers.list of config.yml, spelled as in your proxy config. You do not need PlaceholderAPI for this.
How do I add my own hotbar item?
Add a block to items.yml, using the SnLib item spec. Copy the rules example and change the id. Then add an entry for it under hotbar.layout in config.yml with a slot from 0 to 8. Then run /snhub reload.
How do I make a hotbar item VIP only?
Write a node in the permission field of its entry under hotbar.layout. Only players with that node receive the item.
How do I add another menu?
Drop another file into guis/. Open it with [open] <menu> in an item action, or with /snhub open <menu> [player].
How do I open a menu from an NPC?
Run /snhub open <menu> {player} from the console in your NPC plugin. A successful open is silent in the console.
Why can I not break or place blocks in the hub?
The hub protections are on by default in the hub worlds. Run /snhub build to bypass them, or switch off a single rule under protection in config.yml.
Which worlds count as the hub?
The ones listed under worlds in config.yml. An empty list makes every world a hub world.
How does PvP mode work?
Hold the PvP sword slot. After the countdown you get the PvP armor and sword, and you can fight other PvP-mode players only. Select another slot to leave. It needs snhub.pvp.
What is the difference between the legacy and modern combat style?
legacy gives 1.8 combat to PvP-mode players only, with no attack cooldown and no sweep attack. modern keeps the vanilla 1.9+ cooldown and sweep.
Why do the Ender Butt and the Bow Teleport not work in PvP mode?
pvp.disable-game-items is on by default. Both items are also off in build mode.
Do hidden players stay in the TAB list?
On Paper 1.20.5 and newer, yes. On Paper 1.20.0 to 1.20.4 they also leave TAB, and SnHub logs one warning. Two players that are both in PvP mode always see each other.
Why does the double jump not work?
You need snhub.doublejump, a hub world, and normal mode, which excludes PvP mode and build mode. You also need survival or adventure. A player another plugin lets fly is left alone.
Why does a launch pad not launch me?
You need snhub.launchpad and a hub world. The plate must match launch-pads.plate. When launch-pads.block-below is set, the plate must also stand on that block.
How do I set up the multi-hub network?
Set database.type: mysql on every hub, pointing at the same database. Then set network.enabled: true and restart. With SQLite or network.enabled: false, every local feature works and the network commands answer that the module is off.
How do I set the server id of a hub?
Set network.server-id to the hub's server name in your proxy config. The default auto asks the proxy on the first join. A configured id that differs from the proxy name logs a warning. network.enabled and network.server-id apply after a restart.
What does the LuckPerms group sync cover?
Only context-free group memberships of the groups in network.luckperms.groups, including temporary groups and their expiry. It never syncs permission nodes, meta, prefixes or group definitions. The group default never syncs, and the last write wins.
Should I enable the LuckPerms group sync if my servers share one LuckPerms database?
No. Keep network.luckperms.enabled: false in that case.
What does /snhub network push publish?
items.yml, guis/, lang/, the spawn and config.yml without its database and network sections. Other hubs apply the revision automatically with network.shared-config.auto-pull, or on /snhub network pull.
How many languages does SnHub include?
One: English. The lang key in config.yml loads lang/messages_<code>.yml and falls back to English. Every message is in that file.
Known limitations
How does the hub learn its id with network.server-id: auto?
The id comes from the proxy's GetServer reply, which arrives after the first player joins. Until then the id is unknown, and push and import answer that. Set network.server-id explicitly on each hub to skip auto-detection.
Why did a second LuckPerms change not reach the other hubs?
A second change to the same player and group may stay local. This happens within about 30 seconds of a sync from another hub. Repeat the change if needed.
Why are the hub game rules still off after I removed SnHub?
SnHub switches doDaylightCycle, doWeatherCycle and doMobSpawning off in hub worlds. It does not restore them after a restart or removal. Run /gamerule to restore them.
Why do hidden players also leave the TAB list on my server?
On Paper 1.20.0 to 1.20.4 the TAB packet layer is a clean no-op, so hidden players also leave TAB. SnHub logs one console warning.