A Paper/Spigot plugin that allows you to customize the Nether-to-Overworld coordinate ratio for portal travel. Perfect for servers that want to change the vanilla 8:1 ratio to suit their world design!
A Paper/Spigot plugin that allows you to customize the Nether-to-Overworld coordinate ratio for portal travel. Perfect for servers that want to change the vanilla 8:1 ratio to suit their world design!
plugins folderplugins/NetherRatio/config.yml/netherratio reload to apply changes# Language for messages (available: en, de, fr, it, ko)
language: en
# Default ratio for world pairs that don't have a specific ratio configured
# Overworld value : Nether 1
# For vanilla Minecraft behavior, set to 8
value: 8
# Coordinate bounds - Prevent players from being teleported outside safe areas
# This helps avoid teleportation into ungenerated chunks or beyond world borders
coordinate-bounds:
enabled: false
# Minecraft's world border default is ±29,999,984 blocks
# These values apply to the destination coordinates (after ratio calculation)
min-x: -29999968
max-x: 29999968
min-z: -29999968
max-z: 29999968
# World pairs for portal travel
# Define which overworld connects to which nether world
#
# Simple format (uses default ratio):
# overworld_name: nether_name
#
# Advanced format (per-world ratio):
# overworld_name:
# nether: nether_name
# ratio: 16
#
# Examples:
world-pairs:
world: world_nether
# Example with custom ratio:
# survival:
# nether: survival_nether
# ratio: 16
# Example with coordinate offsets:
# adventure:
# nether: adventure_nether
# ratio: 8
# offset-x: 1000
# offset-z: -500
# Example with simple format:
# creative: creative_nether
| Option | Type | Default | Description |
|---|---|---|---|
language |
String | en |
Language for in-game messages (en, de, fr, it, ko) |
value |
Double | 8 |
Default coordinate conversion ratio (Overworld blocks : 1 Nether block) |
coordinate-bounds |
Section | See below | Safe coordinate limits to prevent teleportation into ungenerated areas |
world-pairs |
Map | See below | Mapping of Overworld worlds to their corresponding Nether worlds |
Coordinate bounds help prevent players from being teleported into ungenerated chunks or beyond world borders when using portals. This is especially useful for servers with custom world sizes or pre-generated regions.
Configuration Options:
| Option | Type | Default | Description |
|---|---|---|---|
enabled |
Boolean | false |
Enable or disable coordinate bounds checking |
min-x |
Integer | -29999968 |
Minimum X coordinate for portal destinations |
max-x |
Integer | 29999968 |
Maximum X coordinate for portal destinations |
min-z |
Integer | -29999968 |
Minimum Z coordinate for portal destinations |
max-z |
Integer | 29999968 |
Maximum Z coordinate for portal destinations |
How it works:
Example:
coordinate-bounds:
enabled: true
min-x: -10000
max-x: 10000
min-z: -10000
max-z: 10000
With this configuration, no portal will teleport a player beyond ±10,000 blocks in the destination world.
You can configure world pairs using two formats:
Simple Format (uses the default ratio from value):
world-pairs:
world: world_nether
creative: creative_nether
Advanced Format (per-world custom ratios and offsets):
world-pairs:
world: world_nether # Uses default ratio (8)
survival:
nether: survival_nether
ratio: 16 # Custom 16:1 ratio for this world pair
skyblock:
nether: skyblock_nether
ratio: 4 # Custom 4:1 ratio for this world pair
adventure:
nether: adventure_nether
ratio: 8
offset-x: 1000 # Add 1000 blocks to X when going to nether
offset-z: -500 # Subtract 500 blocks from Z when going to nether
Coordinate Offsets:
The offset-x and offset-z options allow you to shift the entire nether coordinate space relative to the overworld. This is useful for:
How offsets work:
Example:
world-pairs:
world:
nether: world_nether
ratio: 8
offset-x: 1000
offset-z: 0
With this configuration:
Default Ratio for All Worlds (8:1):
value: 8
world-pairs:
world: world_nether
survival: survival_nether
1:1 Ratio (same coordinates in both dimensions):
value: 1
world-pairs:
world: world_nether
Different Ratios Per World:
value: 8 # Default ratio
world-pairs:
world: world_nether # Uses default 8:1
survival:
nether: survival_nether
ratio: 16 # 16:1 for survival world
skyblock:
nether: skyblock_nether
ratio: 1 # 1:1 for skyblock
All commands use a consistent subcommand structure:
/netherratio or /netherratio listDisplay all configured ratios (default and per-world).
Permission: netherratio.netherratio
Usage: /netherratio or /netherratio list
Example Output:
Default ratio: 8.0
World-specific ratios:
world: 8.0
survival: 16.0
/netherratio set <ratio>Set the default ratio for all world pairs that don't have a specific ratio.
Permission: netherratio.netherratio
Usage: /netherratio set <ratio>
Example: /netherratio set 8 - Sets default ratio to 8:1
/netherratio set <ratio> <world>Set a custom ratio for a specific world pair.
Permission: netherratio.netherratio
Usage: /netherratio set <ratio> <world>
Example: /netherratio set 16 survival - Sets 16:1 ratio for the survival world
/netherratio calc [x z]Calculate what coordinates in one dimension correspond to in the other dimension.
Permission: netherratio.calc (default: all players)
Usage:
/netherratio calc - Calculate using your current position /netherratio calc 800 600 - Calculate specific coordinatesExample Output:
Coordinates 800.0, 600.0 in world correspond to 100.0, 75.0 in world_nether
/netherratio reloadReload the plugin configuration from disk.
Permission: netherratio.netherratio
Usage: /netherratio reload
| Permission | Description | Default |
|---|---|---|
netherratio.netherratio |
Allows managing ratios and reloading config | OP only |
netherratio.calc |
Allows using the coordinate calculator | Everyone |
LuckPerms:
/lp group admin permission set netherratio.netherratio true
PermissionsEx:
/pex group admin add netherratio.netherratio
NetherRatio comes with built-in translations for:
en)de)fr)it)ko)To change the language, edit language: en in config.yml to your preferred language code.
You can create custom translations by:
plugins/NetherRatio/messages/<language_code>.ymllanguage: <language_code> in config.ymlWhen a player or entity travels through a Nether portal:
Overworld → Nether: Coordinates are divided by the ratio
X=800, Z=600 → X=100, Z=75Nether → Overworld: Coordinates are multiplied by the ratio
X=100, Z=75 → X=800, Z=600Coordinate Bounds (if enabled): Destination coordinates are checked and clamped
The plugin uses the world-pairs configuration to determine which Nether world corresponds to each Overworld. This allows:
world_nether naming)# Clone the repository
git clone https://github.com/ZyanKLee/NetherRatio.git
cd NetherRatio
# Build with Maven
mvn clean package
# The compiled JAR will be in target/
The built plugin will be available at target/NetherRatio-2.3.1.jar
/netherratio reloadworld-pairs match your actual world namesworld-pairs configuration correctly maps your worlds/worlds (if you have a world management plugin) to verify world namesnetherratio.netherratioContributions are welcome! Please feel free to submit a Pull Request. For major changes:
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)This project is licensed under the MIT License - see the LICENSE file for details.
If you find this plugin useful, please consider:
This project is a fork and continuation of the original work by xDxRAx.
Original Author: xDxRAx
Current Maintainer: ZyanKLee
Special thanks to the original author for creating the foundation of this plugin!
Made with ❤️ for the Minecraft community