SimpleSpawn
1.10New Warp System! (/sw) /ss setspawn 1 | /ss deletespawn | /ss lockspawn 1 | ss unlockspawn 1 | /spawn <id> or only /spawn
Feedback and suggestions
English: Google Form
Deutsch: Google Formular
SimpleSpawn
SimpleSpawn is a spawn plugin that is quick to set up but lets you change pretty much everything. Players can be sent to spawn when they join, join for the first time, respawn or fall into the void, and every teleport can have its own particles, sounds and messages.
It also ships with SimpleWarp, a small warp system that uses the same delay, cooldown and cancel options. If you don't need warps, just turn it off in warpconfig.yml.
Features
- Multiple spawns with IDs and optional names (
/spawn 2or/spawn lobby) - Send other players to spawn (
/spawn lobby Steve) - Teleport on first join, on every join, on respawn and when falling into the void
- Particles and sounds for every teleport, set up separately for each action
- Chat and actionbar messages, all editable, with hex colors and gradients
- PlaceholderAPI support in messages (optional)
- Teleport delay with countdown, plus a cooldown
- Teleport gets cancelled when the player moves or takes damage
- Block teleports from certain worlds
- Lock spawns so only players with the bypass permission can use them
- Optional permission per spawn and per warp (
simplespawn.spawn.<id>,simplewarp.warp.<name>) - Custom join and leave messages
- Bypass permissions for every restriction
/ss updateconfigadds new options to an old config without touching your settings- Built-in warp system (SimpleWarp)
Compatibility
- Paper, Purpur, Folia and Spigot
- Minecraft 1.20.x up to 26.3
- Java 17 or newer
On Paper, Purpur and Folia the target chunk is loaded async before teleporting, so sending players to a far away spawn won't lag the server.
Particle names from before and after 1.20.5 both work (for example VILLAGER_HAPPY and HAPPY_VILLAGER), so you don't have to change your config when you update the server.
Colors: normal & codes, hex like �a4fc and gradients like <GRADIENT:#4facfe>Text</GRADIENT:#00f2fe>. If PlaceholderAPI is installed, its placeholders work in the messages too.
Per-spawn and per-warp permissions are off by default, so nothing changes for existing servers until you turn them on.
Commands
| Command | Description |
|---|---|
| `/spawn [id | name]` |
| `/spawn [id | name] ` |
/ss setspawn <id> | Set a spawn at your location (moves it if it already exists) |
/ss renamespawn <id> <name> | Give a spawn a name |
/ss deletespawn <id> | Delete a spawn |
/ss lockspawn <id> | Lock a spawn |
/ss unlockspawn <id> | Unlock a spawn |
/ss listspawns | List all spawns |
/ss reload | Reload the config |
/ss updateconfig | Add missing options to your config |
/ss recreateconfig | Back up the config and create a fresh one |
/ss version | Show the plugin version |
/ss help | Show the help menu |
/ss is short for /simplespawn.
Permissions
| Permission | What it does |
|---|---|
simplespawn.spawn | Use /spawn (default: everyone) |
simplespawn.spawnother | Teleport other players with /spawn |
simplespawn.spawn.<id> / .<name> | Use one specific spawn (only if spawn-permissions is enabled) |
simplespawn.setspawn | Set and move spawns |
simplespawn.renamespawn | Name spawns |
simplespawn.deletespawn | Delete spawns |
simplespawn.lockspawn | Lock spawns |
simplespawn.unlockspawn | Unlock spawns |
simplespawn.listspawns | List spawns |
simplespawn.reload | Reload the config |
simplespawn.updateconfig | Use /ss updateconfig |
simplespawn.recreateconfig | Use /ss recreateconfig |
simplespawn.version | See the plugin version |
simplespawn.help | See the help menu |
simplespawn.bypass.cooldown | Skip the cooldown |
simplespawn.bypass.delay | Skip the teleport delay |
simplespawn.bypass.movement | Moving doesn't cancel the teleport |
simplespawn.bypass.damage | Damage doesn't cancel the teleport |
simplespawn.bypass.worldblacklist | Ignore the world blacklist |
simplespawn.bypass.lockedspawn | Use locked spawns |
simplespawn.bypass.voidtp | Don't get teleported out of the void |
Configuration
config.yml
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
# ┃ SimpleSpawn Configuration v1.8.0 ┃
# ┃ SimplePlugins ┃
# ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
ConfigVersion: 1.8.0 # Used for automatic config updates (/ss updateconfig) dont change this!
# partciles
# particles for latest Minecraft version: https://jd.papermc.io/paper/org/bukkit/Particle.html
# (old names like VILLAGER_HAPPY / TOTEM still work, they are converted automatically)
# sound
# sounds: https://jd.papermc.io/paper/org/bukkit/Sound.html
# PlaceholderAPI placeholders (%player_name% etc.) work in all messages if PlaceholderAPI is installed
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Update:
Notification:
enabled: true # Notify when a new version is available
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
world-blacklist:
enabled: false # Prevent teleporting from certain worlds
chat-blocked-world: true # Show message in chat
actionbar-blocked-world: true # Show message in actionbar
blacklist-worlds:
- "world_nether" # Nether
- "world_the_end" # End
# For custom worlds: Use the exact folder name!
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
spawn-permissions:
enabled: false # true = players need simplespawn.spawn.<id> or simplespawn.spawn.<name> for each spawn
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
on_respawn_tp:
enabled: true # Teleport players to spawn when they respawn
ignore_bed_anchor: false # Ignore bed anchor when teleporting to spawn
on_respawn_spawn_id: 1 # Spawn ID to teleport to on respawn
particle:
enabled: true # Enable particles when teleporting to spawn
name: HAPPY_VILLAGER # Particle name
amount: 50 # Number of particles
size: 1 # Particle name
sound:
enabled: true # Sound when teleporting to spawn
name: ENTITY_ENDERMAN_TELEPORT # Sound when teleporting to spawn
volume: 1.0 # Volume of the sound
pitch: 1.0 # Sound when teleporting to spawn
all_players: false # Play sound for all players
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
on_first_join_tp:
enabled: true # Teleport players to spawn when they join for the first time
first-join-spawn-id: 1 # Spawn ID to teleport to on first join
particle:
enabled: true # Enable particles when teleporting to spawn
name: HAPPY_VILLAGER # Particle name
amount: 50 # Number of particles
size: 1 # Particle name
sound:
enabled: true # Sound when teleporting to spawn
name: ENTITY_ENDERMAN_TELEPORT # Sound when teleporting to spawn
volume: 1.0 # Volume of the sound
pitch: 1.0 # Sound when teleporting to spawn
all_players: false # Play sound for all players
first_join-message_enabled: true # Enable first join messages
first-join-message: "&7Welcome �a4fc{playername} &7to the server!" # First join message
# join-message: '&8[&a+&8] &7{playername}'
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
on_join_tp:
enabled: false # Always teleport players to spawn on join
spawn-on-join-id: 1 # Spawn ID to teleport to on join
particle:
enabled: true # Enable particles when teleporting to spawn
name: HAPPY_VILLAGER # Particle name
amount: 50 # Number of particles
size: 1 # Particle name
sound:
enabled: true # Sound when teleporting to spawn
name: ENTITY_ENDERMAN_TELEPORT # Sound when teleporting to spawn
volume: 1.0 # Volume of the sound
pitch: 1.0 # sound pitch
all_players: false # Play sound for all players
# false = keep the normal Minecraft message, true with "" as text = no message at all
join-message_enabled: true # Use the custom join message below
leave-message_enabled: true # Use the custom leave message below
join-message: "�a4fc{playername} &7has joined the game." # Join message
leave-message: "�a4fc{playername} &7has left the game." # Leave message
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
teleport-out-of-void:
enabled: false # Teleport players automatically if falling into void
void-y-threshold: -64 # Y coordinate below which teleport is triggered
spawn-id: 1 # Spawn ID to teleport to
particle:
enabled: true # Enable particles when teleporting to spawn
name: TOTEM_OF_UNDYING # Particle name
amount: 50 # Number of particles
size: 1 # Particle size
sound:
enabled: true # Enable sound when teleporting to spawn
name: ENTITY_ENDERMAN_TELEPORT # Sound when teleporting to spawn
volume: 1.0 # Volume of the sound
pitch: 1.0 # Pitch of the sound
all_players: false # Play sound for all players
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
command_cooldown:
enabled: true # Enable cooldown for /spawn
seconds: 15 # Cooldown time in seconds
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
actionbar:
enabled: true # Master switch for Actionbar messages
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
teleport-cancel:
sound_enabled: true # Enable sound when teleport is cancelled
sound_name: ENTITY_VILLAGER_NO # Sound when teleport is cancelled
sound_volume: 1.0 # Volume of the sound
sound_pitch: 1.0 # Pitch of the sound
sound_all_players: false # Play sound for all players
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
movement-cancel:
enabled: true # Cancel teleport if player moves
sensitivity: 2.0 # How far (in blocks) the player can move before the teleport is cancelled
cancel-on-block-change: false # Cancel teleport if player changes blocks
chat-movement-message: true # Show message in chat
actionbar-movement-message: true # Show message in actionbar
damage-cancel:
cancel-on-damage: true # Cancel teleport if player takes damage
chat-damage-cancelled: true # Show message in chat
actionbar-damage-cancelled: true # Show message in actionbar
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
teleport-delay:
enabled: true # Enable teleport delay
seconds: 5 # Delay time in seconds
chat-countdown-messages: true # Show countdown messages in chat
actionbar-countdown-messages: true # Show countdown messages in actionbar
chat-teleport-delay: true # Show message in chat
actionbar-teleport-delay: true # Show message in actionbar
particle_enabled: true # Enable teleport delay particles
particle_name: FLAME # teleport delay particle
number_of_particles: 50 # number of particles
particle_size: 1 # size of particles
sound_enabled: true # Enable teleport delay sound
sound_name: BLOCK_NOTE_BLOCK_HAT # teleport delay sound
sound_volume: 2.0 # volume of the sound
sound_pitch: 1.5 # pitch of the sound
sound_all_players: false # play sound for all players
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
on_teleport:
chat-teleported_message: true # Show message in chat
actionbar-teleported_message: true # Show message in actionbar
chat-send-custom-message: false # Send custom message in chat
actionbar-send-custom-message: false # Send custom message in actionbar
chat-custom-message: "&aWelcome to spawn {playername}!" # custom chat message
actionbar-custom-message: "&aSpawned {playername}!" # custom actionbar message
particle_enabled: true # Enable teleport particles
particle_name: END_ROD # teleport particle
number_of_particles: 50 # number of particles
particle_size: 1 # size of particles
sound_enabled: true # Enable teleport sound
sound_name: ENTITY_ENDERMAN_TELEPORT # teleport sound
sound_volume: 1.0 # volume of the sound
sound_pitch: 1.0 # pitch of the sound
sound_all_players: false # play sound for all players
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
actionbar_messages: # Actionbar messages
teleported: "&7Teleported to �a4fcspawn {spawnname}"
teleport-delay: "&7Teleporting in �a4fc{time}s. &c(Don't move!)"
countdown: "&7Teleporting in �a4fc{time}s"
teleport-cancelled: "&cTeleport cancelled (movement)!"
damage-cancelled: "&cTeleport cancelled (damage)!"
blocked-world: "&cTeleport is not allowed in this world!"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
prefix_enabled: true
messages: # Chat messages
prefix: "&8[<GRADIENT:#4facfe>SimpleSpawn</GRADIENT:#00f2fe>&8] " # Prefix for all messages in chat
spawn-set: "&aSpawn point set successfully!"
spawn-moved: "&aSpawn &f{spawnname} &ahas been moved to your location!"
spawn-other: "&7Teleported �a4fc{player} &7to spawn �a4fc{spawnname}&7."
player-not-found: "&cPlayer &f{player} &cis not online."
no-permission-spawn: "&cYou don't have permission to use spawn &f{spawnname}&c."
usage-renamespawn: "&cUsage: /simplespawn renamespawn <id> <name>"
spawn-renamed: "&aSpawn &f{id} &ais now called &f{name}&a."
spawn-name-taken: "&cAnother spawn is already called &f{name}&c."
invalid-spawn-name: "&cInvalid name &f{name}&c. Use letters, numbers, _ or - (max 32, not only numbers)."
config-recreated: "&aNew config.yml has been created. The old one was saved as &eoldconfig.yml&a."
recreateconfig-failed: "&cCould not back up the old config.yml. Nothing was changed."
no-permission: "&cYou don't have permission."
player-only: "&cOnly players can run this command."
teleported: "&7Teleported to �a4fcspawn {spawnname}"
cooldown: "&cYou must wait �a4fc{time} seconds &cbefore teleporting again."
teleport-delay: "&7Teleporting in �a4fc{time} seconds&7. &c(Don't move!)"
teleport-cancelled: "&cTeleport cancelled (movement)!"
damage-cancelled: "&cTeleport cancelled (damage)!"
teleport-blocked-world: "&cTeleport is not allowed in this world!"
countdown: "&7Teleporting in �a4fc{time}s"
spawn-not-set: "&cSpawn is not set yet!"
config-reloaded: "&aConfiguration reloaded."
unknown-command: "&cUnknown command. Try /ss help."
no-exist-spawn: "&cThat spawn does not exist!"
spawnlock-message: "&aSpawn locked successfully!"
spawnunlock-message: "&aSpawn unlocked successfully!"
spawnlock-error: "&cThis spawn is already locked!"
spawn-delete: "&cSpawn deleted successfully!"
lockedspawn-teleport: "&cSpawn is locked, you can't teleport there!"
usage-lockspawn: "&cUsage: /simplespawn lockspawn <id>"
usage-unlockspawn: "&cUsage: /simplespawn unlockspawn <id>"
usage-deletespawn: "&cUsage: /simplespawn deletespawn <id>"
usage-setspawn: "&cUsage: /simplespawn setspawn <id>"
no-spawns-set: "&cNo spawns have been created yet."
spawns-list: "&aAvailable spawns:"
spawnunlock-error: "&cThis spawn isn't locked!"
listspawns-header: "&7-------- &bSpawn List &7--------"
listspawns-entry-locked: "&c{spawnname} &8(ID {id}) &7- &cLocked"
listspawns-entry-unlocked: "&a{spawnname} &8(ID {id}) &7- &aUnlocked"
listspawns-none: "&cNo spawns available."
void-teleported: "&eYou fell into the void and have been saved!"
config-updated: "&aThe config has been successfully updated to the latest version!"
config-up-to-date: "&7Your config is already up-to-date."
current-version: "&aSimpleSpawn version: &f{version}"
invalid-id: "&cThe specified spawn &f'{id}' &cdoes not exist!"
version-command: "&aYou are running SimpleSpawn v{version}!"
reload-complete: "&aConfiguration and messages have been reloaded!"
spawn-locked: "&cThis spawn is already locked!"
spawn-not-exist: "&cThat spawn does not exist!"
spawn-exists: "&cA spawn with the ID '{id}' already exists!"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
help-messages: # Help messages (/simplespawn help (/ss help))
- "&8&m--------------------------------"
- "&bSimpleSpawn Help:"
- "&7/ss reload &8- &fReload configuration. (Permission: simplespawn.reload)"
- "&7/spawn [id|name] [player] &8- &fTeleport to a spawn. (Permission: simplespawn.spawn, others: simplespawn.spawnother)"
- "&7/ss setspawn <id> &8- &fSet or move a spawn point. (Permission: simplespawn.setspawn)"
- "&7/ss renamespawn <id> <name> &8- &fGive a spawn a name. (Permission: simplespawn.renamespawn)"
- "&7/ss deletespawn <id> &8- &fDelete a spawn. (Permission: simplespawn.deletespawn)"
- "&7/ss lockspawn <id> &8- &fLock a spawn. (Permission: simplespawn.lockspawn)"
- "&7/ss unlockspawn <id> &8- &fUnlock a spawn. (Permission: simplespawn.unlockspawn)"
- "&7/ss listspawns &8- &fList all spawns. (Permission: simplespawn.listspawns)"
- "&7/ss version &8- &fPlugin version. (Permission: simplespawn.version)"
- "&7/ss recreateconfig &8- &fCreate new config file. (Permission: simplespawn.recreateconfig)"
- "&7/ss updateconfig &8- &fUpdate the config file. (Permission: simplespawn.updateconfig)"
- "&7/ss help &8- &fShow help menu. (Permission: simplespawn.help)"
- "&8&m--------------------------------"
# ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SimpleWarp
SimpleWarp is included in SimpleSpawn and enabled by default. It has its own config (warpconfig.yml) with the same options as the spawn teleports: delay, cooldown, movement and damage cancel, world blacklist, particles, sounds and messages. Set Simplewarp-enabled: false and restart if you only want the spawn part. The warp commands are then not registered at all, so another warp plugin can use /warp.
Commands
| Command | Description |
|---|---|
/warp <name> | Teleport to a warp |
/warps | List all warps |
/sw setwarp <name> | Create a warp at your location |
/sw delwarp <name> | Delete a warp |
/sw renamewarp <old> <new> | Rename a warp |
/sw lockwarp <name> | Lock a warp |
/sw unlockwarp <name> | Unlock a warp |
/sw listwarps | List all warps (with lock status) |
/sw reload | Reload the warp config |
/sw updateconfig | Add missing options to your warp config |
/sw recreateconfig | Back up the warp config and create a fresh one |
/sw help | Show the help menu |
/sw is short for /simplewarp.
Permissions
| Permission | What it does |
|---|---|
simplewarp.use | Use /warp and /warps (default: everyone) |
simplewarp.warp.<name> | Use one specific warp (only if warp-permissions is enabled) |
simplewarp.admin | Use the /sw command |
simplewarp.admin.setwarp | Create warps |
simplewarp.admin.delwarp | Delete warps |
simplewarp.admin.renamewarp | Rename warps |
simplewarp.admin.lockwarp | Lock warps |
simplewarp.admin.unlockwarp | Unlock warps |
simplewarp.admin.listwarps | List warps |
simplewarp.admin.reload | Reload the warp config |
simplewarp.admin.updateconfig | Use /sw updateconfig |
simplewarp.admin.recreateconfig | Use /sw recreateconfig |
simplewarp.admin.help | See the help menu |
simplewarp.bypass.cooldown | Skip the cooldown |
simplewarp.bypass.delay | Skip the teleport delay |
simplewarp.bypass.movement | Moving doesn't cancel the teleport |
simplewarp.bypass.damage | Damage doesn't cancel the teleport |
simplewarp.bypass.worldblacklist | Ignore the world blacklist |
simplewarp.bypass.lockedwarp | Use locked warps |
Configuration
warpconfig.yml
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
# ┃ SimpleWarp Configuration v1.8.0 ┃
# ┃ SimplePlugins ┃
# ┗━━━━━━━━━━━━━━
Similar projects
Plugin →VeinMiner
Mine the whole vein on mining a single ore/block. Make the tedious mining experience to something satisfying and fun! FTB Ultimine alternative
99.3MSueta
Simple Voice Chat
A working voice chat in Minecraft!
76.8MSueta
Let Me Despawn
Improves performance by tweaking mob despawn rules. Say bye to pesky unintentional persistent mobs.
25MSueta
Chunky
Pre-generates chunks, quickly and efficiently
18.4MSueta
VeinMiner Enchantment
Veinminer Addon - Adds vineminer enchantment to enchanting tables. Only tools with the enchantment can veinmine
18MSueta
JourneyMap
Real-time map used for mapping in-game or your browser as you explore.
14.7MSueta