LSpawn
A lightweight spawn & respawn management plugin · built for Paper / Folia
LSpawn is a plugin for spawn point management and death respawn control, fully adapted to Folia's region-threading model.
- 🎯 Target server: Paper / Folia 26.1 (
api-version: 26.1) - ☕ Requires Java 25+
- ✍️ Author: Dainsleif
- 📄 License: GPL-3.0
✨ Features
/spawn— teleport to the spawn point with one command/setspawn//delspawn— set / remove the main spawn point/setfirstspawn//delfirstspawn— set / remove the first-join spawn point (new players are sent here on their first join)- Death respawn control — respawn at spawn by default; optionally keep bed / respawn anchor respawn points
- Optional: teleport players to spawn on every join
/lspawn reload— hot-reload the configuration- Built-in bilingual messages (
language: zh_cn | en_us, MiniMessage, freely editable)
🛠 Commands & Permissions
| Command | Description | Permission | Default |
|---|---|---|---|
/spawn |
Teleport to spawn | lspawn.spawn |
everyone |
/setspawn |
Set the main spawn (current position) | lspawn.setspawn |
OP |
/delspawn |
Remove the main spawn | lspawn.delspawn |
OP |
/setfirstspawn |
Set the first-join spawn | lspawn.setfirstspawn |
OP |
/delfirstspawn |
Remove the first-join spawn | lspawn.delfirstspawn |
OP |
/lspawn reload |
Reload configuration | lspawn.reload |
OP |
All nodes are prefixed
lspawn.and can be granted / revoked individually via a permissions plugin such as LuckPerms.
⚙️ Configuration
Spawn data is stored in config.yml (also writable via commands). Key options:
language: zh_cn # message language: zh_cn / en_us
debug: false # debug logging (for troubleshooting)
respawn:
at-spawn: true # respawn at spawn (default fallback)
at-bed: false # keep bed respawn points
at-anchor: false # keep respawn-anchor respawn points
join:
teleport-to-spawn: false # teleport to spawn on every join
The messages section ships both zh_cn and en_us MiniMessage sets, freely editable (placeholders: {world} {x} {y} {z}).
🧵 Folia Compatibility
plugin.ymldeclaresfolia-supported: true- All teleports use
teleportAsync, which is thread-safe - Note: Folia disables the vanilla respawn path that fires
PlayerRespawnEventand uses its own respawn flow instead. This plugin therefore implements respawn on Folia by writing a forced respawn location at death plus a post-respawn fallback teleport.respawn.at-bed/respawn.at-anchorpreserve real bed / anchor respawn points on Folia via a block check at death (fully functional on Paper) - First-join / join teleports are deferred by 1 tick to avoid teleporting during
placeNewPlayer

