I looked at the code for random spawn points. It doesn't seem very random to me.
When you connect to the game, if you have a saved avatar it is loaded and your last location is read. If you have deployed sleeping bags or beds (DeployedRespawn), one is selected randomly and you are spawned at a random point within 10m of it. If you don't have a DeployedRespawn then if the last location of the avatar is valid, you are spawned within 10m of it.
If it's not, then it looks to me like a respawn of
another player is randomly selected and you're spawned within 10m of that. If all else fails, you are spawned at 0,0,0.
I'm thinking of adding an option to change what spawn points are loaded. The property is public, type SpawnPoint[], so it could be assigned a new array of SpawnPoints. The spawn points are stored as small objects with 2 properties, a vector3 and a quaternion.
Trivia: If you turn off pvp, sleepers, set crafting instant or reduced timescale, or turn off fall damage, your server is SetModded().
Code:
public void UpdateModdedStatus()
{
if (server.pvp && sleepers.on && !crafting.instant && (double) crafting.timescale == 1.0 && falldamage.enabled)
return;
Rust.Steam.Server.SetModded();
}