Custom Worlds

Quick rating

Community listing page, reviews here may not be monitored by the author.

Custom Worlds

By LoveGmodOwner

No reviews yet

Create, configure and teleport between custom dimensions at runtime.

Adventure/Exploration
World Gen Improvements
Mod Loaders
NeoForge
Fabric
Minecraft

Community voices

Reviews

List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Show per page
10
25
50
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Where It Runs
Server Required, Client Optional

Required on the server. Installing it on the client adds functionality.

About

Project Details

Type
Mod
License
MIT License
Latest Version
customworlds-fabric-1.0.1.jar

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

Server-side mod to create, configure and teleport between multiple custom dimensions at runtime - each world with its own inventory, gamemode, difficulty, gamerules and worldborder. All via simple /cw commands. Vanilla clients can connect and use /cw tp - no client install needed.

Active Versions: 1.21.1 (NeoForge / Fabric)

See it in action

World Creation & Teleportation

Features

  • Runtime dimension creation - NORMAL, FLAT, NETHER or END generation, with optional seed.
  • Per-world isolated state - every dim can have its own:
    • Default gamemode (applied on arrival)
    • Inventory pool (shared with other "shared" worlds, or fully isolated)
    • Gamerule overrides (with reset to revert)
    • Difficulty (custom dims only)
    • Worldborder (full /worldborder feature parity)
    • Public flag - let non-OP players teleport there
  • Smart teleport - remembers each player's last position in every dim; safe-spawn detection on first visit (including Nether ceiling handling).
  • Persistent across restarts - worlds, configs, player positions, inventories.
  • Death respawn - dying in a custom dim respawns you there (unless your bed is elsewhere).
  • Vanilla-client compatible - no client mod required.
  • Deletion safety - /cw delete requires confirmation, wipes files and all related per-player buckets.

Commands

All commands hang off /cw. Public commands are visible to everyone; admin commands require the configured permission level (OP 4 by default).

Public

  • /cw help - list commands available to you
  • /cw tp <world> - teleport (admins: any dim; players: public worlds only)
  • /cw list - list worlds (filtered by permission)

Admin - world management

  • /cw create <name> <type> [seed]
    • Type: NORMAL, FLAT, NETHER, END
    • Examples:
    • /cw create myworld NORMAL
    • /cw create skyblock FLAT 12345
    • /cw create hellscape NETHER
  • /cw delete <name> - confirm within 30 seconds by re-running the same command

Admin - per-world config (run from inside the dim)

  • /cw config - show the current dimension's full config
  • /cw config sharedinventory <true|false> - share inventory with other shared worlds, or use a fully isolated pool
  • /cw config gamemode <survival|creative|adventure|spectator> - gamemode applied on arrival
  • /cw config publicWorld <true|false> - allow non-OP players to /cw tp here
  • /cw config difficulty <peaceful|easy|normal|hard> - per-dim difficulty (custom dims only)
  • /cw config worldborder ... - same arguments as vanilla /worldborder, but applied to the current dim:
    • set <distance> [<time>], add <distance> [<time>]
    • center <x> <z>
    • damage amount <perBlock>, damage buffer <distance>
    • warning distance <blocks>, warning time <seconds>
    • get
  • /cw config gamerule [<rule> [<value>|reset]]
    • No args: list all rules (overridden ones flagged with *)
    • <rule>: query
    • <rule> <value>: override the rule for this dim
    • <rule> reset: remove the override, revert to default

Custom Config Per-World

Permissions

The OP level required for admin commands is configurable in config/<save>/serverconfig/customworlds-server.toml:

permissionLevel = 4         # 0-4, OP level required for admin commands
maxWorlds = 0               # 0 = unlimited; hard cap for /cw create
deleteConfirmSeconds = 30   # 5-600

/cw tp and /cw list always remain available to everyone (filtered by the per-world publicWorld flag).

Inventory model

Each player has one inventory snapshot per "bucket":

  • Shared bucket - used by every dim where sharedInventory = true (the overworld is shared by default). All shared worlds use the same inventory.
  • Isolated bucket - one per dim where sharedInventory = false. The dim has its own private inventory pool; you keep your shared inventory intact when you go in and out.

