SpawnManagementPlus
v1.2.4SpawnManagementPlus is a powerful, lightweight utility plugin for Minecraft servers designed to give
SpawnManagementPlus is a powerful, lightweight utility plugin for Minecraft servers designed to give administrators granular control over player spawning, teleportation, and entry experiences. Whether you want to create a custom join sequence, manage multi-world transitions, or customise the respawn process, this plugin provides a centralised configuration to handle it all.
Key Features
- Custom Join Handling: Force players to a designated spawn upon login (or restrict it to first-time connections only).
- World Transition Control: Automatically sweep players to a specific world spawn point whenever they cross world boundaries.
- Advanced Respawn Logic:
- Bypass the vanilla "You Died" screen for seamless, instant respawns.
- Configurable item spreading to prevent inventory glitching on instant death loops.
- Granular toggles to respect or completely override Respawn Anchors and Beds.
- Dynamic /spawn Engine:
- Built-in teleportation warm-up timer.
- Intelligent movement detection to cancel warm-ups if a player moves.
- Highly customisable per-second countdown titles, notifications, and sounds.
- Rich Media & Customisation:
- Native PlaceholderAPI integration across all text modules.
- Flexible layouts: Toggle dynamically between CHAT or ACTION_BAR notifications.
- Per-event audio triggers featuring fully customisable pitches and volumes.
Configuration
The config.yml is structured into logical modules. Each module can be independently enabled or disabled.
SpawnManagementPlus:
# Perform this action when a player is joining the server.
on_server_join:
enabled: false
exclude: # Are there any worlds that should not do this?
- world_nether
- world_end
action: # What is it that you want the server to do to the user: Teleport, Play Sound, Send message?
sound:
enabled: false
type: minecraft:block.note_block.pling # You can find a list of sounds by running /playsound in game, and finding the name of the sound that you would like to play.
volume: 1
pitch: 1
location: # This can be set in game using the command "/smp location server"
world: world # if using multiple worlds, YOU MUST have a world loader.
x: 0
y: 0
z: 0
yaw: 0
pitch: 0
message_type: CHAT # Supports either CHAT or ACTION_BAR
message: # Should the player receive a message? You can send multiple messages to the player. Supports Placeholder API. Supports Placeholder API. You can use [] to disable messages, e.g. message: []
- ""
- "&d&lWelcome to Survival %player_name%!"
- "&bStarter Commands: ⁄ʜᴇʟᴘ ⁄ʀᴛᴘ ⁄ѕʜᴏᴘ ⁄ʜᴏᴍᴇѕ ⁄ᴀʜ"
- ""
# Should the server handle first joins differently?.
only_on_first_time:
enabled: false
use_on_server_join_default: true # Overwrite the below settings to use the on_server_join defaults.
action:
sound:
enabled: false
type: minecraft:block.note_block.pling # You can find a list of sounds by running /playsound in game, and finding the name of the sound that you would like to play.
volume: 1
pitch: 1
location:
world: world # if using multiple worlds, YOU MUST have a world loader.
x: 0
y: 0
z: 0
yaw: 0
pitch: 0
message_type: CHAT # Supports either CHAT or ACTION_BAR
message: # Should the player receive a message? You can send multiple messages to the player. Supports Placeholder API. Supports Placeholder API. You can use [] to disable messages, e.g. message: []
- ""
- "&d&lWelcome to Survival %player_name%!"
- "&bStarter Commands: ⁄ʜᴇʟᴘ ⁄ʀᴛᴘ ⁄ѕʜᴏᴘ ⁄ʜᴏᴍᴇѕ ⁄ᴀʜ"
- ""
# When a player changes world, should they spawn at world spawn?
on_world_join:
enabled: false
exclude: # Are there any worlds that should not do this?
- "the_nether"
- "the_end"
action:
sound:
enabled: false
type: minecraft:block.note_block.pling # You can find a list of sounds by running /playsound in game, and finding the name of the sound that you would like to play.
volume: 1
pitch: 1
location: # Since it is only player rotation, there is no command for this.
yaw: 0
pitch: 0
message_type: CHAT # Supports either CHAT or ACTION_BAR
message: # Should the player receive a message? You can send multiple messages to the player. Supports Placeholder API. Supports Placeholder API. You can use [] to disable messages, e.g. message: []
- ""
- "&d&lWelcome to Survival %player_name%!"
- "&bStarter Commands: ⁄ʜᴇʟᴘ ⁄ʀᴛᴘ ⁄ѕʜᴏᴘ ⁄ʜᴏᴍᴇѕ ⁄ᴀʜ"
- ""
# Perform this action when a player is respawning.
on_respawn:
enabled: false
use_world_default_spawn_location: false # Should the respawn location use the world default? Will override on_respawn.action.location
skip_respawn_screen: false # Should they be forced to click 'respawn' in the death screen?
use_game_death: true # Will force the player to respawn, without faking player death. e.g. don't actually kill the player, teleport player to spawn, heal, drop items, etc. if true, this will cause the death screen to flash for a second and will allow other plugins to handle death correctly.
spread_items_on_death: true # Only works when skip_respawn_screen is set to true and use_fake_death is false as use_fake_death=true allows the game to handle death itself.
# Should the player spawn at a bed/anchor location if it is available?
prefer_bed_location: false
prefer_anchor_location: false
action:
sound:
enabled: false
type: minecraft:block.note_block.pling # You can find a list of sounds by running /playsound in game, and finding the name of the sound that you would like to play.
volume: 1
pitch: 1
location: # if you use_world_default_spawn_location=false then location will get overwritten.
world: world # if using multiple worlds, YOU MUST have a world loader.
x: 0
y: 0
z: 0
yaw: 0
pitch: 0
message_type: CHAT # Supports either CHAT or ACTION_BAR
message: # Supports Placeholder API. You can use [] to disable messages, e.g. message: []
[ ]
commands:
spawn:
enabled: false
insufficient_permission_error_message: "&cYou do not have permission to run this command."
you_are_already_teleporting: "&cYou can not use this right now!"
use_on_server_join_location: true # Should the location in SpawnManagementPlus.on_server_join.action.location be used?
location: # Can be set by doing "/smp location set spawn_cmd" This location will not be used if you use_on_server_join_location=true
# Gets overwritten if you use_on_server_join_location=true
world: world # if using multiple worlds, YOU MUST have a world loader.
x: 0
y: 0
z: 0
yaw: 0
pitch: 0
# Should the spawn command, use a countdown? This is useful for pvp/pve environments where you don't want the player to prevent death by teleporting away.
cooldown_timer:
seconds: -1 # -1 to disable. How long should the timer be?
# What should happen while the timer is counting down?
on_interval:
sound:
enabled: false
type: minecraft:block.note_block.pling # You can find a list of sounds by running /playsound in game, and finding the name of the sound that you would like to play.
volume: 1.0
pitch: 1.0
message_type: ACTION_BAR # Supports either CHAT or ACTION_BAR
message: # Should the player receive a message? You can send multiple messages to the player. Supports Placeholder API. Supports Placeholder API. You can use [] to disable messages, e.g. message: []
- "&aTeleporting in %smp_second%!"
# What should happen when the player successfully teleports?
on_teleport:
sound:
enabled: false
type: minecraft:block.note_block.pling # You can find a list of sounds by running /playsound in game, and finding the name of the sound that you would like to play.
volume: 1.0
pitch: 1.0
message_type: CHAT # Supports either CHAT or ACTION_BAR
message: # Should the player receive a message? You can send multiple messages to the player. Supports Placeholder API. Supports Placeholder API. You can use [] to disable messages, e.g. message: []
- "&aTeleporting..."
# What should happen when the player moves while the timer is active?
on_move:
cancel: true # Cancel the timer when the player moves?
sound:
enabled: false
type: minecraft:block.note_block.pling # You can find a list of sounds by running /playsound in game, and finding the name of the sound that you would like to play.
volume: 1.0
pitch: 1.0
message_type: CHAT # Supports either CHAT or ACTION_BAR
message: # Should the player receive a message? You can send multiple messages to the player. Supports Placeholder API. Supports Placeholder API. You can use [] to disable messages, e.g. message: []
- ""
- "&cYou moved! Teleport cancelled."
- ""
# Smp command error messages.
smp:
insufficient_permission_error_message: "&cYou do not have permission to run this command."
saved_data_message: "&aLocation was saved successfully"
saved_data_failed_message: "&cLocation save failed!"
____________________________________________________________________________________________________
Commands & Permissions
/smp or /SpawnManagementPlus
» Description: Main administrative management command.
» Permission: SpawnManagementPlus.smp
/smp location spawn_cmd
» Description: Establishes the target position for the /spawn command.
» Permission: SpawnManagementPlus.smp.set.spawn
/smp location server_join
» Description: Establishes the target spawn point for incoming server connections.
» Permission SpawnManagementPlus.smp.set.server_join
/smp location respawn
» Description: Establishes the fallback anchor for player deaths.
» Permission: SpawnManagementPlus.smp.set.respawn
/smp reload
» Description: On-the-fly reload of internal values and modules.
» Permission: SpawnManagementPlus.reload
____________________________________________________________________________________________________
Configuration Deep-Dive
Every component within config.yml operates inside isolated, togglable modules.
1. Global Join Logic (on_server_join)
Manages the player onboarding experience.
* only_on_first_time: Toggle true to treat this solely as a unique "Starter Spawn" for rookies.
* exclude: A blocklist array of worlds where join logic shouldn't run (e.g., preserving players logging out safely in safe zones or the End).
2. Multi-World Logic (on_world_join)
Fires the moment a player navigates across world maps via portals or external commands. Excellent for keeping instances tidy by resetting player landing points back to a central gateway gate.
3. Respawn Management (on_respawn)
Optimises the vanilla loop when players fall in combat.
* skip_respawn_screen: Instantly wipes the red death overlay screen, accelerating gameplay return.
* spread_items_on_death: Works alongside the screen skip to drop items naturally into the world workspace without code conflicts.
* prefer_bed_location / prefer_anchor_location: Disable these to force your custom coordinates over personal player spawn anchors.
4. The Spawn Command (commands.spawn)
* cooldown_timer.seconds: The warm-up window duration. Input -1 for instant tracking.
* on_move.cancel: If movement is detected during countdown tracking, operations abort immediately.
* on_interval: Sends tailored triggers each second of the countdown. Use %smp_second% here.
____________________________________________________________________________________________________
Crucial Notes
- World Loaders: If utilising multi-world frameworks (Multiverse-Core, MyWorlds, etc.), ensure teleports work correctly.
- Sound Formats: Audio asset names must match minecraft keys (e.g., minecraft:entity.enderman.teleport or block.note_block.pling).
- Disabling Messages: To completely silence a string or alert without using enabled:false, configure the message: as empty brackets: [].
FEATURE REQUESTS: If you have a specific feature that you feel is missing, or a bug report. Feel free to write an issue on the Github.
Reviews: Please leave a review based on your experience!
The code in this project was written without the use of Machine Learning Tools, such as Google Gemini, Claude Code or self host alternatives, additionally, this plugin does not collect or store user information. However, Machine Learning Tools have been used assist in converting the repositories readme.md into a forum post. Please check the source code readme.md for accurate & updated information.
Similar projects
Plugin →Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta
Emotecraft
Create your own emotes in Minecraft.
7.5MSueta
Simple Tpa
A simple tpa plugin which sends requests
5.4MSueta
Common Network
Forge and Fabric Unified Networking Solution
3.9MSueta
Set Home
A lightweight plugin for players to set their homes.
3.8MSueta