RTP (Random Teleport)

🌍 RTP (Random Teleport)

RTP is a surprisingly opinionated feature — should it be GUI-driven? Biome-aware? Dimension-specific? We've taken a flexible approach that covers the most important use cases for Cobblemon networks — and is designed to grow over time.

Oxygen introduces RTP Flows, a system that gives you full control over where and how players teleport across your network. You define:

  • Flows — groups of RTP options based on filters (e.g. current server)

  • Filters — simple JSON objects that match player state (e.g. { "server": "spawn" })

  • Results — one or more RTP settings applied if the filter matches

Right now, results are selected randomly and unweighted. In the future, you’ll be able to prefer servers with fewer players, better performance, or based on custom conditions.


⚙️ How RTP Works

When a player runs /rtp, Oxygen:

  1. Iterates through all defined flows.

  2. Checks whether the filter matches the player's current state.

  3. If it matches, a random result (RTP settings) is selected from that flow.

  4. The last matching flow overrides earlier ones.

Here’s a minimal example:

"flows": [
  {
    "filter": { "server": "beta" },
    "result": [ { "server": "alpha" } ]
  },
  {
    "filter": { "server": "alpha" },
    "result": [ { "server": "beta" } ]
  }
]

If a player is on beta, they RTP to alpha. If they’re on alpha, they RTP to beta.

📄 rtp_config.json Example (Roanoke Diamond)

🔄 Flow Summary

  • Spawn: randomly RTPs players to core, prime, or haven

  • Core/Prime/Haven: RTPs stay on the same server

Because only server is defined in each result, all other RTP settings (like distance and cave rules) fall back to the defaults at the top of the config.

🛠️ Customising Per-Server Settings

You can override default settings in a specific result object. For example, if you want a larger RTP radius on prime, just update its entries like so:

Update both the spawn flow and the prime flow if you want the setting to apply regardless of where the player comes from:

🧾 Full RTP Settings Object

Each object in a result array represents an RTP destination with optional overrides.

  • server: target server for RTP (required)

  • worldId: Minecraft dimension to RTP in

  • centerX, centerZ: the centre used for RTP ranges

  • minDistance, maxDistance: range from (0, 0)

  • highestY: cap Y-level (e.g. avoid mountains)

  • maxAttempts: number of times to try finding a valid location

  • allowCaveTeleports: whether caves are valid RTP spots

Any keys not defined will fall back to the global defaults at the top of rtp_config.json.

circle-exclamation

Setting Unsafe/Air Blocks

You can edit what RTP considers an unsafe block / air block in /config/Oxygen/config.json.

Last updated