Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

FirstSpawnPlugin

A Minecraft plugin that teleports brand-new players (first-time joiners) to a configurable spawn location. Built exclusively for Folia — the multicore / regionized-threading server software. Not compatible with Spigot / Paper / Purpur.

Features

  • 🔧 Set the first-join spawn from your current position, or with exact coordinates
  • 🌍 Teleports first-time joiners to the configured spawn location
  • 💀 Optionally sets the player's respawn point (set-as-respawn) so they also spawn there after death
  • 🔁 always-join-to-spawn option for servers that want every player to spawn there on every login
  • 💬 Configurable welcome message for new players in chat
  • 📝 Commands write changes straight back to config.yml
  • 🧵 Written against the Folia API (regionized schedulers + teleportAsync) — thread-safe on multithreaded servers

Requirements

  • A Folia server (e.g. Folia 1.20+)
  • Java 25+ to compile
  • Maven 3.9+

Installation

  1. Download FirstSpawnPlugin.jar (see the Releases tab, or build it yourself as shown below)
  2. Drop it into the plugins/ folder of your Folia server
  3. Restart the server (or reload)
  4. Set the first-join spawn with /setfirstspawn

Usage

Commands

Command Description Permission
/setfirstspawn Uses the calling player's current location (world, position, facing direction) as the first-join spawn firstspawn.admin
/setfirstspawn <world> <x> <y> <z> [yaw] [pitch] Sets the first-join spawn with explicit coordinates firstspawn.admin
/firstspawn Shows the currently configured first-join spawn point firstspawn.admin

Aliases: /setfirstspawnsfs, fspawn · /firstspawnfs

Permissions

  • firstspawn.admin — access to all plugin commands

Examples

# Set the spawn to where you are standing
/setfirstspawn

# Set the spawn with explicit coordinates in the world "world"
/setfirstspawn world 100.5 64 0.5 90 0

# Show the currently configured spawn
/firstspawn

Configuration (config.yml)

The plugin generates plugins/FirstSpawnPlugin/config.yml automatically on first run.

# The world players will be teleported to on their first join.
world: "world"

# X, Y, Z coordinates of the first-join spawn point.
x: 0.0
y: 64.0
z: 0.0

# The horizontal facing direction (yaw) in degrees.
# 0 = south, 90 = west, 180 = north, -90 = east.
yaw: 0.0

# The vertical facing direction (pitch) in degrees.
# 90 = looking straight down, -90 = looking straight up.
pitch: 0.0

# When enabled, the plugin also sets the player's respawn point
# (bed spawn) to the first-join spawn location.
set-as-respawn: true

# When enabled, EVERY join (not just the player's very first join)
# teleports them to this spawn point. Disabled by default.
always-join-to-spawn: false

# Message shown to the player in chat after their first-join teleport.
# Set to "" to disable. Supports color codes with & (e.g. &a).
first-join-message: "&aยินดีต้อนรับสู่เซิร์ฟเวอร์! นี่คือจุดเริ่มต้นของคุณ"

# Message sent after a successful /setfirstspawn.
# Placeholders: %world% %x% %y% %z%
set-success-message: "&aตั้งจุดเกิดครั้งแรกสำเร็จที่ %world% (%x%, %y%, %z%)"

# Message shown when a plugin command is run without permission.
no-permission-message: "&cคุณไม่มีสิทธิ์ใช้คำสั่งนี้"

Building from source

git clone https://github.com/Cupjok/FirstSpawnPlugin.git
cd FirstSpawnPlugin
mvn clean package

The resulting jar is located at target/FirstSpawnPlugin.jar.

Folia notes

  • This plugin uses the Folia API (io.papermc.paper.threadedregions.scheduler) — there is no main thread as in classic server software.
  • Teleportation uses Player#teleportAsync() (on Folia, Entity#teleport is intentionally removed).
  • First-join detection happens on the async AsyncPlayerPreLoginEvent; the actual teleport in PlayerJoinEvent is deferred through the player's own region scheduler for thread safety.

License

MIT © 2026 Cupjok

About

Teleports first-time joining players to a configurable spawn location. Built exclusively for Folia (multicore / regionized threading) server software - not Spigot/Paper/Purpur.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages