Module: Random Teleport - Module ID: rtp

Introduction

The RTP module allows players to request to be teleported to another random place on your map.

Configuring RTP on a per-world basis

While the configuration file should be self explanatory (see the configuration tab above), note that you may configure worlds on a per-world basis. To do so, copy and paste the example block in world-overrides, renaming example to the name of the world you wish to provide an override for. So, for an override for DIM-1, you may have something like below:

world-overrides {
    DIM-1 {
        # The default RTP kernel to use with /rtp. The default options are:
        # 
        # * "nucleus:default": standard RTP, with the min/max radius centred around the spawn point
        # * "nucleus:surface_only": RTP which will attempt to only pick a surface (must see sky) location, with the min/max radius centred around the spawn point
        # * "nucleus:around_player": RTP which is like default, but the random position will depend on the player's current position, not the spawn point
        # * "nucleus:around_player_surface": RTP which is like surface only, but the random position will depend on the player's current position, not the spawn point
        # 
        # Other plugins might add their own kernels, in which case they will give you an ID to use here.
        default-method="nucleus:around_player"
        maximum-y=150
        min-radius=0
        minimum-y=50
        radius=500
    }
}

Selecting an RTP Kernel

The RTP system uses what is known as a kernel in order to decide whether a randomly selected location is safe. Nucleus comes with four kernels:

  • nucleus:default - tries to find any location that a player can be safely teleported to. The search for a space is centred on the world spawn and within the minimum and maximum radius specified in the configuration. The player may end up in a cave.
  • nucleus:surface_only - tries to find a location that is safe for a player and can see the sky directly above. The search for a space is centred on the world spawn and within the minimum and maximum radius specified in the configuration. The player will not end up in a cave.
  • nucleus:around_player - tries to find any location that a player can be safely teleported to. The search for a space is centred on the player’s current location and within the minimum and maximum radius specified in the configuration. The player may end up in a cave.
  • nucleus:around_player_surface - tries to find a location that is safe for a player and can see the sky directly above. The search for a space is centred on the player’s current location and within the minimum and maximum radius specified in the configuration. The player will not end up in a cave.

The server preferred kernel can be set in the configuration under the rtp.default-method config key.

Other plugins may supply RTP kernels which can find locations based on their own criteria. They must implement io.github.nucleuspowered.nucleus.api.rtp.RTPKernel, and register their kernels with the Sponge Registry if they wish to be usable as a configuration option.

The following are incompatibilities that may occur with this module, along with how to resolve the problem. For the full mod/plugin incompatibility list, see the compatibility page.

No plugin incompatibilities have been reported.

/rtp
Module: rtp
Allows the user to teleport to a random destination within the world border.

Aliases: rtp randomteleport rteleport

Root command aliases: /nrtp

Usage: /rtp [<player>] [<world>]

Default Role: ADMIN

Basic Command Permission: nucleus.rtp.base

Permissions

  • nucleus.rtp.worlds - Default Role: ADMIN
    The base permission for per-world permission, if allowed in the config. This permission can be suffixed with ".worldname" (in lowercase) to allow for per-world rtp permissions.
  • nucleus.rtp.exempt.cost - Default Role: ADMIN
    Allows the user to bypass the cost for /rtp
  • nucleus.rtp.exempt.cooldown - Default Role: ADMIN
    Allows the user to bypass the cooldown for /rtp
  • nucleus.rtp.exempt.warmup - Default Role: ADMIN
    Allows the user to bypass the warmup for /rtp
  • nucleus.rtp.others - Default Role: ADMIN
    Allows the user to target other players using the command "rtp".
  • nucleus.rtp.base - Default Role: ADMIN
    Allows the user to run the command /rtp
Permission Suggested Role Description
nucleus.rtp.base ADMIN Allows the user to run the command /rtp
nucleus.rtp.exempt.cooldown ADMIN Allows the user to bypass the cooldown for /rtp
nucleus.rtp.exempt.cost ADMIN Allows the user to bypass the cost for /rtp
nucleus.rtp.exempt.warmup ADMIN Allows the user to bypass the warmup for /rtp
nucleus.rtp.others ADMIN Allows the user to target other players using the command "rtp".
nucleus.rtp.worlds ADMIN The base permission for per-world permission, if allowed in the config. This permission can be suffixed with ".worldname" (in lowercase) to allow for per-world rtp permissions.
The following configuration is the default for this module:
# The number of times to try to find a safe teleport spot when using /rtp before failing. Setting this too low may cause a high rate of failures.
attempts=10
# The default RTP kernel to use with /rtp. The default options are:
# 
# * "nucleus:default": standard RTP, with the min/max radius centred around the spawn point
# * "nucleus:surface_only": RTP which will attempt to only pick a surface (must see sky) location, with the min/max radius centred around the spawn point
# * "nucleus:around_player": RTP which is like default, but the random position will depend on the player's current position, not the spawn point
# * "nucleus:around_player_surface": RTP which is like surface only, but the random position will depend on the player's current position, not the spawn point
# 
# Other plugins might add their own kernels, in which case they will give you an ID to use here.
default-method="nucleus:default"
# If this is set, and the world name here matches one of your worlds (case-sensitive!), then `/rtp` will default to use the world specified here. Otherwise, the player's current world will be used.
default-world=""
# The maximum Y value that can be teleported to.
maximum-y=255
# The minimum radius from the centre of the world/world border where /rtp will warp to.
min-radius=0
# The minimum Y value that can be teleported to.
minimum-y=0
# If true, Nucleus will check the permission "nucleus.rtp.worlds.<worldname>" (where worldname is in lower case) before allowing an RTP attempt to go through.
per-world-permissions=false
# A list of biomes that RTP should not attempt to teleport into.
prohibited-biomes=[
    "minecraft:ocean",
    "minecraft:deep_ocean",
    "minecraft:frozen_ocean"
]
# The maximum radius from the centre of the world/world border where /rtp can warp to. This will not override the world border radius.
radius=30000
# If a world is listed below with a valid config section, it will take precedence over the global section. World names should be lower case (so, standard nether should be "dim-1".
# 
# Copy the example block and paste it below, with the correct world name, to set the per-world options.
world-overrides {
    example {
        # The default RTP kernel to use with /rtp. The default options are:
        # 
        # * "nucleus:default": standard RTP, with the min/max radius centred around the spawn point
        # * "nucleus:surface_only": RTP which will attempt to only pick a surface (must see sky) location, with the min/max radius centred around the spawn point
        # * "nucleus:around_player": RTP which is like default, but the random position will depend on the player's current position, not the spawn point
        # * "nucleus:around_player_surface": RTP which is like surface only, but the random position will depend on the player's current position, not the spawn point
        # 
        # Other plugins might add their own kernels, in which case they will give you an ID to use here.
        default-method="nucleus:default"
        maximum-y=255
        min-radius=0
        minimum-y=0
        radius=30000
    }
}