Buckets persist on disk and survive restarts. Logging out from an isolated dim snapshots your inventory immediately.

Inventory Sharing

Storage

Saved alongside the world data:

File Purpose
customworlds.json List of created worlds
customworlds_config.json Per-dim config
customworlds_positions.json Per-player, per-dim last positions
customworlds_inventories/&amp;amp;lt;uuid&amp;amp;gt;/&amp;amp;lt;bucket&amp;amp;gt;.dat NBT inventory + XP snapshots
dimensions/customworlds/&amp;amp;lt;name&amp;amp;gt;/ Standard MC dimension data (chunks, entities, …)

Deleting a world wipes all of the above for that dim. Irreversible.

Compatibilities

Custom Worlds is compatible with Curios API (NeoForge) & Trinkets (Fabric), the inventory will sync when these mods are installed.

Limitations

  • doDaylightCycle per-dim has no visible effect - game time is shared with the overworld through DerivedLevelData. Day/night follows the overworld.
  • Per-dim difficulty only works on customworlds:* dims (it would conflict with vanilla's global difficulty for minecraft:* dims). For vanilla dims use /difficulty.
  • Server restart recommended after /cw create - newly-created worlds run on a fallback tick loop until the next restart, after which they integrate normally. The mod tells you so on creation.
  • Dynamic dimension registration uses reflection against MinecraftServer internals. Back up your save before updating NeoForge.

FAQ

Do my players need to install the mod? No. CustomWorlds is server-side only. Vanilla clients can connect and use /cw tp for public worlds.

Are the worlds compatible with vanilla? Yes. Custom dims reuse the vanilla OVERWORLD/NETHER/END dimension types, so vanilla clients recognize them without extra registry data.

What happens if a player is offline when their world gets deleted? On reconnect, vanilla falls back to the overworld spawn. They'll arrive with whatever inventory was saved in their player.dat at last logout.

Can I edit the JSON files manually? Yes - they're plain JSON. The loaders tolerate per-entry malformed data and log which entry was skipped.

Can I get more help about Custom Worlds ? Sure ! Join our discord at https://discord.gg/XNAeUSYswB

Server-side mod to create, configure and teleport between multiple custom dimensions at runtime - each world with its own inventory, gamemode, difficulty, gamerules and worldborder. All via simple /cw commands. Vanilla clients can connect and use /cw tp - no client install needed.

Active Versions: 1.21.1 (NeoForge / Fabric)

See it in action

World Creation & Teleportation

Features

  • Runtime dimension creation - NORMAL, FLAT, NETHER or END generation, with optional seed.
  • Per-world isolated state - every dim can have its own:
    • Default gamemode (applied on arrival)
    • Inventory pool (shared with other "shared" worlds, or fully isolated)
    • Gamerule overrides (with reset to revert)
    • Difficulty (custom dims only)
    • Worldborder (full /worldborder feature parity)
    • Public flag - let non-OP players teleport there
    • Smart teleport - remembers each player's last position in every dim; safe-spawn detection on first visit (including Nether ceiling handling).
    • Persistent across restarts - worlds, configs, player positions, inventories.
    • Death respawn - dying in a custom dim respawns you there (unless your bed is elsewhere).
    • Vanilla-client compatible - no client mod required.
    • Deletion safety - /cw delete requires confirmation, wipes files and all related per-player buckets.

Commands

All commands hang off /cw. Public commands are visible to everyone; admin commands require the configured permission level (OP 4 by default).

Public

  • /cw help - list commands available to you
  • /cw tp <world> - teleport (admins: any dim; players: public worlds only)
  • /cw list - list worlds (filtered by permission)

Admin - world management

  • /cw create <name> <type> [seed]
    • Type: NORMAL, FLAT, NETHER, END
    • Examples:
    • /cw create myworld NORMAL
    • /cw create skyblock FLAT 12345
    • /cw create hellscape NETHER
    • /cw delete <name> - confirm within 30 seconds by re-running the same command

Admin - per-world config (run from inside the dim)

  • /cw config - show the current dimension's full config
  • /cw config sharedinventory <true|false> - share inventory with other shared worlds, or use a fully isolated pool
  • /cw config gamemode <survival|creative|adventure|spectator> - gamemode applied on arrival
  • /cw config publicWorld <true|false> - allow non-OP players to /cw tp here
  • /cw config difficulty <peaceful|easy|normal|hard> - per-dim difficulty (custom dims only)
  • /cw config worldborder ... - same arguments as vanilla /worldborder, but applied to the current dim:
    • set <distance> [<time>], add <distance> [<time>]
    • center <x> <z>
    • damage amount <perBlock>, damage buffer <distance>
    • warning distance <blocks>, warning time <seconds>
    • get
    • /cw config gamerule [<rule> [<value>|reset]]
      • No args: list all rules (overridden ones flagged with *)
      • <rule>: query
      • <rule> <value>: override the rule for this dim
      • <rule> reset: remove the override, revert to default

Custom Config Per-World

Permissions

The OP level required for admin commands is configurable in config/<save>/serverconfig/customworlds-server.toml:

permissionLevel = 4         # 0-4, OP level required for admin commands
maxWorlds = 0               # 0 = unlimited; hard cap for /cw create
deleteConfirmSeconds = 30   # 5-600

/cw tp and /cw list always remain available to everyone (filtered by the per-world publicWorld flag).

Inventory model

Each player has one inventory snapshot per "bucket":

  • Shared bucket - used by every dim where sharedInventory = true (the overworld is shared by default). All shared worlds use the same inventory.
  • Isolated bucket - one per dim where sharedInventory = false. The dim has its own private inventory pool; you keep your shared inventory intact when you go in and out.

Buckets persist on disk and survive restarts. Logging out from an isolated dim snapshots your inventory immediately.

Inventory Sharing

Storage

Saved alongside the world data:

File Purpose
customworlds.json List of created worlds
customworlds_config.json Per-dim config
customworlds_positions.json Per-player, per-dim last positions
customworlds_inventories/&amp;lt;uuid&amp;gt;/&amp;lt;bucket&amp;gt;.dat NBT inventory + XP snapshots
dimensions/customworlds/&amp;lt;name&amp;gt;/ Standard MC dimension data (chunks, entities, …)

Deleting a world wipes all of the above for that dim. Irreversible.

Compatibilities

Custom Worlds is compatible with Curios API (NeoForge) & Trinkets (Fabric), the inventory will sync when these mods are installed.

Limitations

  • doDaylightCycle per-dim has no visible effect - game time is shared with the overworld through DerivedLevelData. Day/night follows the overworld.
  • Per-dim difficulty only works on customworlds:* dims (it would conflict with vanilla's global difficulty for minecraft:* dims). For vanilla dims use /difficulty.
  • Server restart recommended after /cw create - newly-created worlds run on a fallback tick loop until the next restart, after which they integrate normally. The mod tells you so on creation.
  • Dynamic dimension registration uses reflection against MinecraftServer internals. Back up your save before updating NeoForge.

FAQ

Do my players need to install the mod? No. CustomWorlds is server-side only. Vanilla clients can connect and use /cw tp for public worlds.

Are the worlds compatible with vanilla? Yes. Custom dims reuse the vanilla OVERWORLD/NETHER/END dimension types, so vanilla clients recognize them without extra registry data.

What happens if a player is offline when their world gets deleted? On reconnect, vanilla falls back to the overworld spawn. They'll arrive with whatever inventory was saved in their player.dat at last logout.

Can I edit the JSON files manually? Yes - they're plain JSON. The loaders tolerate per-entry malformed data and log which entry was skipped.

Can I get more help about Custom Worlds ? Sure ! Join our discord at https://discord.gg/XNAeUSYswB

Screenshots

Gallery

  • Custom Worlds Banner
    Custom Worlds Banner

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~1,000
Total Downloads
CurseForge
<1,000
Modrinth
<1,000
Last Updated
CurseForge
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works