Sail west and come home from the east. Exotic Worlds wraps your world around: walk, fly or sail across the world's edge and you arrive from the opposite side. No barrier, no teleport, nothing to see where you crossed.

Toroidal: both horizontal axes loop. You can also set a shift: crossing the Z edge then moves you along X too, so arriving back where you started can take several laps.

A tiny toroidal world on JourneyMap: the same world repeats in every direction, and the white lines mark the world's edge.

The same with a shift: each row of copies is shifted along X against the rows next to it.
Cylinder: one horizontal axis loops, the other goes on forever like vanilla; you pick which axis loops, and the Nether and the End loop along the same one.

A cylinder: the world repeats along X and runs on along Z.
One line in server.properties creates a shaped world: level-type=exotic_worlds:torus_medium for a toroidal one, level-type=exotic_worlds:cylinder_medium for a cylinder, each in five sizes: tiny, small, medium, large, huge. Custom sizes and the full walkthrough are in the dedicated server guide.
Runs on NeoForge and Fabric.
Every mod checked against the world's shape, with the game versions and loaders each one applies to, is in the supported mods list.
Found something broken, especially anything that behaves differently near the world's edge? Report it on the issue tracker.