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:
Iterates through all defined flows.
Checks whether the filter matches the player's current state.
If it matches, a random result (RTP settings) is selected from that flow.
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.
Teleporting to The Nether?
Make sure to set "allowCaveTeleports" to true!
Setting Unsafe/Air Blocks
You can edit what RTP considers an unsafe block / air block in /config/Oxygen/config.json.