File tree 4 files changed +18
-4
lines changed
4 files changed +18
-4
lines changed Original file line number Diff line number Diff line change @@ -693,6 +693,12 @@ enable_pvp (Player versus Player) bool true
693
693
# If this is set, players will always (re)spawn at the given position.
694
694
static_spawnpoint (Static spawnpoint) string
695
695
696
+ # Maximum distance above water level for player spawn.
697
+ # Larger values result in spawn points closer to (x = 0, z = 0).
698
+ # Smaller values may result in a suitable spawn point not being found,
699
+ # resulting in a spawn at (0, 0, 0) possibly buried underground.
700
+ vertical_spawn_range (Vertical spawn range) int 16
701
+
696
702
# If enabled, new players cannot join with an empty password.
697
703
disallow_empty_password (Disallow empty passwords) bool false
698
704
Original file line number Diff line number Diff line change 829
829
# type: string
830
830
# static_spawnpoint =
831
831
832
+ # Maximum distance above water level for player spawn.
833
+ # Larger values result in spawn points closer to (x = 0, z = 0).
834
+ # Smaller values may result in a suitable spawn point not being found,
835
+ # resulting in a spawn at (0, 0, 0) possibly buried underground.
836
+ # type: int
837
+ # vertical_spawn_range = 16
838
+
832
839
# If enabled, new players cannot join with an empty password.
833
840
# type: bool
834
841
# disallow_empty_password = false
Original file line number Diff line number Diff line change @@ -245,6 +245,7 @@ void set_default_settings(Settings *settings)
245
245
settings->setDefault (" default_privs" , " interact, shout" );
246
246
settings->setDefault (" player_transfer_distance" , " 0" );
247
247
settings->setDefault (" enable_pvp" , " true" );
248
+ settings->setDefault (" vertical_spawn_range" , " 16" );
248
249
settings->setDefault (" disallow_empty_password" , " false" );
249
250
settings->setDefault (" disable_anticheat" , " false" );
250
251
settings->setDefault (" enable_rollback_recording" , " false" );
Original file line number Diff line number Diff line change @@ -3269,7 +3269,7 @@ v3f Server::findSpawnPos()
3269
3269
}
3270
3270
3271
3271
s16 water_level = map.getWaterLevel ();
3272
-
3272
+ s16 vertical_spawn_range = g_settings-> getS16 ( " vertical_spawn_range " );
3273
3273
bool is_good = false ;
3274
3274
3275
3275
// Try to find a good place a few times
@@ -3282,9 +3282,9 @@ v3f Server::findSpawnPos()
3282
3282
3283
3283
// Get ground height at point
3284
3284
s16 groundheight = map.findGroundLevel (nodepos2d);
3285
- if (groundheight <= water_level) // Don't go underwater
3286
- continue ;
3287
- if ( groundheight > water_level + 6 ) // Don't go to high places
3285
+ // Don't go underwater or to high places
3286
+ if (groundheight <= water_level ||
3287
+ groundheight > water_level + vertical_spawn_range)
3288
3288
continue ;
3289
3289
3290
3290
v3s16 nodepos (nodepos2d.X , groundheight, nodepos2d.Y );
You can’t perform that action at this time.
0 commit comments