auth-limbo/docs/configuration.md
s8n-ru cb746147f0 Rename: LoginLimbo -> AuthLimbo
User wants name to literally be 'auth-limbo' to match the auth_limbo
world the plugin manages. Same functionality, same code, just renamed.
2026-04-30 19:19:26 +01:00

3.8 KiB

Configuration reference

plugins/AuthLimbo/config.yml is created on first start with the defaults below. Reload at runtime with /authlimbo reload.

limbo:
  world: auth_limbo
  spawn-x: 0.5
  spawn-y: 128.0
  spawn-z: 0.5
  build-platform: true
  platform-y: 127

authme:
  db-path: plugins/AuthMe/authme.db
  teleport-delay-ticks: 10
  preload-chunks: true

debug: false

limbo.*

Settings for the void auth-limbo world. The plugin creates this world on enable if it does not already exist.

limbo.world

Type string
Default auth_limbo

The Bukkit world name. The world folder will live at the server data root (<world-name>/). Changing this after the world has been created will cause the plugin to create a second world with the new name on next start; the old one is left on disk and you can delete it manually.

limbo.spawn-x, limbo.spawn-y, limbo.spawn-z

Type double
Defaults 0.5, 128.0, 0.5

World spawn coordinates inside auth_limbo. The .5 offsets put the player on the centre of a block, which avoids fall-through edge cases when standing on the barrier platform.

limbo.build-platform

Type boolean
Default true

If true, the plugin builds a 5x5 patch of BARRIER blocks at platform-y directly under spawn so unauth players cannot fall into the void. Disable if you want to manage the platform yourself with a schematic.

limbo.platform-y

Type integer
Default 127

Y-level of the barrier platform. Should be exactly one below spawn-y so players land on top of the barriers.

authme.*

Settings for the AuthMe integration.

authme.db-path

Type string
Default plugins/AuthMe/authme.db

Path to AuthMe's SQLite database. Resolved relative to the server data directory if not absolute. Only SQLite is supported — if your AuthMe deployment uses MySQL, this plugin won't read your data and the LoginEvent restore will be a no-op.

authme.teleport-delay-ticks

Type long
Default 10 (≈ 0.5 s at 20 TPS)

How many ticks to wait after AuthMe's LoginEvent fires before issuing our authoritative teleport. The delay exists so AuthMe's own (broken) teleport runs first; we then overwrite the player position with the correct one.

If you see players briefly appearing at world spawn before snapping to their saved location, lower this value. If you see the saved-location teleport fail because some other plugin teleports the player in between, raise it.

authme.preload-chunks

Type boolean
Default true

If true, the plugin listens to AuthMeAsyncPreLoginEvent and pins the chunk at the saved quit-location with Chunk#addPluginChunkTicket before the password check completes. This warms the chunk so the actual getChunkAtAsyncUrgently + teleportAsync chain roughly 1 second later does not race against an unloaded chunk (PaperMC/Paper#4085).

The ticket is released ~5 seconds after the teleport completes — long enough for the client to download the chunk before it can unload.

Disabling this is safe — the post-login getChunkAtAsyncUrgently call will still load the chunk before teleporting — but you may see the original teleport bug re-emerge under load if AuthMe's own teleport fires before the chunk is ready.

debug

Type boolean
Default false

If true, the plugin logs every chunk forceload, every teleport result, and every "no saved location" decision at INFO level. Useful when diagnosing a player report; noisy in production.

limbo.world cannot be changed without a full server restart — the limbo world is created during onEnable. Other keys take effect on /authlimbo reload.