Dimension
The world management plugin that Paper and Folia servers deserve.
Dimension is a from-scratch world management plugin built to be fast, clean, and fully thread-safe on both Folia and Paper/Spigot. Every feature is configurable, every message is editable, and nothing is bolted on as an afterthought. If you've ever been frustrated by Multiverse — the lag, the outdated code, the lack of Folia support — this is the answer.
Compatibility
| Platform | Supported |
|---|---|
| Folia (26.1.x) | ✅ Native — fully region-aware |
| Paper (26.1.x) | ✅ Full support |
| Spigot / Bukkit (26.1.x) | ✅ Full support |
Dimension auto-detects whether it's running on Folia at startup and switches its entire scheduling system accordingly. You drop in the same JAR on any platform — it just works.
Minecraft version: 26.1.2+ Java version: 21+
Features at a Glance
- Create, import, clone, delete, load, unload, and regenerate worlds
- Per-world gamemode enforcement, difficulty, PvP, weather, hunger, flight
- Built-in inventory separation (inventories, health, XP, food — per world)
- Named anchors for quick cross-world teleportation
- Full portal system — define custom portal regions anywhere, with destinations, permissions, and entry fees
- In-game GUI — manage worlds and portals without typing a single command
- Entry fees via Vault economy
- Player limits per world
- World blacklists (block travel between specific worlds)
- Custom respawn world per world
- Full portal control (nether and end portals)
- Entity purge command
- Gamerule management per world
- Coordinate and biome readout command
- One-command Multiverse migration — import your old config instantly
- Full tab completion on every argument of every command
- 100% configurable messages in MiniMessage format (RGB, gradients, all of it)
- PlaceholderAPI support
- Async config I/O — never blocks the main thread
- bStats metrics (opt-out as always)
Commands
All commands use /dim (aliases: /dimension, /dmv).
| Command | What it does |
|---|---|
/dim list [page] |
List all worlds |
/dim info <world> |
Detailed world info |
/dim who |
See which players are in which world |
/dim create <name> [options] |
Create a new world |
/dim import <name> |
Import an existing world folder |
/dim clone <world> <newname> |
Clone a world |
/dim delete <world> |
Delete a world and its files |
/dim load <world> |
Load an unloaded world |
/dim unload <world> |
Unload a loaded world |
/dim remove <world> |
Stop tracking a world (files kept) |
/dim tp <player> <destination> |
Teleport to a world or anchor |
/dim spawn <world> [player] |
Go to a world's spawn |
/dim setspawn <world> |
Set the spawn for a world |
/dim modify <world> <property> <value> |
Change a world property |
/dim gamerule <set|reset|list> [rule] [value] [world] |
Manage game rules |
/dim anchor <create|delete|list|tp> [name] |
Manage anchors |
/dim purge <world> <entitytype> |
Purge entities from a world |
/dim regen <world> |
Regenerate a world |
/dim generators |
List available custom generators |
/dim coord |
Show your current coordinates and biome |
/dim reload |
Reload all config files |
/dim version |
Show version and platform info |
/dim about |
About Dimension |
/dim gui |
Open the in-game management GUI |
/dim portal <subcommand> |
Manage portals (see below) |
/dim migrate |
Import worlds from Multiverse-Core |
Portal System
Dimension includes a built-in portal system. Portals are custom cuboid regions — any shape, any size, anywhere in any world — that teleport players when they step inside.
Creating a portal
Step 1 — Get the wand:
/dim portal wand
You'll receive a Portal Wand (a blaze rod). Right-click a block to set corner 1, left-click to set corner 2. The two corners define the entire region.
Step 2 — Create the portal:
/dim portal create <name> <destination>
The destination uses the same format as /dim tp:
/dim portal create lobby w:hub
/dim portal create spawn a:mainhub
/dim portal create minigames e:arena:100,64,200:0:0
That's it. Anyone who walks through the defined region will be teleported.
Portal commands
| Command | What it does |
|---|---|
/dim portal wand |
Get the portal selection wand |
/dim portal pos1 |
Set corner 1 at your feet (command alternative to wand) |
/dim portal pos2 |
Set corner 2 at your feet |
/dim portal create <name> <dest> |
Create a portal from your current selection |
/dim portal delete <name> |
Delete a portal |
/dim portal list |
List all portals |
/dim portal info <name> |
Show portal details |
/dim portal modify <name> <property> <value> |
Change a portal property |
/dim portal enable <name> |
Enable a portal |
/dim portal disable <name> |
Disable a portal |
/dim portal tp <name> |
Teleport to a portal's destination |
Portal properties
| Property | Description |
|---|---|
destination |
Where the portal sends players (w:/a:/e:/pl: format) |
permission |
Required permission node, or none for everyone |
fee |
Entry fee amount (requires Vault). 0 = free |
safe |
Whether to find a safe landing spot (true/false) |
enabled |
Whether the portal is active (true/false) |
Portal GUI
Open the portal manager from the in-game GUI (/dim gui) or directly from the world manager. From there you can create portals with the wand, edit destinations, toggle portals on/off, and delete them — all without touching the command line.
World Creation Guide
Normal overworld
/dim create myworld
That's it. Defaults to a normal overworld with a random seed.
Specify environment (Nether / End)
/dim create mynether NETHER
/dim create myend END
The environment is the second argument. Options are NORMAL, NETHER, END.
Flat world
Flat worlds use Minecraft's built-in FLAT world type. Pass it as the third argument:
/dim create flatworld NORMAL FLAT
This creates a superflat overworld with the vanilla default layers (bedrock → dirt → grass). Players spawn on a flat surface at the default height.
Void world
A void world needs a custom generator. You'll need a void generator plugin installed on your server (such as VoidGen or any plugin that registers a void generator).
Once a void generator is installed:
/dim create voidworld NORMAL void
The third argument is the generator name as registered by the generator plugin. Run /dim generators to see all available generators on your server.
If you want a single starting platform, place it manually or use a schematic plugin after the world is created.
Large biomes / amplified
/dim create bigworld NORMAL LARGE_BIOMES
/dim create tallworld NORMAL AMPLIFIED
Custom seed
/dim create myworld NORMAL default 123456789
Argument order: name, environment, world type, seed. Use default as the world type if you just want a normal world with a specific seed.
Import an existing world folder
If you have a world folder already sitting in your server directory:
/dim import <foldername>
Dimension will register it and load it. The folder name becomes the world name.
Clone a world
Makes a full copy of an existing world into a new one:
/dim clone survival survival_backup
The clone is done asynchronously — the server stays responsive while files are being copied.
In-Game GUI
Run /dim gui to open the world management interface. From there you can:
- Browse all tracked worlds with status indicators
- Load, unload, or teleport to worlds with a single click
- Edit world settings (gamemode, PvP, weather, etc.) with toggle buttons
- Create new worlds through a guided wizard
- Open the portal manager to create and configure portals
- Confirm destructive actions through a dedicated confirmation screen
Everything the command line can do, the GUI can do — useful for admins who prefer point-and-click.
Migrating from Multiverse-Core
If you're switching from Multiverse, run:
/dim migrate
Dimension reads Multiverse-Core's worlds.yml directly and imports all registered worlds in one shot. Properties like gamemode, difficulty, PvP, flight, respawn world, player limits, and entry fees are all carried over automatically.
No manual editing required. Worlds that are already tracked by Dimension are skipped.
Configuring Worlds
After creation, use /dim modify to tune any property without touching a config file:
/dim modify myworld gamemode CREATIVE
/dim modify myworld pvp false
/dim modify myworld difficulty PEACEFUL
/dim modify myworld allow-flight true
/dim modify myworld monsters false
/dim modify myworld weather-enabled false
/dim modify myworld player-limit 10
/dim modify myworld respawn-world world
/dim modify myworld alias "<gradient:green:aqua>My World</gradient>"
Full list of properties:
| Property | Description |
|---|---|
alias |
Display name (MiniMessage format) |
gamemode |
SURVIVAL, CREATIVE, ADVENTURE, SPECTATOR |
difficulty |
PEACEFUL, EASY, NORMAL, HARD |
pvp |
true / false |
animals |
true / false |
monsters |
true / false |
weather-enabled |
true / false |
hunger |
true / false |
auto-heal |
true / false |
allow-flight |
true / false |
bed-respawn |
true / false |
keep-spawn-in-memory |
true / false |
hidden |
Hide from /dim list |
portal-forming |
NONE, ALL, NETHER, END |
respawn-world |
World name or empty |
world-blacklist |
Comma-separated world names |
player-limit |
Number or -1 for unlimited |
scale |
Nether portal linking scale (default 8.0 for nether) |
entry-fee-enabled |
true / false (requires Vault) |
entry-fee-amount |
Decimal amount |
Anchors
Anchors are named teleport points that aren't tied to a world spawn. Create one where you're standing:
/dim anchor create hub
/dim anchor create arena1
Teleport to an anchor:
/dim tp PlayerName a:hub
Anchors are stored in anchors.yml and survive reloads. Any player with dimension.anchor.use can teleport to them. Creating and deleting anchors requires dimension.anchor.manage.
Destinations
The /dim tp command (and portals) support four destination formats:
| Format | Example | Goes to |
|---|---|---|
w:worldname |
w:survival |
World spawn |
e:world:x,y,z:pitch:yaw |
e:survival:100,64,200:0:90 |
Exact coordinates |
pl:playername |
pl:Steve |
Another player's location |
a:anchorname |
a:hub |
Named anchor |
Inventory Separation
Enable it in config.yml:
settings:
inventory-separation: true
When enabled, each world has its own inventory, health, hunger, XP, and potion effects. Switching worlds saves and restores your state for that world automatically.
Permissions
| Permission | Default | Description |
|---|---|---|
dimension.admin |
op | All permissions |
dimension.list |
everyone | List worlds |
dimension.info |
everyone | World info |
dimension.who |
everyone | Player locations |
dimension.coord |
everyone | Coordinates |
dimension.version |
everyone | Version info |
dimension.spawn.self |
everyone | Go to world spawn |
dimension.anchor.use |
everyone | Use anchors |
dimension.portal |
everyone | Walk through portals |
dimension.tp.self |
op | Teleport self |
dimension.tp.other |
op | Teleport others |
dimension.spawn.other |
op | Send player to spawn |
dimension.setspawn |
op | Set world spawn |
dimension.create |
op | Create worlds |
dimension.import |
op | Import worlds |
dimension.clone |
op | Clone worlds |
dimension.delete |
op | Delete worlds |
dimension.load |
op | Load worlds |
dimension.unload |
op | Unload worlds |
dimension.remove |
op | Remove from tracking |
dimension.regen |
op | Regenerate worlds |
dimension.purge |
op | Purge entities |
dimension.modify |
op | Modify properties |
dimension.gamerule |
op | Manage game rules |
dimension.reload |
op | Reload configs |
dimension.anchor.manage |
op | Create/delete anchors |
dimension.generators |
op | List generators |
dimension.gui |
op | Open the GUI |
dimension.portal.manage |
op | Create/modify/delete portals |
dimension.portal.tp |
op | Teleport to portals via command |
dimension.migrate |
op | Run Multiverse migration |
dimension.bypass.gamemode |
false | Bypass gamemode enforcement |
Configuration
Four config files are generated on first run inside your plugins/Dimension/ folder.
config.yml — global settings like safe teleport, auto-load, portal handling, inventory separation, and performance tuning.
worlds.yml — automatically maintained by the plugin. Stores the state of every tracked world. You can edit it manually while the server is stopped, but use /dim modify while it's running.
messages.yml — every single message the plugin sends. Full MiniMessage support including hex colours, gradients, and click/hover events. New keys added in future updates are automatically merged in without overwriting your customizations.
anchors.yml — managed automatically when you use /dim anchor create/delete.
portals.yml — managed automatically when you create and delete portals.
To reload all config files without restarting:
/dim reload
PlaceholderAPI
If PlaceholderAPI is installed, Dimension registers its own placeholders automatically. No additional expansion download needed.
Soft Dependencies
Both are completely optional. The plugin loads and runs fine without either:
- Vault — enables the entry fee system. Without it, entry fees are silently disabled.
- PlaceholderAPI — enables placeholders in other plugins that support PAPI.
Folia — What That Means
Folia splits your server into regions that run on separate threads. Most plugins break on Folia because they schedule tasks on the wrong thread.
Dimension was written specifically around this. It uses:
- RegionScheduler for location-bound tasks (weather, spawn enforcement)
- EntityScheduler for player tasks (teleports, gamemode changes) — the task follows the player across regions
- AsyncScheduler for all file I/O and config saving
- GlobalRegionScheduler for server-wide operations (world load/unload)
On regular Paper the exact same code paths execute through BukkitScheduler equivalents. Same JAR, same behaviour, different backend.
Built by SneakyWrld
