📌 Overview
Random and Set First Spawn automatically teleports each player to a random location on their very first connection to the server.
Goal: avoid crowded spawns, create a more organic survival experience, and naturally spread players across the world from the start.
✅ Features
-
Random teleport only on first join
-
Player’s personal spawn position is saved after teleportation
-
Safe location selection (valid ground, no water/lava depending on config)
-
Configurable distance parameters (min/max) and many more options
-
Compatible with modded servers 1.21.1
-
Server player spawn points list stored in
/world/data/randomjoinspawn_spawns.json
⚙️ Config
File: randomjoinspawnspacingplayer-server.toml
# Absolute maximum radius (hard cap) to prevent infinite world generation
# Default: 200000
# Range: 1000 ~ 2000000
hard_max_radius = 20000
# Attempts per tick per player (performance)
# Default: 1
# Range: 1 ~ 10
attempts_per_tick = 1
# Minimum distance from world spawn (blocks)
# Default: 1000
# Range: 0 ~ 2000000
min_radius = 1000
# Maximum search distance from world spawn before expanding up to hard_max_radius (blocks)
# Default: 20000
# Range: 0 ~ 2000000
max_radius = 5000
# Radius increment if no spawn is found before max_radius (blocks)
# Default: 5000
# Range: 0 ~ 2000000
radius_step = 100
# Minimum 2D distance (X/Z) between player spawns (blocks)
# Default: 5000
# Range: 0 ~ 2000000
min_spacing_2d = 3500
# Ceiling Y level for arrival teleport (allows player to view spawn area from above)
# Default: 320
# Range: -64 ~ 1024
ceiling_y = 320
# Number of spawn attempts per radius step
# Default: 10
# Range: 1 ~ 10000
attempts_per_radius = 150
# Slow Falling duration on arrival (seconds) to prevent fall damage
# Default: 60
# Range: 5 ~ 600
slow_fall_seconds = 60
🧩 Compatibility
📥 Install
Server
-
Place the .jar file into the /mods folder
-
Start the server once (generates config files)
-
Adjust the configuration
-
Restart the server
Client
🧪 Best Practices / Known Limitations
-
First connection may take longer if attempts_per_radius is high and the server is heavily modded.
-
Using a chunk pre-generator (such as Chunky) significantly improves spawn speed and reduces potential lag.
-
Chunk pre-generation also reduces the risk of teleporting players into ungenerated chunks.
❓ FAQ
Q: Is the player teleported every time they reconnect?
A: No. Teleportation only occurs if the player has never joined the server before (internal flag/record).
Q: Does it work across multiple dimensions?
A: No. The player spawns at the location linked to their Nether portal.
Q: Can a reroll be forced?
A: Yes. Remove the player’s entry from
/world/data/randomjoinspawn_spawns.json.
🗺️ Roadmap
-
If respawn anchor is broken, respawn at player’s personal spawn or bed
-
Respawn at player-defined spawn if bed is broken (not at world spawn)
-
Ocean biome blacklist
🧾 Changelog
🆘 Support
📜 License
All Rights Reserved
🙏 Credits
Development: Smockeur_San