⚙️ INSTALLATION
- Download the latest DimensionOpening JAR file
- Place the JAR in your server's plugins/ folder
- Restart your server
- The plugin will automatically generate a config.yml in plugins/DimensionOpening/
- (Optional) Customize messages and settings in the config file
- Use /dimension commands to control access
All dimensions are open by default when first installed.
COMMANDS
All commands require the dimensionopening.admin permission (OP by default).
Main Commands:
/dimension open <world|nether|end> - Opens the specified dimension for all players /dimension close <world|nether|end> - Closes the specified dimension to non-operators
Command Examples:
/dimension close nether
Closes the Nether dimension - players cannot enter via portals or teleportation
/dimension open end
Opens the End dimension - players can now access it normally
/dimension close world
Closes the Overworld dimension - players cannot teleport there
/dimension open nether
Reopens the Nether dimension for all players
/dimension gui
opens the gui to control this, much better for lazy people
PERMISSIONS
&]
dd:bg-bg-500/10">Permission
Description
Default
&]

dd:bg-bg-500/10">dimensionopening.admin Access to all dimension control commands OP
Setting Up Permissions:
For LuckPerms:
/lp group admin permission set dimensionopening.admin true
For PermissionsEx:
/pex group admin add dimensionopening.admin
Note: Operators with the bypass option enabled in config can access closed dimensions regardless of restrictions.
CONFIGURATION
The plugin creates a config.yml file with the following structure:
yaml
dimensions:
overworld:
open: true
nether:
open: true
end:
open: true
settings:
broadcast_changes: true
ops_bypass_restrictions: true
messages:
dimension_closed: "&cThe %dimension% dimension is currently closed!"
dimension_opened: "&aThe %dimension% dimension is now accessible!"
portal_blocked: "&cYou cannot use portals to closed dimensions!"
teleport_blocked: "&cTeleportation to the %dimension% is currently disabled!"
broadcast_closed: "&e%player% has closed the %dimension% dimension!"
broadcast_opened: "&e%player% has opened the %dimension% dimension!"
no_permission: "&cYou don't have permission to use this command!"
invalid_dimension: "&cInvalid dimension! Use: world, nether, or end"
already_closed: "&cThe %dimension% dimension is already closed!"
already_open: "&cThe %dimension% dimension is already open!"
Configuration Options:
- broadcast_changes - When true, announces dimension changes to all players
- ops_bypass_restrictions - When true, operators can access closed dimensions
- %dimension% placeholder - Automatically replaced with dimension name in messages
- %player% placeholder - Automatically replaced with player name in broadcasts
Color Codes:
Use Minecraft color codes in messages:
- &a = Green
- &c = Red
- &e = Yellow
- &6 = Gold
- &b = Aqua
- &f = White
USAGE EXAMPLES
Example 1: Event Management
Close the End during a server event:
/dimension close end
This prevents players from accessing the End while you prepare an event or reset the dragon fight.
Example 2: Resource Control
Close the Nether during maintenance:
/dimension close nether
Useful when regenerating the Nether or performing world edits.
Example 3: Spawn Protection
Close the Overworld to trap players in another dimension:
/dimension close world
Creative mini-game scenarios where players must complete objectives before returning.
Example 4: Progressive Unlocking
Start with all dimensions closed, then unlock them as players progress:
/dimension close nether
/dimension close end
Later, when players are ready:
/dimension open nether
HOW IT WORKS
Dimension State Tracking: The plugin maintains a state for each dimension (open/closed) and saves these states to the config file.
Event Monitoring: The plugin listens for several events to enforce dimension restrictions:
- Portal usage (Nether portals, End portals)
- Teleportation commands (/tp, /home, etc.)
- Player movement between worlds
- Any teleportation to closed dimensions
Access Control: When a player attempts to access a closed dimension:
- Plugin checks if the dimension is closed
- Checks if the player has bypass permission (operator)
- If restricted, cancels the teleport/portal usage
- Displays a custom message to the player
Persistence: All dimension states are automatically saved to the config file, ensuring settings persist across server restarts.
CONFIGURATION TIPS
Custom Messages:
Personalize messages to match your server's theme:
yaml
messages:
dimension_closed: "&6[&eMyServer&6] &cThe %dimension% is under maintenance!"
dimension_opened: "&6[&eMyServer&6] &aThe %dimension% is now available!"
Disable Broadcasts:
If you prefer silent dimension changes:
yaml
settings:
broadcast_changes: false
Operator Bypass:
To make closed dimensions affect everyone (including ops):
yaml
settings:
ops_bypass_restrictions: false
Default Closed Dimensions:
Set dimensions to be closed by default on fresh installs:
yaml
dimensions:
overworld:
open: true
nether:
open: false
end:
open: false
TROUBLESHOOTING
Plugin Not Loading:
- Check server logs for errors
- Ensure you're running Paper or Spigot 1.21
- Verify you have Java 17 or higher installed
- Check that the JAR file isn't corrupted
Commands Not Working:
- Verify you have operator status or dimensionopening.admin permission
- Try /dimension help to confirm plugin is loaded
- Check console for permission-related errors
Players Can Still Access Closed Dimensions:
- Check if ops_bypass_restrictions is enabled in config
- Verify the player doesn't have operator status
- Ensure dimension is actually closed with /dimension status (if available)
- Check for conflicting plugins that might be allowing teleportation
Dimension States Not Saving:
- Check file permissions on the plugins/DimensionOpening/ folder
- Look for write errors in server console
- Verify the config.yml file isn't locked or read-only
Portal Block Not Working:
- Ensure you're running Paper (better event handling)
- Check for conflicting portal plugins
- Verify the dimension is set to closed in config
USE CASES
Mini-Games & Events:
- Close dimensions during special events or mini-games
- Control player movement for game mechanics
- Prevent players from escaping event areas
Server Maintenance:
- Close dimensions while performing world edits
- Prevent access during dimension resets or regeneration
- Manage resource-intensive areas
Progressive Gameplay:
- Lock dimensions until players meet requirements
- Create achievement-based dimension unlocking
- Control server progression and difficulty
Resource Management:
- Limit access to resource-heavy dimensions during peak times
- Reduce server load by closing unused dimensions
- Manage player distribution across dimensions
TECHNICAL DETAILS
Blocked Events:
- Portal creation and usage (Nether/End portals)
- Player teleportation commands
- Plugin-based teleportation (most plugins supported)
- Cross-world teleportation
- Respawn anchor usage in closed dimensions
Performance:
- Minimal performance impact (event-based checking only)
- No constant ticking or scheduled tasks
- Efficient state management
- Lightweight config file operations
SUPPORT
Having issues? Here's how to get help:
- Check the troubleshooting section above
- Review your config.yml for syntax errors
- Check server console logs for error messages
- Verify you're running Paper 1.21 with Java 17+
- Test commands with operator permissions first
CHANGELOG
Version 1.0.0
- Initial release
- Dimension open/close functionality
- Portal blocking system
- Teleportation prevention
- Persistent dimension states
- Configurable messages and settings
- Broadcast notifications
- Operator bypass option
⚖️ LICENSE
This project is licensed under the MIT License - free to use on your Minecraft server.