
A performance-oriented multi-world management mod for Fabric servers. Run as many worlds as you need — with per-world rules, isolated inventories, and custom portals — without tanking your TPS.
Minecraft: 1.21.11 | Loader: Fabric | Required: Fabric API ≥ 0.141.0
Features
Multi-World Management
Create and manage worlds at runtime — no server restarts required. Supports 9 generator types: overworld, amplified, large_biomes, nether, end, void, flat, caves, and floating_islands. Worlds are loaded on demand and persist across restarts.
Per-World Rules
Each world can have its own:
- Gamemode — enforce survival, creative, adventure, or spectator per-world
- PvP — enable or disable player combat independently of other worlds
- Difficulty — peaceful through hard, per world
- Gamerules — override any vanilla gamerule (keepInventory, mobGriefing, etc.) per world
Inventory Isolation
Group worlds together to share inventories, or keep them fully separate. Items, armor, hotbar, ender chest, hunger, XP, and status effects are all saved and restored on world transition. Worlds not in any group use independent inventories.
Mob Spawn Control
Block or allow mob spawning at the category level (monsters, creatures, ambient, etc.) or target specific entity types. Rules stack: entity-specific rules take priority over group rules.
Custom Portals
Build portal frames from ore blocks — iron, copper, redstone, lapis, diamond, gold, emerald, or netherite (any size, min 4×5 interior). The entire frame must be one block type. Link portals to any world, then activate by right-clicking the frame with the matching ore item. Portals use a custom animated block that won't interfere with vanilla nether or end portals. Stepping into an active portal starts a 1.5-second warmup countdown — step out to cancel. Portals can be one-way or bidirectional, and links survive server restarts.
Performance
- Worlds unload automatically after a configurable idle timeout
- Worlds with no players skip tick processing entirely
- Saves are staggered to avoid simultaneous disk I/O spikes
- Worlds are only loaded when a player actually enters them
Installation
- Install Fabric Loader for Minecraft 1.21.11
- Install Fabric API ≥ 0.141.0
- Drop
worldengine-1.3.0.jarinto yourmods/folder — on both server and client - Start the server — config files are created automatically in
config/worldengine/
Note: Fantasy is bundled inside the JAR. You do not need to install it separately.
Client mod required for portals. The mod must be installed client-side to see and use custom portal blocks. Without it, portals are non-functional but the server won't crash. All other features (world management, rules, inventories, mob control) are server-side only.
Commands
All commands require operator level 2 (Gamemaster) unless noted.
World Management
| Command | Description |
|---|---|
/we create <name> [generator] [seed] |
Create a new world |
/we delete <name> |
Delete a world (requires confirmation) |
/we list |
List all worlds with status |
/we load <world> |
Load an unloaded world |
/we unload <world> |
Unload a loaded world |
/we tp <world> [x y z] [player] |
Teleport to a world |
/we status |
Show performance status for all worlds |
Per-World Rules
| Command | Description |
|---|---|
/we gamemode <world> <mode> |
Set enforced gamemode |
/we pvp <world> <true|false> |
Enable/disable PvP |
/we difficulty <world> <difficulty> |
Set world difficulty |
/we gamerule <world> <rule> [value] |
Get/set a gamerule override |
/we fastplacement <world> <true|false> |
Toggle fast-placement throttle |
/we rules <world> |
Show all rules for a world (any player) |
Inventory Groups
| Command | Description |
|---|---|
/we inventory list |
List all groups |
/we inventory <group> list |
List worlds in a group |
/we inventory <group> add <world> |
Add a world to a group |
/we inventory <group> remove <world> |
Remove a world from a group |
/we inventory <group> delete |
Delete a group |
Mob Spawning
| Command | Description |
|---|---|
/we mobs <world> list |
Show all mob rules |
/we mobs <world> deny <entity> |
Block a specific entity from spawning |
/we mobs <world> allow <entity> |
Re-allow a specific entity |
/we mobs <world> deny-group <group> |
Block an entire spawn category |
/we mobs <world> allow-group <group> |
Re-allow a spawn category |
/we mobs <world> reset |
Clear all mob rules |
Spawn group names: monster, creature, ambient, axolotls, water_creature, water_ambient, underground_water_creature, misc
Portals
| Command | Description |
|---|---|
/we portal list |
List all portals (any player) |
/we portal info |
Show info for your selected portal |
/we portal name <name> |
Name your selected portal |
/we portal link <world|portal> |
Link to a world (one-way) or named portal (bidirectional) |
/we portal link <world> <x y z> |
Link with a specific destination coordinate |
/we portal unlink |
Unlink your selected portal |
/we portal clear [world] |
Remove all portals (optionally filtered by world) |
Portal Setup
Client mod required for portals.
- Build a frame from ore blocks — iron, copper, redstone, lapis, diamond, gold, emerald, or netherite blocks (at least 4×5 interior, any larger size works). The entire frame must be one type.

- Right-click the frame with an empty hand (OP only) to select it

- Run
/we portal link <world>to link it one-way, or/we portal link <portalname>to link two named portals bidirectionally

- Activate by right-clicking the frame with the matching ore item (e.g., diamond for a diamond block frame) — consumes 1 item in survival

- Walk into the portal — a 1.5-second countdown appears on the action bar, then you teleport. Step out to cancel.
To create a two-way portal: build frames in both worlds, name each with /we portal name <name>, then run /we portal link <other-portal-name> from each side. Activate both sides with the matching ore item.
Breaking a frame block deactivates the portal. Repair the frame and re-activate with another ore item.
Configuration
Config files are stored in config/worldengine/ on your server:
config.json— global defaults and performance settings (idle timeout, save interval, etc.)worlds/<name>.json— per-world settings (auto-created when a world is made)inventory-groups.json— inventory group assignmentsportals.json— portal link data
All config is hot-written on change — no server restart required after running /we commands.
Compatibility
- Works alongside vanilla dimensions (overworld, nether, end) — custom portals do not interfere with nether or end portals
- Compatible with LuckPerms (suggested, not required)
- Server-side for all features except portals — portal blocks require the mod on both server and client
