Lightweight, server-friendly teleportation for Minecraft 1.12.2
EZTP is a lightweight Forge teleportation mod for Minecraft 1.12.2. It provides return-to-previous-location, homes, a global spawn, safe random teleportation, player teleport requests, cooldowns, and permission control.
/back, homes, global spawn, safe RTP, and clickable TPA requests.14.23.5.2860 for Minecraft 1.12.2 and use Java 8.mods directory.config/eztp.cfg./eztp reload for runtime-safe changes.Multiplayer: install EZTP only on the dedicated server. Vanilla clients and Forge clients without EZTP can connect normally.
Stop the game or server before replacing the EZTP JAR. In singleplayer, the JAR belongs in the client mods directory so the integrated server can load it.
| Command | Default access | Description |
|---|---|---|
/back |
Everyone | Return to the location before the last teleport or to the last death location |
/sethome [name] |
Everyone | Save the current position; an existing name is replaced |
/home [name] |
Everyone | Teleport home; the name may be omitted when only one exists |
/homes [page] |
Everyone | Show a clickable, paginated home list |
/delhome [name] |
Everyone | Delete a home; the name may be omitted when only one exists |
/setspawn |
Operators | Set the global spawn to the current position and rotation |
/spawn |
Everyone | Teleport to the global spawn |
/rtp |
Everyone | Find a safe random destination in the current dimension |
/tp <player> |
Operators | Immediately teleport yourself to a player; other /tp forms remain vanilla |
/tpa <player> |
Everyone | Ask to teleport to another player |
/tpahere <player> |
Everyone | Ask another player to teleport to you |
/tpaccept [player] |
Everyone | Accept a request; alias /tpyes |
/tpdeny [player] |
Everyone | Deny a request; alias /tpno |
/tpacancel |
Everyone | Withdraw the current outgoing request |
/eztp reload |
Operators | Reload runtime-safe configuration |
Home names are case-insensitive and saved in lowercase. They may contain 1–16 ASCII letters, digits, or underscores.
When a player is riding an entity, EZTP dismounts the player and teleports only the player on the next server tick. The mount remains behind. Modded mounts that follow Minecraft's standard riding relationship usually need no special handling.
/back, /home, /spawn, /rtp, /tpa, and /tpahere have independent cooldowns by default. Set shareTeleportCooldowns=true to make them share one player-wide cooldown pool.Successful EZTP player teleports save their origin, while death saves the death location. A successful /back saves its own origin as the next previous location, so it can toggle between two places. The location persists across reconnects and server restarts. Automatic first-spawn and respawn placement do not overwrite a death location. When EZTP's /tp extension is active, players moved by vanilla /tp also have their origin recorded.
When back.deathOnlyOnce is true, ordinary teleports no longer create return points and each death grants one successful use of /back. Movement, damage, or another teleport failure does not consume the opportunity. This option is disabled by default.
After /setspawn has been used:
Until a custom spawn is set, initial spawn and respawn placement remain vanilla. /spawn uses the vanilla Overworld spawn in this state. If a destination later becomes obstructed, EZTP searches upward for space that fits the player.
/rtp is allowed only in the Overworld by default and searches 1,000–5,000 blocks from world spawn. It tries at most three different chunks by default and checks up to 64 surface positions in each chunk.
Search work is spread across server ticks so one command does not generate many chunks consecutively. The randomTeleport category controls dimensions, origin, radius, Y range, retries, per-tick budget, and unsafe blocks. Large retry counts or tick budgets can increase terrain generation and lag.
/tpaccept <player> or /tpdeny <player> to choose the requester.Main configuration categories:
| Category | Purpose |
|---|---|
general |
Default home name, home limit, teleport delay, damage cancellation, optional shared cooldown, fallback cooldown, and /tp extension |
commandCooldowns |
Independent cooldowns for six teleport sources; -1 inherits the fallback |
back |
Optional one-use death-only behavior for /back |
effects |
Countdown and arrival sounds and volume |
spawn |
First-join and unbound-respawn behavior |
randomTeleport |
RTP dimensions, range, safety checks, and performance budget |
teleportRequests |
Request rate limit, lifetime, and incoming limit |
chatDisplay |
Home and request list display limits |
permissions |
Default levels for fixed permission nodes |
The generated file documents each setting's default, valid range, and risks associated with extreme values.
Default profile: five homes, a 3-second warmup, a separate 30-second cooldown per teleport source, and cancellation on movement or damage. Shared cooldowns are opt-in. RTP searches 1,000–5,000 blocks from world spawn, tries at most three chunks, and processes one chunk per tick. Requests use a 3-second send throttle, a 60-second lifetime, and a limit of 10 incoming requests. These defaults preserve exploration, combat pressure, and server performance.
After saving config/eztp.cfg, run this from the server console or as an authorized player:
/eztp reload
Most settings apply immediately, including shareTeleportCooldowns, cancelTeleportOnDamage, and back.deathOnlyOnce. Changing the shared-cooldown option changes how existing timers are viewed without resetting them: shared mode uses the longest active source timer. RTP searches and teleport requests that have already started keep the parameters captured at creation, and active cooldown durations are not recalculated.
These settings require a full game or server restart:
enableTpExtensionpermissionsIf either changes, the reload command reports that a restart is required and prevents partial application in the current process. Replacing or reloading the mod JAR while the server is running is not supported.
Default access levels:
EVERYONE: all playersOPERATORS: server operators onlyNOBODY: no players by default<details> <summary>Show the complete permission matrix</summary>
| Permission node | Default |
|---|---|
eztp.command.back |
EVERYONE |
eztp.command.home |
EVERYONE |
eztp.command.sethome |
EVERYONE |
eztp.command.delhome |
EVERYONE |
eztp.command.spawn |
EVERYONE |
eztp.command.setspawn |
OPERATORS |
eztp.command.rtp |
EVERYONE |
eztp.command.reload |
OPERATORS |
eztp.command.tp |
OPERATORS |
eztp.command.tpa |
EVERYONE |
eztp.command.tpahere |
EVERYONE |
eztp.command.tpaccept |
EVERYONE |
eztp.command.tpdeny |
EVERYONE |
eztp.command.tpacancel |
EVERYONE |
eztp.teleport.cross_dimension |
EVERYONE |
eztp.bypass.home_limit |
OPERATORS |
eztp.bypass.teleport_delay |
OPERATORS |
eztp.bypass.teleport_cooldown |
OPERATORS |
eztp.bypass.movement_cancel |
NOBODY |
</details>
Permission mods compatible with Forge PermissionAPI may override these defaults. Node names are stable API and should not be changed.