Sueta

SimpleSpawn

1.10

New Warp System! (/sw) /ss setspawn 1 | /ss deletespawn | /ss lockspawn 1 | ss unlockspawn 1 | /spawn <id> or only /spawn

·Plugin

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 2 or /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 updateconfig adds 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 &#00a4fc 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

CommandDescription
`/spawn [idname]`
`/spawn [idname] `
/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 listspawnsList all spawns
/ss reloadReload the config
/ss updateconfigAdd missing options to your config
/ss recreateconfigBack up the config and create a fresh one
/ss versionShow the plugin version
/ss helpShow the help menu

/ss is short for /simplespawn.

Permissions

PermissionWhat it does
simplespawn.spawnUse /spawn (default: everyone)
simplespawn.spawnotherTeleport other players with /spawn
simplespawn.spawn.<id> / .<name>Use one specific spawn (only if spawn-permissions is enabled)
simplespawn.setspawnSet and move spawns
simplespawn.renamespawnName spawns
simplespawn.deletespawnDelete spawns
simplespawn.lockspawnLock spawns
simplespawn.unlockspawnUnlock spawns
simplespawn.listspawnsList spawns
simplespawn.reloadReload the config
simplespawn.updateconfigUse /ss updateconfig
simplespawn.recreateconfigUse /ss recreateconfig
simplespawn.versionSee the plugin version
simplespawn.helpSee the help menu
simplespawn.bypass.cooldownSkip the cooldown
simplespawn.bypass.delaySkip the teleport delay
simplespawn.bypass.movementMoving doesn't cancel the teleport
simplespawn.bypass.damageDamage doesn't cancel the teleport
simplespawn.bypass.worldblacklistIgnore the world blacklist
simplespawn.bypass.lockedspawnUse locked spawns
simplespawn.bypass.voidtpDon'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 &#00a4fc{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: "&#00a4fc{playername} &7has joined the game." # Join message
  leave-message: "&#00a4fc{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 &#00a4fcspawn {spawnname}"
  teleport-delay: "&7Teleporting in &#00a4fc{time}s. &c(Don't move!)"
  countdown: "&7Teleporting in &#00a4fc{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 &#00a4fc{player} &7to spawn &#00a4fc{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 &#00a4fcspawn {spawnname}"
  cooldown: "&cYou must wait &#00a4fc{time} seconds &cbefore teleporting again."
  teleport-delay: "&7Teleporting in &#00a4fc{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 &#00a4fc{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

CommandDescription
/warp <name>Teleport to a warp
/warpsList 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 listwarpsList all warps (with lock status)
/sw reloadReload the warp config
/sw updateconfigAdd missing options to your warp config
/sw recreateconfigBack up the warp config and create a fresh one
/sw helpShow the help menu

/sw is short for /simplewarp.

Permissions

PermissionWhat it does
simplewarp.useUse /warp and /warps (default: everyone)
simplewarp.warp.<name>Use one specific warp (only if warp-permissions is enabled)
simplewarp.adminUse the /sw command
simplewarp.admin.setwarpCreate warps
simplewarp.admin.delwarpDelete warps
simplewarp.admin.renamewarpRename warps
simplewarp.admin.lockwarpLock warps
simplewarp.admin.unlockwarpUnlock warps
simplewarp.admin.listwarpsList warps
simplewarp.admin.reloadReload the warp config
simplewarp.admin.updateconfigUse /sw updateconfig
simplewarp.admin.recreateconfigUse /sw recreateconfig
simplewarp.admin.helpSee the help menu
simplewarp.bypass.cooldownSkip the cooldown
simplewarp.bypass.delaySkip the teleport delay
simplewarp.bypass.movementMoving doesn't cancel the teleport
simplewarp.bypass.damageDamage doesn't cancel the teleport
simplewarp.bypass.worldblacklistIgnore the world blacklist
simplewarp.bypass.lockedwarpUse locked warps

Configuration

warpconfig.yml
# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
# ┃               SimpleWarp Configuration v1.8.0           ┃
# ┃                     SimplePlugins                       ┃
# ┗━━━━━━━━━━━━━━

Similar projects

Plugin →