EZTP
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.
Highlights
- Complete essentials:
/back, homes, global spawn, safe RTP, and clickable TPA requests. - Server-friendly multiplayer: only the dedicated server needs the mod; players may join without EZTP.
- Survival-minded defaults: warmups, movement and damage cancellation, independent cooldowns, and conservative RTP generation.
- Easy administration: hot-reloadable gameplay settings, Forge PermissionAPI support, and server-side English/Chinese localization.
- Compatibility first: no CoreMod, ASM, vanilla class replacement, custom portal generation, or required client packets.
Quick start
- Install Forge
14.23.5.2860for Minecraft1.12.2and use Java 8. - Copy the EZTP Universal JAR into the
modsdirectory. - Start the game or server once to generate
config/eztp.cfg. - Adjust the documented settings as needed, then run
/eztp reloadfor 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.
Commands
| 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.
Teleport behavior
/back,/home,/spawn,/rtp,/tpa, and/tpaherehave independent cooldowns by default. SetshareTeleportCooldowns=trueto make them share one player-wide cooldown pool.- Regular players may save up to five homes by default.
- The default delay is 3 seconds. Movement or actual damage cancels the teleport, and a successful teleport starts a 30-second cooldown by default.
- Operators bypass the delay, cooldown, and home limit by default, but movement still cancels their teleports.
- Optional sounds play during the final three countdown seconds and after a successful arrival.
- Death, logout, or a dimension change cancels a pending teleport.
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.
Global spawn
After /setspawn has been used:
- First-time players spawn at the custom global spawn.
- Players without a bed or another personal respawn point respawn there.
- Beds and respawn points supplied by other mods always take priority.
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.
Random teleport
/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.
Teleport requests
- Requests expire after 60 seconds by default.
- A player may receive up to 10 pending requests by default.
- Each player keeps only their latest outgoing request.
- With multiple incoming requests, use
/tpaccept <player>or/tpdeny <player>to choose the requester. - Accept, deny, and withdraw actions are available as clickable chat buttons.
Configuration
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.
Reloading configuration
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:
enableTpExtension- default access levels under
permissions
If 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.
Permissions
Default access levels:
EVERYONE: all playersOPERATORS: server operators onlyNOBODY: no players by default
Show the complete permission matrix
| 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 |
Permission mods compatible with Forge PermissionAPI may override these defaults. Node names are stable API and should not be changed.
Compatibility
- Multiplayer clients do not need EZTP installed.
- Singleplayer requires the JAR on the client so its integrated server can load EZTP.
- Messages are localized on the server. English and Simplified Chinese are included; unsupported languages fall back to English.
- EZTP does not modify vanilla classes, use a CoreMod or ASM, or create portals.

